diff -u linux-oem-5.6-5.6.0/MAINTAINERS linux-oem-5.6-5.6.0/MAINTAINERS --- linux-oem-5.6-5.6.0/MAINTAINERS +++ linux-oem-5.6-5.6.0/MAINTAINERS @@ -10910,6 +10910,17 @@ S: Maintained F: arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts +MHI BUS +M: Manivannan Sadhasivam +M: Hemant Kumar +L: linux-arm-msm@vger.kernel.org +S: Maintained +T: git git://git.kernel.org/pub/scm/linux/kernel/git/mani/mhi.git +F: Documentation/ABI/stable/sysfs-bus-mhi +F: Documentation/mhi/ +F: drivers/bus/mhi/ +F: include/linux/mhi.h + MICROBLAZE ARCHITECTURE M: Michal Simek W: http://www.monstr.eu/fdt/ diff -u linux-oem-5.6-5.6.0/arch/x86/include/asm/cpu_device_id.h linux-oem-5.6-5.6.0/arch/x86/include/asm/cpu_device_id.h --- linux-oem-5.6-5.6.0/arch/x86/include/asm/cpu_device_id.h +++ linux-oem-5.6-5.6.0/arch/x86/include/asm/cpu_device_id.h @@ -6,7 +6,6 @@ * Declare drivers belonging to specific x86 CPUs * Similar in spirit to pci_device_id and related PCI functions */ - #include #define X86_CENTAUR_FAM6_C7_D 0xd @@ -41,4 +40,141 @@ /* + * The wildcard initializers are in mod_devicetable.h because + * file2alias needs them. Sigh. + */ +#include +/* Get the INTEL_FAM* model defines */ +#include +/* And the X86_VENDOR_* ones */ +#include + +/* Centaur FAM6 models */ +#define X86_CENTAUR_FAM6_C7_A 0xa +#define X86_CENTAUR_FAM6_C7_D 0xd +#define X86_CENTAUR_FAM6_NANO 0xf + +/** + * X86_MATCH_VENDOR_FAM_MODEL_FEATURE - Base macro for CPU matching + * @_vendor: The vendor name, e.g. INTEL, AMD, HYGON, ..., ANY + * The name is expanded to X86_VENDOR_@_vendor + * @_family: The family number or X86_FAMILY_ANY + * @_model: The model number, model constant or X86_MODEL_ANY + * @_feature: A X86_FEATURE bit or X86_FEATURE_ANY + * @_data: Driver specific data or NULL. The internal storage + * format is unsigned long. The supplied value, pointer + * etc. is casted to unsigned long internally. + * + * Use only if you need all selectors. Otherwise use one of the shorter + * macros of the X86_MATCH_* family. If there is no matching shorthand + * macro, consider to add one. If you really need to wrap one of the macros + * into another macro at the usage site for good reasons, then please + * start this local macro with X86_MATCH to allow easy grepping. + */ +#define X86_MATCH_VENDOR_FAM_MODEL_FEATURE(_vendor, _family, _model, \ + _feature, _data) { \ + .vendor = X86_VENDOR_##_vendor, \ + .family = _family, \ + .model = _model, \ + .feature = _feature, \ + .driver_data = (unsigned long) _data \ +} + +/** + * X86_MATCH_VENDOR_FAM_FEATURE - Macro for matching vendor, family and CPU feature + * @vendor: The vendor name, e.g. INTEL, AMD, HYGON, ..., ANY + * The name is expanded to X86_VENDOR_@vendor + * @family: The family number or X86_FAMILY_ANY + * @feature: A X86_FEATURE bit + * @data: Driver specific data or NULL. The internal storage + * format is unsigned long. The supplied value, pointer + * etc. is casted to unsigned long internally. + * + * All other missing arguments of X86_MATCH_VENDOR_FAM_MODEL_FEATURE() are + * set to wildcards. + */ +#define X86_MATCH_VENDOR_FAM_FEATURE(vendor, family, feature, data) \ + X86_MATCH_VENDOR_FAM_MODEL_FEATURE(vendor, family, \ + X86_MODEL_ANY, feature, data) + +/** + * X86_MATCH_VENDOR_FEATURE - Macro for matching vendor and CPU feature + * @vendor: The vendor name, e.g. INTEL, AMD, HYGON, ..., ANY + * The name is expanded to X86_VENDOR_@vendor + * @feature: A X86_FEATURE bit + * @data: Driver specific data or NULL. The internal storage + * format is unsigned long. The supplied value, pointer + * etc. is casted to unsigned long internally. + * + * All other missing arguments of X86_MATCH_VENDOR_FAM_MODEL_FEATURE() are + * set to wildcards. + */ +#define X86_MATCH_VENDOR_FEATURE(vendor, feature, data) \ + X86_MATCH_VENDOR_FAM_FEATURE(vendor, X86_FAMILY_ANY, feature, data) + +/** + * X86_MATCH_FEATURE - Macro for matching a CPU feature + * @feature: A X86_FEATURE bit + * @data: Driver specific data or NULL. The internal storage + * format is unsigned long. The supplied value, pointer + * etc. is casted to unsigned long internally. + * + * All other missing arguments of X86_MATCH_VENDOR_FAM_MODEL_FEATURE() are + * set to wildcards. + */ +#define X86_MATCH_FEATURE(feature, data) \ + X86_MATCH_VENDOR_FEATURE(ANY, feature, data) + +/* Transitional to keep the existing code working */ +#define X86_FEATURE_MATCH(feature) X86_MATCH_FEATURE(feature, NULL) + +/** + * X86_MATCH_VENDOR_FAM_MODEL - Match vendor, family and model + * @vendor: The vendor name, e.g. INTEL, AMD, HYGON, ..., ANY + * The name is expanded to X86_VENDOR_@vendor + * @family: The family number or X86_FAMILY_ANY + * @model: The model number, model constant or X86_MODEL_ANY + * @data: Driver specific data or NULL. The internal storage + * format is unsigned long. The supplied value, pointer + * etc. is casted to unsigned long internally. + * + * All other missing arguments of X86_MATCH_VENDOR_FAM_MODEL_FEATURE() are + * set to wildcards. + */ +#define X86_MATCH_VENDOR_FAM_MODEL(vendor, family, model, data) \ + X86_MATCH_VENDOR_FAM_MODEL_FEATURE(vendor, family, model, \ + X86_FEATURE_ANY, data) + +/** + * X86_MATCH_VENDOR_FAM - Match vendor and family + * @vendor: The vendor name, e.g. INTEL, AMD, HYGON, ..., ANY + * The name is expanded to X86_VENDOR_@vendor + * @family: The family number or X86_FAMILY_ANY + * @data: Driver specific data or NULL. The internal storage + * format is unsigned long. The supplied value, pointer + * etc. is casted to unsigned long internally. + * + * All other missing arguments to X86_MATCH_VENDOR_FAM_MODEL_FEATURE() are + * set of wildcards. + */ +#define X86_MATCH_VENDOR_FAM(vendor, family, data) \ + X86_MATCH_VENDOR_FAM_MODEL(vendor, family, X86_MODEL_ANY, data) + +/** + * X86_MATCH_INTEL_FAM6_MODEL - Match vendor INTEL, family 6 and model + * @model: The model name without the INTEL_FAM6_ prefix or ANY + * The model name is expanded to INTEL_FAM6_@model internally + * @data: Driver specific data or NULL. The internal storage + * format is unsigned long. The supplied value, pointer + * etc. is casted to unsigned long internally. + * + * The vendor is set to INTEL, the family to 6 and all other missing + * arguments of X86_MATCH_VENDOR_FAM_MODEL_FEATURE() are set to wildcards. + * + * See X86_MATCH_VENDOR_FAM_MODEL_FEATURE() for further information. + */ +#define X86_MATCH_INTEL_FAM6_MODEL(model, data) \ + X86_MATCH_VENDOR_FAM_MODEL(INTEL, 6, INTEL_FAM6_##model, data) + +/* * Match specific microcode revisions. * diff -u linux-oem-5.6-5.6.0/arch/x86/kernel/cpu/match.c linux-oem-5.6-5.6.0/arch/x86/kernel/cpu/match.c --- linux-oem-5.6-5.6.0/arch/x86/kernel/cpu/match.c +++ linux-oem-5.6-5.6.0/arch/x86/kernel/cpu/match.c @@ -16,12 +16,17 @@ * respective wildcard entries. * * A typical table entry would be to match a specific CPU - * { X86_VENDOR_INTEL, 6, 0x12 } - * or to match a specific CPU feature - * { X86_FEATURE_MATCH(X86_FEATURE_FOOBAR) } + * + * X86_MATCH_VENDOR_FAM_MODEL_FEATURE(INTEL, 6, INTEL_FAM6_BROADWELL, + * X86_FEATURE_ANY, NULL); * * Fields can be wildcarded with %X86_VENDOR_ANY, %X86_FAMILY_ANY, - * %X86_MODEL_ANY, %X86_FEATURE_ANY or 0 (except for vendor) + * %X86_MODEL_ANY, %X86_FEATURE_ANY (except for vendor) + * + * asm/cpu_device_id.h contains a set of useful macros which are shortcuts + * for various common selections. The above can be shortened to: + * + * X86_MATCH_INTEL_FAM6_MODEL(BROADWELL, NULL); * * Arrays used to match for this should also be declared using * MODULE_DEVICE_TABLE(x86cpu, ...) diff -u linux-oem-5.6-5.6.0/arch/x86/kvm/svm.c linux-oem-5.6-5.6.0/arch/x86/kvm/svm.c --- linux-oem-5.6-5.6.0/arch/x86/kvm/svm.c +++ linux-oem-5.6-5.6.0/arch/x86/kvm/svm.c @@ -48,6 +48,7 @@ #include #include #include +#include #include #include "trace.h" diff -u linux-oem-5.6-5.6.0/arch/x86/kvm/vmx/vmx.c linux-oem-5.6-5.6.0/arch/x86/kvm/vmx/vmx.c --- linux-oem-5.6-5.6.0/arch/x86/kvm/vmx/vmx.c +++ linux-oem-5.6-5.6.0/arch/x86/kvm/vmx/vmx.c @@ -31,6 +31,7 @@ #include #include #include +#include #include #include #include reverted: --- linux-oem-5.6-5.6.0/debian.oem/abi/5.6.0-1032.33/abiname +++ linux-oem-5.6-5.6.0.orig/debian.oem/abi/5.6.0-1032.33/abiname @@ -1 +0,0 @@ -1032 reverted: --- linux-oem-5.6-5.6.0/debian.oem/abi/5.6.0-1032.33/amd64/oem +++ linux-oem-5.6-5.6.0.orig/debian.oem/abi/5.6.0-1032.33/amd64/oem @@ -1,23972 +0,0 @@ -EXPORT_SYMBOL arch/x86/crypto/blake2s-x86_64 0x00000000 blake2s_compress_arch -EXPORT_SYMBOL arch/x86/crypto/chacha-x86_64 0x00000000 chacha_crypt_arch -EXPORT_SYMBOL arch/x86/crypto/chacha-x86_64 0x00000000 chacha_init_arch -EXPORT_SYMBOL arch/x86/crypto/chacha-x86_64 0x00000000 hchacha_block_arch -EXPORT_SYMBOL arch/x86/crypto/curve25519-x86_64 0x00000000 curve25519_arch -EXPORT_SYMBOL arch/x86/crypto/curve25519-x86_64 0x00000000 curve25519_base_arch -EXPORT_SYMBOL arch/x86/crypto/poly1305-x86_64 0x00000000 poly1305_final_arch -EXPORT_SYMBOL arch/x86/crypto/poly1305-x86_64 0x00000000 poly1305_init_arch -EXPORT_SYMBOL arch/x86/crypto/poly1305-x86_64 0x00000000 poly1305_update_arch -EXPORT_SYMBOL arch/x86/kvm/kvm 0x00000000 kvm_cpu_has_pending_timer -EXPORT_SYMBOL crypto/ecc 0x00000000 crypto_ecdh_shared_secret -EXPORT_SYMBOL crypto/ecc 0x00000000 ecc_gen_privkey -EXPORT_SYMBOL crypto/ecc 0x00000000 ecc_is_key_valid -EXPORT_SYMBOL crypto/ecc 0x00000000 ecc_is_pubkey_valid_partial -EXPORT_SYMBOL crypto/ecc 0x00000000 ecc_make_pub_key -EXPORT_SYMBOL crypto/ecc 0x00000000 ecc_point_mult_shamir -EXPORT_SYMBOL crypto/ecc 0x00000000 vli_cmp -EXPORT_SYMBOL crypto/ecc 0x00000000 vli_from_be64 -EXPORT_SYMBOL crypto/ecc 0x00000000 vli_from_le64 -EXPORT_SYMBOL crypto/ecc 0x00000000 vli_is_zero -EXPORT_SYMBOL crypto/ecc 0x00000000 vli_mod_inv -EXPORT_SYMBOL crypto/ecc 0x00000000 vli_mod_mult_slow -EXPORT_SYMBOL crypto/ecc 0x00000000 vli_sub -EXPORT_SYMBOL crypto/nhpoly1305 0x00000000 crypto_nhpoly1305_final -EXPORT_SYMBOL crypto/nhpoly1305 0x00000000 crypto_nhpoly1305_final_helper -EXPORT_SYMBOL crypto/nhpoly1305 0x00000000 crypto_nhpoly1305_init -EXPORT_SYMBOL crypto/nhpoly1305 0x00000000 crypto_nhpoly1305_setkey -EXPORT_SYMBOL crypto/nhpoly1305 0x00000000 crypto_nhpoly1305_update -EXPORT_SYMBOL crypto/nhpoly1305 0x00000000 crypto_nhpoly1305_update_helper -EXPORT_SYMBOL crypto/sha3_generic 0x00000000 crypto_sha3_final -EXPORT_SYMBOL crypto/sha3_generic 0x00000000 crypto_sha3_init -EXPORT_SYMBOL crypto/sha3_generic 0x00000000 crypto_sha3_update -EXPORT_SYMBOL crypto/sm3_generic 0x00000000 crypto_sm3_finup -EXPORT_SYMBOL crypto/sm3_generic 0x00000000 crypto_sm3_update -EXPORT_SYMBOL crypto/xor 0x00000000 xor_blocks -EXPORT_SYMBOL drivers/acpi/nfit/nfit 0x00000000 to_nfit_uuid -EXPORT_SYMBOL drivers/acpi/video 0x00000000 acpi_video_get_backlight_type -EXPORT_SYMBOL drivers/acpi/video 0x00000000 acpi_video_get_edid -EXPORT_SYMBOL drivers/acpi/video 0x00000000 acpi_video_get_levels -EXPORT_SYMBOL drivers/acpi/video 0x00000000 acpi_video_handles_brightness_key_presses -EXPORT_SYMBOL drivers/acpi/video 0x00000000 acpi_video_register -EXPORT_SYMBOL drivers/acpi/video 0x00000000 acpi_video_set_dmi_backlight_type -EXPORT_SYMBOL drivers/acpi/video 0x00000000 acpi_video_unregister -EXPORT_SYMBOL drivers/atm/suni 0x00000000 suni_init -EXPORT_SYMBOL drivers/atm/uPD98402 0x00000000 uPD98402_init -EXPORT_SYMBOL drivers/bcma/bcma 0x00000000 bcma_core_dma_translation -EXPORT_SYMBOL drivers/bcma/bcma 0x00000000 bcma_core_irq -EXPORT_SYMBOL drivers/block/drbd/drbd 0x00000000 drbd_conn_str -EXPORT_SYMBOL drivers/block/drbd/drbd 0x00000000 drbd_disk_str -EXPORT_SYMBOL drivers/block/drbd/drbd 0x00000000 drbd_role_str -EXPORT_SYMBOL drivers/block/drbd/drbd 0x00000000 drbd_set_st_err_str -EXPORT_SYMBOL drivers/block/paride/paride 0x00000000 paride_register -EXPORT_SYMBOL drivers/block/paride/paride 0x00000000 paride_unregister -EXPORT_SYMBOL drivers/block/paride/paride 0x00000000 pi_connect -EXPORT_SYMBOL drivers/block/paride/paride 0x00000000 pi_disconnect -EXPORT_SYMBOL drivers/block/paride/paride 0x00000000 pi_do_claimed -EXPORT_SYMBOL drivers/block/paride/paride 0x00000000 pi_init -EXPORT_SYMBOL drivers/block/paride/paride 0x00000000 pi_read_block -EXPORT_SYMBOL drivers/block/paride/paride 0x00000000 pi_read_regr -EXPORT_SYMBOL drivers/block/paride/paride 0x00000000 pi_register_driver -EXPORT_SYMBOL drivers/block/paride/paride 0x00000000 pi_release -EXPORT_SYMBOL drivers/block/paride/paride 0x00000000 pi_schedule_claimed -EXPORT_SYMBOL drivers/block/paride/paride 0x00000000 pi_unregister_driver -EXPORT_SYMBOL drivers/block/paride/paride 0x00000000 pi_write_block -EXPORT_SYMBOL drivers/block/paride/paride 0x00000000 pi_write_regr -EXPORT_SYMBOL drivers/bluetooth/btbcm 0x00000000 btbcm_patchram -EXPORT_SYMBOL drivers/bluetooth/btrsi 0x00000000 rsi_bt_ops -EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_add_smi -EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_addr_length -EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_addr_src_to_str -EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_alloc_smi_msg -EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_create_user -EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_destroy_user -EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_free_recv_msg -EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_get_maintenance_mode -EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_get_my_LUN -EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_get_my_address -EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_get_smi_info -EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_get_version -EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_poll_interface -EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_register_for_cmd -EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_request_settime -EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_request_supply_msgs -EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_set_gets_events -EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_set_maintenance_mode -EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_set_my_LUN -EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_set_my_address -EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_smi_msg_received -EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_smi_watchdog_pretimeout -EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_smi_watcher_register -EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_smi_watcher_unregister -EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_unregister_for_cmd -EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_unregister_smi -EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_validate_addr -EXPORT_SYMBOL drivers/char/nvram 0x00000000 arch_nvram_ops -EXPORT_SYMBOL drivers/char/tpm/st33zp24/tpm_st33zp24 0x00000000 st33zp24_pm_resume -EXPORT_SYMBOL drivers/char/tpm/st33zp24/tpm_st33zp24 0x00000000 st33zp24_pm_suspend -EXPORT_SYMBOL drivers/char/tpm/st33zp24/tpm_st33zp24 0x00000000 st33zp24_probe -EXPORT_SYMBOL drivers/char/tpm/st33zp24/tpm_st33zp24 0x00000000 st33zp24_remove -EXPORT_SYMBOL drivers/char/xillybus/xillybus_core 0x00000000 xillybus_endpoint_discovery -EXPORT_SYMBOL drivers/char/xillybus/xillybus_core 0x00000000 xillybus_endpoint_remove -EXPORT_SYMBOL drivers/char/xillybus/xillybus_core 0x00000000 xillybus_init_endpoint -EXPORT_SYMBOL drivers/char/xillybus/xillybus_core 0x00000000 xillybus_isr -EXPORT_SYMBOL drivers/crypto/atmel-i2c 0x00000000 atmel_i2c_enqueue -EXPORT_SYMBOL drivers/crypto/atmel-i2c 0x00000000 atmel_i2c_init_ecdh_cmd -EXPORT_SYMBOL drivers/crypto/atmel-i2c 0x00000000 atmel_i2c_init_genkey_cmd -EXPORT_SYMBOL drivers/crypto/atmel-i2c 0x00000000 atmel_i2c_init_random_cmd -EXPORT_SYMBOL drivers/crypto/atmel-i2c 0x00000000 atmel_i2c_init_read_cmd -EXPORT_SYMBOL drivers/crypto/atmel-i2c 0x00000000 atmel_i2c_probe -EXPORT_SYMBOL drivers/crypto/atmel-i2c 0x00000000 atmel_i2c_send_receive -EXPORT_SYMBOL drivers/crypto/ccp/ccp 0x00000000 psp_check_tee_status -EXPORT_SYMBOL drivers/crypto/ccp/ccp 0x00000000 psp_tee_process_cmd -EXPORT_SYMBOL drivers/firewire/firewire-core 0x00000000 fw_bus_type -EXPORT_SYMBOL drivers/firewire/firewire-core 0x00000000 fw_cancel_transaction -EXPORT_SYMBOL drivers/firewire/firewire-core 0x00000000 fw_card_add -EXPORT_SYMBOL drivers/firewire/firewire-core 0x00000000 fw_card_initialize -EXPORT_SYMBOL drivers/firewire/firewire-core 0x00000000 fw_core_add_address_handler -EXPORT_SYMBOL drivers/firewire/firewire-core 0x00000000 fw_core_add_descriptor -EXPORT_SYMBOL drivers/firewire/firewire-core 0x00000000 fw_core_handle_bus_reset -EXPORT_SYMBOL drivers/firewire/firewire-core 0x00000000 fw_core_handle_request -EXPORT_SYMBOL drivers/firewire/firewire-core 0x00000000 fw_core_handle_response -EXPORT_SYMBOL drivers/firewire/firewire-core 0x00000000 fw_core_remove_address_handler -EXPORT_SYMBOL drivers/firewire/firewire-core 0x00000000 fw_core_remove_card -EXPORT_SYMBOL drivers/firewire/firewire-core 0x00000000 fw_core_remove_descriptor -EXPORT_SYMBOL drivers/firewire/firewire-core 0x00000000 fw_csr_iterator_init -EXPORT_SYMBOL drivers/firewire/firewire-core 0x00000000 fw_csr_iterator_next -EXPORT_SYMBOL drivers/firewire/firewire-core 0x00000000 fw_csr_string -EXPORT_SYMBOL drivers/firewire/firewire-core 0x00000000 fw_device_enable_phys_dma -EXPORT_SYMBOL drivers/firewire/firewire-core 0x00000000 fw_fill_response -EXPORT_SYMBOL drivers/firewire/firewire-core 0x00000000 fw_get_request_speed -EXPORT_SYMBOL drivers/firewire/firewire-core 0x00000000 fw_high_memory_region -EXPORT_SYMBOL drivers/firewire/firewire-core 0x00000000 fw_iso_buffer_destroy -EXPORT_SYMBOL drivers/firewire/firewire-core 0x00000000 fw_iso_buffer_init -EXPORT_SYMBOL drivers/firewire/firewire-core 0x00000000 fw_iso_context_create -EXPORT_SYMBOL drivers/firewire/firewire-core 0x00000000 fw_iso_context_destroy -EXPORT_SYMBOL drivers/firewire/firewire-core 0x00000000 fw_iso_context_flush_completions -EXPORT_SYMBOL drivers/firewire/firewire-core 0x00000000 fw_iso_context_queue -EXPORT_SYMBOL drivers/firewire/firewire-core 0x00000000 fw_iso_context_queue_flush -EXPORT_SYMBOL drivers/firewire/firewire-core 0x00000000 fw_iso_context_start -EXPORT_SYMBOL drivers/firewire/firewire-core 0x00000000 fw_iso_context_stop -EXPORT_SYMBOL drivers/firewire/firewire-core 0x00000000 fw_iso_resource_manage -EXPORT_SYMBOL drivers/firewire/firewire-core 0x00000000 fw_rcode_string -EXPORT_SYMBOL drivers/firewire/firewire-core 0x00000000 fw_run_transaction -EXPORT_SYMBOL drivers/firewire/firewire-core 0x00000000 fw_schedule_bus_reset -EXPORT_SYMBOL drivers/firewire/firewire-core 0x00000000 fw_send_request -EXPORT_SYMBOL drivers/firewire/firewire-core 0x00000000 fw_send_response -EXPORT_SYMBOL drivers/firewire/firewire-core 0x00000000 fw_workqueue -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 __drm_atomic_helper_disable_plane -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 __drm_atomic_helper_set_config -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 __drm_atomic_state_free -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 __drm_crtc_commit_free -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 __drm_dbg -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 __drm_debug -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 __drm_err -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 __drm_get_edid_firmware_path -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 __drm_mm_interval_first -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 __drm_printfn_coredump -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 __drm_printfn_debug -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 __drm_printfn_err -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 __drm_printfn_info -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 __drm_printfn_seq_file -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 __drm_puts_coredump -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 __drm_puts_seq_file -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 __drm_set_edid_firmware_path -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 devm_drm_dev_init -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_add_edid_modes -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_add_modes_noedid -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_add_override_edid_modes -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_agp_acquire -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_agp_alloc -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_agp_bind -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_agp_enable -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_agp_free -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_agp_info -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_agp_init -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_agp_release -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_agp_unbind -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_any_plane_has_format -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_atomic_add_affected_connectors -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_atomic_add_affected_planes -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_atomic_bridge_chain_disable -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_atomic_bridge_chain_enable -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_atomic_bridge_chain_post_disable -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_atomic_bridge_chain_pre_enable -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_atomic_check_only -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_atomic_commit -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_atomic_get_connector_state -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_atomic_get_crtc_state -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_atomic_get_new_connector_for_encoder -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_atomic_get_new_private_obj_state -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_atomic_get_old_connector_for_encoder -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_atomic_get_old_private_obj_state -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_atomic_get_plane_state -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_atomic_get_private_obj_state -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_atomic_nonblocking_commit -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_atomic_normalize_zpos -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_atomic_private_obj_fini -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_atomic_private_obj_init -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_atomic_set_crtc_for_connector -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_atomic_set_crtc_for_plane -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_atomic_set_fb_for_plane -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_atomic_set_fence_for_plane -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_atomic_set_mode_for_crtc -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_atomic_set_mode_prop_for_crtc -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_atomic_state_alloc -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_atomic_state_clear -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_atomic_state_default_clear -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_atomic_state_default_release -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_atomic_state_init -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_av_sync_delay -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_bridge_add -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_bridge_attach -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_bridge_chain_disable -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_bridge_chain_enable -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_bridge_chain_mode_fixup -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_bridge_chain_mode_set -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_bridge_chain_mode_valid -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_bridge_chain_post_disable -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_bridge_chain_pre_enable -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_bridge_remove -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_calc_timestamping_constants -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_calc_vbltimestamp_from_scanoutpos -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_clflush_pages -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_clflush_sg -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_clflush_virt_range -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_client_buffer_vmap -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_client_buffer_vunmap -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_client_dev_hotplug -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_client_framebuffer_create -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_client_framebuffer_delete -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_client_init -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_client_modeset_commit -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_client_modeset_commit_force -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_client_modeset_dpms -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_client_modeset_probe -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_client_register -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_client_release -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_client_rotation -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_cma_gem_create_object_default_funcs -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_color_ctm_s31_32_to_qm_n -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_color_lut_check -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_compat_ioctl -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_connector_attach_content_protection_property -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_connector_attach_content_type_property -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_connector_attach_edid_property -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_connector_attach_encoder -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_connector_attach_max_bpc_property -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_connector_attach_scaling_mode_property -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_connector_attach_tv_margin_properties -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_connector_attach_vrr_capable_property -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_connector_cleanup -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_connector_has_possible_encoder -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_connector_init -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_connector_init_panel_orientation_property -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_connector_init_with_ddc -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_connector_list_iter_begin -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_connector_list_iter_end -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_connector_list_iter_next -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_connector_list_update -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_connector_register -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_connector_set_link_status_property -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_connector_set_path_property -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_connector_set_tile_property -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_connector_set_vrr_capable_property -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_connector_unregister -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_connector_update_edid_property -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_crtc_accurate_vblank_count -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_crtc_arm_vblank_event -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_crtc_check_viewport -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_crtc_cleanup -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_crtc_enable_color_mgmt -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_crtc_from_index -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_crtc_handle_vblank -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_crtc_init_with_planes -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_crtc_send_vblank_event -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_crtc_set_max_vblank_count -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_crtc_vblank_count -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_crtc_vblank_count_and_time -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_crtc_vblank_get -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_crtc_vblank_off -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_crtc_vblank_on -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_crtc_vblank_put -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_crtc_vblank_reset -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_crtc_vblank_restore -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_crtc_vblank_waitqueue -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_crtc_wait_one_vblank -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_cvt_mode -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_debugfs_create_files -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_debugfs_remove_files -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_default_rgb_quant_range -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_detect_hdmi_monitor -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_detect_monitor_audio -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_dev_alloc -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_dev_dbg -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_dev_enter -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_dev_exit -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_dev_fini -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_dev_get -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_dev_init -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_dev_printk -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_dev_put -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_dev_register -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_dev_set_unique -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_dev_unplug -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_dev_unregister -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_display_info_set_bus_formats -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_driver_legacy_fb_format -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_edid_block_valid -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_edid_duplicate -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_edid_get_monitor_name -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_edid_header_is_valid -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_edid_is_valid -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_edid_to_sad -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_edid_to_speaker_allocation -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_encoder_cleanup -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_encoder_init -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_event_cancel_free -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_event_reserve_init -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_event_reserve_init_locked -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_flip_work_allocate_task -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_flip_work_cleanup -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_flip_work_commit -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_flip_work_init -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_flip_work_queue -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_flip_work_queue_task -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_format_info -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_format_info_block_height -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_format_info_block_width -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_format_info_min_pitch -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_framebuffer_cleanup -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_framebuffer_init -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_framebuffer_lookup -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_framebuffer_plane_height -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_framebuffer_plane_width -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_framebuffer_remove -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_framebuffer_unregister_private -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_cma_prime_import_sg_table_vmap -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_cma_print_info -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_create_mmap_offset -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_create_mmap_offset_size -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_dma_resv_wait -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_dmabuf_export -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_dmabuf_mmap -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_dmabuf_release -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_dmabuf_vmap -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_dmabuf_vunmap -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_dumb_destroy -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_fence_array_add -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_fence_array_add_implicit -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_free_mmap_offset -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_get_pages -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_handle_create -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_handle_delete -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_lock_reservations -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_map_attach -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_map_detach -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_map_dma_buf -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_mmap -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_mmap_obj -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_object_free -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_object_init -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_object_lookup -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_object_put -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_object_put_unlocked -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_object_release -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_objects_lookup -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_prime_export -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_prime_fd_to_handle -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_prime_handle_to_fd -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_prime_import -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_prime_import_dev -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_prime_mmap -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_private_object_init -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_put_pages -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_shmem_create_with_handle -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_shmem_get_pages -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_shmem_madvise -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_shmem_pin -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_shmem_print_info -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_shmem_purge -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_shmem_purge_locked -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_shmem_put_pages -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_shmem_unpin -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_shmem_vmap -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_shmem_vunmap -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_unlock_reservations -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_unmap_dma_buf -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_vm_close -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_vm_open -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_get_connector_status_name -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_get_edid -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_get_edid_switcheroo -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_get_format_info -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_get_format_name -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_get_pci_dev -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_get_subpixel_order_name -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gtf_mode -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gtf_mode_complex -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_handle_vblank -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_hdcp_update_content_protection -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_hdmi_avi_infoframe_bars -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_hdmi_avi_infoframe_colorspace -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_hdmi_avi_infoframe_content_type -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_hdmi_avi_infoframe_from_display_mode -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_hdmi_avi_infoframe_quant_range -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_hdmi_infoframe_set_hdr_metadata -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_hdmi_vendor_infoframe_from_display_mode -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_ht_create -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_ht_find_item -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_ht_insert_item -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_ht_just_insert_please -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_ht_remove -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_ht_remove_item -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_i2c_encoder_commit -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_i2c_encoder_destroy -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_i2c_encoder_detect -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_i2c_encoder_dpms -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_i2c_encoder_init -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_i2c_encoder_mode_fixup -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_i2c_encoder_mode_set -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_i2c_encoder_prepare -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_i2c_encoder_restore -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_i2c_encoder_save -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_invalid_op -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_ioctl -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_ioctl_flags -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_ioctl_kernel -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_ioctl_permit -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_irq_install -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_irq_uninstall -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_is_current_master -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_legacy_ioremap -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_legacy_ioremap_wc -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_legacy_ioremapfree -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_master_get -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_master_internal_acquire -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_master_internal_release -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_master_put -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_match_cea_mode -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mm_init -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mm_insert_node_in_range -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mm_print -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mm_remove_node -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mm_replace_node -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mm_reserve_node -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mm_scan_add_block -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mm_scan_color_evict -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mm_scan_init_with_range -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mm_scan_remove_block -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mm_takedown -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_config_cleanup -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_config_init -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_config_reset -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_copy -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_create -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_create_aspect_ratio_property -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_create_content_type_property -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_create_dp_colorspace_property -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_create_dvi_i_properties -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_create_from_cmdline_mode -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_create_hdmi_colorspace_property -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_create_scaling_mode_property -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_create_suggested_offset_properties -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_create_tile_group -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_create_tv_margin_properties -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_create_tv_properties -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_crtc_set_gamma_size -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_debug_printmodeline -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_destroy -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_duplicate -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_equal -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_equal_no_clocks -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_equal_no_clocks_no_stereo -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_find_dmt -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_get_hv_timing -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_get_tile_group -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_hsync -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_is_420 -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_is_420_also -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_is_420_only -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_legacy_fb_format -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_match -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_object_find -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_object_get -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_object_put -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_parse_command_line_for_connector -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_plane_set_obj_prop -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_probed_add -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_prune_invalid -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_put_tile_group -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_set_config_internal -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_set_crtcinfo -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_set_name -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_sort -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_validate_driver -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_validate_size -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_validate_ycbcr420 -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_vrefresh -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_modeset_acquire_fini -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_modeset_acquire_init -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_modeset_backoff -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_modeset_drop_locks -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_modeset_lock -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_modeset_lock_all -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_modeset_lock_all_ctx -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_modeset_lock_init -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_modeset_lock_single_interruptible -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_modeset_unlock -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_modeset_unlock_all -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_need_swiotlb -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_noop -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_object_attach_property -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_object_property_get_value -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_object_property_set_value -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_open -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_panel_add -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_panel_attach -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_panel_detach -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_panel_disable -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_panel_enable -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_panel_get_modes -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_panel_init -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_panel_of_backlight -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_panel_prepare -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_panel_remove -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_panel_unprepare -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_pci_alloc -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_pci_free -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_plane_cleanup -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_plane_create_alpha_property -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_plane_create_blend_mode_property -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_plane_create_color_properties -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_plane_create_rotation_property -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_plane_create_zpos_immutable_property -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_plane_create_zpos_property -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_plane_force_disable -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_plane_from_index -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_plane_init -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_poll -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_prime_gem_destroy -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_prime_pages_to_sg -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_prime_sg_to_page_addr_arrays -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_print_bits -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_print_regset32 -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_printf -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_probe_ddc -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_property_add_enum -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_property_blob_get -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_property_blob_put -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_property_create -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_property_create_bitmask -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_property_create_blob -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_property_create_bool -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_property_create_enum -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_property_create_object -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_property_create_range -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_property_create_signed_range -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_property_destroy -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_property_lookup_blob -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_property_replace_blob -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_property_replace_global_blob -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_put_dev -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_puts -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_read -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_rect_calc_hscale -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_rect_calc_vscale -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_rect_clip_scaled -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_rect_debug_print -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_rect_intersect -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_rect_rotate -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_rect_rotate_inv -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_release -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_rotation_simplify -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_send_event -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_send_event_locked -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_set_preferred_mode -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_state_dump -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_syncobj_add_point -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_syncobj_create -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_syncobj_find -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_syncobj_find_fence -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_syncobj_free -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_syncobj_get_fd -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_syncobj_get_handle -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_syncobj_replace_fence -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_sysfs_connector_status_event -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_sysfs_hotplug_event -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_timeout_abs_to_jiffies -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_universal_plane_init -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_vblank_init -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_vblank_restore -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_vma_node_allow -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_vma_node_is_allowed -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_vma_node_revoke -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_vma_offset_add -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_vma_offset_lookup_locked -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_vma_offset_manager_destroy -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_vma_offset_manager_init -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_vma_offset_remove -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_wait_one_vblank -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_warn_on_modeset_not_all_locked -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_writeback_cleanup_job -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_writeback_connector_init -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_writeback_get_out_fence -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_writeback_prepare_job -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_writeback_queue_job -EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_writeback_signal_completion -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 __drm_atomic_helper_connector_destroy_state -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 __drm_atomic_helper_connector_duplicate_state -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 __drm_atomic_helper_connector_reset -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 __drm_atomic_helper_connector_state_reset -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 __drm_atomic_helper_crtc_destroy_state -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 __drm_atomic_helper_crtc_duplicate_state -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 __drm_atomic_helper_crtc_reset -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 __drm_atomic_helper_crtc_state_reset -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 __drm_atomic_helper_plane_destroy_state -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 __drm_atomic_helper_plane_duplicate_state -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 __drm_atomic_helper_plane_reset -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 __drm_atomic_helper_plane_state_reset -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 __drm_atomic_helper_private_obj_duplicate_state -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 devm_drm_panel_bridge_add -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 devm_drm_panel_bridge_add_typed -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_get_mst_topology_state -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_async_check -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_async_commit -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_check -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_check_modeset -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_check_plane_damage -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_check_plane_state -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_check_planes -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_cleanup_planes -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_commit -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_commit_cleanup_done -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_commit_duplicated_state -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_commit_hw_done -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_commit_modeset_disables -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_commit_modeset_enables -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_commit_planes -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_commit_planes_on_crtc -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_commit_tail -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_commit_tail_rpm -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_connector_destroy_state -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_connector_duplicate_state -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_connector_reset -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_connector_tv_reset -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_crtc_destroy_state -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_crtc_duplicate_state -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_crtc_reset -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_damage_iter_init -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_damage_iter_next -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_damage_merged -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_dirtyfb -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_disable_all -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_disable_plane -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_disable_planes_on_crtc -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_duplicate_state -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_fake_vblank -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_legacy_gamma_set -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_page_flip -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_page_flip_target -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_plane_destroy_state -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_plane_duplicate_state -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_plane_reset -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_prepare_planes -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_resume -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_set_config -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_setup_commit -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_shutdown -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_suspend -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_swap_state -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_update_legacy_modeset_state -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_update_plane -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_wait_for_dependencies -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_wait_for_fences -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_wait_for_flip_done -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_wait_for_vblanks -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_crtc_helper_set_config -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_crtc_helper_set_mode -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_crtc_init -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_atomic_find_vcpi_slots -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_atomic_release_vcpi_slots -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_aux_init -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_aux_register -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_aux_unregister -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_bw_code_to_link_rate -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_calc_pbn_mode -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_cec_irq -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_cec_register_connector -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_cec_set_edid -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_cec_unregister_connector -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_cec_unset_edid -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_channel_eq_ok -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_check_act_status -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_clock_recovery_ok -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_downstream_debug -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_downstream_id -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_downstream_max_bpc -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_downstream_max_clock -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_dpcd_read -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_dpcd_read_link_status -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_dpcd_write -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_dsc_sink_line_buf_depth -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_dsc_sink_max_slice_count -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_dsc_sink_supported_input_bpcs -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_dual_mode_detect -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_dual_mode_get_tmds_output -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_dual_mode_max_tmds_clock -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_dual_mode_read -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_dual_mode_set_tmds_output -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_dual_mode_write -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_find_vcpi_slots -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_get_adjust_request_post_cursor -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_get_adjust_request_pre_emphasis -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_get_adjust_request_voltage -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_get_dual_mode_type_name -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_get_edid_quirks -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_link_rate_to_bw_code -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_link_train_channel_eq_delay -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_link_train_clock_recovery_delay -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_mst_add_affected_dsc_crtcs -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_mst_allocate_vcpi -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_mst_atomic_check -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_mst_atomic_enable_dsc -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_mst_connector_early_unregister -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_mst_connector_late_register -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_mst_deallocate_vcpi -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_mst_detect_port -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_mst_dsc_aux_for_port -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_mst_dump_topology -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_mst_get_edid -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_mst_get_port_malloc -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_mst_get_vcpi_slots -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_mst_hpd_irq -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_mst_port_has_audio -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_mst_put_port_malloc -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_mst_reset_vcpi_slots -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_mst_topology_mgr_destroy -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_mst_topology_mgr_init -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_mst_topology_mgr_resume -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_mst_topology_mgr_set_mst -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_mst_topology_mgr_suspend -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_mst_topology_state_funcs -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_psr_setup_time -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_read_desc -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_read_downstream_info -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_read_dpcd_caps -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_remote_aux_init -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_send_power_updown_phy -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_send_real_edid_checksum -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_start_crc -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_stop_crc -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_update_payload_part1 -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_update_payload_part2 -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dsc_compute_rc_parameters -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dsc_dp_pps_header_init -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dsc_pps_payload_pack -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_helper_alloc_fbi -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_helper_blank -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_helper_cfb_copyarea -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_helper_cfb_fillrect -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_helper_cfb_imageblit -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_helper_check_var -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_helper_debug_enter -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_helper_debug_leave -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_helper_deferred_io -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_helper_fill_info -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_helper_fini -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_helper_hotplug_event -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_helper_init -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_helper_initial_config -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_helper_ioctl -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_helper_lastclose -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_helper_modinit -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_helper_output_poll_changed -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_helper_pan_display -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_helper_prepare -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_helper_restore_fbdev_mode_unlocked -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_helper_set_par -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_helper_set_suspend -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_helper_set_suspend_unlocked -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_helper_setcmap -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_helper_sys_copyarea -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_helper_sys_fillrect -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_helper_sys_imageblit -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_helper_sys_read -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_helper_sys_write -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_helper_unregister_fbi -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_memcpy -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_memcpy_dstclip -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_swab16 -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_xrgb8888_to_gray8 -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_xrgb8888_to_rgb565 -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_xrgb8888_to_rgb565_dstclip -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_xrgb8888_to_rgb888_dstclip -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fbdev_generic_setup -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_gem_fb_create_handle -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_gem_fb_destroy -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_gem_fb_simple_display_pipe_prepare_fb -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_helper_connector_dpms -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_helper_crtc_in_use -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_helper_disable_unused_functions -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_helper_encoder_in_use -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_helper_force_disable_all -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_helper_hpd_irq_event -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_helper_mode_fill_fb_struct -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_helper_move_panel_connectors_to_head -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_helper_probe_detect -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_helper_probe_single_connector_modes -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_helper_resume_force_mode -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_kms_helper_hotplug_event -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_kms_helper_is_poll_worker -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_kms_helper_poll_disable -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_kms_helper_poll_enable -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_kms_helper_poll_fini -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_kms_helper_poll_init -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_lspcon_get_mode -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_lspcon_set_mode -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_mode_config_helper_resume -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_mode_config_helper_suspend -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_panel_bridge_add -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_panel_bridge_add_typed -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_panel_bridge_connector -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_panel_bridge_remove -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_plane_enable_fb_damage_clips -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_primary_helper_destroy -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_primary_helper_funcs -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_scdc_get_scrambling_status -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_scdc_read -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_scdc_set_high_tmds_clock_ratio -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_scdc_set_scrambling -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_scdc_write -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_self_refresh_helper_alter_state -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_self_refresh_helper_cleanup -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_self_refresh_helper_init -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_self_refresh_helper_update_avg_times -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_simple_display_pipe_attach_bridge -EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_simple_display_pipe_init -EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x00000000 mipi_dbi_buf_copy -EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x00000000 mipi_dbi_command_buf -EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x00000000 mipi_dbi_command_read -EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x00000000 mipi_dbi_command_stackbuf -EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x00000000 mipi_dbi_debugfs_init -EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x00000000 mipi_dbi_dev_init -EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x00000000 mipi_dbi_dev_init_with_formats -EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x00000000 mipi_dbi_display_is_on -EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x00000000 mipi_dbi_enable_flush -EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x00000000 mipi_dbi_hw_reset -EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x00000000 mipi_dbi_pipe_disable -EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x00000000 mipi_dbi_pipe_update -EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x00000000 mipi_dbi_poweron_conditional_reset -EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x00000000 mipi_dbi_poweron_reset -EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x00000000 mipi_dbi_release -EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x00000000 mipi_dbi_spi_cmd_max_speed -EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x00000000 mipi_dbi_spi_init -EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x00000000 mipi_dbi_spi_transfer -EXPORT_SYMBOL drivers/gpu/drm/drm_ttm_helper 0x00000000 drm_gem_ttm_mmap -EXPORT_SYMBOL drivers/gpu/drm/drm_ttm_helper 0x00000000 drm_gem_ttm_print_info -EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x00000000 drm_gem_vram_create -EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x00000000 drm_gem_vram_driver_dumb_create -EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x00000000 drm_gem_vram_driver_dumb_mmap_offset -EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x00000000 drm_gem_vram_fill_create_dumb -EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x00000000 drm_gem_vram_kmap -EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x00000000 drm_gem_vram_kunmap -EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x00000000 drm_gem_vram_mmap_offset -EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x00000000 drm_gem_vram_offset -EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x00000000 drm_gem_vram_pin -EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x00000000 drm_gem_vram_plane_helper_cleanup_fb -EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x00000000 drm_gem_vram_plane_helper_prepare_fb -EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x00000000 drm_gem_vram_put -EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x00000000 drm_gem_vram_simple_display_pipe_cleanup_fb -EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x00000000 drm_gem_vram_simple_display_pipe_prepare_fb -EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x00000000 drm_gem_vram_unpin -EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x00000000 drm_gem_vram_vmap -EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x00000000 drm_gem_vram_vunmap -EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x00000000 drm_vram_helper_alloc_mm -EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x00000000 drm_vram_helper_release_mm -EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x00000000 drm_vram_mm_debugfs_init -EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x00000000 drm_sched_dependency_optimized -EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x00000000 drm_sched_entity_destroy -EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x00000000 drm_sched_entity_fini -EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x00000000 drm_sched_entity_flush -EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x00000000 drm_sched_entity_init -EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x00000000 drm_sched_entity_push_job -EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x00000000 drm_sched_entity_set_priority -EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x00000000 drm_sched_fault -EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x00000000 drm_sched_fini -EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x00000000 drm_sched_increase_karma -EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x00000000 drm_sched_init -EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x00000000 drm_sched_job_cleanup -EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x00000000 drm_sched_job_init -EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x00000000 drm_sched_resubmit_jobs -EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x00000000 drm_sched_resume_timeout -EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x00000000 drm_sched_start -EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x00000000 drm_sched_stop -EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x00000000 drm_sched_suspend_timeout -EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x00000000 to_drm_sched_fence -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_agp_tt_create -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_agp_tt_populate -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_agp_tt_unpopulate -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_acc_size -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_bulk_move_lru_tail -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_clean_mm -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_create -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_device_init -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_device_release -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_dma_acc_size -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_evict_mm -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_eviction_valuable -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_glob -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_init -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_init_mm -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_init_reserved -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_kmap -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_kunmap -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_lock_delayed_workqueue -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_manager_func -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_mem_compat -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_mem_put -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_mem_space -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_mmap -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_mmap_obj -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_move_accel_cleanup -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_move_memcpy -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_move_to_lru_tail -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_move_ttm -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_pipeline_move -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_put -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_swapout -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_swapout_all -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_unlock_delayed_workqueue -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_unmap_virtual -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_validate -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_vm_access -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_vm_close -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_vm_fault -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_vm_fault_reserved -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_vm_open -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_vm_reserve -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_wait -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_check_under_lowerlimit -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_dma_tt_fini -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_dma_tt_init -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_eu_backoff_reservation -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_eu_fence_buffer_objects -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_eu_reserve_buffers -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_get_kernel_zone_memory_size -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_io_prot -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_kmap_atomic_prot -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_kunmap_atomic_prot -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_mem_glob -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_mem_global_alloc -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_mem_global_free -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_page_alloc_debugfs -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_pool_populate -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_pool_unpopulate -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_populate_and_map_pages -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_round_pot -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_sg_tt_init -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_tt_bind -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_tt_fini -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_tt_init -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_tt_set_placement_caching -EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_unmap_and_unpopulate_pages -EXPORT_SYMBOL drivers/gpu/drm/vmwgfx/vmwgfx 0x00000000 ttm_base_object_noref_lookup -EXPORT_SYMBOL drivers/hid/hid 0x00000000 hid_bus_type -EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ish_hw_reset -EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_bus_remove_all_clients -EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_cl_allocate -EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_cl_connect -EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_cl_disconnect -EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_cl_driver_register -EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_cl_driver_unregister -EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_cl_flush_queues -EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_cl_free -EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_cl_get_tx_free_buffer_size -EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_cl_get_tx_free_rings -EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_cl_io_rb_recycle -EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_cl_link -EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_cl_rx_get_rb -EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_cl_send -EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_cl_set_fw_client_id -EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_cl_tx_empty -EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_cl_unlink -EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_dev_to_cl_device -EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_device -EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_device_init -EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_fw_cl_by_uuid -EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_fw_cl_get_client -EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_get_client_data -EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_get_device -EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_get_drvdata -EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_get_fw_client_id -EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_get_ishtp_device -EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_get_pci_device -EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_put_device -EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_recv -EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_register_event_cb -EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_reset_compl_handler -EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_reset_handler -EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_send_resume -EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_send_suspend -EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_set_client_data -EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_set_connection_state -EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_set_drvdata -EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_set_rx_ring_size -EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_set_tx_ring_size -EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_start -EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_trace_callback -EXPORT_SYMBOL drivers/hv/hv_vmbus 0x00000000 vmbus_recvpacket -EXPORT_SYMBOL drivers/hv/hv_vmbus 0x00000000 vmbus_sendpacket -EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0x00000000 vid_from_reg -EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0x00000000 vid_which_vrm -EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x00000000 sch56xx_read_virtual_reg -EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x00000000 sch56xx_read_virtual_reg12 -EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x00000000 sch56xx_read_virtual_reg16 -EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x00000000 sch56xx_watchdog_register -EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x00000000 sch56xx_watchdog_unregister -EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x00000000 sch56xx_write_virtual_reg -EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x00000000 i2c_bit_add_bus -EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x00000000 i2c_bit_add_numbered_bus -EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x00000000 i2c_bit_algo -EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x00000000 i2c_pca_add_bus -EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x00000000 i2c_pca_add_numbered_bus -EXPORT_SYMBOL drivers/i2c/busses/i2c-amd756 0x00000000 amd756_smbus -EXPORT_SYMBOL drivers/iio/accel/bma400_core 0x00000000 bma400_probe -EXPORT_SYMBOL drivers/iio/accel/bma400_core 0x00000000 bma400_regmap_config -EXPORT_SYMBOL drivers/iio/accel/bma400_core 0x00000000 bma400_remove -EXPORT_SYMBOL drivers/iio/accel/kxsd9 0x00000000 kxsd9_common_probe -EXPORT_SYMBOL drivers/iio/accel/kxsd9 0x00000000 kxsd9_common_remove -EXPORT_SYMBOL drivers/iio/accel/kxsd9 0x00000000 kxsd9_dev_pm_ops -EXPORT_SYMBOL drivers/iio/accel/mma9551_core 0x00000000 mma9551_app_reset -EXPORT_SYMBOL drivers/iio/accel/mma9551_core 0x00000000 mma9551_gpio_config -EXPORT_SYMBOL drivers/iio/accel/mma9551_core 0x00000000 mma9551_read_accel_chan -EXPORT_SYMBOL drivers/iio/accel/mma9551_core 0x00000000 mma9551_read_accel_scale -EXPORT_SYMBOL drivers/iio/accel/mma9551_core 0x00000000 mma9551_read_config_byte -EXPORT_SYMBOL drivers/iio/accel/mma9551_core 0x00000000 mma9551_read_config_word -EXPORT_SYMBOL drivers/iio/accel/mma9551_core 0x00000000 mma9551_read_config_words -EXPORT_SYMBOL drivers/iio/accel/mma9551_core 0x00000000 mma9551_read_status_byte -EXPORT_SYMBOL drivers/iio/accel/mma9551_core 0x00000000 mma9551_read_status_word -EXPORT_SYMBOL drivers/iio/accel/mma9551_core 0x00000000 mma9551_read_status_words -EXPORT_SYMBOL drivers/iio/accel/mma9551_core 0x00000000 mma9551_read_version -EXPORT_SYMBOL drivers/iio/accel/mma9551_core 0x00000000 mma9551_set_device_state -EXPORT_SYMBOL drivers/iio/accel/mma9551_core 0x00000000 mma9551_set_power_state -EXPORT_SYMBOL drivers/iio/accel/mma9551_core 0x00000000 mma9551_sleep -EXPORT_SYMBOL drivers/iio/accel/mma9551_core 0x00000000 mma9551_update_config_bits -EXPORT_SYMBOL drivers/iio/accel/mma9551_core 0x00000000 mma9551_write_config_byte -EXPORT_SYMBOL drivers/iio/accel/mma9551_core 0x00000000 mma9551_write_config_word -EXPORT_SYMBOL drivers/iio/accel/mma9551_core 0x00000000 mma9551_write_config_words -EXPORT_SYMBOL drivers/iio/accel/st_accel 0x00000000 st_accel_common_probe -EXPORT_SYMBOL drivers/iio/accel/st_accel 0x00000000 st_accel_common_remove -EXPORT_SYMBOL drivers/iio/accel/st_accel 0x00000000 st_accel_get_settings -EXPORT_SYMBOL drivers/iio/adc/qcom-vadc-common 0x00000000 qcom_adc5_hw_scale -EXPORT_SYMBOL drivers/iio/adc/qcom-vadc-common 0x00000000 qcom_vadc_decimation_from_dt -EXPORT_SYMBOL drivers/iio/adc/qcom-vadc-common 0x00000000 qcom_vadc_scale -EXPORT_SYMBOL drivers/iio/buffer/industrialio-triggered-buffer 0x00000000 iio_triggered_buffer_cleanup -EXPORT_SYMBOL drivers/iio/buffer/industrialio-triggered-buffer 0x00000000 iio_triggered_buffer_setup -EXPORT_SYMBOL drivers/iio/buffer/kfifo_buf 0x00000000 devm_iio_kfifo_allocate -EXPORT_SYMBOL drivers/iio/buffer/kfifo_buf 0x00000000 devm_iio_kfifo_free -EXPORT_SYMBOL drivers/iio/buffer/kfifo_buf 0x00000000 iio_kfifo_allocate -EXPORT_SYMBOL drivers/iio/buffer/kfifo_buf 0x00000000 iio_kfifo_free -EXPORT_SYMBOL drivers/iio/chemical/bme680_core 0x00000000 bme680_regmap_config -EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x00000000 hid_sensor_batch_mode_supported -EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x00000000 hid_sensor_convert_timestamp -EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x00000000 hid_sensor_format_scale -EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x00000000 hid_sensor_get_report_latency -EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x00000000 hid_sensor_parse_common_attributes -EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x00000000 hid_sensor_read_poll_value -EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x00000000 hid_sensor_read_raw_hyst_value -EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x00000000 hid_sensor_read_samp_freq_value -EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x00000000 hid_sensor_set_report_latency -EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x00000000 hid_sensor_write_raw_hyst_value -EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x00000000 hid_sensor_write_samp_freq_value -EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-trigger 0x00000000 hid_sensor_pm_ops -EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-trigger 0x00000000 hid_sensor_power_state -EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-trigger 0x00000000 hid_sensor_remove_trigger -EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-trigger 0x00000000 hid_sensor_setup_trigger -EXPORT_SYMBOL drivers/iio/common/ms_sensors/ms_sensors_i2c 0x00000000 ms_sensors_convert_and_read -EXPORT_SYMBOL drivers/iio/common/ms_sensors/ms_sensors_i2c 0x00000000 ms_sensors_ht_read_humidity -EXPORT_SYMBOL drivers/iio/common/ms_sensors/ms_sensors_i2c 0x00000000 ms_sensors_ht_read_temperature -EXPORT_SYMBOL drivers/iio/common/ms_sensors/ms_sensors_i2c 0x00000000 ms_sensors_read_prom_word -EXPORT_SYMBOL drivers/iio/common/ms_sensors/ms_sensors_i2c 0x00000000 ms_sensors_read_serial -EXPORT_SYMBOL drivers/iio/common/ms_sensors/ms_sensors_i2c 0x00000000 ms_sensors_read_temp_and_pressure -EXPORT_SYMBOL drivers/iio/common/ms_sensors/ms_sensors_i2c 0x00000000 ms_sensors_reset -EXPORT_SYMBOL drivers/iio/common/ms_sensors/ms_sensors_i2c 0x00000000 ms_sensors_show_battery_low -EXPORT_SYMBOL drivers/iio/common/ms_sensors/ms_sensors_i2c 0x00000000 ms_sensors_show_heater -EXPORT_SYMBOL drivers/iio/common/ms_sensors/ms_sensors_i2c 0x00000000 ms_sensors_tp_read_prom -EXPORT_SYMBOL drivers/iio/common/ms_sensors/ms_sensors_i2c 0x00000000 ms_sensors_write_heater -EXPORT_SYMBOL drivers/iio/common/ms_sensors/ms_sensors_i2c 0x00000000 ms_sensors_write_resolution -EXPORT_SYMBOL drivers/iio/common/ssp_sensors/sensorhub 0x00000000 ssp_change_delay -EXPORT_SYMBOL drivers/iio/common/ssp_sensors/sensorhub 0x00000000 ssp_disable_sensor -EXPORT_SYMBOL drivers/iio/common/ssp_sensors/sensorhub 0x00000000 ssp_enable_sensor -EXPORT_SYMBOL drivers/iio/common/ssp_sensors/sensorhub 0x00000000 ssp_get_sensor_delay -EXPORT_SYMBOL drivers/iio/common/ssp_sensors/sensorhub 0x00000000 ssp_register_consumer -EXPORT_SYMBOL drivers/iio/common/ssp_sensors/ssp_iio 0x00000000 ssp_common_buffer_postdisable -EXPORT_SYMBOL drivers/iio/common/ssp_sensors/ssp_iio 0x00000000 ssp_common_buffer_postenable -EXPORT_SYMBOL drivers/iio/common/ssp_sensors/ssp_iio 0x00000000 ssp_common_process_data -EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x00000000 st_sensors_allocate_trigger -EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x00000000 st_sensors_deallocate_trigger -EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x00000000 st_sensors_debugfs_reg_access -EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x00000000 st_sensors_dev_name_probe -EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x00000000 st_sensors_get_settings_index -EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x00000000 st_sensors_init_sensor -EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x00000000 st_sensors_power_disable -EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x00000000 st_sensors_power_enable -EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x00000000 st_sensors_read_info_raw -EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x00000000 st_sensors_set_axis_enable -EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x00000000 st_sensors_set_dataready_irq -EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x00000000 st_sensors_set_enable -EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x00000000 st_sensors_set_fullscale_by_gain -EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x00000000 st_sensors_set_odr -EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x00000000 st_sensors_sysfs_sampling_frequency_avail -EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x00000000 st_sensors_sysfs_scale_avail -EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x00000000 st_sensors_trigger_handler -EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x00000000 st_sensors_validate_device -EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x00000000 st_sensors_verify_id -EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors_i2c 0x00000000 st_sensors_i2c_configure -EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors_spi 0x00000000 st_sensors_spi_configure -EXPORT_SYMBOL drivers/iio/gyro/mpu3050 0x00000000 mpu3050_common_probe -EXPORT_SYMBOL drivers/iio/gyro/mpu3050 0x00000000 mpu3050_common_remove -EXPORT_SYMBOL drivers/iio/gyro/mpu3050 0x00000000 mpu3050_dev_pm_ops -EXPORT_SYMBOL drivers/iio/gyro/st_gyro 0x00000000 st_gyro_common_probe -EXPORT_SYMBOL drivers/iio/gyro/st_gyro 0x00000000 st_gyro_common_remove -EXPORT_SYMBOL drivers/iio/gyro/st_gyro 0x00000000 st_gyro_get_settings -EXPORT_SYMBOL drivers/iio/humidity/hts221 0x00000000 hts221_pm_ops -EXPORT_SYMBOL drivers/iio/humidity/hts221 0x00000000 hts221_probe -EXPORT_SYMBOL drivers/iio/imu/adis_lib 0x00000000 adis_debugfs_reg_access -EXPORT_SYMBOL drivers/iio/imu/adis_lib 0x00000000 adis_enable_irq -EXPORT_SYMBOL drivers/iio/imu/bmi160/bmi160_core 0x00000000 bmi160_enable_irq -EXPORT_SYMBOL drivers/iio/imu/bmi160/bmi160_core 0x00000000 bmi160_regmap_config -EXPORT_SYMBOL drivers/iio/imu/fxos8700_core 0x00000000 fxos8700_regmap_config -EXPORT_SYMBOL drivers/iio/imu/st_lsm6dsx/st_lsm6dsx 0x00000000 st_lsm6dsx_pm_ops -EXPORT_SYMBOL drivers/iio/imu/st_lsm6dsx/st_lsm6dsx 0x00000000 st_lsm6dsx_probe -EXPORT_SYMBOL drivers/iio/industrialio 0x00000000 __iio_device_register -EXPORT_SYMBOL drivers/iio/industrialio 0x00000000 __iio_trigger_register -EXPORT_SYMBOL drivers/iio/industrialio 0x00000000 iio_buffer_init -EXPORT_SYMBOL drivers/iio/industrialio 0x00000000 iio_bus_type -EXPORT_SYMBOL drivers/iio/industrialio 0x00000000 iio_device_alloc -EXPORT_SYMBOL drivers/iio/industrialio 0x00000000 iio_device_free -EXPORT_SYMBOL drivers/iio/industrialio 0x00000000 iio_device_unregister -EXPORT_SYMBOL drivers/iio/industrialio 0x00000000 iio_get_time_ns -EXPORT_SYMBOL drivers/iio/industrialio 0x00000000 iio_get_time_res -EXPORT_SYMBOL drivers/iio/industrialio 0x00000000 iio_pollfunc_store_time -EXPORT_SYMBOL drivers/iio/industrialio 0x00000000 iio_push_event -EXPORT_SYMBOL drivers/iio/industrialio 0x00000000 iio_read_const_attr -EXPORT_SYMBOL drivers/iio/industrialio 0x00000000 iio_read_mount_matrix -EXPORT_SYMBOL drivers/iio/industrialio 0x00000000 iio_trigger_alloc -EXPORT_SYMBOL drivers/iio/industrialio 0x00000000 iio_trigger_free -EXPORT_SYMBOL drivers/iio/industrialio 0x00000000 iio_trigger_generic_data_rdy_poll -EXPORT_SYMBOL drivers/iio/industrialio 0x00000000 iio_trigger_notify_done -EXPORT_SYMBOL drivers/iio/industrialio 0x00000000 iio_trigger_poll -EXPORT_SYMBOL drivers/iio/industrialio 0x00000000 iio_trigger_poll_chained -EXPORT_SYMBOL drivers/iio/industrialio 0x00000000 iio_trigger_set_immutable -EXPORT_SYMBOL drivers/iio/industrialio 0x00000000 iio_trigger_unregister -EXPORT_SYMBOL drivers/iio/industrialio 0x00000000 iio_trigger_using_own -EXPORT_SYMBOL drivers/iio/industrialio 0x00000000 iio_trigger_validate_own_device -EXPORT_SYMBOL drivers/iio/industrialio 0x00000000 iio_triggered_buffer_postenable -EXPORT_SYMBOL drivers/iio/industrialio 0x00000000 iio_triggered_buffer_predisable -EXPORT_SYMBOL drivers/iio/industrialio-configfs 0x00000000 iio_configfs_subsys -EXPORT_SYMBOL drivers/iio/industrialio-sw-device 0x00000000 iio_register_sw_device_type -EXPORT_SYMBOL drivers/iio/industrialio-sw-device 0x00000000 iio_sw_device_create -EXPORT_SYMBOL drivers/iio/industrialio-sw-device 0x00000000 iio_sw_device_destroy -EXPORT_SYMBOL drivers/iio/industrialio-sw-device 0x00000000 iio_unregister_sw_device_type -EXPORT_SYMBOL drivers/iio/industrialio-sw-trigger 0x00000000 iio_register_sw_trigger_type -EXPORT_SYMBOL drivers/iio/industrialio-sw-trigger 0x00000000 iio_sw_trigger_create -EXPORT_SYMBOL drivers/iio/industrialio-sw-trigger 0x00000000 iio_sw_trigger_destroy -EXPORT_SYMBOL drivers/iio/industrialio-sw-trigger 0x00000000 iio_unregister_sw_trigger_type -EXPORT_SYMBOL drivers/iio/industrialio-triggered-event 0x00000000 iio_triggered_event_cleanup -EXPORT_SYMBOL drivers/iio/industrialio-triggered-event 0x00000000 iio_triggered_event_setup -EXPORT_SYMBOL drivers/iio/light/st_uvis25_core 0x00000000 st_uvis25_pm_ops -EXPORT_SYMBOL drivers/iio/light/st_uvis25_core 0x00000000 st_uvis25_probe -EXPORT_SYMBOL drivers/iio/magnetometer/bmc150_magn 0x00000000 bmc150_magn_pm_ops -EXPORT_SYMBOL drivers/iio/magnetometer/bmc150_magn 0x00000000 bmc150_magn_probe -EXPORT_SYMBOL drivers/iio/magnetometer/bmc150_magn 0x00000000 bmc150_magn_regmap_config -EXPORT_SYMBOL drivers/iio/magnetometer/bmc150_magn 0x00000000 bmc150_magn_remove -EXPORT_SYMBOL drivers/iio/magnetometer/hmc5843_core 0x00000000 hmc5843_common_probe -EXPORT_SYMBOL drivers/iio/magnetometer/hmc5843_core 0x00000000 hmc5843_common_remove -EXPORT_SYMBOL drivers/iio/magnetometer/hmc5843_core 0x00000000 hmc5843_common_resume -EXPORT_SYMBOL drivers/iio/magnetometer/hmc5843_core 0x00000000 hmc5843_common_suspend -EXPORT_SYMBOL drivers/iio/magnetometer/st_magn 0x00000000 st_magn_common_probe -EXPORT_SYMBOL drivers/iio/magnetometer/st_magn 0x00000000 st_magn_common_remove -EXPORT_SYMBOL drivers/iio/magnetometer/st_magn 0x00000000 st_magn_get_settings -EXPORT_SYMBOL drivers/iio/pressure/bmp280 0x00000000 bmp180_regmap_config -EXPORT_SYMBOL drivers/iio/pressure/bmp280 0x00000000 bmp280_common_probe -EXPORT_SYMBOL drivers/iio/pressure/bmp280 0x00000000 bmp280_dev_pm_ops -EXPORT_SYMBOL drivers/iio/pressure/bmp280 0x00000000 bmp280_regmap_config -EXPORT_SYMBOL drivers/iio/pressure/ms5611_core 0x00000000 ms5611_probe -EXPORT_SYMBOL drivers/iio/pressure/ms5611_core 0x00000000 ms5611_remove -EXPORT_SYMBOL drivers/iio/pressure/st_pressure 0x00000000 st_press_common_probe -EXPORT_SYMBOL drivers/iio/pressure/st_pressure 0x00000000 st_press_common_remove -EXPORT_SYMBOL drivers/iio/pressure/st_pressure 0x00000000 st_press_get_settings -EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x00000000 cm_class -EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x00000000 ib_cm_init_qp_attr -EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x00000000 ib_cm_insert_listen -EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x00000000 ib_cm_listen -EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x00000000 ib_cm_notify -EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x00000000 ib_create_cm_id -EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x00000000 ib_destroy_cm_id -EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x00000000 ib_send_cm_drep -EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x00000000 ib_send_cm_dreq -EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x00000000 ib_send_cm_mra -EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x00000000 ib_send_cm_rej -EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x00000000 ib_send_cm_rep -EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x00000000 ib_send_cm_req -EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x00000000 ib_send_cm_rtu -EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x00000000 ib_send_cm_sidr_rep -EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x00000000 ib_send_cm_sidr_req -EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x00000000 ibcm_reject_msg -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 __ib_alloc_cq_any -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 __ib_alloc_cq_user -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 __ib_alloc_pd -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 __ib_alloc_xrcd -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 __ib_create_cq -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 __rdma_block_iter_next -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 __rdma_block_iter_start -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 _ib_alloc_device -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_advise_mr -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_alloc_fmr -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_alloc_mr_integrity -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_alloc_mr_user -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_attach_mcast -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_cache_gid_parse_type_str -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_cache_gid_type_str -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_cancel_mad -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_check_mr_status -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_close_qp -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_create_ah_from_wc -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_create_fmr_pool -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_create_qp_security -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_create_qp_user -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_create_rwq_ind_table -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_create_send_mad -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_create_srq -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_create_wq -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_dealloc_device -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_dealloc_fmr -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_dealloc_pd_user -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_dealloc_xrcd -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_dereg_mr_user -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_destroy_cq_user -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_destroy_fmr_pool -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_destroy_qp_user -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_destroy_rwq_ind_table -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_destroy_srq_user -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_destroy_wq -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_detach_mcast -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_device_get_by_name -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_device_get_by_netdev -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_device_put -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_device_set_netdev -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_dispatch_event -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_drain_qp -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_drain_rq -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_drain_sq -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_event_msg -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_find_cached_pkey -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_find_exact_cached_pkey -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_find_gid -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_find_pkey -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_flush_fmr_pool -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_fmr_pool_map_phys -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_fmr_pool_unmap -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_free_cq_user -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_free_recv_mad -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_free_send_mad -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_get_cached_lmc -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_get_cached_pkey -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_get_cached_port_state -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_get_cached_subnet_prefix -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_get_device_fw_str -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_get_eth_speed -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_get_gids_from_rdma_hdr -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_get_mad_data_offset -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_get_net_dev_by_params -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_get_rdma_header_version -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_get_rmpp_segment -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_get_vf_config -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_get_vf_guid -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_get_vf_stats -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_init_ah_attr_from_path -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_init_ah_attr_from_wc -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_init_ah_from_mcmember -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_is_mad_class_rmpp -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_mad_kernel_rmpp_agent -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_map_mr_sg -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_map_mr_sg_pi -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_modify_device -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_modify_mad -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_modify_port -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_modify_qp -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_modify_qp_is_ok -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_modify_qp_with_udata -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_modify_srq -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_modify_wq -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_mr_pool_destroy -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_mr_pool_get -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_mr_pool_init -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_mr_pool_put -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_open_qp -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_pack -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_port_register_module_stat -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_port_unregister_module_stat -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_post_send_mad -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_process_cq_direct -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_query_pkey -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_query_port -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_query_qp -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_query_srq -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_rate_to_mbps -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_rate_to_mult -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_rdmacg_try_charge -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_rdmacg_uncharge -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_reg_user_mr -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_register_client -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_register_device -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_register_event_handler -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_register_mad_agent -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_register_mad_snoop -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_resize_cq -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_response_mad -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_sa_cancel_query -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_sa_free_multicast -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_sa_get_mcmember_rec -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_sa_guid_info_rec_query -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_sa_join_multicast -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_sa_pack_path -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_sa_path_rec_get -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_sa_register_client -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_sa_sendonly_fullmem_support -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_sa_service_rec_query -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_sa_unpack_path -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_sa_unregister_client -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_set_client_data -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_set_device_ops -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_set_vf_guid -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_set_vf_link_state -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_sg_to_pages -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_ud_header_init -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_ud_header_pack -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_ud_header_unpack -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_ud_ip4_csum -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_unmap_fmr -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_unpack -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_unregister_client -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_unregister_device -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_unregister_device_and_put -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_unregister_device_queued -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_unregister_driver -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_unregister_event_handler -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_unregister_mad_agent -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_wc_status_msg -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ibdev_alert -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ibdev_crit -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ibdev_emerg -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ibdev_err -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ibdev_info -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ibdev_notice -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ibdev_printk -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ibdev_warn -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ibnl_put_attr -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ibnl_put_msg -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 mult_to_ib_rate -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_addr_cancel -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_addr_size -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_addr_size_in6 -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_addr_size_kss -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_alloc_netdev -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_copy_ah_attr -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_copy_src_l2_addr -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_create_ah -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_create_user_ah -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_destroy_ah_attr -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_destroy_ah_user -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_dev_access_netns -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_find_gid -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_find_gid_by_port -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_get_gid_attr -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_hold_gid_attr -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_init_netdev -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_is_zero_gid -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_link_register -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_link_unregister -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_modify_ah -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_move_ah_attr -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_move_grh_sgid_attr -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_nl_chk_listeners -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_nl_multicast -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_nl_put_driver_string -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_nl_put_driver_u32 -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_nl_put_driver_u32_hex -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_nl_put_driver_u64 -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_nl_put_driver_u64_hex -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_nl_register -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_nl_stat_hwcounter_entry -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_nl_unicast -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_nl_unicast_wait -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_nl_unregister -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_node_get_transport -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_port_get_link_layer -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_put_gid_attr -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_query_ah -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_query_gid -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_read_gid_attr_ndev_rcu -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_read_gid_l2_fields -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_replace_ah_attr -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_resolve_ip -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_restrack_count -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_restrack_del -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_restrack_get -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_restrack_get_byid -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_restrack_kadd -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_restrack_put -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_restrack_set_task -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_restrack_uadd -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_roce_rescan_device -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_rw_ctx_destroy -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_rw_ctx_destroy_signature -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_rw_ctx_init -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_rw_ctx_post -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_rw_ctx_signature_init -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_rw_ctx_wrs -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_rw_mr_factor -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_set_cq_moderation -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_translate_ip -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_umap_priv_init -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_user_mmap_entry_get -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_user_mmap_entry_get_pgoff -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_user_mmap_entry_insert -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_user_mmap_entry_insert_range -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_user_mmap_entry_put -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_user_mmap_entry_remove -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_user_mmap_io -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 roce_gid_type_mask_support -EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 zgid -EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x00000000 _uverbs_alloc -EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x00000000 _uverbs_get_const -EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x00000000 flow_resources_add -EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x00000000 flow_resources_alloc -EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x00000000 ib_copy_ah_attr_to_user -EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x00000000 ib_copy_path_rec_from_user -EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x00000000 ib_copy_path_rec_to_user -EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x00000000 ib_copy_qp_attr_to_user -EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x00000000 ib_umem_copy_from -EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x00000000 ib_umem_find_best_pgsz -EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x00000000 ib_umem_get -EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x00000000 ib_umem_odp_alloc_child -EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x00000000 ib_umem_odp_alloc_implicit -EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x00000000 ib_umem_odp_get -EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x00000000 ib_umem_odp_map_dma_pages -EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x00000000 ib_umem_odp_release -EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x00000000 ib_umem_odp_unmap_dma_pages -EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x00000000 ib_umem_page_count -EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x00000000 ib_umem_release -EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x00000000 ib_uverbs_flow_resources_free -EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x00000000 ib_uverbs_get_ucontext_file -EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x00000000 uverbs_copy_to -EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x00000000 uverbs_destroy_def_handler -EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x00000000 uverbs_fd_class -EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x00000000 uverbs_get_flags32 -EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x00000000 uverbs_get_flags64 -EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x00000000 uverbs_idr_class -EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x00000000 uverbs_uobject_fd_release -EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x00000000 uverbs_uobject_put -EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x00000000 iw_cm_accept -EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x00000000 iw_cm_connect -EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x00000000 iw_cm_disconnect -EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x00000000 iw_cm_init_qp_attr -EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x00000000 iw_cm_listen -EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x00000000 iw_cm_reject -EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x00000000 iw_create_cm_id -EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x00000000 iw_destroy_cm_id -EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x00000000 iwcm_reject_msg -EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x00000000 __rdma_accept -EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x00000000 __rdma_create_id -EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x00000000 rdma_bind_addr -EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x00000000 rdma_connect -EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x00000000 rdma_consumer_reject_data -EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x00000000 rdma_create_qp -EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x00000000 rdma_destroy_id -EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x00000000 rdma_destroy_qp -EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x00000000 rdma_disconnect -EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x00000000 rdma_event_msg -EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x00000000 rdma_get_service_id -EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x00000000 rdma_init_qp_attr -EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x00000000 rdma_is_consumer_reject -EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x00000000 rdma_iw_cm_id -EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x00000000 rdma_join_multicast -EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x00000000 rdma_leave_multicast -EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x00000000 rdma_listen -EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x00000000 rdma_notify -EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x00000000 rdma_read_gids -EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x00000000 rdma_reject -EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x00000000 rdma_reject_msg -EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x00000000 rdma_res_to_id -EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x00000000 rdma_resolve_addr -EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x00000000 rdma_resolve_route -EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x00000000 rdma_set_ack_timeout -EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x00000000 rdma_set_afonly -EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x00000000 rdma_set_ib_path -EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x00000000 rdma_set_reuseaddr -EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x00000000 rdma_set_service_type -EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x00000000 ib_rvt_state_ops -EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x00000000 rvt_add_retry_timer_ext -EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x00000000 rvt_add_rnr_timer -EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x00000000 rvt_alloc_device -EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x00000000 rvt_check_ah -EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x00000000 rvt_comm_est -EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x00000000 rvt_compute_aeth -EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x00000000 rvt_copy_sge -EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x00000000 rvt_cq_enter -EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x00000000 rvt_dealloc_device -EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x00000000 rvt_del_timers_sync -EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x00000000 rvt_error_qp -EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x00000000 rvt_fast_reg_mr -EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x00000000 rvt_get_credit -EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x00000000 rvt_get_rwqe -EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x00000000 rvt_init_port -EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x00000000 rvt_invalidate_rkey -EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x00000000 rvt_lkey_ok -EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x00000000 rvt_mcast_find -EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x00000000 rvt_qp_iter -EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x00000000 rvt_qp_iter_init -EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x00000000 rvt_qp_iter_next -EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x00000000 rvt_rc_error -EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x00000000 rvt_rc_rnr_retry -EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x00000000 rvt_register_device -EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x00000000 rvt_restart_sge -EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x00000000 rvt_rkey_ok -EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x00000000 rvt_rnr_tbl_to_usec -EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x00000000 rvt_ruc_loopback -EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x00000000 rvt_send_complete -EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x00000000 rvt_stop_rc_timers -EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x00000000 rvt_unregister_device -EXPORT_SYMBOL drivers/input/gameport/gameport 0x00000000 __gameport_register_driver -EXPORT_SYMBOL drivers/input/gameport/gameport 0x00000000 __gameport_register_port -EXPORT_SYMBOL drivers/input/gameport/gameport 0x00000000 gameport_close -EXPORT_SYMBOL drivers/input/gameport/gameport 0x00000000 gameport_open -EXPORT_SYMBOL drivers/input/gameport/gameport 0x00000000 gameport_set_phys -EXPORT_SYMBOL drivers/input/gameport/gameport 0x00000000 gameport_start_polling -EXPORT_SYMBOL drivers/input/gameport/gameport 0x00000000 gameport_stop_polling -EXPORT_SYMBOL drivers/input/gameport/gameport 0x00000000 gameport_unregister_driver -EXPORT_SYMBOL drivers/input/gameport/gameport 0x00000000 gameport_unregister_port -EXPORT_SYMBOL drivers/input/input-polldev 0x00000000 devm_input_allocate_polled_device -EXPORT_SYMBOL drivers/input/input-polldev 0x00000000 input_allocate_polled_device -EXPORT_SYMBOL drivers/input/input-polldev 0x00000000 input_free_polled_device -EXPORT_SYMBOL drivers/input/input-polldev 0x00000000 input_register_polled_device -EXPORT_SYMBOL drivers/input/input-polldev 0x00000000 input_unregister_polled_device -EXPORT_SYMBOL drivers/input/joystick/iforce/iforce 0x00000000 iforce_init_device -EXPORT_SYMBOL drivers/input/joystick/iforce/iforce 0x00000000 iforce_process_packet -EXPORT_SYMBOL drivers/input/joystick/iforce/iforce 0x00000000 iforce_send_packet -EXPORT_SYMBOL drivers/input/matrix-keymap 0x00000000 matrix_keypad_build_keymap -EXPORT_SYMBOL drivers/input/misc/ad714x 0x00000000 ad714x_disable -EXPORT_SYMBOL drivers/input/misc/ad714x 0x00000000 ad714x_enable -EXPORT_SYMBOL drivers/input/misc/ad714x 0x00000000 ad714x_probe -EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x00000000 cma3000_exit -EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x00000000 cma3000_init -EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x00000000 cma3000_resume -EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x00000000 cma3000_suspend -EXPORT_SYMBOL drivers/input/rmi4/rmi_core 0x00000000 rmi_unregister_transport_device -EXPORT_SYMBOL drivers/input/sparse-keymap 0x00000000 sparse_keymap_entry_from_keycode -EXPORT_SYMBOL drivers/input/sparse-keymap 0x00000000 sparse_keymap_entry_from_scancode -EXPORT_SYMBOL drivers/input/sparse-keymap 0x00000000 sparse_keymap_report_entry -EXPORT_SYMBOL drivers/input/sparse-keymap 0x00000000 sparse_keymap_report_event -EXPORT_SYMBOL drivers/input/sparse-keymap 0x00000000 sparse_keymap_setup -EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x00000000 ad7879_pm_ops -EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x00000000 ad7879_probe -EXPORT_SYMBOL drivers/iommu/amd_iommu_v2 0x00000000 amd_iommu_bind_pasid -EXPORT_SYMBOL drivers/iommu/amd_iommu_v2 0x00000000 amd_iommu_free_device -EXPORT_SYMBOL drivers/iommu/amd_iommu_v2 0x00000000 amd_iommu_init_device -EXPORT_SYMBOL drivers/iommu/amd_iommu_v2 0x00000000 amd_iommu_set_invalid_ppr_cb -EXPORT_SYMBOL drivers/iommu/amd_iommu_v2 0x00000000 amd_iommu_set_invalidate_ctx_cb -EXPORT_SYMBOL drivers/iommu/amd_iommu_v2 0x00000000 amd_iommu_unbind_pasid -EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x00000000 attach_capi_ctr -EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x00000000 capi_ctr_down -EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x00000000 capi_ctr_handle_message -EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x00000000 capi_ctr_ready -EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x00000000 detach_capi_ctr -EXPORT_SYMBOL drivers/isdn/hardware/mISDN/isdnhdlc 0x00000000 isdnhdlc_decode -EXPORT_SYMBOL drivers/isdn/hardware/mISDN/isdnhdlc 0x00000000 isdnhdlc_encode -EXPORT_SYMBOL drivers/isdn/hardware/mISDN/isdnhdlc 0x00000000 isdnhdlc_out_init -EXPORT_SYMBOL drivers/isdn/hardware/mISDN/isdnhdlc 0x00000000 isdnhdlc_rcv_init -EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x00000000 mISDNipac_init -EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x00000000 mISDNipac_irq -EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x00000000 mISDNisac_init -EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x00000000 mISDNisac_irq -EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x00000000 mISDNisar_init -EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x00000000 mISDNisar_irq -EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x00000000 bchannel_get_rxbuf -EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x00000000 bchannel_senddata -EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x00000000 create_l1 -EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x00000000 dchannel_senddata -EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x00000000 get_next_bframe -EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x00000000 get_next_dframe -EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x00000000 l1_event -EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x00000000 mISDNDevName4ch -EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x00000000 mISDN_FsmAddTimer -EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x00000000 mISDN_FsmChangeState -EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x00000000 mISDN_FsmDelTimer -EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x00000000 mISDN_FsmEvent -EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x00000000 mISDN_FsmFree -EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x00000000 mISDN_FsmInitTimer -EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x00000000 mISDN_FsmNew -EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x00000000 mISDN_FsmRestartTimer -EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x00000000 mISDN_clear_bchannel -EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x00000000 mISDN_clock_get -EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x00000000 mISDN_clock_update -EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x00000000 mISDN_ctrl_bchannel -EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x00000000 mISDN_freebchannel -EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x00000000 mISDN_freedchannel -EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x00000000 mISDN_initbchannel -EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x00000000 mISDN_initdchannel -EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x00000000 mISDN_register_Bprotocol -EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x00000000 mISDN_register_clock -EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x00000000 mISDN_register_device -EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x00000000 mISDN_unregister_Bprotocol -EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x00000000 mISDN_unregister_clock -EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x00000000 mISDN_unregister_device -EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x00000000 queue_ch_frame -EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x00000000 recv_Bchannel -EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x00000000 recv_Bchannel_skb -EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x00000000 recv_Dchannel -EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x00000000 recv_Dchannel_skb -EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x00000000 recv_Echannel -EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x00000000 dsp_audio_law_to_s32 -EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x00000000 dsp_audio_s16_to_law -EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x00000000 mISDN_dsp_element_register -EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x00000000 mISDN_dsp_element_unregister -EXPORT_SYMBOL drivers/leds/leds-ti-lmu-common 0x00000000 ti_lmu_common_get_brt_res -EXPORT_SYMBOL drivers/leds/leds-ti-lmu-common 0x00000000 ti_lmu_common_get_ramp_params -EXPORT_SYMBOL drivers/leds/leds-ti-lmu-common 0x00000000 ti_lmu_common_set_brightness -EXPORT_SYMBOL drivers/leds/leds-ti-lmu-common 0x00000000 ti_lmu_common_set_ramp -EXPORT_SYMBOL drivers/md/dm-log 0x00000000 dm_dirty_log_create -EXPORT_SYMBOL drivers/md/dm-log 0x00000000 dm_dirty_log_destroy -EXPORT_SYMBOL drivers/md/dm-log 0x00000000 dm_dirty_log_type_register -EXPORT_SYMBOL drivers/md/dm-log 0x00000000 dm_dirty_log_type_unregister -EXPORT_SYMBOL drivers/md/dm-snapshot 0x00000000 dm_exception_store_create -EXPORT_SYMBOL drivers/md/dm-snapshot 0x00000000 dm_exception_store_destroy -EXPORT_SYMBOL drivers/md/dm-snapshot 0x00000000 dm_exception_store_type_register -EXPORT_SYMBOL drivers/md/dm-snapshot 0x00000000 dm_exception_store_type_unregister -EXPORT_SYMBOL drivers/md/dm-snapshot 0x00000000 dm_snap_cow -EXPORT_SYMBOL drivers/md/dm-snapshot 0x00000000 dm_snap_origin -EXPORT_SYMBOL drivers/md/raid456 0x00000000 r5c_journal_mode_set -EXPORT_SYMBOL drivers/md/raid456 0x00000000 raid5_set_cache_size -EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x00000000 flexcop_device_exit -EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x00000000 flexcop_device_initialize -EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x00000000 flexcop_device_kfree -EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x00000000 flexcop_device_kmalloc -EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x00000000 flexcop_dump_reg -EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x00000000 flexcop_eeprom_check_mac_addr -EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x00000000 flexcop_i2c_request -EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x00000000 flexcop_pass_dmx_data -EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x00000000 flexcop_pass_dmx_packets -EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x00000000 flexcop_pid_feed_control -EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x00000000 flexcop_sram_ctrl -EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x00000000 flexcop_sram_set_dest -EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x00000000 flexcop_wan_set_speed -EXPORT_SYMBOL drivers/media/common/cx2341x 0x00000000 cx2341x_ctrl_get_menu -EXPORT_SYMBOL drivers/media/common/cx2341x 0x00000000 cx2341x_ctrl_query -EXPORT_SYMBOL drivers/media/common/cx2341x 0x00000000 cx2341x_ext_ctrls -EXPORT_SYMBOL drivers/media/common/cx2341x 0x00000000 cx2341x_fill_defaults -EXPORT_SYMBOL drivers/media/common/cx2341x 0x00000000 cx2341x_handler_init -EXPORT_SYMBOL drivers/media/common/cx2341x 0x00000000 cx2341x_handler_set_50hz -EXPORT_SYMBOL drivers/media/common/cx2341x 0x00000000 cx2341x_handler_set_busy -EXPORT_SYMBOL drivers/media/common/cx2341x 0x00000000 cx2341x_handler_setup -EXPORT_SYMBOL drivers/media/common/cx2341x 0x00000000 cx2341x_log_status -EXPORT_SYMBOL drivers/media/common/cx2341x 0x00000000 cx2341x_mpeg_ctrls -EXPORT_SYMBOL drivers/media/common/cx2341x 0x00000000 cx2341x_update -EXPORT_SYMBOL drivers/media/common/cypress_firmware 0x00000000 cypress_load_firmware -EXPORT_SYMBOL drivers/media/common/tveeprom 0x00000000 tveeprom_hauppauge_analog -EXPORT_SYMBOL drivers/media/common/tveeprom 0x00000000 tveeprom_read -EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-common 0x00000000 vb2_buffer_in_use -EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-common 0x00000000 vb2_verify_memory_type -EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-dvb 0x00000000 vb2_dvb_alloc_frontend -EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-dvb 0x00000000 vb2_dvb_dealloc_frontends -EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-dvb 0x00000000 vb2_dvb_find_frontend -EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-dvb 0x00000000 vb2_dvb_get_frontend -EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-dvb 0x00000000 vb2_dvb_register_bus -EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-dvb 0x00000000 vb2_dvb_unregister_bus -EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-memops 0x00000000 vb2_create_framevec -EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-memops 0x00000000 vb2_destroy_framevec -EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-v4l2 0x00000000 vb2_querybuf -EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_ca_en50221_camchange_irq -EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_ca_en50221_camready_irq -EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_ca_en50221_frda_irq -EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_ca_en50221_init -EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_ca_en50221_release -EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_dmx_init -EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_dmx_release -EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_dmx_swfilter -EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_dmx_swfilter_204 -EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_dmx_swfilter_packets -EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_dmx_swfilter_raw -EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_dmxdev_init -EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_dmxdev_release -EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_free_device -EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_frontend_detach -EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_frontend_reinitialise -EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_frontend_resume -EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_frontend_sleep_until -EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_frontend_suspend -EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_generic_ioctl -EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_generic_open -EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_generic_release -EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_net_init -EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_net_release -EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_register_adapter -EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_register_device -EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_register_frontend -EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_remove_device -EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_ringbuffer_avail -EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_ringbuffer_empty -EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_ringbuffer_flush -EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_ringbuffer_flush_spinlock_wakeup -EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_ringbuffer_free -EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_ringbuffer_init -EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_ringbuffer_read -EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_ringbuffer_read_user -EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_ringbuffer_write -EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_ringbuffer_write_user -EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_unregister_adapter -EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_unregister_device -EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_unregister_frontend -EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 intlog10 -EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 intlog2 -EXPORT_SYMBOL drivers/media/dvb-frontends/ascot2e 0x00000000 ascot2e_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/atbm8830 0x00000000 atbm8830_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x00000000 au8522_analog_i2c_gate_ctrl -EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x00000000 au8522_get_state -EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x00000000 au8522_i2c_gate_ctrl -EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x00000000 au8522_init -EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x00000000 au8522_led_ctrl -EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x00000000 au8522_readreg -EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x00000000 au8522_release_state -EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x00000000 au8522_sleep -EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x00000000 au8522_writereg -EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_dig 0x00000000 au8522_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/bcm3510 0x00000000 bcm3510_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/cx22700 0x00000000 cx22700_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/cx22702 0x00000000 cx22702_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/cx24110 0x00000000 cx24110_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/cx24113 0x00000000 cx24113_agc_callback -EXPORT_SYMBOL drivers/media/dvb-frontends/cx24113 0x00000000 cx24113_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/cx24116 0x00000000 cx24116_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/cx24120 0x00000000 cx24120_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/cx24123 0x00000000 cx24123_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/cx24123 0x00000000 cx24123_get_tuner_i2c_adapter -EXPORT_SYMBOL drivers/media/dvb-frontends/cxd2820r 0x00000000 cxd2820r_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/cxd2841er 0x00000000 cxd2841er_attach_s -EXPORT_SYMBOL drivers/media/dvb-frontends/cxd2841er 0x00000000 cxd2841er_attach_t_c -EXPORT_SYMBOL drivers/media/dvb-frontends/cxd2880/cxd2880 0x00000000 cxd2880_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x00000000 dib0070_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x00000000 dib0070_ctrl_agc_filter -EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x00000000 dib0070_get_rf_output -EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x00000000 dib0070_set_rf_output -EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x00000000 dib0070_wbd_offset -EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x00000000 dib0090_dcc_freq -EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x00000000 dib0090_fw_register -EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x00000000 dib0090_gain_control -EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x00000000 dib0090_get_current_gain -EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x00000000 dib0090_get_tune_state -EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x00000000 dib0090_get_wbd_offset -EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x00000000 dib0090_get_wbd_target -EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x00000000 dib0090_pwm_gain_reset -EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x00000000 dib0090_register -EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x00000000 dib0090_set_dc_servo -EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x00000000 dib0090_set_switch -EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x00000000 dib0090_set_tune_state -EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x00000000 dib0090_set_vga -EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x00000000 dib0090_update_rframp_7090 -EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x00000000 dib0090_update_tuning_table_7090 -EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mb 0x00000000 dib3000mb_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x00000000 dib3000mc_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x00000000 dib3000mc_get_tuner_i2c_master -EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x00000000 dib3000mc_i2c_enumeration -EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x00000000 dib3000mc_pid_control -EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x00000000 dib3000mc_pid_parse -EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x00000000 dib3000mc_set_config -EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0x00000000 dib7000m_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0x00000000 dib7000m_get_i2c_master -EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0x00000000 dib7000m_pid_filter -EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0x00000000 dib7000m_pid_filter_ctrl -EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x00000000 dib7000p_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x00000000 dib8000_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x00000000 dib9000_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x00000000 dib9000_firmware_post_pll_init -EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x00000000 dib9000_fw_pid_filter -EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x00000000 dib9000_fw_pid_filter_ctrl -EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x00000000 dib9000_fw_set_component_bus_speed -EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x00000000 dib9000_get_component_bus_interface -EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x00000000 dib9000_get_i2c_master -EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x00000000 dib9000_get_slave_frontend -EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x00000000 dib9000_get_tuner_interface -EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x00000000 dib9000_i2c_enumeration -EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x00000000 dib9000_set_gpio -EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x00000000 dib9000_set_i2c_adapter -EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x00000000 dib9000_set_slave_frontend -EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x00000000 dibx000_exit_i2c_master -EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x00000000 dibx000_get_i2c_adapter -EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x00000000 dibx000_i2c_set_speed -EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x00000000 dibx000_init_i2c_master -EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x00000000 dibx000_reset_i2c_master -EXPORT_SYMBOL drivers/media/dvb-frontends/drx39xyj/drx39xyj 0x00000000 drx39xxj_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/drxd 0x00000000 drxd_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/drxk 0x00000000 drxk_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/ds3000 0x00000000 ds3000_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/dvb-pll 0x00000000 dvb_pll_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/dvb_dummy_fe 0x00000000 dvb_dummy_fe_ofdm_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/dvb_dummy_fe 0x00000000 dvb_dummy_fe_qam_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/dvb_dummy_fe 0x00000000 dvb_dummy_fe_qpsk_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/ec100 0x00000000 ec100_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/helene 0x00000000 helene_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/helene 0x00000000 helene_attach_s -EXPORT_SYMBOL drivers/media/dvb-frontends/horus3a 0x00000000 horus3a_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/isl6405 0x00000000 isl6405_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/isl6421 0x00000000 isl6421_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/isl6423 0x00000000 isl6423_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/itd1000 0x00000000 itd1000_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/ix2505v 0x00000000 ix2505v_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/l64781 0x00000000 l64781_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/lg2160 0x00000000 lg2160_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/lgdt3305 0x00000000 lgdt3305_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/lgdt3306a 0x00000000 lgdt3306a_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/lgdt330x 0x00000000 lgdt330x_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/lgs8gl5 0x00000000 lgs8gl5_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/lgs8gxx 0x00000000 lgs8gxx_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/lnbh25 0x00000000 lnbh25_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/lnbh29 0x00000000 lnbh29_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/lnbp21 0x00000000 lnbh24_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/lnbp21 0x00000000 lnbp21_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/lnbp22 0x00000000 lnbp22_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/m88ds3103 0x00000000 m88ds3103_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/m88ds3103 0x00000000 m88ds3103_get_agc_pwm -EXPORT_SYMBOL drivers/media/dvb-frontends/m88rs2000 0x00000000 m88rs2000_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/mb86a16 0x00000000 mb86a16_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/mb86a20s 0x00000000 mb86a20s_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/mt312 0x00000000 mt312_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/mt352 0x00000000 mt352_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/nxt200x 0x00000000 nxt200x_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/nxt6000 0x00000000 nxt6000_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/or51132 0x00000000 or51132_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/or51211 0x00000000 or51211_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1409 0x00000000 s5h1409_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1411 0x00000000 s5h1411_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1420 0x00000000 s5h1420_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1420 0x00000000 s5h1420_get_tuner_i2c_adapter -EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1432 0x00000000 s5h1432_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/s921 0x00000000 s921_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/si21xx 0x00000000 si21xx_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/sp8870 0x00000000 sp8870_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/sp887x 0x00000000 sp887x_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/stb0899 0x00000000 stb0899_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/stb6000 0x00000000 stb6000_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/stb6100 0x00000000 stb6100_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/stv0288 0x00000000 stv0288_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/stv0297 0x00000000 stv0297_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/stv0299 0x00000000 stv0299_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/stv0367 0x00000000 stv0367cab_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/stv0367 0x00000000 stv0367ddb_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/stv0367 0x00000000 stv0367ter_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/stv0900 0x00000000 stv0900_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/stv090x 0x00000000 stv090x_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/stv6110 0x00000000 stv6110_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/stv6110x 0x00000000 stv6110x_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/tda10021 0x00000000 tda10021_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/tda10023 0x00000000 tda10023_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/tda10048 0x00000000 tda10048_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/tda1004x 0x00000000 tda10045_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/tda1004x 0x00000000 tda10046_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/tda10086 0x00000000 tda10086_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/tda665x 0x00000000 tda665x_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/tda8083 0x00000000 tda8083_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/tda8261 0x00000000 tda8261_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/tda826x 0x00000000 tda826x_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/ts2020 0x00000000 ts2020_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/tua6100 0x00000000 tua6100_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/ves1820 0x00000000 ves1820_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/ves1x93 0x00000000 ves1x93_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/zd1301_demod 0x00000000 zd1301_demod_get_dvb_frontend -EXPORT_SYMBOL drivers/media/dvb-frontends/zd1301_demod 0x00000000 zd1301_demod_get_i2c_adapter -EXPORT_SYMBOL drivers/media/dvb-frontends/zl10036 0x00000000 zl10036_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/zl10039 0x00000000 zl10039_attach -EXPORT_SYMBOL drivers/media/dvb-frontends/zl10353 0x00000000 zl10353_attach -EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x00000000 flexcop_dma_allocate -EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x00000000 flexcop_dma_config -EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x00000000 flexcop_dma_config_timer -EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x00000000 flexcop_dma_control_size_irq -EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x00000000 flexcop_dma_control_timer_irq -EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x00000000 flexcop_dma_free -EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x00000000 flexcop_dma_xfer_control -EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0x00000000 bt878 -EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0x00000000 bt878_device_control -EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0x00000000 bt878_num -EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0x00000000 bt878_start -EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0x00000000 bt878_stop -EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x00000000 bttv_get_pcidev -EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x00000000 bttv_gpio_enable -EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x00000000 bttv_read_gpio -EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x00000000 bttv_sub_register -EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x00000000 bttv_sub_unregister -EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x00000000 bttv_write_gpio -EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x00000000 dst_attach -EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x00000000 dst_check_sum -EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x00000000 dst_comm_init -EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x00000000 dst_error_bailout -EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x00000000 dst_error_recovery -EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x00000000 dst_pio_disable -EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x00000000 dst_wait_dst_ready -EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x00000000 rdc_reset_state -EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x00000000 read_dst -EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x00000000 write_dst -EXPORT_SYMBOL drivers/media/pci/bt8xx/dst_ca 0x00000000 dst_ca_attach -EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x00000000 cx18_claim_stream -EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x00000000 cx18_ext_init -EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x00000000 cx18_release_stream -EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x00000000 cx18_reset_ir_gpio -EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x00000000 cx18_start_v4l2_encode_stream -EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x00000000 cx18_stop_v4l2_encode_stream -EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x00000000 altera_ci_init -EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x00000000 altera_ci_irq -EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x00000000 altera_ci_release -EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x00000000 altera_ci_tuner_reset -EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x00000000 cx25821_dev_get -EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x00000000 cx25821_dev_unregister -EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x00000000 cx25821_print_irqbits -EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x00000000 cx25821_risc_databuffer_audio -EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x00000000 cx25821_riscmem_alloc -EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x00000000 cx25821_set_gpiopin_direction -EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x00000000 cx25821_sram_channel_dump_audio -EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x00000000 cx25821_sram_channel_setup_audio -EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x00000000 cx25821_sram_channels -EXPORT_SYMBOL drivers/media/pci/cx88/cx88-vp3054-i2c 0x00000000 vp3054_i2c_probe -EXPORT_SYMBOL drivers/media/pci/cx88/cx88-vp3054-i2c 0x00000000 vp3054_i2c_remove -EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0x00000000 cx88_enum_input -EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0x00000000 cx88_querycap -EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0x00000000 cx88_set_freq -EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0x00000000 cx88_video_mux -EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x00000000 cx8802_buf_prepare -EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x00000000 cx8802_buf_queue -EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x00000000 cx8802_cancel_buffers -EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x00000000 cx8802_get_driver -EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x00000000 cx8802_register_driver -EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x00000000 cx8802_start_dma -EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x00000000 cx8802_unregister_driver -EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x00000000 cx88_audio_thread -EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x00000000 cx88_core_get -EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x00000000 cx88_core_irq -EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x00000000 cx88_core_put -EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x00000000 cx88_dsp_detect_stereo_sap -EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x00000000 cx88_get_stereo -EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x00000000 cx88_ir_start -EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x00000000 cx88_ir_stop -EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x00000000 cx88_newstation -EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x00000000 cx88_print_irqbits -EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x00000000 cx88_reset -EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x00000000 cx88_risc_buffer -EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x00000000 cx88_risc_databuffer -EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x00000000 cx88_set_scale -EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x00000000 cx88_set_stereo -EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x00000000 cx88_set_tvaudio -EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x00000000 cx88_set_tvnorm -EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x00000000 cx88_shutdown -EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x00000000 cx88_sram_channel_dump -EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x00000000 cx88_sram_channel_setup -EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x00000000 cx88_sram_channels -EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x00000000 cx88_tuner_callback -EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x00000000 cx88_vdev_init -EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x00000000 cx88_wakeup -EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x00000000 ivtv_api -EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x00000000 ivtv_claim_stream -EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x00000000 ivtv_clear_irq_mask -EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x00000000 ivtv_debug -EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x00000000 ivtv_ext_init -EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x00000000 ivtv_firmware_check -EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x00000000 ivtv_init_on_first_open -EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x00000000 ivtv_release_stream -EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x00000000 ivtv_reset_ir_gpio -EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x00000000 ivtv_set_irq_mask -EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x00000000 ivtv_start_v4l2_encode_stream -EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x00000000 ivtv_stop_v4l2_encode_stream -EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x00000000 ivtv_udma_alloc -EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x00000000 ivtv_udma_prepare -EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x00000000 ivtv_udma_setup -EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x00000000 ivtv_udma_unmap -EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x00000000 ivtv_vapi -EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x00000000 ivtv_vapi_result -EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x00000000 saa7134_boards -EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x00000000 saa7134_devlist -EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x00000000 saa7134_devlist_lock -EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x00000000 saa7134_dmasound_exit -EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x00000000 saa7134_dmasound_init -EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x00000000 saa7134_pgtable_alloc -EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x00000000 saa7134_pgtable_build -EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x00000000 saa7134_pgtable_free -EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x00000000 saa7134_set_dmabits -EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x00000000 saa7134_set_gpio -EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x00000000 saa7134_ts_register -EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x00000000 saa7134_ts_unregister -EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x00000000 saa7134_tuner_callback -EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x00000000 saa7134_tvaudio_setmute -EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x00000000 saa_dsp_writel -EXPORT_SYMBOL drivers/media/pci/ttpci/ttpci-eeprom 0x00000000 ttpci_eeprom_decode_mac -EXPORT_SYMBOL drivers/media/pci/ttpci/ttpci-eeprom 0x00000000 ttpci_eeprom_parse_mac -EXPORT_SYMBOL drivers/media/radio/tea575x 0x00000000 snd_tea575x_enum_freq_bands -EXPORT_SYMBOL drivers/media/radio/tea575x 0x00000000 snd_tea575x_exit -EXPORT_SYMBOL drivers/media/radio/tea575x 0x00000000 snd_tea575x_g_tuner -EXPORT_SYMBOL drivers/media/radio/tea575x 0x00000000 snd_tea575x_hw_init -EXPORT_SYMBOL drivers/media/radio/tea575x 0x00000000 snd_tea575x_init -EXPORT_SYMBOL drivers/media/radio/tea575x 0x00000000 snd_tea575x_s_hw_freq_seek -EXPORT_SYMBOL drivers/media/radio/tea575x 0x00000000 snd_tea575x_set_freq -EXPORT_SYMBOL drivers/media/rc/rc-core 0x00000000 ir_raw_encode_carrier -EXPORT_SYMBOL drivers/media/rc/rc-core 0x00000000 ir_raw_encode_scancode -EXPORT_SYMBOL drivers/media/rc/rc-core 0x00000000 ir_raw_gen_manchester -EXPORT_SYMBOL drivers/media/rc/rc-core 0x00000000 ir_raw_gen_pd -EXPORT_SYMBOL drivers/media/rc/rc-core 0x00000000 ir_raw_gen_pl -EXPORT_SYMBOL drivers/media/rc/rc-core 0x00000000 ir_raw_handler_register -EXPORT_SYMBOL drivers/media/rc/rc-core 0x00000000 ir_raw_handler_unregister -EXPORT_SYMBOL drivers/media/tuners/fc0011 0x00000000 fc0011_attach -EXPORT_SYMBOL drivers/media/tuners/fc0012 0x00000000 fc0012_attach -EXPORT_SYMBOL drivers/media/tuners/fc0013 0x00000000 fc0013_attach -EXPORT_SYMBOL drivers/media/tuners/fc0013 0x00000000 fc0013_rc_cal_add -EXPORT_SYMBOL drivers/media/tuners/fc0013 0x00000000 fc0013_rc_cal_reset -EXPORT_SYMBOL drivers/media/tuners/max2165 0x00000000 max2165_attach -EXPORT_SYMBOL drivers/media/tuners/mc44s803 0x00000000 mc44s803_attach -EXPORT_SYMBOL drivers/media/tuners/mt2060 0x00000000 mt2060_attach -EXPORT_SYMBOL drivers/media/tuners/mt2131 0x00000000 mt2131_attach -EXPORT_SYMBOL drivers/media/tuners/mt2266 0x00000000 mt2266_attach -EXPORT_SYMBOL drivers/media/tuners/mxl5005s 0x00000000 mxl5005s_attach -EXPORT_SYMBOL drivers/media/tuners/qt1010 0x00000000 qt1010_attach -EXPORT_SYMBOL drivers/media/tuners/tda18218 0x00000000 tda18218_attach -EXPORT_SYMBOL drivers/media/tuners/tuner-types 0x00000000 tuner_count -EXPORT_SYMBOL drivers/media/tuners/tuner-types 0x00000000 tuners -EXPORT_SYMBOL drivers/media/tuners/tuner-xc2028 0x00000000 xc2028_attach -EXPORT_SYMBOL drivers/media/tuners/xc4000 0x00000000 xc4000_attach -EXPORT_SYMBOL drivers/media/tuners/xc5000 0x00000000 xc5000_attach -EXPORT_SYMBOL drivers/media/usb/cx231xx/cx231xx 0x00000000 cx231xx_register_extension -EXPORT_SYMBOL drivers/media/usb/cx231xx/cx231xx 0x00000000 cx231xx_unregister_extension -EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x00000000 dvb_usbv2_disconnect -EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x00000000 dvb_usbv2_generic_rw -EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x00000000 dvb_usbv2_generic_rw_locked -EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x00000000 dvb_usbv2_generic_write -EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x00000000 dvb_usbv2_generic_write_locked -EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x00000000 dvb_usbv2_probe -EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x00000000 dvb_usbv2_reset_resume -EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x00000000 dvb_usbv2_resume -EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x00000000 dvb_usbv2_suspend -EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x00000000 dvb_usb_device_exit -EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x00000000 dvb_usb_device_init -EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x00000000 dvb_usb_generic_rw -EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x00000000 dvb_usb_generic_write -EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x00000000 dvb_usb_get_hexline -EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x00000000 dvb_usb_nec_rc_key_to_event -EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x00000000 usb_cypress_load_firmware -EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0x00000000 af9005_rc_decode -EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0x00000000 rc_map_af9005_table -EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0x00000000 rc_map_af9005_table_size -EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x00000000 dibusb2_0_power_ctrl -EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x00000000 dibusb2_0_streaming_ctrl -EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x00000000 dibusb_i2c_algo -EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x00000000 dibusb_pid_filter -EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x00000000 dibusb_pid_filter_ctrl -EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x00000000 dibusb_power_ctrl -EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x00000000 dibusb_rc_query -EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x00000000 dibusb_read_eeprom_byte -EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x00000000 dibusb_streaming_ctrl -EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x00000000 rc_map_dibusb_table -EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-mc-common 0x00000000 dibusb_dib3000mc_frontend_attach -EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-mc-common 0x00000000 dibusb_dib3000mc_tuner_attach -EXPORT_SYMBOL drivers/media/usb/em28xx/em28xx 0x00000000 em28xx_register_extension -EXPORT_SYMBOL drivers/media/usb/em28xx/em28xx 0x00000000 em28xx_unregister_extension -EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0x00000000 go7007_alloc -EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0x00000000 go7007_boot_encoder -EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0x00000000 go7007_parse_video_stream -EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0x00000000 go7007_read_addr -EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0x00000000 go7007_read_interrupt -EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0x00000000 go7007_register_encoder -EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0x00000000 go7007_snd_init -EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0x00000000 go7007_snd_remove -EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0x00000000 go7007_update_board -EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x00000000 gspca_coarse_grained_expo_autogain -EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x00000000 gspca_debug -EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x00000000 gspca_dev_probe -EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x00000000 gspca_dev_probe2 -EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x00000000 gspca_disconnect -EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x00000000 gspca_expo_autogain -EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x00000000 gspca_frame_add -EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x00000000 gspca_resume -EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x00000000 gspca_suspend -EXPORT_SYMBOL drivers/media/usb/tm6000/tm6000 0x00000000 tm6000_init_digital_mode -EXPORT_SYMBOL drivers/media/usb/tm6000/tm6000 0x00000000 tm6000_register_extension -EXPORT_SYMBOL drivers/media/usb/tm6000/tm6000 0x00000000 tm6000_unregister_extension -EXPORT_SYMBOL drivers/media/usb/ttusb-dec/ttusbdecfe 0x00000000 ttusbdecfe_dvbs_attach -EXPORT_SYMBOL drivers/media/usb/ttusb-dec/ttusbdecfe 0x00000000 ttusbdecfe_dvbt_attach -EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_buf_done_and_job_finish -EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_get_curr_priv -EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_get_vq -EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_job_finish -EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_mmap -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 __v4l2_clk_register_fixed -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 __v4l2_ctrl_grab -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 __v4l2_ctrl_modify_range -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 __v4l2_ctrl_s_ctrl -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 __v4l2_ctrl_s_ctrl_area -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 __v4l2_ctrl_s_ctrl_int64 -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 __v4l2_ctrl_s_ctrl_string -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 __video_register_device -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_async_notifier_init -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_async_notifier_register -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_async_notifier_unregister -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_async_register_subdev -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_async_subdev_notifier_register -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_async_unregister_subdev -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_clk_disable -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_clk_enable -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_clk_get -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_clk_get_rate -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_clk_put -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_clk_register -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_clk_set_rate -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_clk_unregister -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_clk_unregister_fixed -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_ctrl_activate -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_ctrl_add_handler -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_ctrl_auto_cluster -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_ctrl_cluster -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_ctrl_fill -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_ctrl_find -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_ctrl_g_ctrl -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_ctrl_g_ctrl_int64 -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_ctrl_get_int_menu -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_ctrl_get_menu -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_ctrl_get_name -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_ctrl_handler_free -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_ctrl_handler_init_class -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_ctrl_handler_log_status -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_ctrl_handler_setup -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_ctrl_log_status -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_ctrl_merge -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_ctrl_new_custom -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_ctrl_new_int_menu -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_ctrl_new_std -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_ctrl_new_std_compound -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_ctrl_new_std_menu -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_ctrl_new_std_menu_items -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_ctrl_notify -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_ctrl_poll -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_ctrl_query_fill -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_ctrl_radio_filter -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_ctrl_replace -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_ctrl_request_complete -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_ctrl_request_setup -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_ctrl_sub_ev_ops -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_ctrl_subdev_log_status -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_ctrl_subdev_subscribe_event -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_ctrl_subscribe_event -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_field_names -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_format_info -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_g_ctrl -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_g_ext_ctrls -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_norm_to_name -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_prio_change -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_prio_check -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_prio_close -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_prio_init -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_prio_max -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_prio_open -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_query_ext_ctrl -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_queryctrl -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_querymenu -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_s_ctrl -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_s_ext_ctrls -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_subdev_call_wrappers -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_subdev_init -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_try_ext_ctrls -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_type_names -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_video_std_construct -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_video_std_frame_period -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l_printk_ioctl -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 video_devdata -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 video_device_alloc -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 video_device_release -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 video_device_release_empty -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 video_ioctl2 -EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 video_unregister_device -EXPORT_SYMBOL drivers/memstick/core/memstick 0x00000000 memstick_add_host -EXPORT_SYMBOL drivers/memstick/core/memstick 0x00000000 memstick_alloc_host -EXPORT_SYMBOL drivers/memstick/core/memstick 0x00000000 memstick_detect_change -EXPORT_SYMBOL drivers/memstick/core/memstick 0x00000000 memstick_free_host -EXPORT_SYMBOL drivers/memstick/core/memstick 0x00000000 memstick_init_req -EXPORT_SYMBOL drivers/memstick/core/memstick 0x00000000 memstick_init_req_sg -EXPORT_SYMBOL drivers/memstick/core/memstick 0x00000000 memstick_new_req -EXPORT_SYMBOL drivers/memstick/core/memstick 0x00000000 memstick_next_req -EXPORT_SYMBOL drivers/memstick/core/memstick 0x00000000 memstick_register_driver -EXPORT_SYMBOL drivers/memstick/core/memstick 0x00000000 memstick_remove_host -EXPORT_SYMBOL drivers/memstick/core/memstick 0x00000000 memstick_resume_host -EXPORT_SYMBOL drivers/memstick/core/memstick 0x00000000 memstick_set_rw_addr -EXPORT_SYMBOL drivers/memstick/core/memstick 0x00000000 memstick_suspend_host -EXPORT_SYMBOL drivers/memstick/core/memstick 0x00000000 memstick_unregister_driver -EXPORT_SYMBOL drivers/memstick/host/r592 0x00000000 memstick_debug_get_tpc_name -EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00000000 ioc_list -EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00000000 mpt_GetIocState -EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00000000 mpt_HardResetHandler -EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00000000 mpt_Soft_Hard_ResetHandler -EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00000000 mpt_alloc_fw_memory -EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00000000 mpt_attach -EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00000000 mpt_clear_taskmgmt_in_progress_flag -EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00000000 mpt_config -EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00000000 mpt_deregister -EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00000000 mpt_detach -EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00000000 mpt_device_driver_deregister -EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00000000 mpt_device_driver_register -EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00000000 mpt_event_deregister -EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00000000 mpt_event_register -EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00000000 mpt_findImVolumes -EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00000000 mpt_free_fw_memory -EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00000000 mpt_free_msg_frame -EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00000000 mpt_fwfault_debug -EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00000000 mpt_get_msg_frame -EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00000000 mpt_halt_firmware -EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00000000 mpt_print_ioc_summary -EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00000000 mpt_put_msg_frame -EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00000000 mpt_put_msg_frame_hi_pri -EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00000000 mpt_raid_phys_disk_get_num_paths -EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00000000 mpt_raid_phys_disk_pg0 -EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00000000 mpt_raid_phys_disk_pg1 -EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00000000 mpt_register -EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00000000 mpt_reset_deregister -EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00000000 mpt_reset_register -EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00000000 mpt_resume -EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00000000 mpt_send_handshake_request -EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00000000 mpt_set_taskmgmt_in_progress_flag -EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00000000 mpt_suspend -EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00000000 mpt_verify_adapter -EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00000000 mptbase_sas_persist_operation -EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x00000000 mptscsih_IssueTaskMgmt -EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x00000000 mptscsih_abort -EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x00000000 mptscsih_bios_param -EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x00000000 mptscsih_bus_reset -EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x00000000 mptscsih_change_queue_depth -EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x00000000 mptscsih_dev_reset -EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x00000000 mptscsih_event_process -EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x00000000 mptscsih_flush_running_cmds -EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x00000000 mptscsih_get_scsi_lookup -EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x00000000 mptscsih_host_attrs -EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x00000000 mptscsih_host_reset -EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x00000000 mptscsih_info -EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x00000000 mptscsih_io_done -EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x00000000 mptscsih_ioc_reset -EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x00000000 mptscsih_is_phys_disk -EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x00000000 mptscsih_qcmd -EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x00000000 mptscsih_raid_id_to_num -EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x00000000 mptscsih_remove -EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x00000000 mptscsih_resume -EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x00000000 mptscsih_scandv_complete -EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x00000000 mptscsih_show_info -EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x00000000 mptscsih_shutdown -EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x00000000 mptscsih_slave_configure -EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x00000000 mptscsih_slave_destroy -EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x00000000 mptscsih_suspend -EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x00000000 mptscsih_taskmgmt_complete -EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x00000000 mptscsih_taskmgmt_response_code -EXPORT_SYMBOL drivers/mfd/axp20x 0x00000000 axp20x_device_probe -EXPORT_SYMBOL drivers/mfd/axp20x 0x00000000 axp20x_device_remove -EXPORT_SYMBOL drivers/mfd/axp20x 0x00000000 axp20x_match_device -EXPORT_SYMBOL drivers/mfd/dln2 0x00000000 dln2_register_event_cb -EXPORT_SYMBOL drivers/mfd/dln2 0x00000000 dln2_transfer -EXPORT_SYMBOL drivers/mfd/dln2 0x00000000 dln2_unregister_event_cb -EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x00000000 pasic3_read_register -EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x00000000 pasic3_write_register -EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x00000000 mc13xxx_get_flags -EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x00000000 mc13xxx_irq_free -EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x00000000 mc13xxx_irq_mask -EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x00000000 mc13xxx_irq_request -EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x00000000 mc13xxx_irq_status -EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x00000000 mc13xxx_irq_unmask -EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x00000000 mc13xxx_lock -EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x00000000 mc13xxx_reg_read -EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x00000000 mc13xxx_reg_rmw -EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x00000000 mc13xxx_reg_write -EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x00000000 mc13xxx_unlock -EXPORT_SYMBOL drivers/mfd/tps65010 0x00000000 tps65010_config_vdcdc2 -EXPORT_SYMBOL drivers/mfd/tps65010 0x00000000 tps65010_config_vregs1 -EXPORT_SYMBOL drivers/mfd/tps65010 0x00000000 tps65010_set_gpio_out_value -EXPORT_SYMBOL drivers/mfd/tps65010 0x00000000 tps65010_set_led -EXPORT_SYMBOL drivers/mfd/tps65010 0x00000000 tps65010_set_low_pwr -EXPORT_SYMBOL drivers/mfd/tps65010 0x00000000 tps65010_set_vbus_draw -EXPORT_SYMBOL drivers/mfd/tps65010 0x00000000 tps65010_set_vib -EXPORT_SYMBOL drivers/mfd/tps65010 0x00000000 tps65013_set_low_pwr -EXPORT_SYMBOL drivers/mfd/wm8994 0x00000000 wm1811_regmap_config -EXPORT_SYMBOL drivers/mfd/wm8994 0x00000000 wm8958_regmap_config -EXPORT_SYMBOL drivers/mfd/wm8994 0x00000000 wm8994_base_regmap_config -EXPORT_SYMBOL drivers/mfd/wm8994 0x00000000 wm8994_irq_exit -EXPORT_SYMBOL drivers/mfd/wm8994 0x00000000 wm8994_irq_init -EXPORT_SYMBOL drivers/mfd/wm8994 0x00000000 wm8994_regmap_config -EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x00000000 ad_dpot_probe -EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x00000000 ad_dpot_remove -EXPORT_SYMBOL drivers/misc/altera-stapl/altera-stapl 0x00000000 altera_init -EXPORT_SYMBOL drivers/misc/c2port/core 0x00000000 c2port_device_register -EXPORT_SYMBOL drivers/misc/c2port/core 0x00000000 c2port_device_unregister -EXPORT_SYMBOL drivers/misc/mei/mei 0x00000000 __tracepoint_mei_pci_cfg_read -EXPORT_SYMBOL drivers/misc/mei/mei 0x00000000 __tracepoint_mei_reg_read -EXPORT_SYMBOL drivers/misc/mei/mei 0x00000000 __tracepoint_mei_reg_write -EXPORT_SYMBOL drivers/misc/tifm_core 0x00000000 tifm_add_adapter -EXPORT_SYMBOL drivers/misc/tifm_core 0x00000000 tifm_alloc_adapter -EXPORT_SYMBOL drivers/misc/tifm_core 0x00000000 tifm_alloc_device -EXPORT_SYMBOL drivers/misc/tifm_core 0x00000000 tifm_eject -EXPORT_SYMBOL drivers/misc/tifm_core 0x00000000 tifm_free_adapter -EXPORT_SYMBOL drivers/misc/tifm_core 0x00000000 tifm_free_device -EXPORT_SYMBOL drivers/misc/tifm_core 0x00000000 tifm_has_ms_pif -EXPORT_SYMBOL drivers/misc/tifm_core 0x00000000 tifm_map_sg -EXPORT_SYMBOL drivers/misc/tifm_core 0x00000000 tifm_queue_work -EXPORT_SYMBOL drivers/misc/tifm_core 0x00000000 tifm_register_driver -EXPORT_SYMBOL drivers/misc/tifm_core 0x00000000 tifm_remove_adapter -EXPORT_SYMBOL drivers/misc/tifm_core 0x00000000 tifm_unmap_sg -EXPORT_SYMBOL drivers/misc/tifm_core 0x00000000 tifm_unregister_driver -EXPORT_SYMBOL drivers/mmc/host/cqhci 0x00000000 cqhci_init -EXPORT_SYMBOL drivers/mmc/host/cqhci 0x00000000 cqhci_irq -EXPORT_SYMBOL drivers/mmc/host/cqhci 0x00000000 cqhci_pltfm_init -EXPORT_SYMBOL drivers/mmc/host/cqhci 0x00000000 cqhci_resume -EXPORT_SYMBOL drivers/mmc/host/cqhci 0x00000000 cqhci_suspend -EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x00000000 cfi_build_cmd -EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x00000000 cfi_build_cmd_addr -EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x00000000 cfi_fixup -EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x00000000 cfi_merge_status -EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x00000000 cfi_read_pri -EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x00000000 cfi_send_gen_cmd -EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x00000000 cfi_udelay -EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x00000000 cfi_varsize_frob -EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x00000000 do_map_probe -EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x00000000 map_destroy -EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x00000000 register_mtd_chip_driver -EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x00000000 unregister_mtd_chip_driver -EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0x00000000 mtd_do_chip_probe -EXPORT_SYMBOL drivers/mtd/lpddr/lpddr_cmds 0x00000000 lpddr_cmdset -EXPORT_SYMBOL drivers/mtd/maps/map_funcs 0x00000000 simple_map_init -EXPORT_SYMBOL drivers/mtd/mtd 0x00000000 mtd_concat_create -EXPORT_SYMBOL drivers/mtd/mtd 0x00000000 mtd_concat_destroy -EXPORT_SYMBOL drivers/mtd/nand/onenand/onenand 0x00000000 flexonenand_region -EXPORT_SYMBOL drivers/mtd/nand/onenand/onenand 0x00000000 onenand_addr -EXPORT_SYMBOL drivers/mtd/nand/raw/denali 0x00000000 denali_calc_ecc_bytes -EXPORT_SYMBOL drivers/mtd/nand/raw/denali 0x00000000 denali_init -EXPORT_SYMBOL drivers/mtd/nand/raw/denali 0x00000000 denali_remove -EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x00000000 nand_bch_calculate_ecc -EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x00000000 nand_bch_correct_data -EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x00000000 nand_bch_free -EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x00000000 nand_bch_init -EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x00000000 nand_check_erased_ecc_chunk -EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x00000000 nand_create_bbt -EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x00000000 nand_get_set_features_notsupp -EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x00000000 nand_read_oob_std -EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x00000000 nand_read_page_raw -EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x00000000 nand_scan_with_ids -EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x00000000 nand_write_oob_std -EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x00000000 nand_write_page_raw -EXPORT_SYMBOL drivers/mtd/nand/raw/nand_ecc 0x00000000 __nand_calculate_ecc -EXPORT_SYMBOL drivers/mtd/nand/raw/nand_ecc 0x00000000 __nand_correct_data -EXPORT_SYMBOL drivers/mtd/nand/raw/nand_ecc 0x00000000 nand_calculate_ecc -EXPORT_SYMBOL drivers/mtd/nand/raw/nand_ecc 0x00000000 nand_correct_data -EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x00000000 alloc_arcdev -EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x00000000 arc_bcast_proto -EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x00000000 arc_proto_default -EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x00000000 arc_proto_map -EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x00000000 arc_raw_proto -EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x00000000 arcnet_close -EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x00000000 arcnet_debug -EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x00000000 arcnet_interrupt -EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x00000000 arcnet_open -EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x00000000 arcnet_send_packet -EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x00000000 arcnet_timeout -EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x00000000 arcnet_unregister_proto -EXPORT_SYMBOL drivers/net/arcnet/com20020 0x00000000 com20020_check -EXPORT_SYMBOL drivers/net/arcnet/com20020 0x00000000 com20020_found -EXPORT_SYMBOL drivers/net/arcnet/com20020 0x00000000 com20020_netdev_ops -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_br_egress_floods -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_br_fast_age -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_br_join -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_br_leave -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_br_set_stp_state -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_brcm_hdr_setup -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_configure_vlan -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_disable_port -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_eee_enable_set -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_eee_init -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_enable_port -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_fdb_add -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_fdb_del -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_fdb_dump -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_get_ethtool_phy_stats -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_get_ethtool_stats -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_get_mac_eee -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_get_sset_count -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_get_strings -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_get_tag_protocol -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_imp_vlan_setup -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_mdb_add -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_mdb_del -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_mdb_prepare -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_mirror_add -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_mirror_del -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_phylink_mac_an_restart -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_phylink_mac_config -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_phylink_mac_link_down -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_phylink_mac_link_state -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_phylink_mac_link_up -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_phylink_validate -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_port_event -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_set_mac_eee -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_switch_alloc -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_switch_detect -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_switch_register -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_vlan_add -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_vlan_del -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_vlan_filtering -EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_vlan_prepare -EXPORT_SYMBOL drivers/net/dsa/b53/b53_serdes 0x00000000 b53_serdes_an_restart -EXPORT_SYMBOL drivers/net/dsa/b53/b53_serdes 0x00000000 b53_serdes_config -EXPORT_SYMBOL drivers/net/dsa/b53/b53_serdes 0x00000000 b53_serdes_init -EXPORT_SYMBOL drivers/net/dsa/b53/b53_serdes 0x00000000 b53_serdes_link_set -EXPORT_SYMBOL drivers/net/dsa/b53/b53_serdes 0x00000000 b53_serdes_link_state -EXPORT_SYMBOL drivers/net/dsa/b53/b53_serdes 0x00000000 b53_serdes_phylink_validate -EXPORT_SYMBOL drivers/net/dsa/lan9303-core 0x00000000 lan9303_probe -EXPORT_SYMBOL drivers/net/dsa/lan9303-core 0x00000000 lan9303_register_set -EXPORT_SYMBOL drivers/net/dsa/lan9303-core 0x00000000 lan9303_remove -EXPORT_SYMBOL drivers/net/dsa/microchip/ksz8795 0x00000000 ksz8795_switch_register -EXPORT_SYMBOL drivers/net/dsa/microchip/ksz9477 0x00000000 ksz9477_switch_register -EXPORT_SYMBOL drivers/net/dsa/microchip/ksz_common 0x00000000 ksz_switch_alloc -EXPORT_SYMBOL drivers/net/dsa/microchip/ksz_common 0x00000000 ksz_switch_register -EXPORT_SYMBOL drivers/net/dsa/microchip/ksz_common 0x00000000 ksz_switch_remove -EXPORT_SYMBOL drivers/net/dsa/vitesse-vsc73xx-core 0x00000000 vsc73xx_is_addr_valid -EXPORT_SYMBOL drivers/net/dsa/vitesse-vsc73xx-core 0x00000000 vsc73xx_probe -EXPORT_SYMBOL drivers/net/dsa/vitesse-vsc73xx-core 0x00000000 vsc73xx_remove -EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x00000000 NS8390_init -EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x00000000 __alloc_ei_netdev -EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x00000000 ei_close -EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x00000000 ei_get_stats -EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x00000000 ei_interrupt -EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x00000000 ei_netdev_ops -EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x00000000 ei_open -EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x00000000 ei_poll -EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x00000000 ei_set_multicast_list -EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x00000000 ei_start_xmit -EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x00000000 ei_tx_timeout -EXPORT_SYMBOL drivers/net/ethernet/broadcom/cnic 0x00000000 cnic_register_driver -EXPORT_SYMBOL drivers/net/ethernet/broadcom/cnic 0x00000000 cnic_unregister_driver -EXPORT_SYMBOL drivers/net/ethernet/cavium/common/cavium_ptp 0x00000000 cavium_ptp_get -EXPORT_SYMBOL drivers/net/ethernet/cavium/common/cavium_ptp 0x00000000 cavium_ptp_put -EXPORT_SYMBOL drivers/net/ethernet/cavium/thunder/thunder_bgx 0x00000000 bgx_config_timestamping -EXPORT_SYMBOL drivers/net/ethernet/cavium/thunder/thunder_bgx 0x00000000 bgx_get_lmac_count -EXPORT_SYMBOL drivers/net/ethernet/cavium/thunder/thunder_bgx 0x00000000 bgx_get_lmac_link_state -EXPORT_SYMBOL drivers/net/ethernet/cavium/thunder/thunder_bgx 0x00000000 bgx_get_lmac_mac -EXPORT_SYMBOL drivers/net/ethernet/cavium/thunder/thunder_bgx 0x00000000 bgx_get_map -EXPORT_SYMBOL drivers/net/ethernet/cavium/thunder/thunder_bgx 0x00000000 bgx_get_rx_stats -EXPORT_SYMBOL drivers/net/ethernet/cavium/thunder/thunder_bgx 0x00000000 bgx_get_tx_stats -EXPORT_SYMBOL drivers/net/ethernet/cavium/thunder/thunder_bgx 0x00000000 bgx_lmac_get_pfc -EXPORT_SYMBOL drivers/net/ethernet/cavium/thunder/thunder_bgx 0x00000000 bgx_lmac_internal_loopback -EXPORT_SYMBOL drivers/net/ethernet/cavium/thunder/thunder_bgx 0x00000000 bgx_lmac_rx_tx_enable -EXPORT_SYMBOL drivers/net/ethernet/cavium/thunder/thunder_bgx 0x00000000 bgx_lmac_set_pfc -EXPORT_SYMBOL drivers/net/ethernet/cavium/thunder/thunder_bgx 0x00000000 bgx_reset_xcast_mode -EXPORT_SYMBOL drivers/net/ethernet/cavium/thunder/thunder_bgx 0x00000000 bgx_set_dmac_cam_filter -EXPORT_SYMBOL drivers/net/ethernet/cavium/thunder/thunder_bgx 0x00000000 bgx_set_lmac_mac -EXPORT_SYMBOL drivers/net/ethernet/cavium/thunder/thunder_bgx 0x00000000 bgx_set_xcast_mode -EXPORT_SYMBOL drivers/net/ethernet/cavium/thunder/thunder_xcv 0x00000000 xcv_init_hw -EXPORT_SYMBOL drivers/net/ethernet/cavium/thunder/thunder_xcv 0x00000000 xcv_setup_link -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x00000000 cxgb3_alloc_atid -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x00000000 cxgb3_alloc_stid -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x00000000 cxgb3_free_atid -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x00000000 cxgb3_free_stid -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x00000000 cxgb3_insert_tid -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x00000000 cxgb3_ofld_send -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x00000000 cxgb3_queue_tid_release -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x00000000 cxgb3_register_client -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x00000000 cxgb3_remove_tid -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x00000000 cxgb3_unregister_client -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x00000000 dev2t3cdev -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x00000000 t3_l2e_free -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x00000000 t3_l2t_get -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x00000000 t3_l2t_send_event -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x00000000 t3_l2t_send_slow -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x00000000 t3_register_cpl_handler -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_alloc_atid -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_alloc_sftid -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_alloc_stid -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_bar2_sge_qregs -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_best_aligned_mtu -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_best_mtu -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_clip_get -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_clip_release -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_create_server -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_create_server6 -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_create_server_filter -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_crypto_send -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_dbfifo_count -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_flush_eq_cache -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_free_atid -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_free_stid -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_get_srq_entry -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_get_tcp_stats -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_immdata_send -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_inline_tx_skb -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_iscsi_init -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_l2t_alloc_switching -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_l2t_get -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_l2t_release -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_l2t_send -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_map_skb -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_ofld_send -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_pktgl_to_skb -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_port_chan -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_port_e2cchan -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_port_idx -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_port_viid -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_read_sge_timestamp -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_read_tpte -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_reclaim_completed_tx -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_register_uld -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_remove_server -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_remove_server_filter -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_remove_tid -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_ring_tx_db -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_select_ntuple -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_smt_alloc_switching -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_smt_release -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_sync_txq_pidx -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_unregister_uld -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_update_root_dev_clip -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_write_sgl -EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 t4_cleanup_clip_tbl -EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x00000000 cxgb_find_route -EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x00000000 cxgb_find_route6 -EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x00000000 cxgb_get_4tuple -EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x00000000 cxgbi_ppm_init -EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x00000000 cxgbi_ppm_make_ppod_hdr -EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x00000000 cxgbi_ppm_ppod_release -EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x00000000 cxgbi_ppm_ppods_reserve -EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x00000000 cxgbi_ppm_release -EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x00000000 cxgbi_tagmask_set -EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x00000000 enic_api_devcmd_proxy_by_index -EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x00000000 vnic_dev_get_pdev -EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x00000000 vnic_dev_get_res -EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x00000000 vnic_dev_get_res_count -EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x00000000 vnic_dev_register -EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x00000000 vnic_dev_unregister -EXPORT_SYMBOL drivers/net/ethernet/emulex/benet/be2net 0x00000000 be_roce_mcc_cmd -EXPORT_SYMBOL drivers/net/ethernet/emulex/benet/be2net 0x00000000 be_roce_register_driver -EXPORT_SYMBOL drivers/net/ethernet/emulex/benet/be2net 0x00000000 be_roce_unregister_driver -EXPORT_SYMBOL drivers/net/ethernet/intel/i40e/i40e 0x00000000 i40e_register_client -EXPORT_SYMBOL drivers/net/ethernet/intel/i40e/i40e 0x00000000 i40e_unregister_client -EXPORT_SYMBOL drivers/net/ethernet/intel/iavf/iavf 0x00000000 iavf_register_client -EXPORT_SYMBOL drivers/net/ethernet/intel/iavf/iavf 0x00000000 iavf_unregister_client -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 get_phv_bit -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_ALLOCATE_VPP_get -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_ALLOCATE_VPP_set -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_SET_MCAST_FLTR -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_SET_PORT_BEACON -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_SET_PORT_PRIO2TC -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_SET_PORT_SCHEDULER -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_SET_PORT_VXLAN -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_SET_PORT_fcs_check -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_SET_PORT_general -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_SET_PORT_qpn_calc -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_SET_PORT_user_mac -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_SET_PORT_user_mtu -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_SET_VPORT_QOS_get -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_SET_VPORT_QOS_set -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_assign_eq -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_eq_get_irq -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_gen_guid_change_eqe -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_gen_pkey_eqe -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_gen_port_state_change_eqe -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_gen_slaves_port_mgt_ev -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_get_cpu_rmap -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_get_eqs_per_port -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_get_is_vlan_offload_disabled -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_get_module_info -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_get_parav_qkey -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_get_roce_gid_from_slave -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_get_slave_from_roce_gid -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_get_slave_node_guid -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_get_slave_pkey_gid_tbl_len -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_get_slave_port_state -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_handle_eth_header_mcast_prio -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_is_eq_shared -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_is_eq_vector_valid -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_is_slave_active -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_max_tc -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_put_slave_node_guid -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_query_diag_counters -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_release_eq -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_sync_pkey_table -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_test_async -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_test_interrupt -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_tunnel_steer_add -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 set_and_calc_slave_port_state -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 set_phv_bit -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 __tracepoint_mlx5_fs_add_fg -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 __tracepoint_mlx5_fs_add_ft -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 __tracepoint_mlx5_fs_add_rule -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 __tracepoint_mlx5_fs_del_fg -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 __tracepoint_mlx5_fs_del_ft -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 __tracepoint_mlx5_fs_del_fte -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 __tracepoint_mlx5_fs_del_rule -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 __tracepoint_mlx5_fs_set_fte -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 __tracepoint_mlx5_fw -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_add_flow_rules -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_alloc_bfreg -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_buf_alloc -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_cmd_alloc_uar -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_cmd_cleanup -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_cmd_cleanup_async_ctx -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_cmd_create_vport_lag -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_cmd_destroy_vport_lag -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_cmd_exec -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_cmd_exec_cb -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_cmd_exec_polling -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_cmd_free_uar -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_cmd_init -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_cmd_init_async_ctx -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_cmd_set_state -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_comp_irq_get_affinity_mask -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_comp_vectors_count -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_alloc_pd -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_alloc_transport_domain -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_attach_mcg -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_create_cq -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_create_mkey -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_create_mkey_cb -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_create_psv -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_create_rq -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_create_rq_tracked -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_create_rqt -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_create_sq_tracked -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_create_tir -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_create_tir_out -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_create_tis -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_dealloc_pd -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_dealloc_transport_domain -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_destroy_cq -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_destroy_mkey -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_destroy_psv -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_destroy_rq -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_destroy_rq_tracked -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_destroy_rqt -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_destroy_sq_tracked -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_destroy_tir -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_destroy_tis -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_detach_mcg -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_modify_cq -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_modify_cq_moderation -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_modify_rq -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_modify_sq -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_modify_tis -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_query_cq -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_query_mkey -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_query_rq -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_query_sq -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_query_vendor_id -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_roce_gid_set -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_create_auto_grouped_flow_table -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_create_lag_demux_flow_table -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_debugfs_root -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_del_flow_rules -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_destroy_flow_table -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_eq_create_generic -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_eq_destroy_generic -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_eq_disable -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_eq_enable -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_eq_get_eqe -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_eq_notifier_register -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_eq_notifier_unregister -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_eq_update_ci -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_eswitch_add_send_to_vport_rule -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_eswitch_get_encap_mode -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_eswitch_get_proto_dev -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_eswitch_get_total_vports -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_eswitch_get_vport_metadata_for_match -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_eswitch_register_vport_reps -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_eswitch_unregister_vport_reps -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_eswitch_uplink_get_proto_dev -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_eswitch_vport_match_metadata_enabled -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_eswitch_vport_rep -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_fc_create -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_fc_destroy -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_fc_id -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_fc_query -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_fpga_get_sbu_caps -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_fpga_mem_read -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_fpga_mem_write -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_fpga_sbu_conn_create -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_fpga_sbu_conn_destroy -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_fpga_sbu_conn_sendmsg -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_free_bfreg -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_fs_add_rx_underlay_qpn -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_fs_remove_rx_underlay_qpn -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_get_fdb_sub_ns -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_get_flow_namespace -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_get_uars_page -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_lag_get_roce_netdev -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_lag_is_active -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_lag_is_roce -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_lag_is_sriov -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_lag_query_cong_counters -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_modify_header_alloc -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_modify_header_dealloc -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_notifier_register -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_notifier_unregister -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_packet_reformat_alloc -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_packet_reformat_dealloc -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_put_uars_page -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_query_port_ib_proto_oper -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_rdma_rn_get_params -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_register_interface -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_rl_add_rate -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_rl_are_equal -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_rl_is_in_range -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_rl_remove_rate -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_unregister_interface -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_vector2eqn -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxfw/mlxfw 0x00000000 mlxfw_firmware_flash -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_afa_block_activity_get -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_afa_block_append_allocated_counter -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_afa_block_append_counter -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_afa_block_append_drop -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_afa_block_append_fid_set -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_afa_block_append_fwd -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_afa_block_append_mcrouter -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_afa_block_append_mirror -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_afa_block_append_trap -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_afa_block_append_trap_and_forward -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_afa_block_append_vlan_modify -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_afa_block_commit -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_afa_block_continue -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_afa_block_create -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_afa_block_cur_set -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_afa_block_destroy -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_afa_block_first_kvdl_index -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_afa_block_first_set -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_afa_block_jump -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_afa_block_terminate -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_afa_create -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_afa_destroy -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_afk_clear -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_afk_create -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_afk_destroy -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_afk_encode -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_afk_key_info_block_encoding_get -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_afk_key_info_blocks_count_get -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_afk_key_info_get -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_afk_key_info_put -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_afk_key_info_subset -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_afk_values_add_buf -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_afk_values_add_u32 -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_cmd_exec -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_bus_device_register -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_bus_device_unregister -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_cpu_port_fini -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_cpu_port_init -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_driver_priv -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_driver_register -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_driver_unregister -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_emad_string_tlv_enable -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_event_listener_register -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_event_listener_unregister -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_flush_owq -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_fw_flash_end -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_fw_flash_start -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_fw_rev_minor_subminor_validate -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_kvd_sizes_get -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_lag_mapping_clear -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_lag_mapping_get -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_lag_mapping_set -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_max_ports -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_module_max_width -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_port_clear -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_port_devlink_port_get -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_port_driver_priv -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_port_eth_set -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_port_fini -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_port_ib_set -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_port_init -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_port_type_get -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_ptp_transmitted -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_read_frc_h -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_read_frc_l -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_res_get -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_res_query_enabled -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_res_valid -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_resources_query -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_rx_listener_register -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_rx_listener_unregister -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_schedule_dw -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_schedule_work -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_skb_receive -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_skb_transmit -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_skb_transmit_busy -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_trap_action_set -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_trap_register -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_trap_unregister -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_env_get_module_eeprom -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_env_get_module_info -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_reg_query -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_reg_trans_bulk_wait -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_reg_trans_query -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_reg_trans_write -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_reg_write -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_i2c 0x00000000 mlxsw_i2c_driver_register -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_i2c 0x00000000 mlxsw_i2c_driver_unregister -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_pci 0x00000000 mlxsw_pci_driver_register -EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_pci 0x00000000 mlxsw_pci_driver_unregister -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_common 0x00000000 __ocelot_read_ix -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_common 0x00000000 __ocelot_rmw_ix -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_common 0x00000000 __ocelot_write_ix -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_common 0x00000000 ocelot_adjust_link -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_common 0x00000000 ocelot_bridge_stp_state_set -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_common 0x00000000 ocelot_chip_init -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_common 0x00000000 ocelot_deinit -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_common 0x00000000 ocelot_fdb_add -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_common 0x00000000 ocelot_fdb_del -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_common 0x00000000 ocelot_fdb_dump -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_common 0x00000000 ocelot_get_ethtool_stats -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_common 0x00000000 ocelot_get_sset_count -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_common 0x00000000 ocelot_get_strings -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_common 0x00000000 ocelot_get_ts_info -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_common 0x00000000 ocelot_get_txtstamp -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_common 0x00000000 ocelot_hwstamp_get -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_common 0x00000000 ocelot_hwstamp_set -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_common 0x00000000 ocelot_init -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_common 0x00000000 ocelot_init_port -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_common 0x00000000 ocelot_netdevice_nb -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_common 0x00000000 ocelot_port_add_txtstamp_skb -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_common 0x00000000 ocelot_port_bridge_join -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_common 0x00000000 ocelot_port_bridge_leave -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_common 0x00000000 ocelot_port_disable -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_common 0x00000000 ocelot_port_enable -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_common 0x00000000 ocelot_port_readl -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_common 0x00000000 ocelot_port_vlan_filtering -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_common 0x00000000 ocelot_port_writel -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_common 0x00000000 ocelot_probe_port -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_common 0x00000000 ocelot_ptp_gettime64 -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_common 0x00000000 ocelot_regfields_init -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_common 0x00000000 ocelot_regmap_init -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_common 0x00000000 ocelot_set_ageing_time -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_common 0x00000000 ocelot_set_cpu_port -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_common 0x00000000 ocelot_switchdev_blocking_nb -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_common 0x00000000 ocelot_switchdev_nb -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_common 0x00000000 ocelot_vlan_add -EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_common 0x00000000 ocelot_vlan_del -EXPORT_SYMBOL drivers/net/ethernet/qlogic/qed/qed 0x00000000 qed_get_eth_ops -EXPORT_SYMBOL drivers/net/ethernet/qlogic/qed/qed 0x00000000 qed_get_fcoe_ops -EXPORT_SYMBOL drivers/net/ethernet/qlogic/qed/qed 0x00000000 qed_get_iscsi_ops -EXPORT_SYMBOL drivers/net/ethernet/qlogic/qed/qed 0x00000000 qed_get_rdma_ops -EXPORT_SYMBOL drivers/net/ethernet/qlogic/qed/qed 0x00000000 qed_put_eth_ops -EXPORT_SYMBOL drivers/net/ethernet/qlogic/qed/qed 0x00000000 qed_put_fcoe_ops -EXPORT_SYMBOL drivers/net/ethernet/qlogic/qed/qed 0x00000000 qed_put_iscsi_ops -EXPORT_SYMBOL drivers/net/ethernet/qlogic/qede/qede 0x00000000 qede_rdma_register_driver -EXPORT_SYMBOL drivers/net/ethernet/qlogic/qede/qede 0x00000000 qede_rdma_unregister_driver -EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x00000000 hdlcdrv_arbitrate -EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x00000000 hdlcdrv_receiver -EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x00000000 hdlcdrv_register -EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x00000000 hdlcdrv_transmitter -EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x00000000 hdlcdrv_unregister -EXPORT_SYMBOL drivers/net/mdio 0x00000000 mdio45_ethtool_gset_npage -EXPORT_SYMBOL drivers/net/mdio 0x00000000 mdio45_ethtool_ksettings_get_npage -EXPORT_SYMBOL drivers/net/mdio 0x00000000 mdio45_links_ok -EXPORT_SYMBOL drivers/net/mdio 0x00000000 mdio45_nway_restart -EXPORT_SYMBOL drivers/net/mdio 0x00000000 mdio45_probe -EXPORT_SYMBOL drivers/net/mdio 0x00000000 mdio_mii_ioctl -EXPORT_SYMBOL drivers/net/mdio 0x00000000 mdio_set_flag -EXPORT_SYMBOL drivers/net/mii 0x00000000 generic_mii_ioctl -EXPORT_SYMBOL drivers/net/mii 0x00000000 mii_check_gmii_support -EXPORT_SYMBOL drivers/net/mii 0x00000000 mii_check_link -EXPORT_SYMBOL drivers/net/mii 0x00000000 mii_check_media -EXPORT_SYMBOL drivers/net/mii 0x00000000 mii_ethtool_get_link_ksettings -EXPORT_SYMBOL drivers/net/mii 0x00000000 mii_ethtool_gset -EXPORT_SYMBOL drivers/net/mii 0x00000000 mii_ethtool_set_link_ksettings -EXPORT_SYMBOL drivers/net/mii 0x00000000 mii_ethtool_sset -EXPORT_SYMBOL drivers/net/mii 0x00000000 mii_link_ok -EXPORT_SYMBOL drivers/net/mii 0x00000000 mii_nway_restart -EXPORT_SYMBOL drivers/net/phy/bcm-phy-lib 0x00000000 bcm54xx_auxctl_write -EXPORT_SYMBOL drivers/net/phy/mdio-bitbang 0x00000000 alloc_mdio_bitbang -EXPORT_SYMBOL drivers/net/phy/mdio-bitbang 0x00000000 free_mdio_bitbang -EXPORT_SYMBOL drivers/net/phy/mdio-cavium 0x00000000 cavium_mdiobus_read -EXPORT_SYMBOL drivers/net/phy/mdio-cavium 0x00000000 cavium_mdiobus_write -EXPORT_SYMBOL drivers/net/ppp/pppox 0x00000000 pppox_compat_ioctl -EXPORT_SYMBOL drivers/net/ppp/pppox 0x00000000 pppox_ioctl -EXPORT_SYMBOL drivers/net/ppp/pppox 0x00000000 pppox_unbind_sock -EXPORT_SYMBOL drivers/net/ppp/pppox 0x00000000 register_pppox_proto -EXPORT_SYMBOL drivers/net/ppp/pppox 0x00000000 unregister_pppox_proto -EXPORT_SYMBOL drivers/net/sungem_phy 0x00000000 sungem_phy_probe -EXPORT_SYMBOL drivers/net/team/team 0x00000000 team_mode_register -EXPORT_SYMBOL drivers/net/team/team 0x00000000 team_mode_unregister -EXPORT_SYMBOL drivers/net/team/team 0x00000000 team_modeop_port_change_dev_addr -EXPORT_SYMBOL drivers/net/team/team 0x00000000 team_modeop_port_enter -EXPORT_SYMBOL drivers/net/team/team 0x00000000 team_option_inst_set_change -EXPORT_SYMBOL drivers/net/team/team 0x00000000 team_options_change_check -EXPORT_SYMBOL drivers/net/team/team 0x00000000 team_options_register -EXPORT_SYMBOL drivers/net/team/team 0x00000000 team_options_unregister -EXPORT_SYMBOL drivers/net/usb/usbnet 0x00000000 usbnet_device_suggests_idle -EXPORT_SYMBOL drivers/net/usb/usbnet 0x00000000 usbnet_link_change -EXPORT_SYMBOL drivers/net/usb/usbnet 0x00000000 usbnet_manage_power -EXPORT_SYMBOL drivers/net/wan/hdlc 0x00000000 alloc_hdlcdev -EXPORT_SYMBOL drivers/net/wan/hdlc 0x00000000 attach_hdlc_protocol -EXPORT_SYMBOL drivers/net/wan/hdlc 0x00000000 detach_hdlc_protocol -EXPORT_SYMBOL drivers/net/wan/hdlc 0x00000000 hdlc_close -EXPORT_SYMBOL drivers/net/wan/hdlc 0x00000000 hdlc_ioctl -EXPORT_SYMBOL drivers/net/wan/hdlc 0x00000000 hdlc_open -EXPORT_SYMBOL drivers/net/wan/hdlc 0x00000000 hdlc_start_xmit -EXPORT_SYMBOL drivers/net/wan/hdlc 0x00000000 register_hdlc_protocol -EXPORT_SYMBOL drivers/net/wan/hdlc 0x00000000 unregister_hdlc_device -EXPORT_SYMBOL drivers/net/wan/hdlc 0x00000000 unregister_hdlc_protocol -EXPORT_SYMBOL drivers/net/wimax/i2400m/i2400m 0x00000000 i2400m_unknown_barker -EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x00000000 ath_bus_type_strings -EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x00000000 ath_hw_cycle_counters_update -EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x00000000 ath_hw_get_listen_time -EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x00000000 ath_hw_keyreset -EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x00000000 ath_hw_setbssidmask -EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x00000000 ath_is_49ghz_allowed -EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x00000000 ath_is_mybeacon -EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x00000000 ath_is_world_regd -EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x00000000 ath_key_config -EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x00000000 ath_key_delete -EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x00000000 ath_printk -EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x00000000 ath_reg_notifier_apply -EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x00000000 ath_regd_find_country_by_name -EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x00000000 ath_regd_get_band_ctl -EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x00000000 ath_regd_init -EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x00000000 ath_rxbuf_alloc -EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x00000000 dfs_pattern_detector_init -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 __ath10k_ce_rx_num_free_bufs -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 __ath10k_ce_send_revert -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 __tracepoint_ath10k_log_dbg -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_ce_alloc_pipe -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_ce_alloc_rri -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_ce_cancel_send_next -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_ce_completed_recv_next -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_ce_completed_recv_next_nolock -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_ce_completed_send_next -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_ce_completed_send_next_nolock -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_ce_deinit_pipe -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_ce_disable_interrupts -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_ce_dump_registers -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_ce_enable_interrupts -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_ce_free_pipe -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_ce_free_rri -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_ce_init_pipe -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_ce_num_free_src_entries -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_ce_per_engine_service -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_ce_per_engine_service_any -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_ce_revoke_recv_next -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_ce_rx_post_buf -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_ce_rx_update_write_idx -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_ce_send -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_ce_send_nolock -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_core_create -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_core_destroy -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_core_fetch_board_file -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_core_free_board_files -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_core_register -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_core_start -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_core_stop -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_core_unregister -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_coredump_get_mem_layout -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_coredump_new -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_debug_mask -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_err -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_htc_notify_tx_completion -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_htc_process_trailer -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_htc_rx_completion_handler -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_htc_tx_completion_handler -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_htt_hif_tx_complete -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_htt_rx_hl_indication -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_htt_rx_pktlog_completion_handler -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_htt_t2h_msg_handler -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_htt_txrx_compl_task -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_info -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_mac_tx_push_pending -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_print_driver_info -EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_warn -EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x00000000 ath6kl_cfg80211_resume -EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x00000000 ath6kl_cfg80211_suspend -EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x00000000 ath6kl_core_cleanup -EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x00000000 ath6kl_core_create -EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x00000000 ath6kl_core_destroy -EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x00000000 ath6kl_core_init -EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x00000000 ath6kl_core_rx_complete -EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x00000000 ath6kl_core_tx_complete -EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x00000000 ath6kl_err -EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x00000000 ath6kl_hif_intr_bh_handler -EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x00000000 ath6kl_hif_rw_comp_handler -EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x00000000 ath6kl_info -EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x00000000 ath6kl_printk -EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x00000000 ath6kl_read_tgt_stats -EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x00000000 ath6kl_stop_txrx -EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x00000000 ath6kl_warn -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x00000000 ath9k_cmn_beacon_config_adhoc -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x00000000 ath9k_cmn_beacon_config_ap -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x00000000 ath9k_cmn_beacon_config_sta -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x00000000 ath9k_cmn_count_streams -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x00000000 ath9k_cmn_debug_base_eeprom -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x00000000 ath9k_cmn_debug_modal_eeprom -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x00000000 ath9k_cmn_debug_phy_err -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x00000000 ath9k_cmn_debug_recv -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x00000000 ath9k_cmn_debug_stat_rx -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x00000000 ath9k_cmn_get_channel -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x00000000 ath9k_cmn_get_hw_crypto_keytype -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x00000000 ath9k_cmn_init_channels_rates -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x00000000 ath9k_cmn_init_crypto -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x00000000 ath9k_cmn_process_rate -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x00000000 ath9k_cmn_process_rssi -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x00000000 ath9k_cmn_reload_chainmask -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x00000000 ath9k_cmn_rx_accept -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x00000000 ath9k_cmn_rx_skb_postprocess -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x00000000 ath9k_cmn_setup_ht_cap -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x00000000 ath9k_cmn_spectral_deinit_debug -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x00000000 ath9k_cmn_spectral_init_debug -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x00000000 ath9k_cmn_spectral_scan_config -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x00000000 ath9k_cmn_spectral_scan_trigger -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x00000000 ath9k_cmn_update_txpow -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x00000000 ath_cmn_process_fft -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ar9003_get_pll_sqsum_dvc -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ar9003_hw_bb_watchdog_check -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ar9003_hw_bb_watchdog_dbg_info -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ar9003_hw_disable_phy_restart -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ar9003_is_paprd_enabled -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ar9003_mci_cleanup -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ar9003_mci_get_interrupt -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ar9003_mci_get_next_gpm_offset -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ar9003_mci_send_message -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ar9003_mci_send_wlan_channels -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ar9003_mci_set_bt_version -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ar9003_mci_setup -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ar9003_mci_state -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ar9003_paprd_create_curve -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ar9003_paprd_enable -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ar9003_paprd_init_table -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ar9003_paprd_is_done -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ar9003_paprd_populate_single_table -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ar9003_paprd_setup_gain_table -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_abort_tx_dma -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_abortpcurecv -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_addrxbuf_edma -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_ani_monitor -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_beaconinit -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_beaconq_setup -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_bstuck_nfcal -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_btcoex_bt_stomp -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_btcoex_deinit -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_btcoex_disable -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_btcoex_enable -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_btcoex_init_2wire -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_btcoex_init_3wire -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_btcoex_init_mci -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_btcoex_init_scheme -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_btcoex_set_concur_txprio -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_btcoex_set_weight -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_check_alive -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_check_nav -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_computetxtime -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_deinit -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_disable -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_disable_interrupts -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_disable_mib_counters -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_enable_interrupts -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_gen_timer_start -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_gen_timer_stop -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_get_tsf_offset -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_get_txq_props -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_getchan_noise -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_getnf -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_getrxfilter -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_gettsf32 -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_gettsf64 -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_gettxbuf -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_gpio_free -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_gpio_get -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_gpio_request_in -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_gpio_request_out -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_init -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_init_btcoex_hw -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_init_global_settings -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_intrpend -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_kill_interrupts -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_loadnf -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_name -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_numtxpending -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_phy_disable -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_process_rxdesc_edma -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_putrxbuf -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_puttxbuf -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_releasetxqueue -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_reset -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_reset_calvalid -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_reset_tsf -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_resettxqueue -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_resume_interrupts -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_rxprocdesc -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_set_gpio -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_set_interrupts -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_set_rx_bufsize -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_set_sta_beacon_timers -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_set_tsfadjust -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_set_tx_filter -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_set_txpowerlimit -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_set_txq_props -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_setantenna -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_setmcastfilter -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_setopmode -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_setpower -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_setrxabort -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_setrxfilter -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_settsf64 -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_setup_statusring -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_setuprxdesc -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_setuptxqueue -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_startpcureceive -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_stop_dma_queue -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_stopdmarecv -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_txstart -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_updatetxtriglevel -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_wait -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_wow_apply_pattern -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_wow_enable -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_wow_wakeup -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_write_associd -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath_gen_timer_alloc -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath_gen_timer_free -EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath_gen_timer_isr -EXPORT_SYMBOL drivers/net/wireless/atmel/atmel 0x00000000 atmel_open -EXPORT_SYMBOL drivers/net/wireless/atmel/atmel 0x00000000 init_atmel_card -EXPORT_SYMBOL drivers/net/wireless/atmel/atmel 0x00000000 stop_atmel_card -EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x00000000 brcmu_boardrev_str -EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x00000000 brcmu_d11_attach -EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x00000000 brcmu_dotrev_str -EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x00000000 brcmu_pkt_buf_free_skb -EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x00000000 brcmu_pkt_buf_get_skb -EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x00000000 brcmu_pktq_flush -EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x00000000 brcmu_pktq_init -EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x00000000 brcmu_pktq_mdeq -EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x00000000 brcmu_pktq_mlen -EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x00000000 brcmu_pktq_pdeq -EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x00000000 brcmu_pktq_pdeq_match -EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x00000000 brcmu_pktq_pdeq_tail -EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x00000000 brcmu_pktq_peek_tail -EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x00000000 brcmu_pktq_penq -EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x00000000 brcmu_pktq_penq_head -EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x00000000 brcmu_pktq_pflush -EXPORT_SYMBOL drivers/net/wireless/cisco/airo 0x00000000 init_airo_card -EXPORT_SYMBOL drivers/net/wireless/cisco/airo 0x00000000 reset_airo_card -EXPORT_SYMBOL drivers/net/wireless/cisco/airo 0x00000000 stop_airo_card -EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x00000000 alloc_libipw -EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x00000000 free_libipw -EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x00000000 libipw_channel_to_freq -EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x00000000 libipw_channel_to_index -EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x00000000 libipw_freq_to_channel -EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x00000000 libipw_get_channel -EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x00000000 libipw_get_channel_flags -EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x00000000 libipw_get_geo -EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x00000000 libipw_is_valid_channel -EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x00000000 libipw_networks_age -EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x00000000 libipw_rx -EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x00000000 libipw_rx_mgt -EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x00000000 libipw_set_geo -EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x00000000 libipw_txb_free -EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x00000000 libipw_wx_get_encode -EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x00000000 libipw_wx_get_encodeext -EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x00000000 libipw_wx_get_scan -EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x00000000 libipw_wx_set_encode -EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x00000000 libipw_wx_set_encodeext -EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x00000000 libipw_xmit -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 _il_apm_stop -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 _il_poll_bit -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_add_beacon_time -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_add_station_common -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_alloc_txq_mem -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_apm_init -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_apm_stop -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_bcast_addr -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_bg_watchdog -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_cancel_scan_deferred_work -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_check_rxon_cmd -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_chswitch_done -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_clear_bit -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_clear_ucode_stations -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_cmd_queue_free -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_cmd_queue_unmap -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_connection_init_rx_config -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_dbgfs_register -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_dbgfs_unregister -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_debug_level -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_eeprom_free -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_eeprom_init -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_eeprom_query16 -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_eeprom_query_addr -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_fill_probe_req -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_force_reset -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_free_channel_map -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_free_geos -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_free_txq_mem -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_full_rxon_required -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_get_active_dwell_time -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_get_channel_info -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_get_cmd_string -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_get_free_ucode_key_idx -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_get_lowest_plcp -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_get_passive_dwell_time -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_get_single_channel_number -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_hdl_csa -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_hdl_error -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_hdl_pm_debug_stats -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_hdl_pm_sleep -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_hdl_spectrum_measurement -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_init_channel_map -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_init_geos -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_init_scan_params -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_irq_handle_error -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_is_ht40_tx_allowed -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_isr -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_leds_exit -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_leds_init -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_mac_add_interface -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_mac_bss_info_changed -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_mac_change_interface -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_mac_conf_tx -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_mac_config -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_mac_flush -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_mac_hw_scan -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_mac_remove_interface -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_mac_reset_tsf -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_mac_sta_remove -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_pm_ops -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_poll_bit -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_power_initialize -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_power_update_mode -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_queue_space -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_rd_prph -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_read_targ_mem -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_restore_stations -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_rx_queue_alloc -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_rx_queue_space -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_rx_queue_update_write_ptr -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_scan_cancel -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_scan_cancel_timeout -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_send_add_sta -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_send_bt_config -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_send_cmd -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_send_cmd_pdu -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_send_cmd_pdu_async -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_send_cmd_sync -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_send_lq_cmd -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_send_rxon_timing -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_send_stats_request -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_set_bit -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_set_decrypted_flag -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_set_flags_for_band -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_set_rate -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_set_rxon_channel -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_set_rxon_ht -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_set_rxon_hwcrypto -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_set_tx_power -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_setup_rx_scan_handlers -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_setup_scan_deferred_work -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_setup_watchdog -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_tx_cmd_complete -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_tx_cmd_protection -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_tx_queue_free -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_tx_queue_init -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_tx_queue_reset -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_tx_queue_unmap -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_txq_update_write_ptr -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_update_stats -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_usecs_to_beacons -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_wr_prph -EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_write_targ_mem -EXPORT_SYMBOL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 __tracepoint_iwlwifi_dev_ucode_cont_event -EXPORT_SYMBOL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 __tracepoint_iwlwifi_dev_ucode_event -EXPORT_SYMBOL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 __tracepoint_iwlwifi_dev_ucode_wrap_event -EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x00000000 hostap_80211_get_hdrlen -EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x00000000 hostap_80211_ops -EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x00000000 hostap_80211_rx -EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x00000000 hostap_add_interface -EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x00000000 hostap_check_sta_fw_version -EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x00000000 hostap_dump_rx_header -EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x00000000 hostap_dump_tx_header -EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x00000000 hostap_free_data -EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x00000000 hostap_get_porttype -EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x00000000 hostap_handle_sta_tx_exc -EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x00000000 hostap_info_init -EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x00000000 hostap_info_process -EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x00000000 hostap_init_ap_proc -EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x00000000 hostap_init_data -EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x00000000 hostap_init_proc -EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x00000000 hostap_master_start_xmit -EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x00000000 hostap_remove_interface -EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x00000000 hostap_remove_proc -EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x00000000 hostap_set_antsel -EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x00000000 hostap_set_auth_algs -EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x00000000 hostap_set_encryption -EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x00000000 hostap_set_hostapd -EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x00000000 hostap_set_hostapd_sta -EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x00000000 hostap_set_multicast_list_queue -EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x00000000 hostap_set_roaming -EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x00000000 hostap_set_string -EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x00000000 hostap_set_word -EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x00000000 hostap_setup_dev -EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x00000000 prism2_update_comms_qual -EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x00000000 __orinoco_ev_info -EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x00000000 __orinoco_ev_rx -EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x00000000 alloc_orinocodev -EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x00000000 free_orinocodev -EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x00000000 hermes_struct_init -EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x00000000 orinoco_change_mtu -EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x00000000 orinoco_down -EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x00000000 orinoco_if_add -EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x00000000 orinoco_if_del -EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x00000000 orinoco_init -EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x00000000 orinoco_interrupt -EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x00000000 orinoco_open -EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x00000000 orinoco_process_xmit_skb -EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x00000000 orinoco_set_multicast_list -EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x00000000 orinoco_stop -EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x00000000 orinoco_tx_timeout -EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x00000000 orinoco_up -EXPORT_SYMBOL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_wcid_key_setup -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/btcoexist/btcoexist 0x00000000 rtl_btc_get_ops_pointer -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 _rtl92c_phy_bb8192c_config_parafile -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 _rtl92c_phy_calculate_bit_shift -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 _rtl92c_phy_dbm_to_txpwr_idx -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 _rtl92c_phy_fw_rf_serial_read -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 _rtl92c_phy_fw_rf_serial_write -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 _rtl92c_phy_init_bb_rf_register_definition -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 _rtl92c_phy_rf_serial_read -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 _rtl92c_phy_rf_serial_write -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 _rtl92c_phy_set_rf_sleep -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 _rtl92c_phy_txpwr_idx_to_dbm -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 _rtl92c_store_pwrindex_diffrate_offset -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 rtl8192_phy_check_is_legal_rfpath -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 rtl92c_bt_rssi_state_change -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 rtl92c_dm_bt_coexist -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 rtl92c_dm_check_txpower_tracking -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 rtl92c_dm_init -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 rtl92c_dm_init_edca_turbo -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 rtl92c_dm_init_rate_adaptive_mask -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 rtl92c_dm_rf_saving -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 rtl92c_dm_watchdog -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 rtl92c_dm_write_dig -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 rtl92c_download_fw -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 rtl92c_fill_h2c_cmd -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 rtl92c_firmware_selfreset -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 rtl92c_phy_ap_calibrate -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 rtl92c_phy_iq_calibrate -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 rtl92c_phy_lc_calibrate -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 rtl92c_phy_query_bb_reg -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 rtl92c_phy_rf_config -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 rtl92c_phy_set_bb_reg -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 rtl92c_phy_set_bw_mode -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 rtl92c_phy_set_io -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 rtl92c_phy_set_io_cmd -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 rtl92c_phy_set_rfpath_switch -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 rtl92c_phy_set_txpower_level -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 rtl92c_phy_sw_chnl -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 rtl92c_phy_sw_chnl_callback -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 rtl92c_phy_update_txpower_dbm -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 rtl92c_set_fw_joinbss_report_cmd -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 rtl92c_set_fw_pwrmode_cmd -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 rtl92c_set_fw_rsvdpagepkt -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 rtl92ce_phy_set_rf_on -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_pci 0x00000000 rtl_pci_disconnect -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_pci 0x00000000 rtl_pci_probe -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_pci 0x00000000 rtl_pci_resume -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_pci 0x00000000 rtl_pci_suspend -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_usb 0x00000000 rtl_usb_disconnect -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_usb 0x00000000 rtl_usb_probe -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_usb 0x00000000 rtl_usb_resume -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_usb 0x00000000 rtl_usb_suspend -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 channel5g -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 channel5g_80m -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 efuse_one_byte_read -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 efuse_power_switch -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 efuse_read_1byte -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 efuse_shadow_read -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_addr_delay -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_bb_delay -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_c2hcmd_enqueue -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_cam_add_one_entry -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_cam_del_entry -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_cam_delete_one_entry -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_cam_empty_entry -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_cam_get_free_entry -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_cam_mark_invalid -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_cam_reset_all_entry -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_cmd_send_packet -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_collect_scan_list -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_dm_diginit -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_efuse_shadow_map_update -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_evm_db_to_percentage -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_fw_cb -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_get_tcb_desc -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_hal_pwrseqcmdparsing -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_init_rfkill -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_mrate_idx_to_arfr_id -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_phy_scan_operation_backup -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_process_phyinfo -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_ps_disable_nic -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_ps_enable_nic -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_query_rxpwrpercentage -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_rfreg_delay -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_rx_ampdu_apply -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_send_smps_action -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_signal_scale_mapping -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_wowlan_fw_cb -EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtlwifi_rate_mapping -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88 0x00000000 __rtw_dbg -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88 0x00000000 rtw8723d_hw_spec -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88 0x00000000 rtw8822b_hw_spec -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88 0x00000000 rtw8822c_hw_spec -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88 0x00000000 rtw_chip_info_setup -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88 0x00000000 rtw_core_deinit -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88 0x00000000 rtw_core_init -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88 0x00000000 rtw_debug_mask -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88 0x00000000 rtw_fw_c2h_cmd_rx_irqsafe -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88 0x00000000 rtw_fw_lps_deep_mode -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88 0x00000000 rtw_ops -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88 0x00000000 rtw_power_mode_change -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88 0x00000000 rtw_register_hw -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88 0x00000000 rtw_rx_stats -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88 0x00000000 rtw_tx_fill_tx_desc -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88 0x00000000 rtw_tx_report_enqueue -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88 0x00000000 rtw_tx_write_data_h2c_get -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88 0x00000000 rtw_tx_write_data_rsvd_page_get -EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88 0x00000000 rtw_unregister_hw -EXPORT_SYMBOL drivers/net/wireless/rsi/rsi_91x 0x00000000 rsi_config_wowlan -EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wl1271_free_tx_id -EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wl12xx_is_dummy_packet -EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wlcore_calc_packet_alignment -EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wlcore_tx_complete -EXPORT_SYMBOL drivers/nfc/fdp/fdp 0x00000000 fdp_nci_probe -EXPORT_SYMBOL drivers/nfc/fdp/fdp 0x00000000 fdp_nci_recv_frame -EXPORT_SYMBOL drivers/nfc/fdp/fdp 0x00000000 fdp_nci_remove -EXPORT_SYMBOL drivers/nfc/microread/microread 0x00000000 microread_probe -EXPORT_SYMBOL drivers/nfc/microread/microread 0x00000000 microread_remove -EXPORT_SYMBOL drivers/nfc/nxp-nci/nxp-nci 0x00000000 nxp_nci_fw_recv_frame -EXPORT_SYMBOL drivers/nfc/nxp-nci/nxp-nci 0x00000000 nxp_nci_probe -EXPORT_SYMBOL drivers/nfc/nxp-nci/nxp-nci 0x00000000 nxp_nci_remove -EXPORT_SYMBOL drivers/nfc/pn533/pn533 0x00000000 pn533_recv_frame -EXPORT_SYMBOL drivers/nfc/pn544/pn544 0x00000000 pn544_hci_probe -EXPORT_SYMBOL drivers/nfc/pn544/pn544 0x00000000 pn544_hci_remove -EXPORT_SYMBOL drivers/nfc/s3fwrn5/s3fwrn5 0x00000000 s3fwrn5_probe -EXPORT_SYMBOL drivers/nfc/s3fwrn5/s3fwrn5 0x00000000 s3fwrn5_recv_frame -EXPORT_SYMBOL drivers/nfc/s3fwrn5/s3fwrn5 0x00000000 s3fwrn5_remove -EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0x00000000 ndlc_close -EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0x00000000 ndlc_open -EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0x00000000 ndlc_probe -EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0x00000000 ndlc_recv -EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0x00000000 ndlc_remove -EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0x00000000 ndlc_send -EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0x00000000 st_nci_se_deinit -EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0x00000000 st_nci_se_init -EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0x00000000 st_nci_se_io -EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0x00000000 st_nci_vendor_cmds_init -EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x00000000 st21nfca_apdu_reader_event_received -EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x00000000 st21nfca_connectivity_event_received -EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x00000000 st21nfca_dep_deinit -EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x00000000 st21nfca_dep_event_received -EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x00000000 st21nfca_dep_init -EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x00000000 st21nfca_hci_disable_se -EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x00000000 st21nfca_hci_discover_se -EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x00000000 st21nfca_hci_enable_se -EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x00000000 st21nfca_hci_loopback_event_received -EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x00000000 st21nfca_hci_probe -EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x00000000 st21nfca_hci_remove -EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x00000000 st21nfca_hci_se_io -EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x00000000 st21nfca_im_send_atr_req -EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x00000000 st21nfca_im_send_dep_req -EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x00000000 st21nfca_se_deinit -EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x00000000 st21nfca_se_init -EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x00000000 st21nfca_tm_send_dep_res -EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x00000000 st21nfca_vendor_cmds_init -EXPORT_SYMBOL drivers/ntb/ntb 0x00000000 __ntb_register_client -EXPORT_SYMBOL drivers/ntb/ntb 0x00000000 ntb_clear_ctx -EXPORT_SYMBOL drivers/ntb/ntb 0x00000000 ntb_db_event -EXPORT_SYMBOL drivers/ntb/ntb 0x00000000 ntb_default_peer_port_count -EXPORT_SYMBOL drivers/ntb/ntb 0x00000000 ntb_default_peer_port_idx -EXPORT_SYMBOL drivers/ntb/ntb 0x00000000 ntb_default_peer_port_number -EXPORT_SYMBOL drivers/ntb/ntb 0x00000000 ntb_default_port_number -EXPORT_SYMBOL drivers/ntb/ntb 0x00000000 ntb_link_event -EXPORT_SYMBOL drivers/ntb/ntb 0x00000000 ntb_msg_event -EXPORT_SYMBOL drivers/ntb/ntb 0x00000000 ntb_msi_clear_mws -EXPORT_SYMBOL drivers/ntb/ntb 0x00000000 ntb_msi_init -EXPORT_SYMBOL drivers/ntb/ntb 0x00000000 ntb_msi_peer_addr -EXPORT_SYMBOL drivers/ntb/ntb 0x00000000 ntb_msi_peer_trigger -EXPORT_SYMBOL drivers/ntb/ntb 0x00000000 ntb_msi_setup_mws -EXPORT_SYMBOL drivers/ntb/ntb 0x00000000 ntb_register_device -EXPORT_SYMBOL drivers/ntb/ntb 0x00000000 ntb_set_ctx -EXPORT_SYMBOL drivers/ntb/ntb 0x00000000 ntb_unregister_client -EXPORT_SYMBOL drivers/ntb/ntb 0x00000000 ntb_unregister_device -EXPORT_SYMBOL drivers/ntb/ntb 0x00000000 ntbm_msi_free_irq -EXPORT_SYMBOL drivers/ntb/ntb 0x00000000 ntbm_msi_request_threaded_irq -EXPORT_SYMBOL drivers/nvdimm/nd_btt 0x00000000 nvdimm_namespace_attach_btt -EXPORT_SYMBOL drivers/nvdimm/nd_btt 0x00000000 nvdimm_namespace_detach_btt -EXPORT_SYMBOL drivers/parport/parport 0x00000000 __parport_register_driver -EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_announce_port -EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_claim -EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_claim_or_block -EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_del_port -EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_find_base -EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_find_number -EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_get_port -EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_ieee1284_ecp_read_data -EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_ieee1284_ecp_write_addr -EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_ieee1284_ecp_write_data -EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_ieee1284_epp_read_addr -EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_ieee1284_epp_read_data -EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_ieee1284_epp_write_addr -EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_ieee1284_epp_write_data -EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_ieee1284_interrupt -EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_ieee1284_read_byte -EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_ieee1284_read_nibble -EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_ieee1284_write_compat -EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_irq_handler -EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_negotiate -EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_put_port -EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_read -EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_register_dev_model -EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_register_device -EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_register_port -EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_release -EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_remove_port -EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_set_timeout -EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_unregister_device -EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_unregister_driver -EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_wait_event -EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_wait_peripheral -EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_write -EXPORT_SYMBOL drivers/parport/parport_pc 0x00000000 parport_pc_probe_port -EXPORT_SYMBOL drivers/parport/parport_pc 0x00000000 parport_pc_unregister_port -EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x00000000 pcmcia_dev_present -EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x00000000 pcmcia_disable_device -EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x00000000 pcmcia_enable_device -EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x00000000 pcmcia_fixup_iowidth -EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x00000000 pcmcia_fixup_vpp -EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x00000000 pcmcia_get_mac_from_cis -EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x00000000 pcmcia_get_tuple -EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x00000000 pcmcia_loop_config -EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x00000000 pcmcia_loop_tuple -EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x00000000 pcmcia_map_mem_page -EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x00000000 pcmcia_parse_tuple -EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x00000000 pcmcia_read_config_byte -EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x00000000 pcmcia_register_driver -EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x00000000 pcmcia_release_window -EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x00000000 pcmcia_request_io -EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x00000000 pcmcia_request_irq -EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x00000000 pcmcia_request_window -EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x00000000 pcmcia_unregister_driver -EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x00000000 pcmcia_write_config_byte -EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x00000000 dead_socket -EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x00000000 pccard_register_pcmcia -EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x00000000 pcmcia_get_socket -EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x00000000 pcmcia_get_socket_by_nr -EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x00000000 pcmcia_parse_events -EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x00000000 pcmcia_parse_uevents -EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x00000000 pcmcia_put_socket -EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x00000000 pcmcia_register_socket -EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x00000000 pcmcia_reset_card -EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x00000000 pcmcia_socket_class -EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x00000000 pcmcia_socket_list -EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x00000000 pcmcia_socket_list_rwsem -EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x00000000 pcmcia_unregister_socket -EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0x00000000 pccard_nonstatic_ops -EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0x00000000 pccard_static_ops -EXPORT_SYMBOL drivers/platform/chrome/cros_ec 0x00000000 cros_ec_handle_event -EXPORT_SYMBOL drivers/platform/chrome/cros_ec 0x00000000 cros_ec_register -EXPORT_SYMBOL drivers/platform/chrome/cros_ec 0x00000000 cros_ec_resume -EXPORT_SYMBOL drivers/platform/chrome/cros_ec 0x00000000 cros_ec_suspend -EXPORT_SYMBOL drivers/platform/chrome/cros_ec 0x00000000 cros_ec_unregister -EXPORT_SYMBOL drivers/platform/chrome/cros_ec_lpcs 0x00000000 cros_ec_lpc_io_bytes_mec -EXPORT_SYMBOL drivers/platform/chrome/cros_ec_lpcs 0x00000000 cros_ec_lpc_mec_destroy -EXPORT_SYMBOL drivers/platform/chrome/cros_ec_lpcs 0x00000000 cros_ec_lpc_mec_init -EXPORT_SYMBOL drivers/platform/x86/dcdbas 0x00000000 dcdbas_smi_request -EXPORT_SYMBOL drivers/platform/x86/intel_punit_ipc 0x00000000 intel_punit_ipc_simple_command -EXPORT_SYMBOL drivers/platform/x86/sony-laptop 0x00000000 sony_pic_camera_command -EXPORT_SYMBOL drivers/platform/x86/wmi 0x00000000 __wmi_driver_register -EXPORT_SYMBOL drivers/platform/x86/wmi 0x00000000 wmi_driver_unregister -EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x00000000 __register_rpmsg_driver -EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x00000000 rpmsg_create_ept -EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x00000000 rpmsg_destroy_ept -EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x00000000 rpmsg_find_device -EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x00000000 rpmsg_poll -EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x00000000 rpmsg_register_device -EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x00000000 rpmsg_send -EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x00000000 rpmsg_send_offchannel -EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x00000000 rpmsg_sendto -EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x00000000 rpmsg_trysend -EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x00000000 rpmsg_trysend_offchannel -EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x00000000 rpmsg_trysendto -EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x00000000 rpmsg_unregister_device -EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x00000000 unregister_rpmsg_driver -EXPORT_SYMBOL drivers/rtc/rtc-ds1685 0x00000000 ds1685_rtc_poweroff -EXPORT_SYMBOL drivers/scsi/53c700 0x00000000 NCR_700_detect -EXPORT_SYMBOL drivers/scsi/53c700 0x00000000 NCR_700_intr -EXPORT_SYMBOL drivers/scsi/53c700 0x00000000 NCR_700_release -EXPORT_SYMBOL drivers/scsi/esp_scsi 0x00000000 scsi_esp_cmd -EXPORT_SYMBOL drivers/scsi/esp_scsi 0x00000000 scsi_esp_intr -EXPORT_SYMBOL drivers/scsi/esp_scsi 0x00000000 scsi_esp_register -EXPORT_SYMBOL drivers/scsi/esp_scsi 0x00000000 scsi_esp_template -EXPORT_SYMBOL drivers/scsi/esp_scsi 0x00000000 scsi_esp_unregister -EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_ctlr_destroy -EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_ctlr_els_send -EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_ctlr_init -EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_ctlr_link_down -EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_ctlr_link_up -EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_ctlr_recv -EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_ctlr_recv_flogi -EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_ctlr_set_fip_mode -EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_fcf_get_selected -EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_transport_attach -EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_transport_detach -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 _fc_frame_alloc -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_cpu_mask -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_disc_config -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_disc_init -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_eh_abort -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_eh_device_reset -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_eh_host_reset -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_elsct_init -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_elsct_send -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_exch_done -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_exch_init -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_exch_mgr_add -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_exch_mgr_alloc -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_exch_mgr_del -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_exch_mgr_free -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_exch_mgr_list_clone -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_exch_mgr_reset -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_exch_recv -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_exch_seq_send -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_exch_update_stats -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_fabric_login -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_fabric_logoff -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_fc4_deregister_provider -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_fc4_register_provider -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_fcp_destroy -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_fcp_init -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_fill_hdr -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_fill_reply_hdr -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_frame_alloc_fill -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_frame_crc_check -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_get_host_port_state -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_get_host_speed -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_get_host_stats -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_linkdown -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_linkup -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_lport_bsg_request -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_lport_config -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_lport_destroy -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_lport_flogi_resp -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_lport_init -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_lport_iterate -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_lport_logo_resp -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_lport_notifier_head -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_lport_recv -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_lport_reset -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_lport_set_local_id -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_queuecommand -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_rport_create -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_rport_destroy -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_rport_flush_queue -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_rport_login -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_rport_logoff -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_rport_lookup -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_rport_recv_req -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_rport_terminate_io -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_seq_assign -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_seq_release -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_seq_send -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_seq_set_resp -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_seq_start_next -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_set_mfs -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_set_rport_loss_tmo -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_slave_alloc -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_vport_id_lookup -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_vport_setlink -EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 libfc_vport_create -EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x00000000 sas_prep_resume_ha -EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x00000000 sas_resume_ha -EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x00000000 sas_suspend_ha -EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x00000000 try_test_sas_gpio_gp_bit -EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x00000000 mraid_mm_adapter_app_handle -EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x00000000 mraid_mm_register_adp -EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x00000000 mraid_mm_unregister_adp -EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x00000000 qlt_abort_cmd -EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x00000000 qlt_enable_vha -EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x00000000 qlt_free_cmd -EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x00000000 qlt_free_mcmd -EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x00000000 qlt_lport_deregister -EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x00000000 qlt_lport_register -EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x00000000 qlt_rdy_to_xfer -EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x00000000 qlt_stop_phase1 -EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x00000000 qlt_stop_phase2 -EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x00000000 qlt_unreg_sess -EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x00000000 qlt_xmit_response -EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x00000000 qlt_xmit_tm_rsp -EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x00000000 qlogicfas408_abort -EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x00000000 qlogicfas408_biosparam -EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x00000000 qlogicfas408_detect -EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x00000000 qlogicfas408_disable_ints -EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x00000000 qlogicfas408_get_chip_type -EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x00000000 qlogicfas408_host_reset -EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x00000000 qlogicfas408_ihandl -EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x00000000 qlogicfas408_info -EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x00000000 qlogicfas408_queuecommand -EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x00000000 qlogicfas408_setup -EXPORT_SYMBOL drivers/scsi/raid_class 0x00000000 raid_class_attach -EXPORT_SYMBOL drivers/scsi/raid_class 0x00000000 raid_class_release -EXPORT_SYMBOL drivers/scsi/raid_class 0x00000000 raid_component_add -EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x00000000 fc_attach_transport -EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x00000000 fc_block_rport -EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x00000000 fc_block_scsi_eh -EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x00000000 fc_eh_timed_out -EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x00000000 fc_get_event_number -EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x00000000 fc_host_fpin_rcv -EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x00000000 fc_host_post_event -EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x00000000 fc_host_post_fc_event -EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x00000000 fc_host_post_vendor_event -EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x00000000 fc_release_transport -EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x00000000 fc_remote_port_add -EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x00000000 fc_remote_port_delete -EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x00000000 fc_remote_port_rolechg -EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x00000000 fc_remove_host -EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x00000000 fc_vport_create -EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x00000000 fc_vport_terminate -EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x00000000 scsi_is_fc_rport -EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 sas_attach_transport -EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 sas_end_device_alloc -EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 sas_expander_alloc -EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 sas_get_address -EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 sas_phy_add -EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 sas_phy_alloc -EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 sas_phy_delete -EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 sas_phy_free -EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 sas_port_add -EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 sas_port_add_phy -EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 sas_port_alloc -EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 sas_port_alloc_num -EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 sas_port_delete -EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 sas_port_delete_phy -EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 sas_port_free -EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 sas_port_get_phy -EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 sas_port_mark_backlink -EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 sas_read_port_mode_page -EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 sas_release_transport -EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 sas_remove_children -EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 sas_remove_host -EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 sas_rphy_add -EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 sas_rphy_delete -EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 sas_rphy_free -EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 sas_rphy_remove -EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 sas_rphy_unlink -EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 scsi_is_sas_phy -EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 scsi_is_sas_port -EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 scsi_is_sas_rphy -EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x00000000 spi_attach_transport -EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x00000000 spi_display_xfer_agreement -EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x00000000 spi_dv_device -EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x00000000 spi_print_msg -EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x00000000 spi_release_transport -EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x00000000 spi_schedule_dv_device -EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0x00000000 srp_parse_tmo -EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0x00000000 srp_reconnect_rport -EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0x00000000 srp_rport_get -EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0x00000000 srp_rport_put -EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0x00000000 srp_start_tl_fail_timers -EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0x00000000 srp_timed_out -EXPORT_SYMBOL drivers/scsi/ufs/tc-dwc-g210 0x00000000 tc_dwc_g210_config_20_bit -EXPORT_SYMBOL drivers/scsi/ufs/tc-dwc-g210 0x00000000 tc_dwc_g210_config_40_bit -EXPORT_SYMBOL drivers/scsi/ufs/ufshcd-core 0x00000000 ufshcd_alloc_host -EXPORT_SYMBOL drivers/scsi/ufs/ufshcd-core 0x00000000 ufshcd_get_local_unipro_ver -EXPORT_SYMBOL drivers/scsi/ufs/ufshcd-core 0x00000000 ufshcd_map_desc_id_to_length -EXPORT_SYMBOL drivers/scsi/ufs/ufshcd-core 0x00000000 ufshcd_runtime_idle -EXPORT_SYMBOL drivers/scsi/ufs/ufshcd-core 0x00000000 ufshcd_runtime_resume -EXPORT_SYMBOL drivers/scsi/ufs/ufshcd-core 0x00000000 ufshcd_runtime_suspend -EXPORT_SYMBOL drivers/scsi/ufs/ufshcd-core 0x00000000 ufshcd_shutdown -EXPORT_SYMBOL drivers/scsi/ufs/ufshcd-core 0x00000000 ufshcd_system_resume -EXPORT_SYMBOL drivers/scsi/ufs/ufshcd-core 0x00000000 ufshcd_system_suspend -EXPORT_SYMBOL drivers/scsi/ufs/ufshcd-dwc 0x00000000 ufshcd_dwc_dme_set_attrs -EXPORT_SYMBOL drivers/scsi/ufs/ufshcd-dwc 0x00000000 ufshcd_dwc_link_startup_notify -EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x00000000 sdw_add_bus_master -EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x00000000 sdw_alloc_stream -EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x00000000 sdw_bus_clk_stop -EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x00000000 sdw_bus_exit_clk_stop -EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x00000000 sdw_bus_prep_clk_stop -EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x00000000 sdw_clear_slave_status -EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x00000000 sdw_cols -EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x00000000 sdw_delete_bus_master -EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x00000000 sdw_deprepare_stream -EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x00000000 sdw_disable_stream -EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x00000000 sdw_enable_stream -EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x00000000 sdw_find_col_index -EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x00000000 sdw_find_row_index -EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x00000000 sdw_handle_slave_status -EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x00000000 sdw_master_read_prop -EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x00000000 sdw_nread -EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x00000000 sdw_nwrite -EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x00000000 sdw_prepare_stream -EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x00000000 sdw_read -EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x00000000 sdw_release_stream -EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x00000000 sdw_rows -EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x00000000 sdw_shutdown_stream -EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x00000000 sdw_slave_read_prop -EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x00000000 sdw_startup_stream -EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x00000000 sdw_stream_add_master -EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x00000000 sdw_stream_add_slave -EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x00000000 sdw_stream_remove_master -EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x00000000 sdw_stream_remove_slave -EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x00000000 sdw_write -EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x00000000 cdns_bus_conf -EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x00000000 cdns_reset_page_addr -EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x00000000 cdns_set_sdw_stream -EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x00000000 cdns_xfer_msg -EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x00000000 cdns_xfer_msg_defer -EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x00000000 sdw_cdns_alloc_pdi -EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x00000000 sdw_cdns_clock_restart -EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x00000000 sdw_cdns_clock_stop -EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x00000000 sdw_cdns_config_stream -EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x00000000 sdw_cdns_enable_interrupt -EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x00000000 sdw_cdns_exit_reset -EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x00000000 sdw_cdns_init -EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x00000000 sdw_cdns_irq -EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x00000000 sdw_cdns_is_clock_stop -EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x00000000 sdw_cdns_pdi_init -EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x00000000 sdw_cdns_probe -EXPORT_SYMBOL drivers/soundwire/soundwire-generic-allocation 0x00000000 sdw_compute_params -EXPORT_SYMBOL drivers/soundwire/soundwire-intel 0x00000000 sdw_intel_thread -EXPORT_SYMBOL drivers/ssb/ssb 0x00000000 __ssb_driver_register -EXPORT_SYMBOL drivers/ssb/ssb 0x00000000 ssb_admatch_base -EXPORT_SYMBOL drivers/ssb/ssb 0x00000000 ssb_admatch_size -EXPORT_SYMBOL drivers/ssb/ssb 0x00000000 ssb_bus_may_powerdown -EXPORT_SYMBOL drivers/ssb/ssb 0x00000000 ssb_bus_powerup -EXPORT_SYMBOL drivers/ssb/ssb 0x00000000 ssb_bus_resume -EXPORT_SYMBOL drivers/ssb/ssb 0x00000000 ssb_bus_sdiobus_register -EXPORT_SYMBOL drivers/ssb/ssb 0x00000000 ssb_bus_suspend -EXPORT_SYMBOL drivers/ssb/ssb 0x00000000 ssb_bus_unregister -EXPORT_SYMBOL drivers/ssb/ssb 0x00000000 ssb_chipco_gpio_control -EXPORT_SYMBOL drivers/ssb/ssb 0x00000000 ssb_clockspeed -EXPORT_SYMBOL drivers/ssb/ssb 0x00000000 ssb_commit_settings -EXPORT_SYMBOL drivers/ssb/ssb 0x00000000 ssb_device_disable -EXPORT_SYMBOL drivers/ssb/ssb 0x00000000 ssb_device_enable -EXPORT_SYMBOL drivers/ssb/ssb 0x00000000 ssb_device_is_enabled -EXPORT_SYMBOL drivers/ssb/ssb 0x00000000 ssb_dma_translation -EXPORT_SYMBOL drivers/ssb/ssb 0x00000000 ssb_driver_unregister -EXPORT_SYMBOL drivers/ssb/ssb 0x00000000 ssb_pcicore_dev_irqvecs_enable -EXPORT_SYMBOL drivers/ssb/ssb 0x00000000 ssb_pcihost_register -EXPORT_SYMBOL drivers/ssb/ssb 0x00000000 ssb_pmu_set_ldo_paref -EXPORT_SYMBOL drivers/ssb/ssb 0x00000000 ssb_pmu_set_ldo_voltage -EXPORT_SYMBOL drivers/ssb/ssb 0x00000000 ssb_set_devtypedata -EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x00000000 fbtft_dbg_hex -EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x00000000 fbtft_framebuffer_alloc -EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x00000000 fbtft_framebuffer_release -EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x00000000 fbtft_init_display -EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x00000000 fbtft_probe_common -EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x00000000 fbtft_read_spi -EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x00000000 fbtft_register_backlight -EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x00000000 fbtft_register_framebuffer -EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x00000000 fbtft_remove_common -EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x00000000 fbtft_unregister_backlight -EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x00000000 fbtft_unregister_framebuffer -EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x00000000 fbtft_write_buf_dc -EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x00000000 fbtft_write_gpio16_wr -EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x00000000 fbtft_write_gpio16_wr_latched -EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x00000000 fbtft_write_gpio8_wr -EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x00000000 fbtft_write_reg16_bus16 -EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x00000000 fbtft_write_reg16_bus8 -EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x00000000 fbtft_write_reg8_bus8 -EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x00000000 fbtft_write_reg8_bus9 -EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x00000000 fbtft_write_spi -EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x00000000 fbtft_write_spi_emulate_9 -EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x00000000 fbtft_write_vmem16_bus16 -EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x00000000 fbtft_write_vmem16_bus8 -EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x00000000 fbtft_write_vmem16_bus9 -EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x00000000 fbtft_write_vmem8_bus8 -EXPORT_SYMBOL drivers/staging/gasket/gasket 0x00000000 gasket_disable_device -EXPORT_SYMBOL drivers/staging/gasket/gasket 0x00000000 gasket_enable_device -EXPORT_SYMBOL drivers/staging/gasket/gasket 0x00000000 gasket_get_ioctl_permissions_cb -EXPORT_SYMBOL drivers/staging/gasket/gasket 0x00000000 gasket_mm_unmap_region -EXPORT_SYMBOL drivers/staging/gasket/gasket 0x00000000 gasket_num_name_lookup -EXPORT_SYMBOL drivers/staging/gasket/gasket 0x00000000 gasket_page_table_are_addrs_bad -EXPORT_SYMBOL drivers/staging/gasket/gasket 0x00000000 gasket_page_table_is_dev_addr_bad -EXPORT_SYMBOL drivers/staging/gasket/gasket 0x00000000 gasket_page_table_map -EXPORT_SYMBOL drivers/staging/gasket/gasket 0x00000000 gasket_page_table_max_size -EXPORT_SYMBOL drivers/staging/gasket/gasket 0x00000000 gasket_page_table_num_active_pages -EXPORT_SYMBOL drivers/staging/gasket/gasket 0x00000000 gasket_page_table_num_entries -EXPORT_SYMBOL drivers/staging/gasket/gasket 0x00000000 gasket_page_table_num_simple_entries -EXPORT_SYMBOL drivers/staging/gasket/gasket 0x00000000 gasket_page_table_partition -EXPORT_SYMBOL drivers/staging/gasket/gasket 0x00000000 gasket_page_table_unmap -EXPORT_SYMBOL drivers/staging/gasket/gasket 0x00000000 gasket_page_table_unmap_all -EXPORT_SYMBOL drivers/staging/gasket/gasket 0x00000000 gasket_pci_add_device -EXPORT_SYMBOL drivers/staging/gasket/gasket 0x00000000 gasket_pci_remove_device -EXPORT_SYMBOL drivers/staging/gasket/gasket 0x00000000 gasket_register_device -EXPORT_SYMBOL drivers/staging/gasket/gasket 0x00000000 gasket_reset -EXPORT_SYMBOL drivers/staging/gasket/gasket 0x00000000 gasket_reset_nolock -EXPORT_SYMBOL drivers/staging/gasket/gasket 0x00000000 gasket_sysfs_create_entries -EXPORT_SYMBOL drivers/staging/gasket/gasket 0x00000000 gasket_sysfs_get_attr -EXPORT_SYMBOL drivers/staging/gasket/gasket 0x00000000 gasket_sysfs_get_device_data -EXPORT_SYMBOL drivers/staging/gasket/gasket 0x00000000 gasket_sysfs_put_attr -EXPORT_SYMBOL drivers/staging/gasket/gasket 0x00000000 gasket_sysfs_put_device_data -EXPORT_SYMBOL drivers/staging/gasket/gasket 0x00000000 gasket_sysfs_register_store -EXPORT_SYMBOL drivers/staging/gasket/gasket 0x00000000 gasket_unregister_device -EXPORT_SYMBOL drivers/staging/gasket/gasket 0x00000000 gasket_wait_with_reschedule -EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0x00000000 adt7316_probe -EXPORT_SYMBOL drivers/staging/iio/meter/ade7854 0x00000000 ade7854_probe -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 HT_update_self_and_peer_setting -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 RemovePeerTS -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 alloc_rtllib -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 dot11d_channel_map -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 dot11d_init -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 free_rtllib -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 notify_wx_assoc_event -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rt_global_debug_component -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_DisableIntelPromiscuousMode -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_EnableIntelPromiscuousMode -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_MgntDisconnect -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_act_scanning -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_get_beacon -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_legal_channel -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_ps_tx_ack -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_reset_queue -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_rx -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_softmac_start_protocol -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_softmac_stop_protocol -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_sta_ps_send_null_frame -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_start_scan_syncro -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_start_send_beacons -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_stop_scan -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_stop_scan_syncro -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_stop_send_beacons -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_wlan_frequencies -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_wx_get_encode -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_wx_get_essid -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_wx_get_freq -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_wx_get_mode -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_wx_get_name -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_wx_get_power -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_wx_get_rate -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_wx_get_rts -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_wx_get_scan -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_wx_get_wap -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_wx_set_auth -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_wx_set_encode -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_wx_set_encode_ext -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_wx_set_essid -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_wx_set_freq -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_wx_set_gen_ie -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_wx_set_mlme -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_wx_set_mode -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_wx_set_power -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_wx_set_rate -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_wx_set_rawtx -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_wx_set_rts -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_wx_set_scan -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_wx_set_wap -EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_xmit -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 HTUpdateSelfAndPeerSetting -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 SendDisassociation_rsl -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 dot11d_get_max_tx_pwr_in_dbm -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 dot11d_reset -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 dot11d_scan_complete -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 dot11d_update_country_ie -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_disassociate_rsl -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_get_beacon_rsl -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_is_54g_rsl -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_is_shortslot_rsl -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_ps_tx_ack_rsl -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_reset_queue_rsl -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_rx_mgt_rsl -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_rx_rsl -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_softmac_scan_syncro_rsl -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_softmac_start_protocol_rsl -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_softmac_stop_protocol_rsl -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_softmac_xmit_rsl -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_start_scan_syncro_rsl -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_start_send_beacons_rsl -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_stop_queue_rsl -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_stop_scan_rsl -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_stop_send_beacons_rsl -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_txb_free_rsl -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_wake_queue_rsl -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_wlan_frequencies_rsl -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_wpa_supplicant_ioctl_rsl -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_wx_get_encode_ext_rsl -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_wx_get_encode_rsl -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_wx_get_essid_rsl -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_wx_get_freq_rsl -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_wx_get_mode_rsl -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_wx_get_name_rsl -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_wx_get_power_rsl -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_wx_get_rate_rsl -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_wx_get_rts_rsl -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_wx_get_scan_rsl -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_wx_get_wap_rsl -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_wx_set_auth_rsl -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_wx_set_encode_ext_rsl -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_wx_set_encode_rsl -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_wx_set_essid_rsl -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_wx_set_freq_rsl -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_wx_set_gen_ie_rsl -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_wx_set_mlme_rsl -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_wx_set_mode_rsl -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_wx_set_power_rsl -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_wx_set_rate_rsl -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_wx_set_rawtx_rsl -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_wx_set_rts_rsl -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_wx_set_scan_rsl -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_wx_set_wap_rsl -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 is_legal_channel -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 notify_wx_assoc_event_rsl -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 rtl8192u_dot11d_init -EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 to_legal_channel -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 __iscsit_check_dataout_hdr -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsi_change_param_sprintf -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsi_find_param_from_key -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsi_target_check_login_request -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_aborted_task -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_add_cmd_to_immediate_queue -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_add_reject -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_allocate_cmd -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_build_datain_pdu -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_build_logout_rsp -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_build_nopin_rsp -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_build_r2ts_for_cmd -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_build_reject -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_build_rsp_pdu -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_build_task_mgt_rsp -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_build_text_rsp -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_cause_connection_reinstatement -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_check_dataout_hdr -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_check_dataout_payload -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_find_cmd_from_itt -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_find_cmd_from_itt_or_dump -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_free_cmd -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_get_datain_values -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_handle_logout_cmd -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_handle_snack -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_handle_task_mgt_cmd -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_immediate_queue -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_increment_maxcmdsn -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_logout_post_handler -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_process_nop_out -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_process_scsi_cmd -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_process_text_cmd -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_queue_rsp -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_register_transport -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_reject_cmd -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_release_cmd -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_response_queue -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_sequence_cmd -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_set_unsolicited_dataout -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_setup_nop_out -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_setup_scsi_cmd -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_setup_text_cmd -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_stop_dataout_timer -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_tmr_post_handler -EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_unregister_transport -EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 __transport_register_session -EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 core_allocate_nexus_loss_ua -EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 core_alua_check_nonop_delay -EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 core_tmr_alloc_req -EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 core_tpg_check_initiator_node_acl -EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 core_tpg_deregister -EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 core_tpg_get_initiator_node_acl -EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 core_tpg_register -EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 core_tpg_set_initiator_node_queue_depth -EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 core_tpg_set_initiator_node_tag -EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 passthrough_attrib_attrs -EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 passthrough_parse_cdb -EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 sbc_attrib_attrs -EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 sbc_dif_copy_prot -EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 sbc_dif_verify -EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 sbc_get_device_type -EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 sbc_get_write_same_sectors -EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 sbc_parse_cdb -EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 spc_emulate_evpd_83 -EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 spc_emulate_inquiry_std -EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 spc_emulate_report_luns -EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 spc_parse_cdb -EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 target_alloc_sgl -EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 target_backend_unregister -EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 target_complete_cmd -EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 target_complete_cmd_with_length -EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 target_configure_unmap_from_queue -EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 target_depend_item -EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 target_execute_cmd -EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 target_free_sgl -EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 target_get_sess_cmd -EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 target_lun_is_rdonly -EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 target_nacl_find_deve -EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 target_put_nacl -EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 target_put_sess_cmd -EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 target_register_template -EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 target_remove_session -EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 target_send_busy -EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 target_sess_cmd_list_set_waiting -EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 target_setup_cmd_from_cdb -EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 target_setup_session -EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 target_show_cmd -EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 target_show_dynamic_sessions -EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 target_submit_cmd -EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 target_submit_cmd_map_sgls -EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 target_submit_tmr -EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 target_to_linux_sector -EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 target_tpg_has_node_acl -EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 target_undepend_item -EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 target_unregister_template -EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 target_wait_for_sess_cmds -EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_alloc_session -EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_alloc_session_tags -EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_backend_register -EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_copy_sense_to_cmd -EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_deregister_session -EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_deregister_session_configfs -EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_free_session -EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_generic_free_cmd -EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_generic_handle_tmr -EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_generic_new_cmd -EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_generic_request_failure -EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_handle_cdb_direct -EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_init_se_cmd -EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_init_session -EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_kmap_data_sg -EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_kunmap_data_sg -EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_lookup_cmd_lun -EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_lookup_tmr_lun -EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_register_session -EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_send_check_condition_and_sense -EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_set_vpd_assoc -EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_set_vpd_ident -EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_set_vpd_ident_type -EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_set_vpd_proto_id -EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_wait_for_tasks -EXPORT_SYMBOL drivers/thermal/intel/int340x_thermal/acpi_thermal_rel 0x00000000 acpi_parse_art -EXPORT_SYMBOL drivers/thermal/intel/int340x_thermal/acpi_thermal_rel 0x00000000 acpi_parse_trt -EXPORT_SYMBOL drivers/thermal/intel/int340x_thermal/acpi_thermal_rel 0x00000000 acpi_thermal_rel_misc_device_add -EXPORT_SYMBOL drivers/thermal/intel/int340x_thermal/acpi_thermal_rel 0x00000000 acpi_thermal_rel_misc_device_remove -EXPORT_SYMBOL drivers/usb/class/cdc-wdm 0x00000000 usb_cdc_wdm_register -EXPORT_SYMBOL drivers/usb/gadget/libcomposite 0x00000000 usb_os_desc_prepare_interf_dir -EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0x00000000 sl811h_driver -EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x00000000 usb_wwan_chars_in_buffer -EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x00000000 usb_wwan_close -EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x00000000 usb_wwan_dtr_rts -EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x00000000 usb_wwan_get_serial_info -EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x00000000 usb_wwan_open -EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x00000000 usb_wwan_port_remove -EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x00000000 usb_wwan_resume -EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x00000000 usb_wwan_set_serial_info -EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x00000000 usb_wwan_suspend -EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x00000000 usb_wwan_tiocmget -EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x00000000 usb_wwan_tiocmset -EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x00000000 usb_wwan_write -EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x00000000 usb_wwan_write_room -EXPORT_SYMBOL drivers/usb/serial/usbserial 0x00000000 usb_serial_resume -EXPORT_SYMBOL drivers/usb/serial/usbserial 0x00000000 usb_serial_suspend -EXPORT_SYMBOL drivers/vfio/mdev/mdev 0x00000000 mdev_dev -EXPORT_SYMBOL drivers/vfio/mdev/mdev 0x00000000 mdev_from_dev -EXPORT_SYMBOL drivers/vfio/mdev/mdev 0x00000000 mdev_get_drvdata -EXPORT_SYMBOL drivers/vfio/mdev/mdev 0x00000000 mdev_get_iommu_device -EXPORT_SYMBOL drivers/vfio/mdev/mdev 0x00000000 mdev_parent_dev -EXPORT_SYMBOL drivers/vfio/mdev/mdev 0x00000000 mdev_register_device -EXPORT_SYMBOL drivers/vfio/mdev/mdev 0x00000000 mdev_register_driver -EXPORT_SYMBOL drivers/vfio/mdev/mdev 0x00000000 mdev_set_drvdata -EXPORT_SYMBOL drivers/vfio/mdev/mdev 0x00000000 mdev_set_iommu_device -EXPORT_SYMBOL drivers/vfio/mdev/mdev 0x00000000 mdev_unregister_device -EXPORT_SYMBOL drivers/vfio/mdev/mdev 0x00000000 mdev_unregister_driver -EXPORT_SYMBOL drivers/vfio/mdev/mdev 0x00000000 mdev_uuid -EXPORT_SYMBOL drivers/vhost/vhost 0x00000000 vhost_chr_poll -EXPORT_SYMBOL drivers/vhost/vhost 0x00000000 vhost_chr_write_iter -EXPORT_SYMBOL drivers/vhost/vringh 0x00000000 vringh_abandon_kern -EXPORT_SYMBOL drivers/vhost/vringh 0x00000000 vringh_abandon_user -EXPORT_SYMBOL drivers/vhost/vringh 0x00000000 vringh_complete_kern -EXPORT_SYMBOL drivers/vhost/vringh 0x00000000 vringh_complete_multi_user -EXPORT_SYMBOL drivers/vhost/vringh 0x00000000 vringh_complete_user -EXPORT_SYMBOL drivers/vhost/vringh 0x00000000 vringh_getdesc_kern -EXPORT_SYMBOL drivers/vhost/vringh 0x00000000 vringh_getdesc_user -EXPORT_SYMBOL drivers/vhost/vringh 0x00000000 vringh_init_kern -EXPORT_SYMBOL drivers/vhost/vringh 0x00000000 vringh_init_user -EXPORT_SYMBOL drivers/vhost/vringh 0x00000000 vringh_iov_pull_kern -EXPORT_SYMBOL drivers/vhost/vringh 0x00000000 vringh_iov_pull_user -EXPORT_SYMBOL drivers/vhost/vringh 0x00000000 vringh_iov_push_kern -EXPORT_SYMBOL drivers/vhost/vringh 0x00000000 vringh_iov_push_user -EXPORT_SYMBOL drivers/vhost/vringh 0x00000000 vringh_need_notify_kern -EXPORT_SYMBOL drivers/vhost/vringh 0x00000000 vringh_need_notify_user -EXPORT_SYMBOL drivers/vhost/vringh 0x00000000 vringh_notify_disable_kern -EXPORT_SYMBOL drivers/vhost/vringh 0x00000000 vringh_notify_disable_user -EXPORT_SYMBOL drivers/vhost/vringh 0x00000000 vringh_notify_enable_kern -EXPORT_SYMBOL drivers/vhost/vringh 0x00000000 vringh_notify_enable_user -EXPORT_SYMBOL drivers/video/backlight/lcd 0x00000000 devm_lcd_device_register -EXPORT_SYMBOL drivers/video/backlight/lcd 0x00000000 devm_lcd_device_unregister -EXPORT_SYMBOL drivers/video/backlight/lcd 0x00000000 lcd_device_register -EXPORT_SYMBOL drivers/video/backlight/lcd 0x00000000 lcd_device_unregister -EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x00000000 svga_check_timings -EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x00000000 svga_compute_pll -EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x00000000 svga_get_caps -EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x00000000 svga_get_tilemax -EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x00000000 svga_match_format -EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x00000000 svga_set_default_atc_regs -EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x00000000 svga_set_default_crt_regs -EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x00000000 svga_set_default_gfx_regs -EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x00000000 svga_set_default_seq_regs -EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x00000000 svga_set_textmode_vga_regs -EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x00000000 svga_set_timings -EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x00000000 svga_settile -EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x00000000 svga_tileblit -EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x00000000 svga_tilecopy -EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x00000000 svga_tilecursor -EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x00000000 svga_tilefill -EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x00000000 svga_wcrt_multi -EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x00000000 svga_wseq_multi -EXPORT_SYMBOL drivers/video/fbdev/core/syscopyarea 0x00000000 sys_copyarea -EXPORT_SYMBOL drivers/video/fbdev/core/sysfillrect 0x00000000 sys_fillrect -EXPORT_SYMBOL drivers/video/fbdev/core/sysimgblt 0x00000000 sys_imageblit -EXPORT_SYMBOL drivers/video/fbdev/cyber2000fb 0x00000000 cyber2000fb_attach -EXPORT_SYMBOL drivers/video/fbdev/cyber2000fb 0x00000000 cyber2000fb_detach -EXPORT_SYMBOL drivers/video/fbdev/cyber2000fb 0x00000000 cyber2000fb_disable_extregs -EXPORT_SYMBOL drivers/video/fbdev/cyber2000fb 0x00000000 cyber2000fb_enable_extregs -EXPORT_SYMBOL drivers/video/fbdev/macmodes 0x00000000 mac_find_mode -EXPORT_SYMBOL drivers/video/fbdev/macmodes 0x00000000 mac_map_monitor_sense -EXPORT_SYMBOL drivers/video/fbdev/macmodes 0x00000000 mac_vmode_to_var -EXPORT_SYMBOL drivers/video/fbdev/matrox/g450_pll 0x00000000 g450_mnp2f -EXPORT_SYMBOL drivers/video/fbdev/matrox/g450_pll 0x00000000 matroxfb_g450_setclk -EXPORT_SYMBOL drivers/video/fbdev/matrox/g450_pll 0x00000000 matroxfb_g450_setpll_cond -EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_DAC1064 0x00000000 DAC1064_global_init -EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_DAC1064 0x00000000 DAC1064_global_restore -EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_DAC1064 0x00000000 matrox_G100 -EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_DAC1064 0x00000000 matrox_mystique -EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_Ti3026 0x00000000 matrox_millennium -EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_accel 0x00000000 matrox_cfbX_init -EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_base 0x00000000 matroxfb_enable_irq -EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_base 0x00000000 matroxfb_register_driver -EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_base 0x00000000 matroxfb_unregister_driver -EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_base 0x00000000 matroxfb_wait_for_sync -EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_g450 0x00000000 matroxfb_g450_connect -EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_g450 0x00000000 matroxfb_g450_shutdown -EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_misc 0x00000000 matroxfb_DAC_in -EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_misc 0x00000000 matroxfb_DAC_out -EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_misc 0x00000000 matroxfb_PLL_calcclock -EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_misc 0x00000000 matroxfb_read_pins -EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_misc 0x00000000 matroxfb_var2my -EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_misc 0x00000000 matroxfb_vgaHWinit -EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_misc 0x00000000 matroxfb_vgaHWrestore -EXPORT_SYMBOL drivers/video/fbdev/sis/sisfb 0x00000000 sis_free -EXPORT_SYMBOL drivers/video/fbdev/sis/sisfb 0x00000000 sis_malloc -EXPORT_SYMBOL drivers/video/vgastate 0x00000000 restore_vga -EXPORT_SYMBOL drivers/video/vgastate 0x00000000 save_vga -EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0x00000000 w1_ds2780_eeprom_cmd -EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0x00000000 w1_ds2780_io -EXPORT_SYMBOL drivers/w1/slaves/w1_ds2781 0x00000000 w1_ds2781_eeprom_cmd -EXPORT_SYMBOL drivers/w1/slaves/w1_ds2781 0x00000000 w1_ds2781_io -EXPORT_SYMBOL drivers/w1/wire 0x00000000 w1_add_master_device -EXPORT_SYMBOL drivers/w1/wire 0x00000000 w1_register_family -EXPORT_SYMBOL drivers/w1/wire 0x00000000 w1_remove_master_device -EXPORT_SYMBOL drivers/w1/wire 0x00000000 w1_unregister_family -EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0x00000000 iTCO_vendor_check_noreboot_on -EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0x00000000 iTCO_vendor_pre_start -EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0x00000000 iTCO_vendor_pre_stop -EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0x00000000 iTCO_vendorsupport -EXPORT_SYMBOL fs/fscache/fscache 0x00000000 __fscache_acquire_cookie -EXPORT_SYMBOL fs/fscache/fscache 0x00000000 __fscache_alloc_page -EXPORT_SYMBOL fs/fscache/fscache 0x00000000 __fscache_attr_changed -EXPORT_SYMBOL fs/fscache/fscache 0x00000000 __fscache_check_consistency -EXPORT_SYMBOL fs/fscache/fscache 0x00000000 __fscache_check_page_write -EXPORT_SYMBOL fs/fscache/fscache 0x00000000 __fscache_disable_cookie -EXPORT_SYMBOL fs/fscache/fscache 0x00000000 __fscache_enable_cookie -EXPORT_SYMBOL fs/fscache/fscache 0x00000000 __fscache_invalidate -EXPORT_SYMBOL fs/fscache/fscache 0x00000000 __fscache_maybe_release_page -EXPORT_SYMBOL fs/fscache/fscache 0x00000000 __fscache_read_or_alloc_page -EXPORT_SYMBOL fs/fscache/fscache 0x00000000 __fscache_read_or_alloc_pages -EXPORT_SYMBOL fs/fscache/fscache 0x00000000 __fscache_readpages_cancel -EXPORT_SYMBOL fs/fscache/fscache 0x00000000 __fscache_register_netfs -EXPORT_SYMBOL fs/fscache/fscache 0x00000000 __fscache_relinquish_cookie -EXPORT_SYMBOL fs/fscache/fscache 0x00000000 __fscache_uncache_all_inode_pages -EXPORT_SYMBOL fs/fscache/fscache 0x00000000 __fscache_uncache_page -EXPORT_SYMBOL fs/fscache/fscache 0x00000000 __fscache_unregister_netfs -EXPORT_SYMBOL fs/fscache/fscache 0x00000000 __fscache_update_cookie -EXPORT_SYMBOL fs/fscache/fscache 0x00000000 __fscache_wait_on_invalidate -EXPORT_SYMBOL fs/fscache/fscache 0x00000000 __fscache_wait_on_page_write -EXPORT_SYMBOL fs/fscache/fscache 0x00000000 __fscache_write_page -EXPORT_SYMBOL fs/fscache/fscache 0x00000000 fscache_add_cache -EXPORT_SYMBOL fs/fscache/fscache 0x00000000 fscache_cache_cleared_wq -EXPORT_SYMBOL fs/fscache/fscache 0x00000000 fscache_check_aux -EXPORT_SYMBOL fs/fscache/fscache 0x00000000 fscache_enqueue_operation -EXPORT_SYMBOL fs/fscache/fscache 0x00000000 fscache_fsdef_index -EXPORT_SYMBOL fs/fscache/fscache 0x00000000 fscache_init_cache -EXPORT_SYMBOL fs/fscache/fscache 0x00000000 fscache_io_error -EXPORT_SYMBOL fs/fscache/fscache 0x00000000 fscache_mark_page_cached -EXPORT_SYMBOL fs/fscache/fscache 0x00000000 fscache_mark_pages_cached -EXPORT_SYMBOL fs/fscache/fscache 0x00000000 fscache_object_destroy -EXPORT_SYMBOL fs/fscache/fscache 0x00000000 fscache_object_init -EXPORT_SYMBOL fs/fscache/fscache 0x00000000 fscache_object_lookup_negative -EXPORT_SYMBOL fs/fscache/fscache 0x00000000 fscache_object_mark_killed -EXPORT_SYMBOL fs/fscache/fscache 0x00000000 fscache_object_retrying_stale -EXPORT_SYMBOL fs/fscache/fscache 0x00000000 fscache_obtained_object -EXPORT_SYMBOL fs/fscache/fscache 0x00000000 fscache_op_complete -EXPORT_SYMBOL fs/fscache/fscache 0x00000000 fscache_op_debug_id -EXPORT_SYMBOL fs/fscache/fscache 0x00000000 fscache_operation_init -EXPORT_SYMBOL fs/fscache/fscache 0x00000000 fscache_put_operation -EXPORT_SYMBOL fs/fscache/fscache 0x00000000 fscache_withdraw_cache -EXPORT_SYMBOL fs/ocfs2/cluster/ocfs2_nodemanager 0x00000000 o2hb_global_heartbeat_active -EXPORT_SYMBOL fs/quota/quota_tree 0x00000000 qtree_delete_dquot -EXPORT_SYMBOL fs/quota/quota_tree 0x00000000 qtree_entry_unused -EXPORT_SYMBOL fs/quota/quota_tree 0x00000000 qtree_get_next_id -EXPORT_SYMBOL fs/quota/quota_tree 0x00000000 qtree_read_dquot -EXPORT_SYMBOL fs/quota/quota_tree 0x00000000 qtree_release_dquot -EXPORT_SYMBOL fs/quota/quota_tree 0x00000000 qtree_write_dquot -EXPORT_SYMBOL lib/crc-itu-t 0x00000000 crc_itu_t -EXPORT_SYMBOL lib/crc-itu-t 0x00000000 crc_itu_t_table -EXPORT_SYMBOL lib/crc7 0x00000000 crc7_be -EXPORT_SYMBOL lib/crc7 0x00000000 crc7_be_syndrome_table -EXPORT_SYMBOL lib/crc8 0x00000000 crc8 -EXPORT_SYMBOL lib/crc8 0x00000000 crc8_populate_lsb -EXPORT_SYMBOL lib/crc8 0x00000000 crc8_populate_msb -EXPORT_SYMBOL lib/crypto/libarc4 0x00000000 arc4_crypt -EXPORT_SYMBOL lib/crypto/libarc4 0x00000000 arc4_setkey -EXPORT_SYMBOL lib/crypto/libblake2s 0x00000000 blake2s256_hmac -EXPORT_SYMBOL lib/crypto/libblake2s 0x00000000 blake2s_final -EXPORT_SYMBOL lib/crypto/libblake2s 0x00000000 blake2s_update -EXPORT_SYMBOL lib/crypto/libblake2s-generic 0x00000000 blake2s_compress_generic -EXPORT_SYMBOL lib/crypto/libchacha 0x00000000 chacha_crypt_generic -EXPORT_SYMBOL lib/crypto/libchacha20poly1305 0x00000000 chacha20poly1305_decrypt -EXPORT_SYMBOL lib/crypto/libchacha20poly1305 0x00000000 chacha20poly1305_decrypt_sg_inplace -EXPORT_SYMBOL lib/crypto/libchacha20poly1305 0x00000000 chacha20poly1305_encrypt -EXPORT_SYMBOL lib/crypto/libchacha20poly1305 0x00000000 chacha20poly1305_encrypt_sg_inplace -EXPORT_SYMBOL lib/crypto/libchacha20poly1305 0x00000000 xchacha20poly1305_decrypt -EXPORT_SYMBOL lib/crypto/libchacha20poly1305 0x00000000 xchacha20poly1305_encrypt -EXPORT_SYMBOL lib/crypto/libcurve25519-generic 0x00000000 curve25519_base_point -EXPORT_SYMBOL lib/crypto/libcurve25519-generic 0x00000000 curve25519_generic -EXPORT_SYMBOL lib/crypto/libcurve25519-generic 0x00000000 curve25519_null_point -EXPORT_SYMBOL lib/crypto/libpoly1305 0x00000000 poly1305_core_blocks -EXPORT_SYMBOL lib/crypto/libpoly1305 0x00000000 poly1305_core_emit -EXPORT_SYMBOL lib/crypto/libpoly1305 0x00000000 poly1305_core_setkey -EXPORT_SYMBOL lib/libcrc32c 0x00000000 crc32c -EXPORT_SYMBOL lib/libcrc32c 0x00000000 crc32c_impl -EXPORT_SYMBOL lib/lru_cache 0x00000000 lc_committed -EXPORT_SYMBOL lib/lru_cache 0x00000000 lc_create -EXPORT_SYMBOL lib/lru_cache 0x00000000 lc_del -EXPORT_SYMBOL lib/lru_cache 0x00000000 lc_destroy -EXPORT_SYMBOL lib/lru_cache 0x00000000 lc_element_by_index -EXPORT_SYMBOL lib/lru_cache 0x00000000 lc_find -EXPORT_SYMBOL lib/lru_cache 0x00000000 lc_get -EXPORT_SYMBOL lib/lru_cache 0x00000000 lc_get_cumulative -EXPORT_SYMBOL lib/lru_cache 0x00000000 lc_index_of -EXPORT_SYMBOL lib/lru_cache 0x00000000 lc_is_used -EXPORT_SYMBOL lib/lru_cache 0x00000000 lc_put -EXPORT_SYMBOL lib/lru_cache 0x00000000 lc_reset -EXPORT_SYMBOL lib/lru_cache 0x00000000 lc_seq_dump_details -EXPORT_SYMBOL lib/lru_cache 0x00000000 lc_seq_printf_stats -EXPORT_SYMBOL lib/lru_cache 0x00000000 lc_set -EXPORT_SYMBOL lib/lru_cache 0x00000000 lc_try_get -EXPORT_SYMBOL lib/lru_cache 0x00000000 lc_try_lock -EXPORT_SYMBOL lib/lz4/lz4hc_compress 0x00000000 LZ4_compress_HC -EXPORT_SYMBOL lib/lz4/lz4hc_compress 0x00000000 LZ4_compress_HC_continue -EXPORT_SYMBOL lib/lz4/lz4hc_compress 0x00000000 LZ4_loadDictHC -EXPORT_SYMBOL lib/lz4/lz4hc_compress 0x00000000 LZ4_saveDictHC -EXPORT_SYMBOL lib/math/cordic 0x00000000 cordic_calc_iq -EXPORT_SYMBOL lib/objagg 0x00000000 objagg_create -EXPORT_SYMBOL lib/objagg 0x00000000 objagg_destroy -EXPORT_SYMBOL lib/objagg 0x00000000 objagg_hints_get -EXPORT_SYMBOL lib/objagg 0x00000000 objagg_hints_put -EXPORT_SYMBOL lib/objagg 0x00000000 objagg_hints_stats_get -EXPORT_SYMBOL lib/objagg 0x00000000 objagg_obj_delta_priv -EXPORT_SYMBOL lib/objagg 0x00000000 objagg_obj_get -EXPORT_SYMBOL lib/objagg 0x00000000 objagg_obj_put -EXPORT_SYMBOL lib/objagg 0x00000000 objagg_obj_raw -EXPORT_SYMBOL lib/objagg 0x00000000 objagg_obj_root_priv -EXPORT_SYMBOL lib/objagg 0x00000000 objagg_stats_get -EXPORT_SYMBOL lib/objagg 0x00000000 objagg_stats_put -EXPORT_SYMBOL lib/parman 0x00000000 parman_create -EXPORT_SYMBOL lib/parman 0x00000000 parman_destroy -EXPORT_SYMBOL lib/parman 0x00000000 parman_item_add -EXPORT_SYMBOL lib/parman 0x00000000 parman_item_remove -EXPORT_SYMBOL lib/parman 0x00000000 parman_prio_fini -EXPORT_SYMBOL lib/parman 0x00000000 parman_prio_init -EXPORT_SYMBOL lib/raid6/raid6_pq 0x00000000 raid6_empty_zero_page -EXPORT_SYMBOL lib/raid6/raid6_pq 0x00000000 raid6_gfexi -EXPORT_SYMBOL lib/raid6/raid6_pq 0x00000000 raid6_gfexp -EXPORT_SYMBOL lib/raid6/raid6_pq 0x00000000 raid6_gfinv -EXPORT_SYMBOL lib/raid6/raid6_pq 0x00000000 raid6_gflog -EXPORT_SYMBOL lib/raid6/raid6_pq 0x00000000 raid6_gfmul -EXPORT_SYMBOL lib/raid6/raid6_pq 0x00000000 raid6_vgfmul -EXPORT_SYMBOL lib/zstd/zstd_compress 0x00000000 ZSTD_CCtxWorkspaceBound -EXPORT_SYMBOL lib/zstd/zstd_compress 0x00000000 ZSTD_CDictWorkspaceBound -EXPORT_SYMBOL lib/zstd/zstd_compress 0x00000000 ZSTD_CStreamInSize -EXPORT_SYMBOL lib/zstd/zstd_compress 0x00000000 ZSTD_CStreamOutSize -EXPORT_SYMBOL lib/zstd/zstd_compress 0x00000000 ZSTD_CStreamWorkspaceBound -EXPORT_SYMBOL lib/zstd/zstd_compress 0x00000000 ZSTD_adjustCParams -EXPORT_SYMBOL lib/zstd/zstd_compress 0x00000000 ZSTD_checkCParams -EXPORT_SYMBOL lib/zstd/zstd_compress 0x00000000 ZSTD_compressBegin -EXPORT_SYMBOL lib/zstd/zstd_compress 0x00000000 ZSTD_compressBegin_advanced -EXPORT_SYMBOL lib/zstd/zstd_compress 0x00000000 ZSTD_compressBegin_usingCDict -EXPORT_SYMBOL lib/zstd/zstd_compress 0x00000000 ZSTD_compressBegin_usingDict -EXPORT_SYMBOL lib/zstd/zstd_compress 0x00000000 ZSTD_compressBlock -EXPORT_SYMBOL lib/zstd/zstd_compress 0x00000000 ZSTD_compressBound -EXPORT_SYMBOL lib/zstd/zstd_compress 0x00000000 ZSTD_compressCCtx -EXPORT_SYMBOL lib/zstd/zstd_compress 0x00000000 ZSTD_compressContinue -EXPORT_SYMBOL lib/zstd/zstd_compress 0x00000000 ZSTD_compressEnd -EXPORT_SYMBOL lib/zstd/zstd_compress 0x00000000 ZSTD_compressStream -EXPORT_SYMBOL lib/zstd/zstd_compress 0x00000000 ZSTD_compress_usingCDict -EXPORT_SYMBOL lib/zstd/zstd_compress 0x00000000 ZSTD_compress_usingDict -EXPORT_SYMBOL lib/zstd/zstd_compress 0x00000000 ZSTD_copyCCtx -EXPORT_SYMBOL lib/zstd/zstd_compress 0x00000000 ZSTD_endStream -EXPORT_SYMBOL lib/zstd/zstd_compress 0x00000000 ZSTD_flushStream -EXPORT_SYMBOL lib/zstd/zstd_compress 0x00000000 ZSTD_getBlockSizeMax -EXPORT_SYMBOL lib/zstd/zstd_compress 0x00000000 ZSTD_getCParams -EXPORT_SYMBOL lib/zstd/zstd_compress 0x00000000 ZSTD_getParams -EXPORT_SYMBOL lib/zstd/zstd_compress 0x00000000 ZSTD_initCCtx -EXPORT_SYMBOL lib/zstd/zstd_compress 0x00000000 ZSTD_initCDict -EXPORT_SYMBOL lib/zstd/zstd_compress 0x00000000 ZSTD_initCStream -EXPORT_SYMBOL lib/zstd/zstd_compress 0x00000000 ZSTD_initCStream_usingCDict -EXPORT_SYMBOL lib/zstd/zstd_compress 0x00000000 ZSTD_maxCLevel -EXPORT_SYMBOL lib/zstd/zstd_compress 0x00000000 ZSTD_resetCStream -EXPORT_SYMBOL net/6lowpan/6lowpan 0x00000000 lowpan_nhc_add -EXPORT_SYMBOL net/6lowpan/6lowpan 0x00000000 lowpan_nhc_del -EXPORT_SYMBOL net/6lowpan/6lowpan 0x00000000 lowpan_register_netdev -EXPORT_SYMBOL net/6lowpan/6lowpan 0x00000000 lowpan_register_netdevice -EXPORT_SYMBOL net/6lowpan/6lowpan 0x00000000 lowpan_unregister_netdev -EXPORT_SYMBOL net/6lowpan/6lowpan 0x00000000 lowpan_unregister_netdevice -EXPORT_SYMBOL net/802/p8022 0x00000000 register_8022_client -EXPORT_SYMBOL net/802/p8022 0x00000000 unregister_8022_client -EXPORT_SYMBOL net/802/psnap 0x00000000 register_snap_client -EXPORT_SYMBOL net/802/psnap 0x00000000 unregister_snap_client -EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_attach -EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_begin_disconnect -EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_cb -EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_clunk -EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_create -EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_create_dotl -EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_destroy -EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_disconnect -EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_fcreate -EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_fsync -EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_getattr_dotl -EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_getlock_dotl -EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_link -EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_lock_dotl -EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_mkdir_dotl -EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_mknod_dotl -EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_open -EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_read -EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_readdir -EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_readlink -EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_remove -EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_rename -EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_renameat -EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_setattr -EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_stat -EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_statfs -EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_symlink -EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_unlinkat -EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_walk -EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_write -EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_wstat -EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_error_init -EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_errstr2errno -EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_fcall_fini -EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_is_proto_dotl -EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_is_proto_dotu -EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_parse_header -EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_release_pages -EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_req_put -EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_show_client_options -EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_tag_lookup -EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9dirent_read -EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9stat_free -EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9stat_read -EXPORT_SYMBOL net/9p/9pnet 0x00000000 v9fs_get_default_trans -EXPORT_SYMBOL net/9p/9pnet 0x00000000 v9fs_get_trans_by_name -EXPORT_SYMBOL net/9p/9pnet 0x00000000 v9fs_register_trans -EXPORT_SYMBOL net/9p/9pnet 0x00000000 v9fs_unregister_trans -EXPORT_SYMBOL net/appletalk/appletalk 0x00000000 aarp_send_ddp -EXPORT_SYMBOL net/appletalk/appletalk 0x00000000 alloc_ltalkdev -EXPORT_SYMBOL net/appletalk/appletalk 0x00000000 atalk_find_dev_addr -EXPORT_SYMBOL net/appletalk/appletalk 0x00000000 atrtr_get_dev -EXPORT_SYMBOL net/atm/atm 0x00000000 atm_alloc_charge -EXPORT_SYMBOL net/atm/atm 0x00000000 atm_charge -EXPORT_SYMBOL net/atm/atm 0x00000000 atm_dev_deregister -EXPORT_SYMBOL net/atm/atm 0x00000000 atm_dev_lookup -EXPORT_SYMBOL net/atm/atm 0x00000000 atm_dev_register -EXPORT_SYMBOL net/atm/atm 0x00000000 atm_dev_release_vccs -EXPORT_SYMBOL net/atm/atm 0x00000000 atm_dev_signal_change -EXPORT_SYMBOL net/atm/atm 0x00000000 atm_init_aal5 -EXPORT_SYMBOL net/atm/atm 0x00000000 atm_pcr_goal -EXPORT_SYMBOL net/atm/atm 0x00000000 atm_proc_root -EXPORT_SYMBOL net/atm/atm 0x00000000 deregister_atm_ioctl -EXPORT_SYMBOL net/atm/atm 0x00000000 register_atm_ioctl -EXPORT_SYMBOL net/atm/atm 0x00000000 sonet_copy_stats -EXPORT_SYMBOL net/atm/atm 0x00000000 sonet_subtract_stats -EXPORT_SYMBOL net/atm/atm 0x00000000 vcc_hash -EXPORT_SYMBOL net/atm/atm 0x00000000 vcc_insert_socket -EXPORT_SYMBOL net/atm/atm 0x00000000 vcc_process_recv_queue -EXPORT_SYMBOL net/atm/atm 0x00000000 vcc_release_async -EXPORT_SYMBOL net/atm/atm 0x00000000 vcc_sklist_lock -EXPORT_SYMBOL net/ax25/ax25 0x00000000 asc2ax -EXPORT_SYMBOL net/ax25/ax25 0x00000000 ax25_display_timer -EXPORT_SYMBOL net/ax25/ax25 0x00000000 ax25_find_cb -EXPORT_SYMBOL net/ax25/ax25 0x00000000 ax25_findbyuid -EXPORT_SYMBOL net/ax25/ax25 0x00000000 ax25_header_ops -EXPORT_SYMBOL net/ax25/ax25 0x00000000 ax25_ip_xmit -EXPORT_SYMBOL net/ax25/ax25 0x00000000 ax25_linkfail_register -EXPORT_SYMBOL net/ax25/ax25 0x00000000 ax25_linkfail_release -EXPORT_SYMBOL net/ax25/ax25 0x00000000 ax25_listen_register -EXPORT_SYMBOL net/ax25/ax25 0x00000000 ax25_listen_release -EXPORT_SYMBOL net/ax25/ax25 0x00000000 ax25_protocol_release -EXPORT_SYMBOL net/ax25/ax25 0x00000000 ax25_send_frame -EXPORT_SYMBOL net/ax25/ax25 0x00000000 ax25_uid_policy -EXPORT_SYMBOL net/ax25/ax25 0x00000000 ax25cmp -EXPORT_SYMBOL net/ax25/ax25 0x00000000 ax2asc -EXPORT_SYMBOL net/ax25/ax25 0x00000000 null_ax25_address -EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 __hci_cmd_send -EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 __hci_cmd_sync -EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 __hci_cmd_sync_ev -EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 baswap -EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 bt_accept_dequeue -EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 bt_accept_enqueue -EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 bt_accept_unlink -EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 bt_err -EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 bt_err_ratelimited -EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 bt_info -EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 bt_procfs_cleanup -EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 bt_procfs_init -EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 bt_sock_ioctl -EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 bt_sock_link -EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 bt_sock_poll -EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 bt_sock_reclassify_lock -EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 bt_sock_recvmsg -EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 bt_sock_register -EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 bt_sock_stream_recvmsg -EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 bt_sock_unlink -EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 bt_sock_unregister -EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 bt_sock_wait_ready -EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 bt_sock_wait_state -EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 bt_to_errno -EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 bt_warn -EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 bt_warn_ratelimited -EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 hci_alloc_dev -EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 hci_cmd_sync -EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 hci_conn_check_secure -EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 hci_conn_security -EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 hci_conn_switch_role -EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 hci_free_dev -EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 hci_get_route -EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 hci_mgmt_chan_register -EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 hci_mgmt_chan_unregister -EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 hci_recv_diag -EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 hci_recv_frame -EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 hci_register_cb -EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 hci_register_dev -EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 hci_reset_dev -EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 hci_resume_dev -EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 hci_set_fw_info -EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 hci_set_hw_info -EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 hci_suspend_dev -EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 hci_unregister_cb -EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 hci_unregister_dev -EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 l2cap_chan_close -EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 l2cap_conn_get -EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 l2cap_conn_put -EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 l2cap_is_socket -EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 l2cap_register_user -EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 l2cap_unregister_user -EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x00000000 ebt_do_table -EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x00000000 ebt_register_table -EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x00000000 ebt_unregister_table -EXPORT_SYMBOL net/caif/caif 0x00000000 caif_client_register_refcnt -EXPORT_SYMBOL net/caif/caif 0x00000000 caif_connect_client -EXPORT_SYMBOL net/caif/caif 0x00000000 caif_disconnect_client -EXPORT_SYMBOL net/caif/caif 0x00000000 caif_enroll_dev -EXPORT_SYMBOL net/caif/caif 0x00000000 caif_free_client -EXPORT_SYMBOL net/caif/caif 0x00000000 cfcnfg_add_phy_layer -EXPORT_SYMBOL net/caif/caif 0x00000000 cfcnfg_del_phy_layer -EXPORT_SYMBOL net/caif/caif 0x00000000 cfcnfg_set_phy_state -EXPORT_SYMBOL net/caif/caif 0x00000000 cfpkt_add_head -EXPORT_SYMBOL net/caif/caif 0x00000000 cfpkt_extr_head -EXPORT_SYMBOL net/caif/caif 0x00000000 cfpkt_fromnative -EXPORT_SYMBOL net/caif/caif 0x00000000 cfpkt_info -EXPORT_SYMBOL net/caif/caif 0x00000000 cfpkt_set_prio -EXPORT_SYMBOL net/caif/caif 0x00000000 cfpkt_tonative -EXPORT_SYMBOL net/caif/caif 0x00000000 get_cfcnfg -EXPORT_SYMBOL net/can/can 0x00000000 can_proto_register -EXPORT_SYMBOL net/can/can 0x00000000 can_proto_unregister -EXPORT_SYMBOL net/can/can 0x00000000 can_rx_register -EXPORT_SYMBOL net/can/can 0x00000000 can_rx_unregister -EXPORT_SYMBOL net/can/can 0x00000000 can_send -EXPORT_SYMBOL net/can/can 0x00000000 can_sock_destruct -EXPORT_SYMBOL net/ceph/libceph 0x00000000 __ceph_open_session -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_alloc_options -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_alloc_page_vector -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_auth_add_authorizer_challenge -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_auth_create_authorizer -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_auth_destroy_authorizer -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_auth_invalidate_authorizer -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_auth_is_authenticated -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_auth_update_authorizer -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_auth_verify_authorizer_reply -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_buffer_new -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_buffer_release -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_calc_file_object_mapping -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_check_fsid -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_client_addr -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_client_gid -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_cls_assert_locked -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_cls_break_lock -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_cls_lock -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_cls_lock_info -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_cls_set_cookie -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_cls_unlock -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_compare_options -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_con_close -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_con_init -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_con_keepalive -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_con_open -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_con_send -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_copy_from_page_vector -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_copy_to_page_vector -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_copy_user_to_page_vector -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_create_client -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_create_snap_context -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_decode_entity_addr -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_destroy_client -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_destroy_options -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_entity_type_name -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_extent_to_file -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_file_to_extents -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_find_or_create_string -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_free_lockers -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_get_num_objects -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_get_snap_context -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_iterate_extents -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_messenger_fini -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_messenger_init -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_monc_blacklist_add -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_monc_do_statfs -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_monc_get_version -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_monc_get_version_async -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_monc_got_map -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_monc_init -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_monc_open_session -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_monc_renew_subs -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_monc_stop -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_monc_validate_auth -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_monc_wait_osdmap -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_monc_want_map -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_msg_data_add_bio -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_msg_data_add_bvecs -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_msg_data_add_pagelist -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_msg_data_add_pages -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_msg_dump -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_msg_get -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_msg_new -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_msg_new2 -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_msg_put -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_msg_type_name -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_msgr_flush -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_object_locator_to_pg -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_oid_aprintf -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_oid_copy -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_oid_destroy -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_oid_printf -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_oloc_copy -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_oloc_destroy -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_open_session -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_osdc_abort_requests -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_osdc_alloc_messages -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_osdc_alloc_request -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_osdc_call -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_osdc_cancel_request -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_osdc_clear_abort_err -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_osdc_copy_from -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_osdc_flush_notifies -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_osdc_get_request -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_osdc_list_watchers -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_osdc_maybe_request_map -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_osdc_new_request -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_osdc_notify -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_osdc_notify_ack -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_osdc_put_request -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_osdc_readpages -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_osdc_start_request -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_osdc_sync -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_osdc_unwatch -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_osdc_update_epoch_barrier -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_osdc_wait_request -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_osdc_watch -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_osdc_writepages -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_pagelist_alloc -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_pagelist_append -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_pagelist_free_reserve -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_pagelist_release -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_pagelist_reserve -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_pagelist_set_cursor -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_pagelist_truncate -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_parse_mon_ips -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_parse_param -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_pg_pool_flags -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_pg_pool_name_by_id -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_pg_poolid_by_name -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_pg_to_acting_primary -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_pr_addr -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_print_client_options -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_put_page_vector -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_put_snap_context -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_release_page_vector -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_release_string -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_reset_client_addr -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_str_hash -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_str_hash_name -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_wait_for_latest_osdmap -EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_zero_page_vector_range -EXPORT_SYMBOL net/ceph/libceph 0x00000000 libceph_compatible -EXPORT_SYMBOL net/ceph/libceph 0x00000000 osd_req_op_alloc_hint_init -EXPORT_SYMBOL net/ceph/libceph 0x00000000 osd_req_op_cls_init -EXPORT_SYMBOL net/ceph/libceph 0x00000000 osd_req_op_cls_request_data_bvecs -EXPORT_SYMBOL net/ceph/libceph 0x00000000 osd_req_op_cls_request_data_pagelist -EXPORT_SYMBOL net/ceph/libceph 0x00000000 osd_req_op_cls_request_data_pages -EXPORT_SYMBOL net/ceph/libceph 0x00000000 osd_req_op_cls_response_data_pages -EXPORT_SYMBOL net/ceph/libceph 0x00000000 osd_req_op_extent_dup_last -EXPORT_SYMBOL net/ceph/libceph 0x00000000 osd_req_op_extent_init -EXPORT_SYMBOL net/ceph/libceph 0x00000000 osd_req_op_extent_osd_data -EXPORT_SYMBOL net/ceph/libceph 0x00000000 osd_req_op_extent_osd_data_bio -EXPORT_SYMBOL net/ceph/libceph 0x00000000 osd_req_op_extent_osd_data_bvec_pos -EXPORT_SYMBOL net/ceph/libceph 0x00000000 osd_req_op_extent_osd_data_bvecs -EXPORT_SYMBOL net/ceph/libceph 0x00000000 osd_req_op_extent_osd_data_pagelist -EXPORT_SYMBOL net/ceph/libceph 0x00000000 osd_req_op_extent_osd_data_pages -EXPORT_SYMBOL net/ceph/libceph 0x00000000 osd_req_op_extent_update -EXPORT_SYMBOL net/ceph/libceph 0x00000000 osd_req_op_init -EXPORT_SYMBOL net/ceph/libceph 0x00000000 osd_req_op_raw_data_in_pages -EXPORT_SYMBOL net/ceph/libceph 0x00000000 osd_req_op_xattr_init -EXPORT_SYMBOL net/dccp/dccp_ipv4 0x00000000 dccp_req_err -EXPORT_SYMBOL net/dccp/dccp_ipv4 0x00000000 dccp_syn_ack_timeout -EXPORT_SYMBOL net/dsa/dsa_core 0x00000000 dsa_port_vid_add -EXPORT_SYMBOL net/dsa/dsa_core 0x00000000 dsa_port_vid_del -EXPORT_SYMBOL net/ieee802154/ieee802154 0x00000000 wpan_phy_find -EXPORT_SYMBOL net/ieee802154/ieee802154 0x00000000 wpan_phy_for_each -EXPORT_SYMBOL net/ieee802154/ieee802154 0x00000000 wpan_phy_free -EXPORT_SYMBOL net/ieee802154/ieee802154 0x00000000 wpan_phy_new -EXPORT_SYMBOL net/ieee802154/ieee802154 0x00000000 wpan_phy_register -EXPORT_SYMBOL net/ieee802154/ieee802154 0x00000000 wpan_phy_unregister -EXPORT_SYMBOL net/ipv4/fou 0x00000000 __fou_build_header -EXPORT_SYMBOL net/ipv4/fou 0x00000000 __gue_build_header -EXPORT_SYMBOL net/ipv4/fou 0x00000000 fou_encap_hlen -EXPORT_SYMBOL net/ipv4/fou 0x00000000 gue_encap_hlen -EXPORT_SYMBOL net/ipv4/gre 0x00000000 gre_parse_header -EXPORT_SYMBOL net/ipv4/ip_tunnel 0x00000000 ip_tunnel_encap_add_ops -EXPORT_SYMBOL net/ipv4/ip_tunnel 0x00000000 ip_tunnel_encap_del_ops -EXPORT_SYMBOL net/ipv4/ip_tunnel 0x00000000 ip_tunnel_get_iflink -EXPORT_SYMBOL net/ipv4/ip_tunnel 0x00000000 ip_tunnel_get_link_net -EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x00000000 arpt_do_table -EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x00000000 arpt_register_table -EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x00000000 arpt_unregister_table -EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x00000000 ipt_do_table -EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x00000000 ipt_register_table -EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x00000000 ipt_unregister_table -EXPORT_SYMBOL net/ipv4/tunnel4 0x00000000 xfrm4_tunnel_deregister -EXPORT_SYMBOL net/ipv4/tunnel4 0x00000000 xfrm4_tunnel_register -EXPORT_SYMBOL net/ipv4/udp_tunnel 0x00000000 udp_sock_create4 -EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x00000000 ip6_tnl_change_mtu -EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x00000000 ip6_tnl_encap_add_ops -EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x00000000 ip6_tnl_encap_del_ops -EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x00000000 ip6_tnl_get_cap -EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x00000000 ip6_tnl_get_iflink -EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x00000000 ip6_tnl_get_link_net -EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x00000000 ip6_tnl_parse_tlv_enc_lim -EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x00000000 ip6_tnl_rcv -EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x00000000 ip6_tnl_xmit -EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x00000000 ip6t_do_table -EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x00000000 ip6t_register_table -EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x00000000 ip6t_unregister_table -EXPORT_SYMBOL net/ipv6/tunnel6 0x00000000 xfrm6_tunnel_deregister -EXPORT_SYMBOL net/ipv6/tunnel6 0x00000000 xfrm6_tunnel_register -EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x00000000 xfrm6_tunnel_alloc_spi -EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x00000000 xfrm6_tunnel_spi_lookup -EXPORT_SYMBOL net/l2tp/l2tp_core 0x00000000 l2tp_recv_common -EXPORT_SYMBOL net/l2tp/l2tp_core 0x00000000 l2tp_tunnel_free -EXPORT_SYMBOL net/l2tp/l2tp_ip 0x00000000 l2tp_ioctl -EXPORT_SYMBOL net/lapb/lapb 0x00000000 lapb_connect_request -EXPORT_SYMBOL net/lapb/lapb 0x00000000 lapb_data_received -EXPORT_SYMBOL net/lapb/lapb 0x00000000 lapb_data_request -EXPORT_SYMBOL net/lapb/lapb 0x00000000 lapb_disconnect_request -EXPORT_SYMBOL net/lapb/lapb 0x00000000 lapb_getparms -EXPORT_SYMBOL net/lapb/lapb 0x00000000 lapb_register -EXPORT_SYMBOL net/lapb/lapb 0x00000000 lapb_setparms -EXPORT_SYMBOL net/lapb/lapb 0x00000000 lapb_unregister -EXPORT_SYMBOL net/llc/llc 0x00000000 llc_add_pack -EXPORT_SYMBOL net/llc/llc 0x00000000 llc_build_and_send_ui_pkt -EXPORT_SYMBOL net/llc/llc 0x00000000 llc_mac_hdr_init -EXPORT_SYMBOL net/llc/llc 0x00000000 llc_remove_pack -EXPORT_SYMBOL net/llc/llc 0x00000000 llc_sap_close -EXPORT_SYMBOL net/llc/llc 0x00000000 llc_sap_find -EXPORT_SYMBOL net/llc/llc 0x00000000 llc_sap_list -EXPORT_SYMBOL net/llc/llc 0x00000000 llc_sap_open -EXPORT_SYMBOL net/llc/llc 0x00000000 llc_set_station_handler -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 __ieee80211_create_tpt_led_trigger -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 __ieee80211_get_assoc_led_name -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 __ieee80211_get_radio_led_name -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 __ieee80211_get_rx_led_name -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 __ieee80211_get_tx_led_name -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 __ieee80211_schedule_txq -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_alloc_hw_nm -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_ap_probereq_get -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_beacon_get_template -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_beacon_get_tim -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_beacon_loss -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_chswitch_done -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_connection_loss -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_cqm_beacon_loss_notify -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_cqm_rssi_notify -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_csa_finish -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_csa_is_complete -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_csa_set_counter -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_csa_update_counter -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_ctstoself_duration -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_ctstoself_get -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_disable_rssi_reports -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_enable_rssi_reports -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_find_sta -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_free_hw -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_free_txskb -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_generic_frame_duration -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_get_buffered_bc -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_get_key_rx_seq -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_get_tkip_p1k_iv -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_get_tkip_p2k -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_get_tkip_rx_p1k -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_get_tx_rates -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_iter_keys -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_iter_keys_rcu -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_manage_rx_ba_offl -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_mark_rx_ba_filtered_frames -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_nan_func_match -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_nan_func_terminated -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_next_txq -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_nullfunc_get -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_parse_p2p_noa -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_probereq_get -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_proberesp_get -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_pspoll_get -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_queue_delayed_work -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_queue_stopped -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_queue_work -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_radar_detected -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_rate_control_register -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_rate_control_unregister -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_register_hw -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_report_low_ack -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_report_wowlan_wakeup -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_reserve_tid -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_restart_hw -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_rts_duration -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_rts_get -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_rx_ba_timer_expired -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_rx_irqsafe -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_rx_napi -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_scan_completed -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_sched_scan_results -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_sched_scan_stopped -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_send_bar -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_send_eosp_nullfunc -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_sta_block_awake -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_sta_eosp -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_sta_ps_transition -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_sta_pspoll -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_sta_register_airtime -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_sta_set_buffered -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_sta_uapsd_trigger -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_start_tx_ba_cb_irqsafe -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_start_tx_ba_session -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_stop_queue -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_stop_queues -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_stop_rx_ba_session -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_stop_tx_ba_cb_irqsafe -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_stop_tx_ba_session -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_tdls_oper_request -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_tx_dequeue -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_tx_prepare_skb -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_tx_rate_update -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_tx_status -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_tx_status_ext -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_tx_status_irqsafe -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_txq_airtime_check -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_txq_get_depth -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_txq_may_transmit -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_txq_schedule_start -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_unregister_hw -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_unreserve_tid -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_update_p2p_noa -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_wake_queue -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_wake_queues -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 rate_control_set_rates -EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 wiphy_to_ieee80211_hw -EXPORT_SYMBOL net/mac802154/mac802154 0x00000000 ieee802154_alloc_hw -EXPORT_SYMBOL net/mac802154/mac802154 0x00000000 ieee802154_free_hw -EXPORT_SYMBOL net/mac802154/mac802154 0x00000000 ieee802154_register_hw -EXPORT_SYMBOL net/mac802154/mac802154 0x00000000 ieee802154_rx_irqsafe -EXPORT_SYMBOL net/mac802154/mac802154 0x00000000 ieee802154_stop_queue -EXPORT_SYMBOL net/mac802154/mac802154 0x00000000 ieee802154_unregister_hw -EXPORT_SYMBOL net/mac802154/mac802154 0x00000000 ieee802154_wake_queue -EXPORT_SYMBOL net/mac802154/mac802154 0x00000000 ieee802154_xmit_complete -EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x00000000 ip_vs_conn_in_get -EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x00000000 ip_vs_conn_new -EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x00000000 ip_vs_conn_out_get -EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x00000000 ip_vs_conn_put -EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x00000000 ip_vs_new_conn_out -EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x00000000 ip_vs_nfct_expect_related -EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x00000000 ip_vs_proto_data_get -EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x00000000 ip_vs_proto_get -EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x00000000 ip_vs_proto_name -EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x00000000 ip_vs_scheduler_err -EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x00000000 ip_vs_tcp_conn_listen -EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x00000000 register_ip_vs_app -EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x00000000 register_ip_vs_app_inc -EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x00000000 register_ip_vs_scheduler -EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x00000000 unregister_ip_vs_app -EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x00000000 unregister_ip_vs_scheduler -EXPORT_SYMBOL net/netfilter/nf_conntrack 0x00000000 nf_ct_ext_add -EXPORT_SYMBOL net/netfilter/nf_conntrack_pptp 0x00000000 pptp_msg_name -EXPORT_SYMBOL net/netfilter/nf_nat 0x00000000 __nf_nat_mangle_tcp_packet -EXPORT_SYMBOL net/netfilter/nf_nat 0x00000000 nf_nat_follow_master -EXPORT_SYMBOL net/netfilter/nf_nat 0x00000000 nf_nat_mangle_udp_packet -EXPORT_SYMBOL net/netfilter/nf_nat 0x00000000 nf_nat_setup_info -EXPORT_SYMBOL net/netfilter/nf_nat 0x00000000 nf_xfrm_me_harder -EXPORT_SYMBOL net/netfilter/nft_fib 0x00000000 nft_fib_policy -EXPORT_SYMBOL net/netfilter/x_tables 0x00000000 xt_alloc_entry_offsets -EXPORT_SYMBOL net/netfilter/x_tables 0x00000000 xt_alloc_table_info -EXPORT_SYMBOL net/netfilter/x_tables 0x00000000 xt_check_entry_offsets -EXPORT_SYMBOL net/netfilter/x_tables 0x00000000 xt_check_proc_name -EXPORT_SYMBOL net/netfilter/x_tables 0x00000000 xt_check_table_hooks -EXPORT_SYMBOL net/netfilter/x_tables 0x00000000 xt_compat_check_entry_offsets -EXPORT_SYMBOL net/netfilter/x_tables 0x00000000 xt_compat_init_offsets -EXPORT_SYMBOL net/netfilter/x_tables 0x00000000 xt_counters_alloc -EXPORT_SYMBOL net/netfilter/x_tables 0x00000000 xt_find_jump_offset -EXPORT_SYMBOL net/netfilter/x_tables 0x00000000 xt_find_match -EXPORT_SYMBOL net/netfilter/x_tables 0x00000000 xt_free_table_info -EXPORT_SYMBOL net/netfilter/x_tables 0x00000000 xt_register_match -EXPORT_SYMBOL net/netfilter/x_tables 0x00000000 xt_register_matches -EXPORT_SYMBOL net/netfilter/x_tables 0x00000000 xt_register_target -EXPORT_SYMBOL net/netfilter/x_tables 0x00000000 xt_register_targets -EXPORT_SYMBOL net/netfilter/x_tables 0x00000000 xt_unregister_match -EXPORT_SYMBOL net/netfilter/x_tables 0x00000000 xt_unregister_matches -EXPORT_SYMBOL net/netfilter/x_tables 0x00000000 xt_unregister_target -EXPORT_SYMBOL net/netfilter/x_tables 0x00000000 xt_unregister_targets -EXPORT_SYMBOL net/nfc/hci/hci 0x00000000 nfc_hci_allocate_device -EXPORT_SYMBOL net/nfc/hci/hci 0x00000000 nfc_hci_connect_gate -EXPORT_SYMBOL net/nfc/hci/hci 0x00000000 nfc_hci_disconnect_all_gates -EXPORT_SYMBOL net/nfc/hci/hci 0x00000000 nfc_hci_disconnect_gate -EXPORT_SYMBOL net/nfc/hci/hci 0x00000000 nfc_hci_driver_failure -EXPORT_SYMBOL net/nfc/hci/hci 0x00000000 nfc_hci_free_device -EXPORT_SYMBOL net/nfc/hci/hci 0x00000000 nfc_hci_get_clientdata -EXPORT_SYMBOL net/nfc/hci/hci 0x00000000 nfc_hci_get_param -EXPORT_SYMBOL net/nfc/hci/hci 0x00000000 nfc_hci_recv_frame -EXPORT_SYMBOL net/nfc/hci/hci 0x00000000 nfc_hci_register_device -EXPORT_SYMBOL net/nfc/hci/hci 0x00000000 nfc_hci_reset_pipes -EXPORT_SYMBOL net/nfc/hci/hci 0x00000000 nfc_hci_reset_pipes_per_host -EXPORT_SYMBOL net/nfc/hci/hci 0x00000000 nfc_hci_result_to_errno -EXPORT_SYMBOL net/nfc/hci/hci 0x00000000 nfc_hci_sak_to_protocol -EXPORT_SYMBOL net/nfc/hci/hci 0x00000000 nfc_hci_send_cmd -EXPORT_SYMBOL net/nfc/hci/hci 0x00000000 nfc_hci_send_cmd_async -EXPORT_SYMBOL net/nfc/hci/hci 0x00000000 nfc_hci_send_event -EXPORT_SYMBOL net/nfc/hci/hci 0x00000000 nfc_hci_set_clientdata -EXPORT_SYMBOL net/nfc/hci/hci 0x00000000 nfc_hci_set_param -EXPORT_SYMBOL net/nfc/hci/hci 0x00000000 nfc_hci_target_discovered -EXPORT_SYMBOL net/nfc/hci/hci 0x00000000 nfc_hci_unregister_device -EXPORT_SYMBOL net/nfc/hci/hci 0x00000000 nfc_llc_start -EXPORT_SYMBOL net/nfc/hci/hci 0x00000000 nfc_llc_stop -EXPORT_SYMBOL net/nfc/nci/nci 0x00000000 nci_allocate_device -EXPORT_SYMBOL net/nfc/nci/nci 0x00000000 nci_conn_max_data_pkt_payload_size -EXPORT_SYMBOL net/nfc/nci/nci 0x00000000 nci_core_cmd -EXPORT_SYMBOL net/nfc/nci/nci 0x00000000 nci_core_conn_close -EXPORT_SYMBOL net/nfc/nci/nci 0x00000000 nci_core_conn_create -EXPORT_SYMBOL net/nfc/nci/nci 0x00000000 nci_core_init -EXPORT_SYMBOL net/nfc/nci/nci 0x00000000 nci_core_reset -EXPORT_SYMBOL net/nfc/nci/nci 0x00000000 nci_free_device -EXPORT_SYMBOL net/nfc/nci/nci 0x00000000 nci_get_conn_info_by_dest_type_params -EXPORT_SYMBOL net/nfc/nci/nci 0x00000000 nci_hci_clear_all_pipes -EXPORT_SYMBOL net/nfc/nci/nci 0x00000000 nci_hci_connect_gate -EXPORT_SYMBOL net/nfc/nci/nci 0x00000000 nci_hci_dev_session_init -EXPORT_SYMBOL net/nfc/nci/nci 0x00000000 nci_hci_get_param -EXPORT_SYMBOL net/nfc/nci/nci 0x00000000 nci_hci_open_pipe -EXPORT_SYMBOL net/nfc/nci/nci 0x00000000 nci_hci_send_cmd -EXPORT_SYMBOL net/nfc/nci/nci 0x00000000 nci_hci_send_event -EXPORT_SYMBOL net/nfc/nci/nci 0x00000000 nci_hci_set_param -EXPORT_SYMBOL net/nfc/nci/nci 0x00000000 nci_nfcc_loopback -EXPORT_SYMBOL net/nfc/nci/nci 0x00000000 nci_nfcee_discover -EXPORT_SYMBOL net/nfc/nci/nci 0x00000000 nci_nfcee_mode_set -EXPORT_SYMBOL net/nfc/nci/nci 0x00000000 nci_prop_cmd -EXPORT_SYMBOL net/nfc/nci/nci 0x00000000 nci_recv_frame -EXPORT_SYMBOL net/nfc/nci/nci 0x00000000 nci_register_device -EXPORT_SYMBOL net/nfc/nci/nci 0x00000000 nci_req_complete -EXPORT_SYMBOL net/nfc/nci/nci 0x00000000 nci_send_cmd -EXPORT_SYMBOL net/nfc/nci/nci 0x00000000 nci_send_data -EXPORT_SYMBOL net/nfc/nci/nci 0x00000000 nci_send_frame -EXPORT_SYMBOL net/nfc/nci/nci 0x00000000 nci_set_config -EXPORT_SYMBOL net/nfc/nci/nci 0x00000000 nci_to_errno -EXPORT_SYMBOL net/nfc/nci/nci 0x00000000 nci_unregister_device -EXPORT_SYMBOL net/nfc/nfc 0x00000000 __nfc_alloc_vendor_cmd_reply_skb -EXPORT_SYMBOL net/nfc/nfc 0x00000000 nfc_add_se -EXPORT_SYMBOL net/nfc/nfc 0x00000000 nfc_alloc_recv_skb -EXPORT_SYMBOL net/nfc/nfc 0x00000000 nfc_allocate_device -EXPORT_SYMBOL net/nfc/nfc 0x00000000 nfc_class -EXPORT_SYMBOL net/nfc/nfc 0x00000000 nfc_dep_link_is_up -EXPORT_SYMBOL net/nfc/nfc 0x00000000 nfc_driver_failure -EXPORT_SYMBOL net/nfc/nfc 0x00000000 nfc_find_se -EXPORT_SYMBOL net/nfc/nfc 0x00000000 nfc_fw_download_done -EXPORT_SYMBOL net/nfc/nfc 0x00000000 nfc_get_local_general_bytes -EXPORT_SYMBOL net/nfc/nfc 0x00000000 nfc_proto_register -EXPORT_SYMBOL net/nfc/nfc 0x00000000 nfc_proto_unregister -EXPORT_SYMBOL net/nfc/nfc 0x00000000 nfc_register_device -EXPORT_SYMBOL net/nfc/nfc 0x00000000 nfc_remove_se -EXPORT_SYMBOL net/nfc/nfc 0x00000000 nfc_se_connectivity -EXPORT_SYMBOL net/nfc/nfc 0x00000000 nfc_se_transaction -EXPORT_SYMBOL net/nfc/nfc 0x00000000 nfc_send_to_raw_sock -EXPORT_SYMBOL net/nfc/nfc 0x00000000 nfc_set_remote_general_bytes -EXPORT_SYMBOL net/nfc/nfc 0x00000000 nfc_target_lost -EXPORT_SYMBOL net/nfc/nfc 0x00000000 nfc_targets_found -EXPORT_SYMBOL net/nfc/nfc 0x00000000 nfc_tm_activated -EXPORT_SYMBOL net/nfc/nfc 0x00000000 nfc_tm_data_received -EXPORT_SYMBOL net/nfc/nfc 0x00000000 nfc_tm_deactivated -EXPORT_SYMBOL net/nfc/nfc 0x00000000 nfc_unregister_device -EXPORT_SYMBOL net/nfc/nfc 0x00000000 nfc_vendor_cmd_reply -EXPORT_SYMBOL net/nfc/nfc_digital 0x00000000 nfc_digital_allocate_device -EXPORT_SYMBOL net/nfc/nfc_digital 0x00000000 nfc_digital_free_device -EXPORT_SYMBOL net/nfc/nfc_digital 0x00000000 nfc_digital_register_device -EXPORT_SYMBOL net/nfc/nfc_digital 0x00000000 nfc_digital_unregister_device -EXPORT_SYMBOL net/phonet/phonet 0x00000000 phonet_header_ops -EXPORT_SYMBOL net/phonet/phonet 0x00000000 phonet_proto_register -EXPORT_SYMBOL net/phonet/phonet 0x00000000 phonet_proto_unregister -EXPORT_SYMBOL net/phonet/phonet 0x00000000 phonet_stream_ops -EXPORT_SYMBOL net/phonet/phonet 0x00000000 pn_skb_send -EXPORT_SYMBOL net/phonet/phonet 0x00000000 pn_sock_get_port -EXPORT_SYMBOL net/phonet/phonet 0x00000000 pn_sock_hash -EXPORT_SYMBOL net/phonet/phonet 0x00000000 pn_sock_unhash -EXPORT_SYMBOL net/rxrpc/rxrpc 0x00000000 key_type_rxrpc -EXPORT_SYMBOL net/rxrpc/rxrpc 0x00000000 rxrpc_debug_id -EXPORT_SYMBOL net/rxrpc/rxrpc 0x00000000 rxrpc_get_null_key -EXPORT_SYMBOL net/rxrpc/rxrpc 0x00000000 rxrpc_get_server_data_key -EXPORT_SYMBOL net/rxrpc/rxrpc 0x00000000 rxrpc_kernel_abort_call -EXPORT_SYMBOL net/rxrpc/rxrpc 0x00000000 rxrpc_kernel_begin_call -EXPORT_SYMBOL net/rxrpc/rxrpc 0x00000000 rxrpc_kernel_charge_accept -EXPORT_SYMBOL net/rxrpc/rxrpc 0x00000000 rxrpc_kernel_check_life -EXPORT_SYMBOL net/rxrpc/rxrpc 0x00000000 rxrpc_kernel_end_call -EXPORT_SYMBOL net/rxrpc/rxrpc 0x00000000 rxrpc_kernel_get_epoch -EXPORT_SYMBOL net/rxrpc/rxrpc 0x00000000 rxrpc_kernel_get_peer -EXPORT_SYMBOL net/rxrpc/rxrpc 0x00000000 rxrpc_kernel_get_reply_time -EXPORT_SYMBOL net/rxrpc/rxrpc 0x00000000 rxrpc_kernel_get_srtt -EXPORT_SYMBOL net/rxrpc/rxrpc 0x00000000 rxrpc_kernel_new_call_notification -EXPORT_SYMBOL net/rxrpc/rxrpc 0x00000000 rxrpc_kernel_recv_data -EXPORT_SYMBOL net/rxrpc/rxrpc 0x00000000 rxrpc_kernel_send_data -EXPORT_SYMBOL net/rxrpc/rxrpc 0x00000000 rxrpc_kernel_set_max_life -EXPORT_SYMBOL net/rxrpc/rxrpc 0x00000000 rxrpc_kernel_set_tx_length -EXPORT_SYMBOL net/sctp/sctp 0x00000000 sctp_do_peeloff -EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x00000000 gss_mech_get -EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x00000000 gss_mech_put -EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x00000000 gss_pseudoflavor_to_service -EXPORT_SYMBOL net/sunrpc/sunrpc 0x00000000 svc_pool_stats_open -EXPORT_SYMBOL net/sunrpc/sunrpc 0x00000000 xdr_restrict_buflen -EXPORT_SYMBOL net/sunrpc/sunrpc 0x00000000 xdr_truncate_encode -EXPORT_SYMBOL net/tipc/tipc 0x00000000 tipc_dump_done -EXPORT_SYMBOL net/tipc/tipc 0x00000000 tipc_dump_start -EXPORT_SYMBOL net/tipc/tipc 0x00000000 tipc_nl_sk_walk -EXPORT_SYMBOL net/tipc/tipc 0x00000000 tipc_sk_fill_sock_diag -EXPORT_SYMBOL net/tls/tls 0x00000000 tls_get_record -EXPORT_SYMBOL net/wimax/wimax 0x00000000 wimax_reset -EXPORT_SYMBOL net/wimax/wimax 0x00000000 wimax_rfkill -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 __cfg80211_alloc_event_skb -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 __cfg80211_alloc_reply_skb -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 __cfg80211_send_event_skb -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 bridge_tunnel_header -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_abandon_assoc -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_assoc_timeout -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_auth_timeout -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_bss_iter -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_cac_event -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_calculate_bitrate -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_ch_switch_notify -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_ch_switch_started_notify -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_chandef_compatible -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_chandef_create -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_chandef_dfs_required -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_chandef_usable -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_chandef_valid -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_check_combinations -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_check_station_change -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_classify8021d -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_conn_failed -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_connect_done -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_cqm_beacon_loss_notify -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_cqm_pktloss_notify -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_cqm_rssi_notify -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_cqm_txe_notify -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_crit_proto_stopped -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_del_sta_sinfo -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_disconnected -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_external_auth_request -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_find_elem_match -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_find_vendor_elem -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_free_nan_func -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_ft_event -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_get_bss -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_get_drvinfo -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_get_p2p_attr -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_get_station -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_gtk_rekey_notify -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_ibss_joined -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_iftype_allowed -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_inform_bss_data -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_inform_bss_frame_data -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_is_element_inherited -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_iter_combinations -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_merge_profile -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_mgmt_tx_status -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_michael_mic_failure -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_nan_func_terminated -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_nan_match -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_new_sta -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_notify_new_peer_candidate -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_pmksa_candidate_notify -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_port_authorized -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_probe_status -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_put_bss -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_radar_event -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_ready_on_channel -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_ref_bss -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_reg_can_beacon -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_reg_can_beacon_relax -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_remain_on_channel_expired -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_report_obss_beacon -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_report_wowlan_wakeup -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_roamed -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_rx_assoc_resp -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_rx_control_port -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_rx_mgmt -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_rx_mlme_mgmt -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_rx_spurious_frame -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_rx_unexpected_4addr_frame -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_rx_unprot_mlme_mgmt -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_scan_done -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_sched_scan_results -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_sched_scan_stopped -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_sched_scan_stopped_rtnl -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_send_layer2_update -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_sinfo_alloc_tid_stats -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_sta_opmode_change_notify -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_stop_iface -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_tdls_oper_request -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_tx_mgmt_expired -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_tx_mlme_mgmt -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_unlink_bss -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_unregister_wdev -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_update_owe_info_event -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 freq_reg_info -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 ieee80211_amsdu_to_8023s -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 ieee80211_bss_get_elem -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 ieee80211_chandef_to_operating_class -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 ieee80211_channel_to_frequency -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 ieee80211_data_to_8023_exthdr -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 ieee80211_frequency_to_channel -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 ieee80211_get_channel -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 ieee80211_get_hdrlen_from_skb -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 ieee80211_get_mesh_hdrlen -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 ieee80211_get_num_supported_channels -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 ieee80211_get_response_rate -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 ieee80211_get_vht_max_nss -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 ieee80211_hdrlen -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 ieee80211_ie_split_ric -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 ieee80211_mandatory_rates -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 ieee80211_operating_class_to_band -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 ieee80211_radiotap_iterator_init -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 ieee80211_radiotap_iterator_next -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 reg_initiator_name -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 reg_query_regdb_wmm -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 regulatory_hint -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 regulatory_pre_cac_allowed -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 regulatory_set_wiphy_regd -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 regulatory_set_wiphy_regd_sync_rtnl -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 rfc1042_header -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 wiphy_apply_custom_regulatory -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 wiphy_free -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 wiphy_new_nm -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 wiphy_register -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 wiphy_rfkill_set_hw_state -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 wiphy_rfkill_start_polling -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 wiphy_rfkill_stop_polling -EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 wiphy_unregister -EXPORT_SYMBOL net/wireless/lib80211 0x00000000 lib80211_crypt_delayed_deinit -EXPORT_SYMBOL net/wireless/lib80211 0x00000000 lib80211_crypt_info_free -EXPORT_SYMBOL net/wireless/lib80211 0x00000000 lib80211_crypt_info_init -EXPORT_SYMBOL net/wireless/lib80211 0x00000000 lib80211_get_crypto_ops -EXPORT_SYMBOL net/wireless/lib80211 0x00000000 lib80211_register_crypto_ops -EXPORT_SYMBOL net/wireless/lib80211 0x00000000 lib80211_unregister_crypto_ops -EXPORT_SYMBOL sound/ac97_bus 0x00000000 ac97_bus_type -EXPORT_SYMBOL sound/core/oss/snd-mixer-oss 0x00000000 snd_mixer_oss_ioctl_card -EXPORT_SYMBOL sound/core/seq/snd-seq 0x00000000 snd_seq_create_kernel_client -EXPORT_SYMBOL sound/core/seq/snd-seq 0x00000000 snd_seq_delete_kernel_client -EXPORT_SYMBOL sound/core/seq/snd-seq 0x00000000 snd_seq_dump_var_event -EXPORT_SYMBOL sound/core/seq/snd-seq 0x00000000 snd_seq_event_port_attach -EXPORT_SYMBOL sound/core/seq/snd-seq 0x00000000 snd_seq_event_port_detach -EXPORT_SYMBOL sound/core/seq/snd-seq 0x00000000 snd_seq_expand_var_event -EXPORT_SYMBOL sound/core/seq/snd-seq 0x00000000 snd_seq_kernel_client_ctl -EXPORT_SYMBOL sound/core/seq/snd-seq 0x00000000 snd_seq_kernel_client_dispatch -EXPORT_SYMBOL sound/core/seq/snd-seq 0x00000000 snd_seq_kernel_client_enqueue -EXPORT_SYMBOL sound/core/seq/snd-seq 0x00000000 snd_seq_kernel_client_write_poll -EXPORT_SYMBOL sound/core/seq/snd-seq 0x00000000 snd_seq_set_queue_tempo -EXPORT_SYMBOL sound/core/seq/snd-seq 0x00000000 snd_use_lock_sync_helper -EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x00000000 snd_midi_channel_alloc_set -EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x00000000 snd_midi_channel_free_set -EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x00000000 snd_midi_channel_set_clear -EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x00000000 snd_midi_process_event -EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x00000000 snd_midi_event_decode -EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x00000000 snd_midi_event_encode_byte -EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x00000000 snd_midi_event_free -EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x00000000 snd_midi_event_new -EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x00000000 snd_midi_event_no_status -EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x00000000 snd_midi_event_reset_decode -EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x00000000 snd_midi_event_reset_encode -EXPORT_SYMBOL sound/core/seq/snd-seq-virmidi 0x00000000 snd_virmidi_new -EXPORT_SYMBOL sound/core/snd 0x00000000 _snd_ctl_add_slave -EXPORT_SYMBOL sound/core/snd 0x00000000 copy_from_user_toio -EXPORT_SYMBOL sound/core/snd 0x00000000 copy_to_user_fromio -EXPORT_SYMBOL sound/core/snd 0x00000000 release_and_free_resource -EXPORT_SYMBOL sound/core/snd 0x00000000 snd_card_disconnect -EXPORT_SYMBOL sound/core/snd 0x00000000 snd_card_file_add -EXPORT_SYMBOL sound/core/snd 0x00000000 snd_card_file_remove -EXPORT_SYMBOL sound/core/snd 0x00000000 snd_card_free -EXPORT_SYMBOL sound/core/snd 0x00000000 snd_card_free_when_closed -EXPORT_SYMBOL sound/core/snd 0x00000000 snd_card_new -EXPORT_SYMBOL sound/core/snd 0x00000000 snd_card_register -EXPORT_SYMBOL sound/core/snd 0x00000000 snd_card_set_id -EXPORT_SYMBOL sound/core/snd 0x00000000 snd_component_add -EXPORT_SYMBOL sound/core/snd 0x00000000 snd_ctl_add -EXPORT_SYMBOL sound/core/snd 0x00000000 snd_ctl_boolean_mono_info -EXPORT_SYMBOL sound/core/snd 0x00000000 snd_ctl_boolean_stereo_info -EXPORT_SYMBOL sound/core/snd 0x00000000 snd_ctl_enum_info -EXPORT_SYMBOL sound/core/snd 0x00000000 snd_ctl_find_id -EXPORT_SYMBOL sound/core/snd 0x00000000 snd_ctl_find_numid -EXPORT_SYMBOL sound/core/snd 0x00000000 snd_ctl_free_one -EXPORT_SYMBOL sound/core/snd 0x00000000 snd_ctl_make_virtual_master -EXPORT_SYMBOL sound/core/snd 0x00000000 snd_ctl_new1 -EXPORT_SYMBOL sound/core/snd 0x00000000 snd_ctl_notify -EXPORT_SYMBOL sound/core/snd 0x00000000 snd_ctl_register_ioctl -EXPORT_SYMBOL sound/core/snd 0x00000000 snd_ctl_register_ioctl_compat -EXPORT_SYMBOL sound/core/snd 0x00000000 snd_ctl_remove -EXPORT_SYMBOL sound/core/snd 0x00000000 snd_ctl_remove_id -EXPORT_SYMBOL sound/core/snd 0x00000000 snd_ctl_rename_id -EXPORT_SYMBOL sound/core/snd 0x00000000 snd_ctl_replace -EXPORT_SYMBOL sound/core/snd 0x00000000 snd_ctl_unregister_ioctl -EXPORT_SYMBOL sound/core/snd 0x00000000 snd_ctl_unregister_ioctl_compat -EXPORT_SYMBOL sound/core/snd 0x00000000 snd_device_free -EXPORT_SYMBOL sound/core/snd 0x00000000 snd_device_new -EXPORT_SYMBOL sound/core/snd 0x00000000 snd_device_register -EXPORT_SYMBOL sound/core/snd 0x00000000 snd_dma_disable -EXPORT_SYMBOL sound/core/snd 0x00000000 snd_dma_pointer -EXPORT_SYMBOL sound/core/snd 0x00000000 snd_dma_program -EXPORT_SYMBOL sound/core/snd 0x00000000 snd_ecards_limit -EXPORT_SYMBOL sound/core/snd 0x00000000 snd_info_create_card_entry -EXPORT_SYMBOL sound/core/snd 0x00000000 snd_info_create_module_entry -EXPORT_SYMBOL sound/core/snd 0x00000000 snd_info_free_entry -EXPORT_SYMBOL sound/core/snd 0x00000000 snd_info_get_line -EXPORT_SYMBOL sound/core/snd 0x00000000 snd_info_get_str -EXPORT_SYMBOL sound/core/snd 0x00000000 snd_info_register -EXPORT_SYMBOL sound/core/snd 0x00000000 snd_jack_add_new_kctl -EXPORT_SYMBOL sound/core/snd 0x00000000 snd_jack_new -EXPORT_SYMBOL sound/core/snd 0x00000000 snd_jack_report -EXPORT_SYMBOL sound/core/snd 0x00000000 snd_jack_set_key -EXPORT_SYMBOL sound/core/snd 0x00000000 snd_jack_set_parent -EXPORT_SYMBOL sound/core/snd 0x00000000 snd_lookup_minor_data -EXPORT_SYMBOL sound/core/snd 0x00000000 snd_lookup_oss_minor_data -EXPORT_SYMBOL sound/core/snd 0x00000000 snd_major -EXPORT_SYMBOL sound/core/snd 0x00000000 snd_mixer_oss_notify_callback -EXPORT_SYMBOL sound/core/snd 0x00000000 snd_oss_info_register -EXPORT_SYMBOL sound/core/snd 0x00000000 snd_pci_quirk_lookup -EXPORT_SYMBOL sound/core/snd 0x00000000 snd_pci_quirk_lookup_id -EXPORT_SYMBOL sound/core/snd 0x00000000 snd_power_wait -EXPORT_SYMBOL sound/core/snd 0x00000000 snd_register_device -EXPORT_SYMBOL sound/core/snd 0x00000000 snd_register_oss_device -EXPORT_SYMBOL sound/core/snd 0x00000000 snd_request_card -EXPORT_SYMBOL sound/core/snd 0x00000000 snd_seq_root -EXPORT_SYMBOL sound/core/snd 0x00000000 snd_unregister_device -EXPORT_SYMBOL sound/core/snd 0x00000000 snd_unregister_oss_device -EXPORT_SYMBOL sound/core/snd-compress 0x00000000 snd_compr_free_pages -EXPORT_SYMBOL sound/core/snd-compress 0x00000000 snd_compr_malloc_pages -EXPORT_SYMBOL sound/core/snd-hwdep 0x00000000 snd_hwdep_new -EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 __snd_pcm_lib_xfer -EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 _snd_pcm_hw_param_setempty -EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 _snd_pcm_hw_params_any -EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 _snd_pcm_lib_alloc_vmalloc_buffer -EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_dma_alloc_pages -EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_dma_alloc_pages_fallback -EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_dma_free_pages -EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_interval_list -EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_interval_ranges -EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_interval_ratnum -EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_interval_refine -EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_create_iec958_consumer -EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_create_iec958_consumer_hw_params -EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_format_big_endian -EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_format_linear -EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_format_little_endian -EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_format_physical_width -EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_format_set_silence -EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_format_signed -EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_format_silence_64 -EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_format_size -EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_format_unsigned -EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_format_width -EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_hw_constraint_integer -EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_hw_constraint_list -EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_hw_constraint_mask64 -EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_hw_constraint_minmax -EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_hw_constraint_msbits -EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_hw_constraint_pow2 -EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_hw_constraint_ranges -EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_hw_constraint_ratdens -EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_hw_constraint_ratnums -EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_hw_constraint_step -EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_hw_limit_rates -EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_hw_param_first -EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_hw_param_last -EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_hw_param_value -EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_hw_refine -EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_hw_rule_add -EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_hw_rule_noresample -EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_kernel_ioctl -EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_lib_free_pages -EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_lib_free_vmalloc_buffer -EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_lib_get_vmalloc_page -EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_lib_ioctl -EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_lib_malloc_pages -EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_lib_mmap_iomem -EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_lib_preallocate_free_for_all -EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_lib_preallocate_pages -EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_lib_preallocate_pages_for_all -EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_mmap_data -EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_new -EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_new_internal -EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_new_stream -EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_open_substream -EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_period_elapsed -EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_rate_bit_to_rate -EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_rate_to_rate_bit -EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_release_substream -EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_set_managed_buffer -EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_set_managed_buffer_all -EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_set_ops -EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_set_sync -EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_stop -EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_suspend_all -EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_sgbuf_get_chunk_size -EXPORT_SYMBOL sound/core/snd-rawmidi 0x00000000 __snd_rawmidi_transmit_ack -EXPORT_SYMBOL sound/core/snd-rawmidi 0x00000000 __snd_rawmidi_transmit_peek -EXPORT_SYMBOL sound/core/snd-rawmidi 0x00000000 snd_rawmidi_drain_input -EXPORT_SYMBOL sound/core/snd-rawmidi 0x00000000 snd_rawmidi_drain_output -EXPORT_SYMBOL sound/core/snd-rawmidi 0x00000000 snd_rawmidi_drop_output -EXPORT_SYMBOL sound/core/snd-rawmidi 0x00000000 snd_rawmidi_info_select -EXPORT_SYMBOL sound/core/snd-rawmidi 0x00000000 snd_rawmidi_input_params -EXPORT_SYMBOL sound/core/snd-rawmidi 0x00000000 snd_rawmidi_kernel_open -EXPORT_SYMBOL sound/core/snd-rawmidi 0x00000000 snd_rawmidi_kernel_read -EXPORT_SYMBOL sound/core/snd-rawmidi 0x00000000 snd_rawmidi_kernel_release -EXPORT_SYMBOL sound/core/snd-rawmidi 0x00000000 snd_rawmidi_kernel_write -EXPORT_SYMBOL sound/core/snd-rawmidi 0x00000000 snd_rawmidi_new -EXPORT_SYMBOL sound/core/snd-rawmidi 0x00000000 snd_rawmidi_output_params -EXPORT_SYMBOL sound/core/snd-rawmidi 0x00000000 snd_rawmidi_proceed -EXPORT_SYMBOL sound/core/snd-rawmidi 0x00000000 snd_rawmidi_receive -EXPORT_SYMBOL sound/core/snd-rawmidi 0x00000000 snd_rawmidi_set_ops -EXPORT_SYMBOL sound/core/snd-rawmidi 0x00000000 snd_rawmidi_transmit -EXPORT_SYMBOL sound/core/snd-rawmidi 0x00000000 snd_rawmidi_transmit_ack -EXPORT_SYMBOL sound/core/snd-rawmidi 0x00000000 snd_rawmidi_transmit_empty -EXPORT_SYMBOL sound/core/snd-rawmidi 0x00000000 snd_rawmidi_transmit_peek -EXPORT_SYMBOL sound/core/snd-seq-device 0x00000000 snd_seq_autoload_exit -EXPORT_SYMBOL sound/core/snd-seq-device 0x00000000 snd_seq_autoload_init -EXPORT_SYMBOL sound/core/snd-seq-device 0x00000000 snd_seq_device_load_drivers -EXPORT_SYMBOL sound/core/snd-seq-device 0x00000000 snd_seq_device_new -EXPORT_SYMBOL sound/core/snd-timer 0x00000000 snd_timer_close -EXPORT_SYMBOL sound/core/snd-timer 0x00000000 snd_timer_continue -EXPORT_SYMBOL sound/core/snd-timer 0x00000000 snd_timer_global_free -EXPORT_SYMBOL sound/core/snd-timer 0x00000000 snd_timer_global_new -EXPORT_SYMBOL sound/core/snd-timer 0x00000000 snd_timer_global_register -EXPORT_SYMBOL sound/core/snd-timer 0x00000000 snd_timer_instance_free -EXPORT_SYMBOL sound/core/snd-timer 0x00000000 snd_timer_instance_new -EXPORT_SYMBOL sound/core/snd-timer 0x00000000 snd_timer_interrupt -EXPORT_SYMBOL sound/core/snd-timer 0x00000000 snd_timer_new -EXPORT_SYMBOL sound/core/snd-timer 0x00000000 snd_timer_notify -EXPORT_SYMBOL sound/core/snd-timer 0x00000000 snd_timer_open -EXPORT_SYMBOL sound/core/snd-timer 0x00000000 snd_timer_pause -EXPORT_SYMBOL sound/core/snd-timer 0x00000000 snd_timer_resolution -EXPORT_SYMBOL sound/core/snd-timer 0x00000000 snd_timer_start -EXPORT_SYMBOL sound/core/snd-timer 0x00000000 snd_timer_stop -EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x00000000 snd_mpu401_uart_interrupt -EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x00000000 snd_mpu401_uart_interrupt_tx -EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x00000000 snd_mpu401_uart_new -EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x00000000 snd_opl3_create -EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x00000000 snd_opl3_find_patch -EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x00000000 snd_opl3_hwdep_new -EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x00000000 snd_opl3_init -EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x00000000 snd_opl3_interrupt -EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x00000000 snd_opl3_load_patch -EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x00000000 snd_opl3_new -EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x00000000 snd_opl3_regmap -EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x00000000 snd_opl3_reset -EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x00000000 snd_opl3_timer_new -EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x00000000 snd_vx_check_reg_bit -EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x00000000 snd_vx_create -EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x00000000 snd_vx_dsp_boot -EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x00000000 snd_vx_dsp_load -EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x00000000 snd_vx_free_firmware -EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x00000000 snd_vx_irq_handler -EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x00000000 snd_vx_load_boot_image -EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x00000000 snd_vx_resume -EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x00000000 snd_vx_setup_firmware -EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x00000000 snd_vx_suspend -EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x00000000 snd_vx_threaded_irq_handler -EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x00000000 amdtp_rate_table -EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x00000000 amdtp_stream_add_pcm_hw_constraints -EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x00000000 amdtp_stream_destroy -EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x00000000 amdtp_stream_get_max_payload -EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x00000000 amdtp_stream_init -EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x00000000 amdtp_stream_pcm_abort -EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x00000000 amdtp_stream_pcm_prepare -EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x00000000 amdtp_stream_set_parameters -EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x00000000 amdtp_stream_update -EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x00000000 amdtp_syt_intervals -EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x00000000 avc_general_get_plug_info -EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x00000000 avc_general_get_sig_fmt -EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x00000000 avc_general_set_sig_fmt -EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x00000000 cmp_connection_break -EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x00000000 cmp_connection_check_used -EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x00000000 cmp_connection_destroy -EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x00000000 cmp_connection_establish -EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x00000000 cmp_connection_init -EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x00000000 cmp_connection_release -EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x00000000 cmp_connection_reserve -EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x00000000 cmp_connection_update -EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x00000000 fcp_avc_transaction -EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x00000000 fcp_bus_reset -EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x00000000 fw_iso_resources_allocate -EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x00000000 fw_iso_resources_destroy -EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x00000000 fw_iso_resources_free -EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x00000000 fw_iso_resources_init -EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x00000000 fw_iso_resources_update -EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x00000000 iso_packets_buffer_destroy -EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x00000000 iso_packets_buffer_init -EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x00000000 snd_fw_schedule_registration -EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x00000000 snd_fw_transaction -EXPORT_SYMBOL sound/i2c/other/snd-ak4113 0x00000000 snd_ak4113_resume -EXPORT_SYMBOL sound/i2c/other/snd-ak4113 0x00000000 snd_ak4113_suspend -EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x00000000 snd_ak4114_build -EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x00000000 snd_ak4114_check_rate_and_errors -EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x00000000 snd_ak4114_create -EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x00000000 snd_ak4114_external_rate -EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x00000000 snd_ak4114_reg_write -EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x00000000 snd_ak4114_reinit -EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x00000000 snd_ak4114_resume -EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x00000000 snd_ak4114_suspend -EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x00000000 snd_ak4117_build -EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x00000000 snd_ak4117_check_rate_and_errors -EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x00000000 snd_ak4117_create -EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x00000000 snd_ak4117_external_rate -EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x00000000 snd_ak4117_reg_write -EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x00000000 snd_ak4117_reinit -EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x00000000 snd_akm4xxx_build_controls -EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x00000000 snd_akm4xxx_init -EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x00000000 snd_akm4xxx_reset -EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x00000000 snd_akm4xxx_write -EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x00000000 snd_pt2258_build_controls -EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x00000000 snd_pt2258_reset -EXPORT_SYMBOL sound/i2c/snd-cs8427 0x00000000 snd_cs8427_create -EXPORT_SYMBOL sound/i2c/snd-cs8427 0x00000000 snd_cs8427_iec958_active -EXPORT_SYMBOL sound/i2c/snd-cs8427 0x00000000 snd_cs8427_iec958_build -EXPORT_SYMBOL sound/i2c/snd-cs8427 0x00000000 snd_cs8427_iec958_pcm -EXPORT_SYMBOL sound/i2c/snd-cs8427 0x00000000 snd_cs8427_init -EXPORT_SYMBOL sound/i2c/snd-cs8427 0x00000000 snd_cs8427_reg_write -EXPORT_SYMBOL sound/i2c/snd-i2c 0x00000000 snd_i2c_bus_create -EXPORT_SYMBOL sound/i2c/snd-i2c 0x00000000 snd_i2c_device_create -EXPORT_SYMBOL sound/i2c/snd-i2c 0x00000000 snd_i2c_device_free -EXPORT_SYMBOL sound/i2c/snd-i2c 0x00000000 snd_i2c_probeaddr -EXPORT_SYMBOL sound/i2c/snd-i2c 0x00000000 snd_i2c_readbytes -EXPORT_SYMBOL sound/i2c/snd-i2c 0x00000000 snd_i2c_sendbytes -EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x00000000 snd_sbdsp_command -EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x00000000 snd_sbdsp_create -EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x00000000 snd_sbdsp_get_byte -EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x00000000 snd_sbdsp_reset -EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x00000000 snd_sbmixer_add_ctl -EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x00000000 snd_sbmixer_new -EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x00000000 snd_sbmixer_read -EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x00000000 snd_sbmixer_resume -EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x00000000 snd_sbmixer_suspend -EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x00000000 snd_sbmixer_write -EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x00000000 snd_ac97_bus -EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x00000000 snd_ac97_get_short_name -EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x00000000 snd_ac97_mixer -EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x00000000 snd_ac97_pcm_assign -EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x00000000 snd_ac97_pcm_close -EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x00000000 snd_ac97_pcm_double_rate_rules -EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x00000000 snd_ac97_pcm_open -EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x00000000 snd_ac97_read -EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x00000000 snd_ac97_resume -EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x00000000 snd_ac97_set_rate -EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x00000000 snd_ac97_suspend -EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x00000000 snd_ac97_tune_hardware -EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x00000000 snd_ac97_update -EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x00000000 snd_ac97_update_bits -EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x00000000 snd_ac97_update_power -EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x00000000 snd_ac97_write -EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x00000000 snd_ac97_write_cache -EXPORT_SYMBOL sound/pci/asihpi/snd-asihpi 0x00000000 hpi_send_recv -EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x00000000 snd_emu10k1_memblk_map -EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x00000000 snd_emu10k1_ptr_read -EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x00000000 snd_emu10k1_ptr_write -EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x00000000 snd_emu10k1_synth_alloc -EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x00000000 snd_emu10k1_synth_bzero -EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x00000000 snd_emu10k1_synth_copy_from_user -EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x00000000 snd_emu10k1_synth_free -EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x00000000 snd_emu10k1_voice_alloc -EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x00000000 snd_emu10k1_voice_free -EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x00000000 snd_ice1712_akm4xxx_build_controls -EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x00000000 snd_ice1712_akm4xxx_free -EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x00000000 snd_ice1712_akm4xxx_init -EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x00000000 oxygen_pci_pm -EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x00000000 oxygen_pci_probe -EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x00000000 oxygen_pci_remove -EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x00000000 oxygen_pci_shutdown -EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x00000000 oxygen_read16 -EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x00000000 oxygen_read32 -EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x00000000 oxygen_read8 -EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x00000000 oxygen_read_ac97 -EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x00000000 oxygen_reset_uart -EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x00000000 oxygen_update_dac_routing -EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x00000000 oxygen_write16 -EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x00000000 oxygen_write16_masked -EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x00000000 oxygen_write32 -EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x00000000 oxygen_write32_masked -EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x00000000 oxygen_write8 -EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x00000000 oxygen_write8_masked -EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x00000000 oxygen_write_ac97 -EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x00000000 oxygen_write_ac97_masked -EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x00000000 oxygen_write_i2c -EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x00000000 oxygen_write_spi -EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x00000000 oxygen_write_uart -EXPORT_SYMBOL sound/pci/trident/snd-trident 0x00000000 snd_trident_alloc_voice -EXPORT_SYMBOL sound/pci/trident/snd-trident 0x00000000 snd_trident_free_voice -EXPORT_SYMBOL sound/pci/trident/snd-trident 0x00000000 snd_trident_start_voice -EXPORT_SYMBOL sound/pci/trident/snd-trident 0x00000000 snd_trident_stop_voice -EXPORT_SYMBOL sound/pci/trident/snd-trident 0x00000000 snd_trident_write_voice_regs -EXPORT_SYMBOL sound/soc/amd/acp_audio_dma 0x00000000 bt_uart_enable -EXPORT_SYMBOL sound/soc/codecs/snd-soc-pcm3060 0x00000000 pcm3060_probe -EXPORT_SYMBOL sound/soc/codecs/snd-soc-pcm3060 0x00000000 pcm3060_regmap -EXPORT_SYMBOL sound/soc/codecs/snd-soc-rt715 0x00000000 hda_to_sdw -EXPORT_SYMBOL sound/soc/codecs/snd-soc-tlv320aic23 0x00000000 tlv320aic23_probe -EXPORT_SYMBOL sound/soc/codecs/snd-soc-tlv320aic23 0x00000000 tlv320aic23_regmap -EXPORT_SYMBOL sound/soc/codecs/snd-soc-tlv320aic32x4 0x00000000 aic32x4_probe -EXPORT_SYMBOL sound/soc/codecs/snd-soc-tlv320aic32x4 0x00000000 aic32x4_regmap_config -EXPORT_SYMBOL sound/soc/codecs/snd-soc-tlv320aic32x4 0x00000000 aic32x4_remove -EXPORT_SYMBOL sound/soc/snd-soc-core 0x00000000 snd_soc_alloc_ac97_component -EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_complete -EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_create_page_table -EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_device_probe -EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_device_remove -EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_dsp_mailbox_init -EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_dsp_only_d0i3_compatible_stream_active -EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_dsp_panic -EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_dsp_update_bits -EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_dsp_update_bits64 -EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_dsp_update_bits64_unlocked -EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_dsp_update_bits_forced -EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_dsp_update_bits_unlocked -EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_free_trace -EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_fw_parse_ext_data -EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_fw_unload -EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_get_status -EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_handle_fw_exception -EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_init_trace -EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_ipc_free -EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_ipc_init -EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_ipc_msgs_rx -EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_ipc_reply -EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_ipc_set_get_comp_data -EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_ipc_stream_posn -EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_ipc_valid -EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_load_firmware -EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_load_firmware_memcpy -EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_load_firmware_raw -EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_load_topology -EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_parse_module_memcpy -EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_pci_update_bits -EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_pcm_period_elapsed -EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_prepare -EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_release_trace -EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_resume -EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_run_firmware -EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_runtime_idle -EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_runtime_resume -EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_runtime_suspend -EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_suspend -EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_trace_notify_for_error -EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 sof_block_read -EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 sof_block_write -EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 sof_fw_ready -EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 sof_io_read -EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 sof_io_read64 -EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 sof_io_write -EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 sof_io_write64 -EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 sof_ipc_probe_deinit -EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 sof_ipc_probe_dma_add -EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 sof_ipc_probe_dma_info -EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 sof_ipc_probe_dma_remove -EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 sof_ipc_probe_init -EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 sof_ipc_probe_points_add -EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 sof_ipc_probe_points_info -EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 sof_ipc_probe_points_remove -EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 sof_ipc_tx_message -EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 sof_ipc_tx_message_no_pm -EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 sof_machine_check -EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 sof_machine_register -EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 sof_machine_unregister -EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 sof_mailbox_read -EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 sof_mailbox_write -EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 sof_probe_compr_copy -EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 sof_probe_compr_free -EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 sof_probe_compr_open -EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 sof_probe_compr_pointer -EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 sof_probe_compr_set_params -EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 sof_probe_compr_trigger -EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 sof_probe_compressed_ops -EXPORT_SYMBOL sound/soundcore 0x00000000 register_sound_dsp -EXPORT_SYMBOL sound/soundcore 0x00000000 register_sound_mixer -EXPORT_SYMBOL sound/soundcore 0x00000000 register_sound_special -EXPORT_SYMBOL sound/soundcore 0x00000000 register_sound_special_device -EXPORT_SYMBOL sound/soundcore 0x00000000 sound_class -EXPORT_SYMBOL sound/soundcore 0x00000000 unregister_sound_dsp -EXPORT_SYMBOL sound/soundcore 0x00000000 unregister_sound_mixer -EXPORT_SYMBOL sound/soundcore 0x00000000 unregister_sound_special -EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x00000000 snd_emux_free -EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x00000000 snd_emux_lock_voice -EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x00000000 snd_emux_new -EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x00000000 snd_emux_register -EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x00000000 snd_emux_terminate_all -EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x00000000 snd_emux_unlock_voice -EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x00000000 snd_sf_linear_to_log -EXPORT_SYMBOL sound/synth/snd-util-mem 0x00000000 __snd_util_mem_alloc -EXPORT_SYMBOL sound/synth/snd-util-mem 0x00000000 __snd_util_mem_free -EXPORT_SYMBOL sound/synth/snd-util-mem 0x00000000 __snd_util_memblk_new -EXPORT_SYMBOL sound/synth/snd-util-mem 0x00000000 snd_util_mem_alloc -EXPORT_SYMBOL sound/synth/snd-util-mem 0x00000000 snd_util_mem_avail -EXPORT_SYMBOL sound/synth/snd-util-mem 0x00000000 snd_util_mem_free -EXPORT_SYMBOL sound/synth/snd-util-mem 0x00000000 snd_util_memhdr_free -EXPORT_SYMBOL sound/synth/snd-util-mem 0x00000000 snd_util_memhdr_new -EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x00000000 __snd_usbmidi_create -EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x00000000 snd_usbmidi_disconnect -EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x00000000 snd_usbmidi_input_start -EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x00000000 snd_usbmidi_input_stop -EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x00000000 snd_usbmidi_resume -EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x00000000 snd_usbmidi_suspend -EXPORT_SYMBOL ubuntu/hio/hio 0x00000000 ssd_bm_status -EXPORT_SYMBOL ubuntu/hio/hio 0x00000000 ssd_get_label -EXPORT_SYMBOL ubuntu/hio/hio 0x00000000 ssd_get_pciaddr -EXPORT_SYMBOL ubuntu/hio/hio 0x00000000 ssd_get_temperature -EXPORT_SYMBOL ubuntu/hio/hio 0x00000000 ssd_get_version -EXPORT_SYMBOL ubuntu/hio/hio 0x00000000 ssd_register_event_notifier -EXPORT_SYMBOL ubuntu/hio/hio 0x00000000 ssd_reset -EXPORT_SYMBOL ubuntu/hio/hio 0x00000000 ssd_set_otprotect -EXPORT_SYMBOL ubuntu/hio/hio 0x00000000 ssd_set_wmode -EXPORT_SYMBOL ubuntu/hio/hio 0x00000000 ssd_submit_pbio -EXPORT_SYMBOL ubuntu/hio/hio 0x00000000 ssd_unregister_event_notifier -EXPORT_SYMBOL vmlinux 0x00000000 EISA_bus -EXPORT_SYMBOL vmlinux 0x00000000 IO_APIC_get_PCI_irq_vector -EXPORT_SYMBOL vmlinux 0x00000000 I_BDEV -EXPORT_SYMBOL vmlinux 0x00000000 LZ4_compress_default -EXPORT_SYMBOL vmlinux 0x00000000 LZ4_compress_destSize -EXPORT_SYMBOL vmlinux 0x00000000 LZ4_compress_fast -EXPORT_SYMBOL vmlinux 0x00000000 LZ4_compress_fast_continue -EXPORT_SYMBOL vmlinux 0x00000000 LZ4_decompress_fast -EXPORT_SYMBOL vmlinux 0x00000000 LZ4_decompress_fast_continue -EXPORT_SYMBOL vmlinux 0x00000000 LZ4_decompress_fast_usingDict -EXPORT_SYMBOL vmlinux 0x00000000 LZ4_decompress_safe -EXPORT_SYMBOL vmlinux 0x00000000 LZ4_decompress_safe_continue -EXPORT_SYMBOL vmlinux 0x00000000 LZ4_decompress_safe_partial -EXPORT_SYMBOL vmlinux 0x00000000 LZ4_decompress_safe_usingDict -EXPORT_SYMBOL vmlinux 0x00000000 LZ4_loadDict -EXPORT_SYMBOL vmlinux 0x00000000 LZ4_saveDict -EXPORT_SYMBOL vmlinux 0x00000000 LZ4_setStreamDecode -EXPORT_SYMBOL vmlinux 0x00000000 PDE_DATA -EXPORT_SYMBOL vmlinux 0x00000000 PageMovable -EXPORT_SYMBOL vmlinux 0x00000000 ZSTD_DCtxWorkspaceBound -EXPORT_SYMBOL vmlinux 0x00000000 ZSTD_DDictWorkspaceBound -EXPORT_SYMBOL vmlinux 0x00000000 ZSTD_DStreamInSize -EXPORT_SYMBOL vmlinux 0x00000000 ZSTD_DStreamOutSize -EXPORT_SYMBOL vmlinux 0x00000000 ZSTD_DStreamWorkspaceBound -EXPORT_SYMBOL vmlinux 0x00000000 ZSTD_copyDCtx -EXPORT_SYMBOL vmlinux 0x00000000 ZSTD_decompressBegin -EXPORT_SYMBOL vmlinux 0x00000000 ZSTD_decompressBegin_usingDict -EXPORT_SYMBOL vmlinux 0x00000000 ZSTD_decompressBlock -EXPORT_SYMBOL vmlinux 0x00000000 ZSTD_decompressContinue -EXPORT_SYMBOL vmlinux 0x00000000 ZSTD_decompressDCtx -EXPORT_SYMBOL vmlinux 0x00000000 ZSTD_decompressStream -EXPORT_SYMBOL vmlinux 0x00000000 ZSTD_decompress_usingDDict -EXPORT_SYMBOL vmlinux 0x00000000 ZSTD_decompress_usingDict -EXPORT_SYMBOL vmlinux 0x00000000 ZSTD_findDecompressedSize -EXPORT_SYMBOL vmlinux 0x00000000 ZSTD_findFrameCompressedSize -EXPORT_SYMBOL vmlinux 0x00000000 ZSTD_getDictID_fromDDict -EXPORT_SYMBOL vmlinux 0x00000000 ZSTD_getDictID_fromDict -EXPORT_SYMBOL vmlinux 0x00000000 ZSTD_getDictID_fromFrame -EXPORT_SYMBOL vmlinux 0x00000000 ZSTD_getFrameContentSize -EXPORT_SYMBOL vmlinux 0x00000000 ZSTD_getFrameParams -EXPORT_SYMBOL vmlinux 0x00000000 ZSTD_initDCtx -EXPORT_SYMBOL vmlinux 0x00000000 ZSTD_initDDict -EXPORT_SYMBOL vmlinux 0x00000000 ZSTD_initDStream -EXPORT_SYMBOL vmlinux 0x00000000 ZSTD_initDStream_usingDDict -EXPORT_SYMBOL vmlinux 0x00000000 ZSTD_insertBlock -EXPORT_SYMBOL vmlinux 0x00000000 ZSTD_isFrame -EXPORT_SYMBOL vmlinux 0x00000000 ZSTD_nextInputType -EXPORT_SYMBOL vmlinux 0x00000000 ZSTD_nextSrcSizeToDecompress -EXPORT_SYMBOL vmlinux 0x00000000 ZSTD_resetDStream -EXPORT_SYMBOL vmlinux 0x00000000 __ClearPageMovable -EXPORT_SYMBOL vmlinux 0x00000000 __SetPageMovable -EXPORT_SYMBOL vmlinux 0x00000000 ___pskb_trim -EXPORT_SYMBOL vmlinux 0x00000000 ___ratelimit -EXPORT_SYMBOL vmlinux 0x00000000 __acpi_handle_debug -EXPORT_SYMBOL vmlinux 0x00000000 __alloc_bucket_spinlocks -EXPORT_SYMBOL vmlinux 0x00000000 __alloc_disk_node -EXPORT_SYMBOL vmlinux 0x00000000 __alloc_pages_nodemask -EXPORT_SYMBOL vmlinux 0x00000000 __alloc_skb -EXPORT_SYMBOL vmlinux 0x00000000 __bdevname -EXPORT_SYMBOL vmlinux 0x00000000 __bforget -EXPORT_SYMBOL vmlinux 0x00000000 __bio_clone_fast -EXPORT_SYMBOL vmlinux 0x00000000 __bitmap_and -EXPORT_SYMBOL vmlinux 0x00000000 __bitmap_andnot -EXPORT_SYMBOL vmlinux 0x00000000 __bitmap_clear -EXPORT_SYMBOL vmlinux 0x00000000 __bitmap_complement -EXPORT_SYMBOL vmlinux 0x00000000 __bitmap_equal -EXPORT_SYMBOL vmlinux 0x00000000 __bitmap_intersects -EXPORT_SYMBOL vmlinux 0x00000000 __bitmap_or -EXPORT_SYMBOL vmlinux 0x00000000 __bitmap_replace -EXPORT_SYMBOL vmlinux 0x00000000 __bitmap_set -EXPORT_SYMBOL vmlinux 0x00000000 __bitmap_shift_left -EXPORT_SYMBOL vmlinux 0x00000000 __bitmap_shift_right -EXPORT_SYMBOL vmlinux 0x00000000 __bitmap_subset -EXPORT_SYMBOL vmlinux 0x00000000 __bitmap_weight -EXPORT_SYMBOL vmlinux 0x00000000 __bitmap_xor -EXPORT_SYMBOL vmlinux 0x00000000 __blk_mq_end_request -EXPORT_SYMBOL vmlinux 0x00000000 __blkdev_issue_discard -EXPORT_SYMBOL vmlinux 0x00000000 __blkdev_issue_zeroout -EXPORT_SYMBOL vmlinux 0x00000000 __block_write_begin -EXPORT_SYMBOL vmlinux 0x00000000 __block_write_full_page -EXPORT_SYMBOL vmlinux 0x00000000 __blockdev_direct_IO -EXPORT_SYMBOL vmlinux 0x00000000 __bread_gfp -EXPORT_SYMBOL vmlinux 0x00000000 __breadahead -EXPORT_SYMBOL vmlinux 0x00000000 __breadahead_gfp -EXPORT_SYMBOL vmlinux 0x00000000 __break_lease -EXPORT_SYMBOL vmlinux 0x00000000 __brelse -EXPORT_SYMBOL vmlinux 0x00000000 __cachemode2pte_tbl -EXPORT_SYMBOL vmlinux 0x00000000 __cancel_dirty_page -EXPORT_SYMBOL vmlinux 0x00000000 __cap_empty_set -EXPORT_SYMBOL vmlinux 0x00000000 __cgroup_bpf_check_dev_permission -EXPORT_SYMBOL vmlinux 0x00000000 __cgroup_bpf_run_filter_getsockopt -EXPORT_SYMBOL vmlinux 0x00000000 __cgroup_bpf_run_filter_setsockopt -EXPORT_SYMBOL vmlinux 0x00000000 __cgroup_bpf_run_filter_sk -EXPORT_SYMBOL vmlinux 0x00000000 __cgroup_bpf_run_filter_skb -EXPORT_SYMBOL vmlinux 0x00000000 __cgroup_bpf_run_filter_sock_addr -EXPORT_SYMBOL vmlinux 0x00000000 __cgroup_bpf_run_filter_sock_ops -EXPORT_SYMBOL vmlinux 0x00000000 __cgroup_bpf_run_filter_sysctl -EXPORT_SYMBOL vmlinux 0x00000000 __check_object_size -EXPORT_SYMBOL vmlinux 0x00000000 __check_sticky -EXPORT_SYMBOL vmlinux 0x00000000 __cleancache_get_page -EXPORT_SYMBOL vmlinux 0x00000000 __cleancache_init_fs -EXPORT_SYMBOL vmlinux 0x00000000 __cleancache_init_shared_fs -EXPORT_SYMBOL vmlinux 0x00000000 __cleancache_invalidate_fs -EXPORT_SYMBOL vmlinux 0x00000000 __cleancache_invalidate_inode -EXPORT_SYMBOL vmlinux 0x00000000 __cleancache_invalidate_page -EXPORT_SYMBOL vmlinux 0x00000000 __cleancache_put_page -EXPORT_SYMBOL vmlinux 0x00000000 __clear_user -EXPORT_SYMBOL vmlinux 0x00000000 __close_fd -EXPORT_SYMBOL vmlinux 0x00000000 __close_fd_get_file -EXPORT_SYMBOL vmlinux 0x00000000 __clzdi2 -EXPORT_SYMBOL vmlinux 0x00000000 __clzsi2 -EXPORT_SYMBOL vmlinux 0x00000000 __cond_resched_lock -EXPORT_SYMBOL vmlinux 0x00000000 __const_udelay -EXPORT_SYMBOL vmlinux 0x00000000 __copy_user_nocache -EXPORT_SYMBOL vmlinux 0x00000000 __cpu_active_mask -EXPORT_SYMBOL vmlinux 0x00000000 __cpu_online_mask -EXPORT_SYMBOL vmlinux 0x00000000 __cpu_possible_mask -EXPORT_SYMBOL vmlinux 0x00000000 __cpu_present_mask -EXPORT_SYMBOL vmlinux 0x00000000 __cpuhp_remove_state -EXPORT_SYMBOL vmlinux 0x00000000 __cpuhp_remove_state_cpuslocked -EXPORT_SYMBOL vmlinux 0x00000000 __cpuhp_setup_state -EXPORT_SYMBOL vmlinux 0x00000000 __cpuhp_setup_state_cpuslocked -EXPORT_SYMBOL vmlinux 0x00000000 __crc32c_le -EXPORT_SYMBOL vmlinux 0x00000000 __crc32c_le_shift -EXPORT_SYMBOL vmlinux 0x00000000 __crypto_memneq -EXPORT_SYMBOL vmlinux 0x00000000 __ctzdi2 -EXPORT_SYMBOL vmlinux 0x00000000 __ctzsi2 -EXPORT_SYMBOL vmlinux 0x00000000 __d_drop -EXPORT_SYMBOL vmlinux 0x00000000 __d_lookup_done -EXPORT_SYMBOL vmlinux 0x00000000 __dec_node_page_state -EXPORT_SYMBOL vmlinux 0x00000000 __dec_zone_page_state -EXPORT_SYMBOL vmlinux 0x00000000 __default_kernel_pte_mask -EXPORT_SYMBOL vmlinux 0x00000000 __delay -EXPORT_SYMBOL vmlinux 0x00000000 __destroy_inode -EXPORT_SYMBOL vmlinux 0x00000000 __dev_get_by_flags -EXPORT_SYMBOL vmlinux 0x00000000 __dev_get_by_index -EXPORT_SYMBOL vmlinux 0x00000000 __dev_get_by_name -EXPORT_SYMBOL vmlinux 0x00000000 __dev_getfirstbyhwtype -EXPORT_SYMBOL vmlinux 0x00000000 __dev_kfree_skb_any -EXPORT_SYMBOL vmlinux 0x00000000 __dev_kfree_skb_irq -EXPORT_SYMBOL vmlinux 0x00000000 __dev_remove_pack -EXPORT_SYMBOL vmlinux 0x00000000 __dev_set_mtu -EXPORT_SYMBOL vmlinux 0x00000000 __devm_release_region -EXPORT_SYMBOL vmlinux 0x00000000 __devm_request_region -EXPORT_SYMBOL vmlinux 0x00000000 __do_once_done -EXPORT_SYMBOL vmlinux 0x00000000 __do_once_start -EXPORT_SYMBOL vmlinux 0x00000000 __dquot_alloc_space -EXPORT_SYMBOL vmlinux 0x00000000 __dquot_free_space -EXPORT_SYMBOL vmlinux 0x00000000 __dquot_transfer -EXPORT_SYMBOL vmlinux 0x00000000 __dst_destroy_metrics_generic -EXPORT_SYMBOL vmlinux 0x00000000 __dynamic_dev_dbg -EXPORT_SYMBOL vmlinux 0x00000000 __dynamic_ibdev_dbg -EXPORT_SYMBOL vmlinux 0x00000000 __dynamic_netdev_dbg -EXPORT_SYMBOL vmlinux 0x00000000 __dynamic_pr_debug -EXPORT_SYMBOL vmlinux 0x00000000 __ethtool_get_link_ksettings -EXPORT_SYMBOL vmlinux 0x00000000 __f_setown -EXPORT_SYMBOL vmlinux 0x00000000 __fdget -EXPORT_SYMBOL vmlinux 0x00000000 __fentry__ -EXPORT_SYMBOL vmlinux 0x00000000 __fib6_flush_trees -EXPORT_SYMBOL vmlinux 0x00000000 __filemap_set_wb_err -EXPORT_SYMBOL vmlinux 0x00000000 __find_get_block -EXPORT_SYMBOL vmlinux 0x00000000 __free_pages -EXPORT_SYMBOL vmlinux 0x00000000 __frontswap_init -EXPORT_SYMBOL vmlinux 0x00000000 __frontswap_invalidate_area -EXPORT_SYMBOL vmlinux 0x00000000 __frontswap_invalidate_page -EXPORT_SYMBOL vmlinux 0x00000000 __frontswap_load -EXPORT_SYMBOL vmlinux 0x00000000 __frontswap_store -EXPORT_SYMBOL vmlinux 0x00000000 __frontswap_test -EXPORT_SYMBOL vmlinux 0x00000000 __fs_parse -EXPORT_SYMBOL vmlinux 0x00000000 __generic_block_fiemap -EXPORT_SYMBOL vmlinux 0x00000000 __generic_file_fsync -EXPORT_SYMBOL vmlinux 0x00000000 __generic_file_write_iter -EXPORT_SYMBOL vmlinux 0x00000000 __genphy_config_aneg -EXPORT_SYMBOL vmlinux 0x00000000 __genradix_free -EXPORT_SYMBOL vmlinux 0x00000000 __genradix_iter_peek -EXPORT_SYMBOL vmlinux 0x00000000 __genradix_prealloc -EXPORT_SYMBOL vmlinux 0x00000000 __genradix_ptr -EXPORT_SYMBOL vmlinux 0x00000000 __genradix_ptr_alloc -EXPORT_SYMBOL vmlinux 0x00000000 __get_free_pages -EXPORT_SYMBOL vmlinux 0x00000000 __get_hash_from_flowi6 -EXPORT_SYMBOL vmlinux 0x00000000 __get_user_1 -EXPORT_SYMBOL vmlinux 0x00000000 __get_user_2 -EXPORT_SYMBOL vmlinux 0x00000000 __get_user_4 -EXPORT_SYMBOL vmlinux 0x00000000 __get_user_8 -EXPORT_SYMBOL vmlinux 0x00000000 __getblk_gfp -EXPORT_SYMBOL vmlinux 0x00000000 __gnet_stats_copy_basic -EXPORT_SYMBOL vmlinux 0x00000000 __gnet_stats_copy_queue -EXPORT_SYMBOL vmlinux 0x00000000 __hsiphash_aligned -EXPORT_SYMBOL vmlinux 0x00000000 __hw_addr_init -EXPORT_SYMBOL vmlinux 0x00000000 __hw_addr_ref_sync_dev -EXPORT_SYMBOL vmlinux 0x00000000 __hw_addr_ref_unsync_dev -EXPORT_SYMBOL vmlinux 0x00000000 __hw_addr_sync -EXPORT_SYMBOL vmlinux 0x00000000 __hw_addr_sync_dev -EXPORT_SYMBOL vmlinux 0x00000000 __hw_addr_unsync -EXPORT_SYMBOL vmlinux 0x00000000 __hw_addr_unsync_dev -EXPORT_SYMBOL vmlinux 0x00000000 __i2c_smbus_xfer -EXPORT_SYMBOL vmlinux 0x00000000 __i2c_transfer -EXPORT_SYMBOL vmlinux 0x00000000 __icmp_send -EXPORT_SYMBOL vmlinux 0x00000000 __inc_node_page_state -EXPORT_SYMBOL vmlinux 0x00000000 __inc_zone_page_state -EXPORT_SYMBOL vmlinux 0x00000000 __inet6_lookup_established -EXPORT_SYMBOL vmlinux 0x00000000 __inet_hash -EXPORT_SYMBOL vmlinux 0x00000000 __inet_stream_connect -EXPORT_SYMBOL vmlinux 0x00000000 __init_rwsem -EXPORT_SYMBOL vmlinux 0x00000000 __init_swait_queue_head -EXPORT_SYMBOL vmlinux 0x00000000 __init_waitqueue_head -EXPORT_SYMBOL vmlinux 0x00000000 __inode_add_bytes -EXPORT_SYMBOL vmlinux 0x00000000 __inode_sub_bytes -EXPORT_SYMBOL vmlinux 0x00000000 __insert_inode_hash -EXPORT_SYMBOL vmlinux 0x00000000 __invalidate_device -EXPORT_SYMBOL vmlinux 0x00000000 __ip4_datagram_connect -EXPORT_SYMBOL vmlinux 0x00000000 __ip_dev_find -EXPORT_SYMBOL vmlinux 0x00000000 __ip_mc_dec_group -EXPORT_SYMBOL vmlinux 0x00000000 __ip_mc_inc_group -EXPORT_SYMBOL vmlinux 0x00000000 __ip_options_compile -EXPORT_SYMBOL vmlinux 0x00000000 __ip_queue_xmit -EXPORT_SYMBOL vmlinux 0x00000000 __ip_select_ident -EXPORT_SYMBOL vmlinux 0x00000000 __ipv6_addr_type -EXPORT_SYMBOL vmlinux 0x00000000 __kernel_write -EXPORT_SYMBOL vmlinux 0x00000000 __kfifo_alloc -EXPORT_SYMBOL vmlinux 0x00000000 __kfifo_dma_in_finish_r -EXPORT_SYMBOL vmlinux 0x00000000 __kfifo_dma_in_prepare -EXPORT_SYMBOL vmlinux 0x00000000 __kfifo_dma_in_prepare_r -EXPORT_SYMBOL vmlinux 0x00000000 __kfifo_dma_out_finish_r -EXPORT_SYMBOL vmlinux 0x00000000 __kfifo_dma_out_prepare -EXPORT_SYMBOL vmlinux 0x00000000 __kfifo_dma_out_prepare_r -EXPORT_SYMBOL vmlinux 0x00000000 __kfifo_free -EXPORT_SYMBOL vmlinux 0x00000000 __kfifo_from_user -EXPORT_SYMBOL vmlinux 0x00000000 __kfifo_from_user_r -EXPORT_SYMBOL vmlinux 0x00000000 __kfifo_in -EXPORT_SYMBOL vmlinux 0x00000000 __kfifo_in_r -EXPORT_SYMBOL vmlinux 0x00000000 __kfifo_init -EXPORT_SYMBOL vmlinux 0x00000000 __kfifo_len_r -EXPORT_SYMBOL vmlinux 0x00000000 __kfifo_max_r -EXPORT_SYMBOL vmlinux 0x00000000 __kfifo_out -EXPORT_SYMBOL vmlinux 0x00000000 __kfifo_out_peek -EXPORT_SYMBOL vmlinux 0x00000000 __kfifo_out_peek_r -EXPORT_SYMBOL vmlinux 0x00000000 __kfifo_out_r -EXPORT_SYMBOL vmlinux 0x00000000 __kfifo_skip_r -EXPORT_SYMBOL vmlinux 0x00000000 __kfifo_to_user -EXPORT_SYMBOL vmlinux 0x00000000 __kfifo_to_user_r -EXPORT_SYMBOL vmlinux 0x00000000 __kfree_skb -EXPORT_SYMBOL vmlinux 0x00000000 __kmalloc -EXPORT_SYMBOL vmlinux 0x00000000 __kmalloc_node -EXPORT_SYMBOL vmlinux 0x00000000 __ksize -EXPORT_SYMBOL vmlinux 0x00000000 __local_bh_enable_ip -EXPORT_SYMBOL vmlinux 0x00000000 __lock_buffer -EXPORT_SYMBOL vmlinux 0x00000000 __lock_page -EXPORT_SYMBOL vmlinux 0x00000000 __mark_inode_dirty -EXPORT_SYMBOL vmlinux 0x00000000 __max_die_per_package -EXPORT_SYMBOL vmlinux 0x00000000 __max_logical_packages -EXPORT_SYMBOL vmlinux 0x00000000 __mb_cache_entry_free -EXPORT_SYMBOL vmlinux 0x00000000 __mdiobus_read -EXPORT_SYMBOL vmlinux 0x00000000 __mdiobus_register -EXPORT_SYMBOL vmlinux 0x00000000 __mdiobus_write -EXPORT_SYMBOL vmlinux 0x00000000 __memcpy -EXPORT_SYMBOL vmlinux 0x00000000 __memmove -EXPORT_SYMBOL vmlinux 0x00000000 __memset -EXPORT_SYMBOL vmlinux 0x00000000 __mmc_claim_host -EXPORT_SYMBOL vmlinux 0x00000000 __mod_node_page_state -EXPORT_SYMBOL vmlinux 0x00000000 __mod_zone_page_state -EXPORT_SYMBOL vmlinux 0x00000000 __module_get -EXPORT_SYMBOL vmlinux 0x00000000 __module_put_and_exit -EXPORT_SYMBOL vmlinux 0x00000000 __msecs_to_jiffies -EXPORT_SYMBOL vmlinux 0x00000000 __mutex_init -EXPORT_SYMBOL vmlinux 0x00000000 __napi_alloc_skb -EXPORT_SYMBOL vmlinux 0x00000000 __napi_schedule -EXPORT_SYMBOL vmlinux 0x00000000 __napi_schedule_irqoff -EXPORT_SYMBOL vmlinux 0x00000000 __nd_driver_register -EXPORT_SYMBOL vmlinux 0x00000000 __ndelay -EXPORT_SYMBOL vmlinux 0x00000000 __neigh_create -EXPORT_SYMBOL vmlinux 0x00000000 __neigh_event_send -EXPORT_SYMBOL vmlinux 0x00000000 __neigh_for_each_release -EXPORT_SYMBOL vmlinux 0x00000000 __neigh_set_probe_once -EXPORT_SYMBOL vmlinux 0x00000000 __netdev_alloc_skb -EXPORT_SYMBOL vmlinux 0x00000000 __netif_schedule -EXPORT_SYMBOL vmlinux 0x00000000 __netlink_dump_start -EXPORT_SYMBOL vmlinux 0x00000000 __netlink_kernel_create -EXPORT_SYMBOL vmlinux 0x00000000 __netlink_ns_capable -EXPORT_SYMBOL vmlinux 0x00000000 __next_node_in -EXPORT_SYMBOL vmlinux 0x00000000 __nla_parse -EXPORT_SYMBOL vmlinux 0x00000000 __nla_put -EXPORT_SYMBOL vmlinux 0x00000000 __nla_put_64bit -EXPORT_SYMBOL vmlinux 0x00000000 __nla_put_nohdr -EXPORT_SYMBOL vmlinux 0x00000000 __nla_reserve -EXPORT_SYMBOL vmlinux 0x00000000 __nla_reserve_64bit -EXPORT_SYMBOL vmlinux 0x00000000 __nla_reserve_nohdr -EXPORT_SYMBOL vmlinux 0x00000000 __nla_validate -EXPORT_SYMBOL vmlinux 0x00000000 __nlmsg_put -EXPORT_SYMBOL vmlinux 0x00000000 __node_distance -EXPORT_SYMBOL vmlinux 0x00000000 __num_online_cpus -EXPORT_SYMBOL vmlinux 0x00000000 __page_cache_alloc -EXPORT_SYMBOL vmlinux 0x00000000 __page_frag_cache_drain -EXPORT_SYMBOL vmlinux 0x00000000 __page_pool_put_page -EXPORT_SYMBOL vmlinux 0x00000000 __page_symlink -EXPORT_SYMBOL vmlinux 0x00000000 __pagevec_lru_add -EXPORT_SYMBOL vmlinux 0x00000000 __pagevec_release -EXPORT_SYMBOL vmlinux 0x00000000 __pci_register_driver -EXPORT_SYMBOL vmlinux 0x00000000 __per_cpu_offset -EXPORT_SYMBOL vmlinux 0x00000000 __percpu_counter_compare -EXPORT_SYMBOL vmlinux 0x00000000 __percpu_counter_init -EXPORT_SYMBOL vmlinux 0x00000000 __percpu_counter_sum -EXPORT_SYMBOL vmlinux 0x00000000 __phy_read_mmd -EXPORT_SYMBOL vmlinux 0x00000000 __phy_resume -EXPORT_SYMBOL vmlinux 0x00000000 __phy_write_mmd -EXPORT_SYMBOL vmlinux 0x00000000 __posix_acl_chmod -EXPORT_SYMBOL vmlinux 0x00000000 __posix_acl_create -EXPORT_SYMBOL vmlinux 0x00000000 __preempt_count -EXPORT_SYMBOL vmlinux 0x00000000 __printk_ratelimit -EXPORT_SYMBOL vmlinux 0x00000000 __ps2_command -EXPORT_SYMBOL vmlinux 0x00000000 __pskb_copy_fclone -EXPORT_SYMBOL vmlinux 0x00000000 __pskb_pull_tail -EXPORT_SYMBOL vmlinux 0x00000000 __pte2cachemode_tbl -EXPORT_SYMBOL vmlinux 0x00000000 __put_cred -EXPORT_SYMBOL vmlinux 0x00000000 __put_page -EXPORT_SYMBOL vmlinux 0x00000000 __put_user_1 -EXPORT_SYMBOL vmlinux 0x00000000 __put_user_2 -EXPORT_SYMBOL vmlinux 0x00000000 __put_user_4 -EXPORT_SYMBOL vmlinux 0x00000000 __put_user_8 -EXPORT_SYMBOL vmlinux 0x00000000 __put_user_ns -EXPORT_SYMBOL vmlinux 0x00000000 __pv_queued_spin_lock_slowpath -EXPORT_SYMBOL vmlinux 0x00000000 __qdisc_calculate_pkt_len -EXPORT_SYMBOL vmlinux 0x00000000 __quota_error -EXPORT_SYMBOL vmlinux 0x00000000 __rb_erase_color -EXPORT_SYMBOL vmlinux 0x00000000 __rb_insert_augmented -EXPORT_SYMBOL vmlinux 0x00000000 __refrigerator -EXPORT_SYMBOL vmlinux 0x00000000 __register_binfmt -EXPORT_SYMBOL vmlinux 0x00000000 __register_chrdev -EXPORT_SYMBOL vmlinux 0x00000000 __register_nls -EXPORT_SYMBOL vmlinux 0x00000000 __register_nmi_handler -EXPORT_SYMBOL vmlinux 0x00000000 __release_region -EXPORT_SYMBOL vmlinux 0x00000000 __remove_inode_hash -EXPORT_SYMBOL vmlinux 0x00000000 __request_module -EXPORT_SYMBOL vmlinux 0x00000000 __request_region -EXPORT_SYMBOL vmlinux 0x00000000 __sb_end_write -EXPORT_SYMBOL vmlinux 0x00000000 __sb_start_write -EXPORT_SYMBOL vmlinux 0x00000000 __scm_destroy -EXPORT_SYMBOL vmlinux 0x00000000 __scm_send -EXPORT_SYMBOL vmlinux 0x00000000 __scsi_add_device -EXPORT_SYMBOL vmlinux 0x00000000 __scsi_device_lookup -EXPORT_SYMBOL vmlinux 0x00000000 __scsi_device_lookup_by_target -EXPORT_SYMBOL vmlinux 0x00000000 __scsi_execute -EXPORT_SYMBOL vmlinux 0x00000000 __scsi_format_command -EXPORT_SYMBOL vmlinux 0x00000000 __scsi_iterate_devices -EXPORT_SYMBOL vmlinux 0x00000000 __scsi_print_sense -EXPORT_SYMBOL vmlinux 0x00000000 __seq_open_private -EXPORT_SYMBOL vmlinux 0x00000000 __serio_register_driver -EXPORT_SYMBOL vmlinux 0x00000000 __serio_register_port -EXPORT_SYMBOL vmlinux 0x00000000 __set_page_dirty_buffers -EXPORT_SYMBOL vmlinux 0x00000000 __set_page_dirty_nobuffers -EXPORT_SYMBOL vmlinux 0x00000000 __sg_alloc_table -EXPORT_SYMBOL vmlinux 0x00000000 __sg_alloc_table_from_pages -EXPORT_SYMBOL vmlinux 0x00000000 __sg_free_table -EXPORT_SYMBOL vmlinux 0x00000000 __sg_page_iter_dma_next -EXPORT_SYMBOL vmlinux 0x00000000 __sg_page_iter_next -EXPORT_SYMBOL vmlinux 0x00000000 __sg_page_iter_start -EXPORT_SYMBOL vmlinux 0x00000000 __siphash_aligned -EXPORT_SYMBOL vmlinux 0x00000000 __sk_backlog_rcv -EXPORT_SYMBOL vmlinux 0x00000000 __sk_dst_check -EXPORT_SYMBOL vmlinux 0x00000000 __sk_mem_raise_allocated -EXPORT_SYMBOL vmlinux 0x00000000 __sk_mem_reclaim -EXPORT_SYMBOL vmlinux 0x00000000 __sk_mem_reduce_allocated -EXPORT_SYMBOL vmlinux 0x00000000 __sk_mem_schedule -EXPORT_SYMBOL vmlinux 0x00000000 __sk_queue_drop_skb -EXPORT_SYMBOL vmlinux 0x00000000 __sk_receive_skb -EXPORT_SYMBOL vmlinux 0x00000000 __skb_checksum -EXPORT_SYMBOL vmlinux 0x00000000 __skb_checksum_complete -EXPORT_SYMBOL vmlinux 0x00000000 __skb_checksum_complete_head -EXPORT_SYMBOL vmlinux 0x00000000 __skb_ext_del -EXPORT_SYMBOL vmlinux 0x00000000 __skb_ext_put -EXPORT_SYMBOL vmlinux 0x00000000 __skb_flow_dissect -EXPORT_SYMBOL vmlinux 0x00000000 __skb_flow_get_ports -EXPORT_SYMBOL vmlinux 0x00000000 __skb_free_datagram_locked -EXPORT_SYMBOL vmlinux 0x00000000 __skb_get_hash -EXPORT_SYMBOL vmlinux 0x00000000 __skb_gro_checksum_complete -EXPORT_SYMBOL vmlinux 0x00000000 __skb_gso_segment -EXPORT_SYMBOL vmlinux 0x00000000 __skb_pad -EXPORT_SYMBOL vmlinux 0x00000000 __skb_recv_datagram -EXPORT_SYMBOL vmlinux 0x00000000 __skb_recv_udp -EXPORT_SYMBOL vmlinux 0x00000000 __skb_try_recv_datagram -EXPORT_SYMBOL vmlinux 0x00000000 __skb_vlan_pop -EXPORT_SYMBOL vmlinux 0x00000000 __skb_wait_for_more_packets -EXPORT_SYMBOL vmlinux 0x00000000 __skb_warn_lro_forwarding -EXPORT_SYMBOL vmlinux 0x00000000 __sock_cmsg_send -EXPORT_SYMBOL vmlinux 0x00000000 __sock_create -EXPORT_SYMBOL vmlinux 0x00000000 __sock_queue_rcv_skb -EXPORT_SYMBOL vmlinux 0x00000000 __sock_tx_timestamp -EXPORT_SYMBOL vmlinux 0x00000000 __splice_from_pipe -EXPORT_SYMBOL vmlinux 0x00000000 __stack_chk_fail -EXPORT_SYMBOL vmlinux 0x00000000 __starget_for_each_device -EXPORT_SYMBOL vmlinux 0x00000000 __sw_hweight32 -EXPORT_SYMBOL vmlinux 0x00000000 __sw_hweight64 -EXPORT_SYMBOL vmlinux 0x00000000 __symbol_put -EXPORT_SYMBOL vmlinux 0x00000000 __sync_dirty_buffer -EXPORT_SYMBOL vmlinux 0x00000000 __sysfs_match_string -EXPORT_SYMBOL vmlinux 0x00000000 __task_pid_nr_ns -EXPORT_SYMBOL vmlinux 0x00000000 __tasklet_hi_schedule -EXPORT_SYMBOL vmlinux 0x00000000 __tasklet_schedule -EXPORT_SYMBOL vmlinux 0x00000000 __tcf_em_tree_match -EXPORT_SYMBOL vmlinux 0x00000000 __tcf_idr_release -EXPORT_SYMBOL vmlinux 0x00000000 __tcp_md5_do_lookup -EXPORT_SYMBOL vmlinux 0x00000000 __test_set_page_writeback -EXPORT_SYMBOL vmlinux 0x00000000 __tracepoint_dma_fence_emit -EXPORT_SYMBOL vmlinux 0x00000000 __tracepoint_dma_fence_enable_signal -EXPORT_SYMBOL vmlinux 0x00000000 __tracepoint_dma_fence_signaled -EXPORT_SYMBOL vmlinux 0x00000000 __tracepoint_kfree -EXPORT_SYMBOL vmlinux 0x00000000 __tracepoint_kmalloc -EXPORT_SYMBOL vmlinux 0x00000000 __tracepoint_kmalloc_node -EXPORT_SYMBOL vmlinux 0x00000000 __tracepoint_kmem_cache_alloc -EXPORT_SYMBOL vmlinux 0x00000000 __tracepoint_kmem_cache_alloc_node -EXPORT_SYMBOL vmlinux 0x00000000 __tracepoint_kmem_cache_free -EXPORT_SYMBOL vmlinux 0x00000000 __tracepoint_module_get -EXPORT_SYMBOL vmlinux 0x00000000 __tracepoint_rdpmc -EXPORT_SYMBOL vmlinux 0x00000000 __tracepoint_read_msr -EXPORT_SYMBOL vmlinux 0x00000000 __tracepoint_spi_transfer_start -EXPORT_SYMBOL vmlinux 0x00000000 __tracepoint_spi_transfer_stop -EXPORT_SYMBOL vmlinux 0x00000000 __tracepoint_write_msr -EXPORT_SYMBOL vmlinux 0x00000000 __tty_alloc_driver -EXPORT_SYMBOL vmlinux 0x00000000 __tty_insert_flip_char -EXPORT_SYMBOL vmlinux 0x00000000 __udelay -EXPORT_SYMBOL vmlinux 0x00000000 __udp_disconnect -EXPORT_SYMBOL vmlinux 0x00000000 __unregister_chrdev -EXPORT_SYMBOL vmlinux 0x00000000 __usecs_to_jiffies -EXPORT_SYMBOL vmlinux 0x00000000 __var_waitqueue -EXPORT_SYMBOL vmlinux 0x00000000 __vfs_getxattr -EXPORT_SYMBOL vmlinux 0x00000000 __vfs_removexattr -EXPORT_SYMBOL vmlinux 0x00000000 __vfs_setxattr -EXPORT_SYMBOL vmlinux 0x00000000 __virt_addr_valid -EXPORT_SYMBOL vmlinux 0x00000000 __vlan_find_dev_deep_rcu -EXPORT_SYMBOL vmlinux 0x00000000 __vmalloc -EXPORT_SYMBOL vmlinux 0x00000000 __wait_on_bit -EXPORT_SYMBOL vmlinux 0x00000000 __wait_on_bit_lock -EXPORT_SYMBOL vmlinux 0x00000000 __wait_on_buffer -EXPORT_SYMBOL vmlinux 0x00000000 __wake_up -EXPORT_SYMBOL vmlinux 0x00000000 __wake_up_bit -EXPORT_SYMBOL vmlinux 0x00000000 __warn_printk -EXPORT_SYMBOL vmlinux 0x00000000 __x86_indirect_thunk_r10 -EXPORT_SYMBOL vmlinux 0x00000000 __x86_indirect_thunk_r11 -EXPORT_SYMBOL vmlinux 0x00000000 __x86_indirect_thunk_r12 -EXPORT_SYMBOL vmlinux 0x00000000 __x86_indirect_thunk_r13 -EXPORT_SYMBOL vmlinux 0x00000000 __x86_indirect_thunk_r14 -EXPORT_SYMBOL vmlinux 0x00000000 __x86_indirect_thunk_r15 -EXPORT_SYMBOL vmlinux 0x00000000 __x86_indirect_thunk_r8 -EXPORT_SYMBOL vmlinux 0x00000000 __x86_indirect_thunk_r9 -EXPORT_SYMBOL vmlinux 0x00000000 __x86_indirect_thunk_rax -EXPORT_SYMBOL vmlinux 0x00000000 __x86_indirect_thunk_rbp -EXPORT_SYMBOL vmlinux 0x00000000 __x86_indirect_thunk_rbx -EXPORT_SYMBOL vmlinux 0x00000000 __x86_indirect_thunk_rcx -EXPORT_SYMBOL vmlinux 0x00000000 __x86_indirect_thunk_rdi -EXPORT_SYMBOL vmlinux 0x00000000 __x86_indirect_thunk_rdx -EXPORT_SYMBOL vmlinux 0x00000000 __x86_indirect_thunk_rsi -EXPORT_SYMBOL vmlinux 0x00000000 __xa_alloc -EXPORT_SYMBOL vmlinux 0x00000000 __xa_alloc_cyclic -EXPORT_SYMBOL vmlinux 0x00000000 __xa_clear_mark -EXPORT_SYMBOL vmlinux 0x00000000 __xa_cmpxchg -EXPORT_SYMBOL vmlinux 0x00000000 __xa_erase -EXPORT_SYMBOL vmlinux 0x00000000 __xa_insert -EXPORT_SYMBOL vmlinux 0x00000000 __xa_set_mark -EXPORT_SYMBOL vmlinux 0x00000000 __xa_store -EXPORT_SYMBOL vmlinux 0x00000000 __xfrm_decode_session -EXPORT_SYMBOL vmlinux 0x00000000 __xfrm_dst_lookup -EXPORT_SYMBOL vmlinux 0x00000000 __xfrm_init_state -EXPORT_SYMBOL vmlinux 0x00000000 __xfrm_policy_check -EXPORT_SYMBOL vmlinux 0x00000000 __xfrm_route_forward -EXPORT_SYMBOL vmlinux 0x00000000 __xfrm_state_delete -EXPORT_SYMBOL vmlinux 0x00000000 __xfrm_state_destroy -EXPORT_SYMBOL vmlinux 0x00000000 __zerocopy_sg_from_iter -EXPORT_SYMBOL vmlinux 0x00000000 _atomic_dec_and_lock -EXPORT_SYMBOL vmlinux 0x00000000 _atomic_dec_and_lock_irqsave -EXPORT_SYMBOL vmlinux 0x00000000 _bcd2bin -EXPORT_SYMBOL vmlinux 0x00000000 _bin2bcd -EXPORT_SYMBOL vmlinux 0x00000000 _cond_resched -EXPORT_SYMBOL vmlinux 0x00000000 _copy_from_iter -EXPORT_SYMBOL vmlinux 0x00000000 _copy_from_iter_full -EXPORT_SYMBOL vmlinux 0x00000000 _copy_from_iter_full_nocache -EXPORT_SYMBOL vmlinux 0x00000000 _copy_from_iter_nocache -EXPORT_SYMBOL vmlinux 0x00000000 _copy_from_user -EXPORT_SYMBOL vmlinux 0x00000000 _copy_to_iter -EXPORT_SYMBOL vmlinux 0x00000000 _copy_to_user -EXPORT_SYMBOL vmlinux 0x00000000 _ctype -EXPORT_SYMBOL vmlinux 0x00000000 _dev_alert -EXPORT_SYMBOL vmlinux 0x00000000 _dev_crit -EXPORT_SYMBOL vmlinux 0x00000000 _dev_emerg -EXPORT_SYMBOL vmlinux 0x00000000 _dev_err -EXPORT_SYMBOL vmlinux 0x00000000 _dev_info -EXPORT_SYMBOL vmlinux 0x00000000 _dev_notice -EXPORT_SYMBOL vmlinux 0x00000000 _dev_warn -EXPORT_SYMBOL vmlinux 0x00000000 _kstrtol -EXPORT_SYMBOL vmlinux 0x00000000 _kstrtoul -EXPORT_SYMBOL vmlinux 0x00000000 _local_bh_enable -EXPORT_SYMBOL vmlinux 0x00000000 _raw_read_lock -EXPORT_SYMBOL vmlinux 0x00000000 _raw_read_lock_bh -EXPORT_SYMBOL vmlinux 0x00000000 _raw_read_lock_irq -EXPORT_SYMBOL vmlinux 0x00000000 _raw_read_lock_irqsave -EXPORT_SYMBOL vmlinux 0x00000000 _raw_read_trylock -EXPORT_SYMBOL vmlinux 0x00000000 _raw_read_unlock_bh -EXPORT_SYMBOL vmlinux 0x00000000 _raw_read_unlock_irqrestore -EXPORT_SYMBOL vmlinux 0x00000000 _raw_spin_lock -EXPORT_SYMBOL vmlinux 0x00000000 _raw_spin_lock_bh -EXPORT_SYMBOL vmlinux 0x00000000 _raw_spin_lock_irq -EXPORT_SYMBOL vmlinux 0x00000000 _raw_spin_lock_irqsave -EXPORT_SYMBOL vmlinux 0x00000000 _raw_spin_trylock -EXPORT_SYMBOL vmlinux 0x00000000 _raw_spin_trylock_bh -EXPORT_SYMBOL vmlinux 0x00000000 _raw_spin_unlock_bh -EXPORT_SYMBOL vmlinux 0x00000000 _raw_spin_unlock_irqrestore -EXPORT_SYMBOL vmlinux 0x00000000 _raw_write_lock -EXPORT_SYMBOL vmlinux 0x00000000 _raw_write_lock_bh -EXPORT_SYMBOL vmlinux 0x00000000 _raw_write_lock_irq -EXPORT_SYMBOL vmlinux 0x00000000 _raw_write_lock_irqsave -EXPORT_SYMBOL vmlinux 0x00000000 _raw_write_trylock -EXPORT_SYMBOL vmlinux 0x00000000 _raw_write_unlock_bh -EXPORT_SYMBOL vmlinux 0x00000000 _raw_write_unlock_irqrestore -EXPORT_SYMBOL vmlinux 0x00000000 _totalram_pages -EXPORT_SYMBOL vmlinux 0x00000000 ab3100_event_register -EXPORT_SYMBOL vmlinux 0x00000000 ab3100_event_unregister -EXPORT_SYMBOL vmlinux 0x00000000 abort -EXPORT_SYMBOL vmlinux 0x00000000 abort_creds -EXPORT_SYMBOL vmlinux 0x00000000 abx500_event_registers_startup_state_get -EXPORT_SYMBOL vmlinux 0x00000000 abx500_get_chip_id -EXPORT_SYMBOL vmlinux 0x00000000 abx500_get_register_interruptible -EXPORT_SYMBOL vmlinux 0x00000000 abx500_get_register_page_interruptible -EXPORT_SYMBOL vmlinux 0x00000000 abx500_mask_and_set_register_interruptible -EXPORT_SYMBOL vmlinux 0x00000000 abx500_register_ops -EXPORT_SYMBOL vmlinux 0x00000000 abx500_remove_ops -EXPORT_SYMBOL vmlinux 0x00000000 abx500_set_register_interruptible -EXPORT_SYMBOL vmlinux 0x00000000 abx500_startup_irq_enabled -EXPORT_SYMBOL vmlinux 0x00000000 account_page_redirty -EXPORT_SYMBOL vmlinux 0x00000000 acpi_acquire_global_lock -EXPORT_SYMBOL vmlinux 0x00000000 acpi_acquire_mutex -EXPORT_SYMBOL vmlinux 0x00000000 acpi_any_gpe_status_set -EXPORT_SYMBOL vmlinux 0x00000000 acpi_attach_data -EXPORT_SYMBOL vmlinux 0x00000000 acpi_bios_error -EXPORT_SYMBOL vmlinux 0x00000000 acpi_bios_exception -EXPORT_SYMBOL vmlinux 0x00000000 acpi_bios_warning -EXPORT_SYMBOL vmlinux 0x00000000 acpi_buffer_to_resource -EXPORT_SYMBOL vmlinux 0x00000000 acpi_bus_can_wakeup -EXPORT_SYMBOL vmlinux 0x00000000 acpi_bus_generate_netlink_event -EXPORT_SYMBOL vmlinux 0x00000000 acpi_bus_get_device -EXPORT_SYMBOL vmlinux 0x00000000 acpi_bus_get_status -EXPORT_SYMBOL vmlinux 0x00000000 acpi_bus_power_manageable -EXPORT_SYMBOL vmlinux 0x00000000 acpi_bus_private_data_handler -EXPORT_SYMBOL vmlinux 0x00000000 acpi_bus_register_driver -EXPORT_SYMBOL vmlinux 0x00000000 acpi_bus_scan -EXPORT_SYMBOL vmlinux 0x00000000 acpi_bus_set_power -EXPORT_SYMBOL vmlinux 0x00000000 acpi_bus_unregister_driver -EXPORT_SYMBOL vmlinux 0x00000000 acpi_check_address_range -EXPORT_SYMBOL vmlinux 0x00000000 acpi_check_dsm -EXPORT_SYMBOL vmlinux 0x00000000 acpi_check_region -EXPORT_SYMBOL vmlinux 0x00000000 acpi_check_resource_conflict -EXPORT_SYMBOL vmlinux 0x00000000 acpi_clear_event -EXPORT_SYMBOL vmlinux 0x00000000 acpi_clear_gpe -EXPORT_SYMBOL vmlinux 0x00000000 acpi_current_gpe_count -EXPORT_SYMBOL vmlinux 0x00000000 acpi_dbg_layer -EXPORT_SYMBOL vmlinux 0x00000000 acpi_dbg_level -EXPORT_SYMBOL vmlinux 0x00000000 acpi_debug_print -EXPORT_SYMBOL vmlinux 0x00000000 acpi_debug_print_raw -EXPORT_SYMBOL vmlinux 0x00000000 acpi_decode_pld_buffer -EXPORT_SYMBOL vmlinux 0x00000000 acpi_detach_data -EXPORT_SYMBOL vmlinux 0x00000000 acpi_dev_found -EXPORT_SYMBOL vmlinux 0x00000000 acpi_dev_get_first_match_dev -EXPORT_SYMBOL vmlinux 0x00000000 acpi_dev_hid_uid_match -EXPORT_SYMBOL vmlinux 0x00000000 acpi_dev_present -EXPORT_SYMBOL vmlinux 0x00000000 acpi_device_hid -EXPORT_SYMBOL vmlinux 0x00000000 acpi_device_set_power -EXPORT_SYMBOL vmlinux 0x00000000 acpi_disable -EXPORT_SYMBOL vmlinux 0x00000000 acpi_disable_all_gpes -EXPORT_SYMBOL vmlinux 0x00000000 acpi_disable_event -EXPORT_SYMBOL vmlinux 0x00000000 acpi_disable_gpe -EXPORT_SYMBOL vmlinux 0x00000000 acpi_disabled -EXPORT_SYMBOL vmlinux 0x00000000 acpi_dispatch_gpe -EXPORT_SYMBOL vmlinux 0x00000000 acpi_enable -EXPORT_SYMBOL vmlinux 0x00000000 acpi_enable_all_runtime_gpes -EXPORT_SYMBOL vmlinux 0x00000000 acpi_enable_all_wakeup_gpes -EXPORT_SYMBOL vmlinux 0x00000000 acpi_enable_event -EXPORT_SYMBOL vmlinux 0x00000000 acpi_enable_gpe -EXPORT_SYMBOL vmlinux 0x00000000 acpi_enter_sleep_state -EXPORT_SYMBOL vmlinux 0x00000000 acpi_enter_sleep_state_prep -EXPORT_SYMBOL vmlinux 0x00000000 acpi_enter_sleep_state_s4bios -EXPORT_SYMBOL vmlinux 0x00000000 acpi_error -EXPORT_SYMBOL vmlinux 0x00000000 acpi_evaluate_dsm -EXPORT_SYMBOL vmlinux 0x00000000 acpi_evaluate_integer -EXPORT_SYMBOL vmlinux 0x00000000 acpi_evaluate_object -EXPORT_SYMBOL vmlinux 0x00000000 acpi_evaluate_object_typed -EXPORT_SYMBOL vmlinux 0x00000000 acpi_evaluate_ost -EXPORT_SYMBOL vmlinux 0x00000000 acpi_evaluate_reference -EXPORT_SYMBOL vmlinux 0x00000000 acpi_exception -EXPORT_SYMBOL vmlinux 0x00000000 acpi_execute_simple_method -EXPORT_SYMBOL vmlinux 0x00000000 acpi_extract_package -EXPORT_SYMBOL vmlinux 0x00000000 acpi_finish_gpe -EXPORT_SYMBOL vmlinux 0x00000000 acpi_format_exception -EXPORT_SYMBOL vmlinux 0x00000000 acpi_gbl_FADT -EXPORT_SYMBOL vmlinux 0x00000000 acpi_get_current_resources -EXPORT_SYMBOL vmlinux 0x00000000 acpi_get_data -EXPORT_SYMBOL vmlinux 0x00000000 acpi_get_data_full -EXPORT_SYMBOL vmlinux 0x00000000 acpi_get_devices -EXPORT_SYMBOL vmlinux 0x00000000 acpi_get_event_resources -EXPORT_SYMBOL vmlinux 0x00000000 acpi_get_event_status -EXPORT_SYMBOL vmlinux 0x00000000 acpi_get_gpe_device -EXPORT_SYMBOL vmlinux 0x00000000 acpi_get_gpe_status -EXPORT_SYMBOL vmlinux 0x00000000 acpi_get_handle -EXPORT_SYMBOL vmlinux 0x00000000 acpi_get_hp_hw_control_from_firmware -EXPORT_SYMBOL vmlinux 0x00000000 acpi_get_irq_routing_table -EXPORT_SYMBOL vmlinux 0x00000000 acpi_get_name -EXPORT_SYMBOL vmlinux 0x00000000 acpi_get_next_object -EXPORT_SYMBOL vmlinux 0x00000000 acpi_get_node -EXPORT_SYMBOL vmlinux 0x00000000 acpi_get_object_info -EXPORT_SYMBOL vmlinux 0x00000000 acpi_get_parent -EXPORT_SYMBOL vmlinux 0x00000000 acpi_get_physical_device_location -EXPORT_SYMBOL vmlinux 0x00000000 acpi_get_possible_resources -EXPORT_SYMBOL vmlinux 0x00000000 acpi_get_sleep_type_data -EXPORT_SYMBOL vmlinux 0x00000000 acpi_get_table -EXPORT_SYMBOL vmlinux 0x00000000 acpi_get_table_by_index -EXPORT_SYMBOL vmlinux 0x00000000 acpi_get_table_header -EXPORT_SYMBOL vmlinux 0x00000000 acpi_get_type -EXPORT_SYMBOL vmlinux 0x00000000 acpi_get_vendor_resource -EXPORT_SYMBOL vmlinux 0x00000000 acpi_gpe_count -EXPORT_SYMBOL vmlinux 0x00000000 acpi_handle_printk -EXPORT_SYMBOL vmlinux 0x00000000 acpi_has_method -EXPORT_SYMBOL vmlinux 0x00000000 acpi_info -EXPORT_SYMBOL vmlinux 0x00000000 acpi_initialize_debugger -EXPORT_SYMBOL vmlinux 0x00000000 acpi_install_address_space_handler -EXPORT_SYMBOL vmlinux 0x00000000 acpi_install_fixed_event_handler -EXPORT_SYMBOL vmlinux 0x00000000 acpi_install_global_event_handler -EXPORT_SYMBOL vmlinux 0x00000000 acpi_install_gpe_block -EXPORT_SYMBOL vmlinux 0x00000000 acpi_install_gpe_handler -EXPORT_SYMBOL vmlinux 0x00000000 acpi_install_gpe_raw_handler -EXPORT_SYMBOL vmlinux 0x00000000 acpi_install_interface -EXPORT_SYMBOL vmlinux 0x00000000 acpi_install_interface_handler -EXPORT_SYMBOL vmlinux 0x00000000 acpi_install_method -EXPORT_SYMBOL vmlinux 0x00000000 acpi_install_notify_handler -EXPORT_SYMBOL vmlinux 0x00000000 acpi_install_sci_handler -EXPORT_SYMBOL vmlinux 0x00000000 acpi_install_table_handler -EXPORT_SYMBOL vmlinux 0x00000000 acpi_is_video_device -EXPORT_SYMBOL vmlinux 0x00000000 acpi_leave_sleep_state -EXPORT_SYMBOL vmlinux 0x00000000 acpi_leave_sleep_state_prep -EXPORT_SYMBOL vmlinux 0x00000000 acpi_lid_open -EXPORT_SYMBOL vmlinux 0x00000000 acpi_load_table -EXPORT_SYMBOL vmlinux 0x00000000 acpi_map_cpu -EXPORT_SYMBOL vmlinux 0x00000000 acpi_map_pxm_to_node -EXPORT_SYMBOL vmlinux 0x00000000 acpi_map_pxm_to_online_node -EXPORT_SYMBOL vmlinux 0x00000000 acpi_mark_gpe_for_wake -EXPORT_SYMBOL vmlinux 0x00000000 acpi_mask_gpe -EXPORT_SYMBOL vmlinux 0x00000000 acpi_match_device_ids -EXPORT_SYMBOL vmlinux 0x00000000 acpi_match_platform_list -EXPORT_SYMBOL vmlinux 0x00000000 acpi_notifier_call_chain -EXPORT_SYMBOL vmlinux 0x00000000 acpi_os_execute -EXPORT_SYMBOL vmlinux 0x00000000 acpi_os_get_line -EXPORT_SYMBOL vmlinux 0x00000000 acpi_os_map_generic_address -EXPORT_SYMBOL vmlinux 0x00000000 acpi_os_printf -EXPORT_SYMBOL vmlinux 0x00000000 acpi_os_read_port -EXPORT_SYMBOL vmlinux 0x00000000 acpi_os_unmap_generic_address -EXPORT_SYMBOL vmlinux 0x00000000 acpi_os_wait_events_complete -EXPORT_SYMBOL vmlinux 0x00000000 acpi_os_write_port -EXPORT_SYMBOL vmlinux 0x00000000 acpi_osi_is_win8 -EXPORT_SYMBOL vmlinux 0x00000000 acpi_pci_disabled -EXPORT_SYMBOL vmlinux 0x00000000 acpi_pci_osc_control_set -EXPORT_SYMBOL vmlinux 0x00000000 acpi_pm_device_sleep_state -EXPORT_SYMBOL vmlinux 0x00000000 acpi_processor_get_bios_limit -EXPORT_SYMBOL vmlinux 0x00000000 acpi_processor_get_psd -EXPORT_SYMBOL vmlinux 0x00000000 acpi_processor_notify_smm -EXPORT_SYMBOL vmlinux 0x00000000 acpi_processor_power_init_bm_check -EXPORT_SYMBOL vmlinux 0x00000000 acpi_processor_preregister_performance -EXPORT_SYMBOL vmlinux 0x00000000 acpi_processor_register_performance -EXPORT_SYMBOL vmlinux 0x00000000 acpi_processor_unregister_performance -EXPORT_SYMBOL vmlinux 0x00000000 acpi_purge_cached_objects -EXPORT_SYMBOL vmlinux 0x00000000 acpi_put_table -EXPORT_SYMBOL vmlinux 0x00000000 acpi_read -EXPORT_SYMBOL vmlinux 0x00000000 acpi_read_bit_register -EXPORT_SYMBOL vmlinux 0x00000000 acpi_reconfig_notifier_register -EXPORT_SYMBOL vmlinux 0x00000000 acpi_reconfig_notifier_unregister -EXPORT_SYMBOL vmlinux 0x00000000 acpi_register_debugger -EXPORT_SYMBOL vmlinux 0x00000000 acpi_register_ioapic -EXPORT_SYMBOL vmlinux 0x00000000 acpi_release_global_lock -EXPORT_SYMBOL vmlinux 0x00000000 acpi_release_mutex -EXPORT_SYMBOL vmlinux 0x00000000 acpi_remove_address_space_handler -EXPORT_SYMBOL vmlinux 0x00000000 acpi_remove_fixed_event_handler -EXPORT_SYMBOL vmlinux 0x00000000 acpi_remove_gpe_block -EXPORT_SYMBOL vmlinux 0x00000000 acpi_remove_gpe_handler -EXPORT_SYMBOL vmlinux 0x00000000 acpi_remove_interface -EXPORT_SYMBOL vmlinux 0x00000000 acpi_remove_notify_handler -EXPORT_SYMBOL vmlinux 0x00000000 acpi_remove_sci_handler -EXPORT_SYMBOL vmlinux 0x00000000 acpi_remove_table_handler -EXPORT_SYMBOL vmlinux 0x00000000 acpi_reset -EXPORT_SYMBOL vmlinux 0x00000000 acpi_resource_to_address64 -EXPORT_SYMBOL vmlinux 0x00000000 acpi_resources_are_enforced -EXPORT_SYMBOL vmlinux 0x00000000 acpi_root_dir -EXPORT_SYMBOL vmlinux 0x00000000 acpi_run_osc -EXPORT_SYMBOL vmlinux 0x00000000 acpi_set_current_resources -EXPORT_SYMBOL vmlinux 0x00000000 acpi_set_debugger_thread_id -EXPORT_SYMBOL vmlinux 0x00000000 acpi_set_firmware_waking_vector -EXPORT_SYMBOL vmlinux 0x00000000 acpi_set_gpe -EXPORT_SYMBOL vmlinux 0x00000000 acpi_set_gpe_wake_mask -EXPORT_SYMBOL vmlinux 0x00000000 acpi_setup_gpe_for_wake -EXPORT_SYMBOL vmlinux 0x00000000 acpi_tb_install_and_load_table -EXPORT_SYMBOL vmlinux 0x00000000 acpi_tb_unload_table -EXPORT_SYMBOL vmlinux 0x00000000 acpi_terminate_debugger -EXPORT_SYMBOL vmlinux 0x00000000 acpi_trace_point -EXPORT_SYMBOL vmlinux 0x00000000 acpi_unload_parent_table -EXPORT_SYMBOL vmlinux 0x00000000 acpi_unload_table -EXPORT_SYMBOL vmlinux 0x00000000 acpi_unmap_cpu -EXPORT_SYMBOL vmlinux 0x00000000 acpi_unregister_debugger -EXPORT_SYMBOL vmlinux 0x00000000 acpi_unregister_ioapic -EXPORT_SYMBOL vmlinux 0x00000000 acpi_update_all_gpes -EXPORT_SYMBOL vmlinux 0x00000000 acpi_ut_exit -EXPORT_SYMBOL vmlinux 0x00000000 acpi_ut_status_exit -EXPORT_SYMBOL vmlinux 0x00000000 acpi_ut_trace -EXPORT_SYMBOL vmlinux 0x00000000 acpi_ut_value_exit -EXPORT_SYMBOL vmlinux 0x00000000 acpi_video_backlight_string -EXPORT_SYMBOL vmlinux 0x00000000 acpi_walk_namespace -EXPORT_SYMBOL vmlinux 0x00000000 acpi_walk_resource_buffer -EXPORT_SYMBOL vmlinux 0x00000000 acpi_walk_resources -EXPORT_SYMBOL vmlinux 0x00000000 acpi_warning -EXPORT_SYMBOL vmlinux 0x00000000 acpi_write -EXPORT_SYMBOL vmlinux 0x00000000 acpi_write_bit_register -EXPORT_SYMBOL vmlinux 0x00000000 add_device_randomness -EXPORT_SYMBOL vmlinux 0x00000000 add_random_ready_callback -EXPORT_SYMBOL vmlinux 0x00000000 add_taint -EXPORT_SYMBOL vmlinux 0x00000000 add_timer -EXPORT_SYMBOL vmlinux 0x00000000 add_to_page_cache_locked -EXPORT_SYMBOL vmlinux 0x00000000 add_to_pipe -EXPORT_SYMBOL vmlinux 0x00000000 add_wait_queue -EXPORT_SYMBOL vmlinux 0x00000000 add_wait_queue_exclusive -EXPORT_SYMBOL vmlinux 0x00000000 address_space_init_once -EXPORT_SYMBOL vmlinux 0x00000000 adjust_managed_page_count -EXPORT_SYMBOL vmlinux 0x00000000 adjust_resource -EXPORT_SYMBOL vmlinux 0x00000000 aes_decrypt -EXPORT_SYMBOL vmlinux 0x00000000 aes_encrypt -EXPORT_SYMBOL vmlinux 0x00000000 aes_expandkey -EXPORT_SYMBOL vmlinux 0x00000000 agp3_generic_cleanup -EXPORT_SYMBOL vmlinux 0x00000000 agp3_generic_configure -EXPORT_SYMBOL vmlinux 0x00000000 agp3_generic_fetch_size -EXPORT_SYMBOL vmlinux 0x00000000 agp3_generic_sizes -EXPORT_SYMBOL vmlinux 0x00000000 agp3_generic_tlbflush -EXPORT_SYMBOL vmlinux 0x00000000 agp_alloc_bridge -EXPORT_SYMBOL vmlinux 0x00000000 agp_alloc_page_array -EXPORT_SYMBOL vmlinux 0x00000000 agp_allocate_memory -EXPORT_SYMBOL vmlinux 0x00000000 agp_backend_acquire -EXPORT_SYMBOL vmlinux 0x00000000 agp_backend_release -EXPORT_SYMBOL vmlinux 0x00000000 agp_bind_memory -EXPORT_SYMBOL vmlinux 0x00000000 agp_bridge -EXPORT_SYMBOL vmlinux 0x00000000 agp_bridges -EXPORT_SYMBOL vmlinux 0x00000000 agp_collect_device_status -EXPORT_SYMBOL vmlinux 0x00000000 agp_copy_info -EXPORT_SYMBOL vmlinux 0x00000000 agp_create_memory -EXPORT_SYMBOL vmlinux 0x00000000 agp_device_command -EXPORT_SYMBOL vmlinux 0x00000000 agp_enable -EXPORT_SYMBOL vmlinux 0x00000000 agp_find_bridge -EXPORT_SYMBOL vmlinux 0x00000000 agp_free_key -EXPORT_SYMBOL vmlinux 0x00000000 agp_free_memory -EXPORT_SYMBOL vmlinux 0x00000000 agp_generic_alloc_by_type -EXPORT_SYMBOL vmlinux 0x00000000 agp_generic_alloc_page -EXPORT_SYMBOL vmlinux 0x00000000 agp_generic_alloc_pages -EXPORT_SYMBOL vmlinux 0x00000000 agp_generic_alloc_user -EXPORT_SYMBOL vmlinux 0x00000000 agp_generic_create_gatt_table -EXPORT_SYMBOL vmlinux 0x00000000 agp_generic_destroy_page -EXPORT_SYMBOL vmlinux 0x00000000 agp_generic_destroy_pages -EXPORT_SYMBOL vmlinux 0x00000000 agp_generic_enable -EXPORT_SYMBOL vmlinux 0x00000000 agp_generic_free_by_type -EXPORT_SYMBOL vmlinux 0x00000000 agp_generic_free_gatt_table -EXPORT_SYMBOL vmlinux 0x00000000 agp_generic_insert_memory -EXPORT_SYMBOL vmlinux 0x00000000 agp_generic_mask_memory -EXPORT_SYMBOL vmlinux 0x00000000 agp_generic_remove_memory -EXPORT_SYMBOL vmlinux 0x00000000 agp_generic_type_to_mask_type -EXPORT_SYMBOL vmlinux 0x00000000 agp_off -EXPORT_SYMBOL vmlinux 0x00000000 agp_put_bridge -EXPORT_SYMBOL vmlinux 0x00000000 agp_try_unsupported_boot -EXPORT_SYMBOL vmlinux 0x00000000 agp_unbind_memory -EXPORT_SYMBOL vmlinux 0x00000000 alloc_anon_inode -EXPORT_SYMBOL vmlinux 0x00000000 alloc_buffer_head -EXPORT_SYMBOL vmlinux 0x00000000 alloc_chrdev_region -EXPORT_SYMBOL vmlinux 0x00000000 alloc_cpu_rmap -EXPORT_SYMBOL vmlinux 0x00000000 alloc_cpumask_var -EXPORT_SYMBOL vmlinux 0x00000000 alloc_cpumask_var_node -EXPORT_SYMBOL vmlinux 0x00000000 alloc_etherdev_mqs -EXPORT_SYMBOL vmlinux 0x00000000 alloc_fcdev -EXPORT_SYMBOL vmlinux 0x00000000 alloc_fddidev -EXPORT_SYMBOL vmlinux 0x00000000 alloc_file_pseudo -EXPORT_SYMBOL vmlinux 0x00000000 alloc_iova_mem -EXPORT_SYMBOL vmlinux 0x00000000 alloc_netdev_mqs -EXPORT_SYMBOL vmlinux 0x00000000 alloc_pages_current -EXPORT_SYMBOL vmlinux 0x00000000 alloc_pages_exact -EXPORT_SYMBOL vmlinux 0x00000000 alloc_pages_vma -EXPORT_SYMBOL vmlinux 0x00000000 alloc_skb_with_frags -EXPORT_SYMBOL vmlinux 0x00000000 alloc_xenballooned_pages -EXPORT_SYMBOL vmlinux 0x00000000 allocate_resource -EXPORT_SYMBOL vmlinux 0x00000000 always_delete_dentry -EXPORT_SYMBOL vmlinux 0x00000000 amd_iommu_activate_guest_mode -EXPORT_SYMBOL vmlinux 0x00000000 amd_iommu_complete_ppr -EXPORT_SYMBOL vmlinux 0x00000000 amd_iommu_deactivate_guest_mode -EXPORT_SYMBOL vmlinux 0x00000000 amd_iommu_device_info -EXPORT_SYMBOL vmlinux 0x00000000 amd_iommu_domain_clear_gcr3 -EXPORT_SYMBOL vmlinux 0x00000000 amd_iommu_domain_direct_map -EXPORT_SYMBOL vmlinux 0x00000000 amd_iommu_domain_enable_v2 -EXPORT_SYMBOL vmlinux 0x00000000 amd_iommu_domain_set_gcr3 -EXPORT_SYMBOL vmlinux 0x00000000 amd_iommu_enable_device_erratum -EXPORT_SYMBOL vmlinux 0x00000000 amd_iommu_flush_page -EXPORT_SYMBOL vmlinux 0x00000000 amd_iommu_flush_tlb -EXPORT_SYMBOL vmlinux 0x00000000 amd_iommu_get_v2_domain -EXPORT_SYMBOL vmlinux 0x00000000 amd_iommu_pc_get_max_banks -EXPORT_SYMBOL vmlinux 0x00000000 amd_iommu_pc_get_max_counters -EXPORT_SYMBOL vmlinux 0x00000000 amd_iommu_pc_get_reg -EXPORT_SYMBOL vmlinux 0x00000000 amd_iommu_pc_set_reg -EXPORT_SYMBOL vmlinux 0x00000000 amd_iommu_pc_supported -EXPORT_SYMBOL vmlinux 0x00000000 amd_iommu_register_ga_log_notifier -EXPORT_SYMBOL vmlinux 0x00000000 amd_iommu_register_ppr_notifier -EXPORT_SYMBOL vmlinux 0x00000000 amd_iommu_rlookup_table -EXPORT_SYMBOL vmlinux 0x00000000 amd_iommu_unregister_ppr_notifier -EXPORT_SYMBOL vmlinux 0x00000000 amd_iommu_update_ga -EXPORT_SYMBOL vmlinux 0x00000000 amd_iommu_v2_supported -EXPORT_SYMBOL vmlinux 0x00000000 arch_debugfs_dir -EXPORT_SYMBOL vmlinux 0x00000000 arch_io_free_memtype_wc -EXPORT_SYMBOL vmlinux 0x00000000 arch_io_reserve_memtype_wc -EXPORT_SYMBOL vmlinux 0x00000000 arch_phys_wc_add -EXPORT_SYMBOL vmlinux 0x00000000 arch_phys_wc_del -EXPORT_SYMBOL vmlinux 0x00000000 arch_register_cpu -EXPORT_SYMBOL vmlinux 0x00000000 arch_touch_nmi_watchdog -EXPORT_SYMBOL vmlinux 0x00000000 arch_unregister_cpu -EXPORT_SYMBOL vmlinux 0x00000000 argv_free -EXPORT_SYMBOL vmlinux 0x00000000 argv_split -EXPORT_SYMBOL vmlinux 0x00000000 arp_create -EXPORT_SYMBOL vmlinux 0x00000000 arp_send -EXPORT_SYMBOL vmlinux 0x00000000 arp_tbl -EXPORT_SYMBOL vmlinux 0x00000000 arp_xmit -EXPORT_SYMBOL vmlinux 0x00000000 ata_dev_printk -EXPORT_SYMBOL vmlinux 0x00000000 ata_link_printk -EXPORT_SYMBOL vmlinux 0x00000000 ata_port_printk -EXPORT_SYMBOL vmlinux 0x00000000 ata_print_version -EXPORT_SYMBOL vmlinux 0x00000000 ata_scsi_cmd_error_handler -EXPORT_SYMBOL vmlinux 0x00000000 ata_std_end_eh -EXPORT_SYMBOL vmlinux 0x00000000 atomic_dec_and_mutex_lock -EXPORT_SYMBOL vmlinux 0x00000000 audit_log -EXPORT_SYMBOL vmlinux 0x00000000 audit_log_end -EXPORT_SYMBOL vmlinux 0x00000000 audit_log_format -EXPORT_SYMBOL vmlinux 0x00000000 audit_log_start -EXPORT_SYMBOL vmlinux 0x00000000 audit_log_task_context -EXPORT_SYMBOL vmlinux 0x00000000 audit_log_task_info -EXPORT_SYMBOL vmlinux 0x00000000 autoremove_wake_function -EXPORT_SYMBOL vmlinux 0x00000000 avail_to_resrv_perfctr_nmi_bit -EXPORT_SYMBOL vmlinux 0x00000000 avenrun -EXPORT_SYMBOL vmlinux 0x00000000 backlight_device_get_by_type -EXPORT_SYMBOL vmlinux 0x00000000 backlight_device_register -EXPORT_SYMBOL vmlinux 0x00000000 backlight_device_set_brightness -EXPORT_SYMBOL vmlinux 0x00000000 backlight_device_unregister -EXPORT_SYMBOL vmlinux 0x00000000 backlight_force_update -EXPORT_SYMBOL vmlinux 0x00000000 backlight_register_notifier -EXPORT_SYMBOL vmlinux 0x00000000 backlight_unregister_notifier -EXPORT_SYMBOL vmlinux 0x00000000 balance_dirty_pages_ratelimited -EXPORT_SYMBOL vmlinux 0x00000000 bcmp -EXPORT_SYMBOL vmlinux 0x00000000 bd_abort_claiming -EXPORT_SYMBOL vmlinux 0x00000000 bd_finish_claiming -EXPORT_SYMBOL vmlinux 0x00000000 bd_set_size -EXPORT_SYMBOL vmlinux 0x00000000 bd_start_claiming -EXPORT_SYMBOL vmlinux 0x00000000 bdev_dax_pgoff -EXPORT_SYMBOL vmlinux 0x00000000 bdev_read_only -EXPORT_SYMBOL vmlinux 0x00000000 bdev_stack_limits -EXPORT_SYMBOL vmlinux 0x00000000 bdevname -EXPORT_SYMBOL vmlinux 0x00000000 bdget -EXPORT_SYMBOL vmlinux 0x00000000 bdget_disk -EXPORT_SYMBOL vmlinux 0x00000000 bdgrab -EXPORT_SYMBOL vmlinux 0x00000000 bdi_alloc_node -EXPORT_SYMBOL vmlinux 0x00000000 bdi_put -EXPORT_SYMBOL vmlinux 0x00000000 bdi_register -EXPORT_SYMBOL vmlinux 0x00000000 bdi_register_owner -EXPORT_SYMBOL vmlinux 0x00000000 bdi_register_va -EXPORT_SYMBOL vmlinux 0x00000000 bdi_set_max_ratio -EXPORT_SYMBOL vmlinux 0x00000000 bdput -EXPORT_SYMBOL vmlinux 0x00000000 bfifo_qdisc_ops -EXPORT_SYMBOL vmlinux 0x00000000 bh_submit_read -EXPORT_SYMBOL vmlinux 0x00000000 bh_uptodate_or_lock -EXPORT_SYMBOL vmlinux 0x00000000 bin2hex -EXPORT_SYMBOL vmlinux 0x00000000 bio_add_page -EXPORT_SYMBOL vmlinux 0x00000000 bio_add_pc_page -EXPORT_SYMBOL vmlinux 0x00000000 bio_advance -EXPORT_SYMBOL vmlinux 0x00000000 bio_alloc_bioset -EXPORT_SYMBOL vmlinux 0x00000000 bio_chain -EXPORT_SYMBOL vmlinux 0x00000000 bio_clone_fast -EXPORT_SYMBOL vmlinux 0x00000000 bio_copy_data -EXPORT_SYMBOL vmlinux 0x00000000 bio_copy_data_iter -EXPORT_SYMBOL vmlinux 0x00000000 bio_devname -EXPORT_SYMBOL vmlinux 0x00000000 bio_endio -EXPORT_SYMBOL vmlinux 0x00000000 bio_free_pages -EXPORT_SYMBOL vmlinux 0x00000000 bio_init -EXPORT_SYMBOL vmlinux 0x00000000 bio_integrity_add_page -EXPORT_SYMBOL vmlinux 0x00000000 bio_integrity_alloc -EXPORT_SYMBOL vmlinux 0x00000000 bio_integrity_clone -EXPORT_SYMBOL vmlinux 0x00000000 bio_integrity_prep -EXPORT_SYMBOL vmlinux 0x00000000 bio_integrity_trim -EXPORT_SYMBOL vmlinux 0x00000000 bio_list_copy_data -EXPORT_SYMBOL vmlinux 0x00000000 bio_put -EXPORT_SYMBOL vmlinux 0x00000000 bio_reset -EXPORT_SYMBOL vmlinux 0x00000000 bio_split -EXPORT_SYMBOL vmlinux 0x00000000 bio_uninit -EXPORT_SYMBOL vmlinux 0x00000000 bioset_exit -EXPORT_SYMBOL vmlinux 0x00000000 bioset_init -EXPORT_SYMBOL vmlinux 0x00000000 bioset_init_from_src -EXPORT_SYMBOL vmlinux 0x00000000 bioset_integrity_create -EXPORT_SYMBOL vmlinux 0x00000000 bit_wait -EXPORT_SYMBOL vmlinux 0x00000000 bit_wait_io -EXPORT_SYMBOL vmlinux 0x00000000 bit_waitqueue -EXPORT_SYMBOL vmlinux 0x00000000 bitmap_alloc -EXPORT_SYMBOL vmlinux 0x00000000 bitmap_allocate_region -EXPORT_SYMBOL vmlinux 0x00000000 bitmap_cut -EXPORT_SYMBOL vmlinux 0x00000000 bitmap_find_free_region -EXPORT_SYMBOL vmlinux 0x00000000 bitmap_find_next_zero_area_off -EXPORT_SYMBOL vmlinux 0x00000000 bitmap_free -EXPORT_SYMBOL vmlinux 0x00000000 bitmap_from_arr32 -EXPORT_SYMBOL vmlinux 0x00000000 bitmap_parse -EXPORT_SYMBOL vmlinux 0x00000000 bitmap_parse_user -EXPORT_SYMBOL vmlinux 0x00000000 bitmap_parselist -EXPORT_SYMBOL vmlinux 0x00000000 bitmap_parselist_user -EXPORT_SYMBOL vmlinux 0x00000000 bitmap_print_to_pagebuf -EXPORT_SYMBOL vmlinux 0x00000000 bitmap_release_region -EXPORT_SYMBOL vmlinux 0x00000000 bitmap_to_arr32 -EXPORT_SYMBOL vmlinux 0x00000000 bitmap_zalloc -EXPORT_SYMBOL vmlinux 0x00000000 blackhole_netdev -EXPORT_SYMBOL vmlinux 0x00000000 blk_alloc_queue -EXPORT_SYMBOL vmlinux 0x00000000 blk_alloc_queue_node -EXPORT_SYMBOL vmlinux 0x00000000 blk_check_plugged -EXPORT_SYMBOL vmlinux 0x00000000 blk_cleanup_queue -EXPORT_SYMBOL vmlinux 0x00000000 blk_dump_rq_flags -EXPORT_SYMBOL vmlinux 0x00000000 blk_execute_rq -EXPORT_SYMBOL vmlinux 0x00000000 blk_finish_plug -EXPORT_SYMBOL vmlinux 0x00000000 blk_get_queue -EXPORT_SYMBOL vmlinux 0x00000000 blk_get_request -EXPORT_SYMBOL vmlinux 0x00000000 blk_integrity_compare -EXPORT_SYMBOL vmlinux 0x00000000 blk_integrity_merge_bio -EXPORT_SYMBOL vmlinux 0x00000000 blk_integrity_merge_rq -EXPORT_SYMBOL vmlinux 0x00000000 blk_integrity_register -EXPORT_SYMBOL vmlinux 0x00000000 blk_integrity_unregister -EXPORT_SYMBOL vmlinux 0x00000000 blk_limits_io_min -EXPORT_SYMBOL vmlinux 0x00000000 blk_limits_io_opt -EXPORT_SYMBOL vmlinux 0x00000000 blk_lookup_devt -EXPORT_SYMBOL vmlinux 0x00000000 blk_max_low_pfn -EXPORT_SYMBOL vmlinux 0x00000000 blk_mq_alloc_request -EXPORT_SYMBOL vmlinux 0x00000000 blk_mq_alloc_tag_set -EXPORT_SYMBOL vmlinux 0x00000000 blk_mq_complete_request -EXPORT_SYMBOL vmlinux 0x00000000 blk_mq_delay_kick_requeue_list -EXPORT_SYMBOL vmlinux 0x00000000 blk_mq_delay_run_hw_queue -EXPORT_SYMBOL vmlinux 0x00000000 blk_mq_end_request -EXPORT_SYMBOL vmlinux 0x00000000 blk_mq_free_tag_set -EXPORT_SYMBOL vmlinux 0x00000000 blk_mq_init_allocated_queue -EXPORT_SYMBOL vmlinux 0x00000000 blk_mq_init_queue -EXPORT_SYMBOL vmlinux 0x00000000 blk_mq_init_sq_queue -EXPORT_SYMBOL vmlinux 0x00000000 blk_mq_kick_requeue_list -EXPORT_SYMBOL vmlinux 0x00000000 blk_mq_queue_stopped -EXPORT_SYMBOL vmlinux 0x00000000 blk_mq_requeue_request -EXPORT_SYMBOL vmlinux 0x00000000 blk_mq_rq_cpu -EXPORT_SYMBOL vmlinux 0x00000000 blk_mq_run_hw_queue -EXPORT_SYMBOL vmlinux 0x00000000 blk_mq_run_hw_queues -EXPORT_SYMBOL vmlinux 0x00000000 blk_mq_start_hw_queue -EXPORT_SYMBOL vmlinux 0x00000000 blk_mq_start_hw_queues -EXPORT_SYMBOL vmlinux 0x00000000 blk_mq_start_request -EXPORT_SYMBOL vmlinux 0x00000000 blk_mq_start_stopped_hw_queues -EXPORT_SYMBOL vmlinux 0x00000000 blk_mq_stop_hw_queue -EXPORT_SYMBOL vmlinux 0x00000000 blk_mq_stop_hw_queues -EXPORT_SYMBOL vmlinux 0x00000000 blk_mq_tag_to_rq -EXPORT_SYMBOL vmlinux 0x00000000 blk_mq_tagset_busy_iter -EXPORT_SYMBOL vmlinux 0x00000000 blk_mq_tagset_wait_completed_request -EXPORT_SYMBOL vmlinux 0x00000000 blk_mq_unique_tag -EXPORT_SYMBOL vmlinux 0x00000000 blk_pm_runtime_init -EXPORT_SYMBOL vmlinux 0x00000000 blk_post_runtime_resume -EXPORT_SYMBOL vmlinux 0x00000000 blk_post_runtime_suspend -EXPORT_SYMBOL vmlinux 0x00000000 blk_pre_runtime_resume -EXPORT_SYMBOL vmlinux 0x00000000 blk_pre_runtime_suspend -EXPORT_SYMBOL vmlinux 0x00000000 blk_put_queue -EXPORT_SYMBOL vmlinux 0x00000000 blk_put_request -EXPORT_SYMBOL vmlinux 0x00000000 blk_queue_alignment_offset -EXPORT_SYMBOL vmlinux 0x00000000 blk_queue_bounce_limit -EXPORT_SYMBOL vmlinux 0x00000000 blk_queue_chunk_sectors -EXPORT_SYMBOL vmlinux 0x00000000 blk_queue_dma_alignment -EXPORT_SYMBOL vmlinux 0x00000000 blk_queue_flag_clear -EXPORT_SYMBOL vmlinux 0x00000000 blk_queue_flag_set -EXPORT_SYMBOL vmlinux 0x00000000 blk_queue_io_min -EXPORT_SYMBOL vmlinux 0x00000000 blk_queue_io_opt -EXPORT_SYMBOL vmlinux 0x00000000 blk_queue_logical_block_size -EXPORT_SYMBOL vmlinux 0x00000000 blk_queue_make_request -EXPORT_SYMBOL vmlinux 0x00000000 blk_queue_max_discard_sectors -EXPORT_SYMBOL vmlinux 0x00000000 blk_queue_max_hw_sectors -EXPORT_SYMBOL vmlinux 0x00000000 blk_queue_max_segment_size -EXPORT_SYMBOL vmlinux 0x00000000 blk_queue_max_segments -EXPORT_SYMBOL vmlinux 0x00000000 blk_queue_max_write_same_sectors -EXPORT_SYMBOL vmlinux 0x00000000 blk_queue_max_write_zeroes_sectors -EXPORT_SYMBOL vmlinux 0x00000000 blk_queue_physical_block_size -EXPORT_SYMBOL vmlinux 0x00000000 blk_queue_segment_boundary -EXPORT_SYMBOL vmlinux 0x00000000 blk_queue_split -EXPORT_SYMBOL vmlinux 0x00000000 blk_queue_stack_limits -EXPORT_SYMBOL vmlinux 0x00000000 blk_queue_update_dma_alignment -EXPORT_SYMBOL vmlinux 0x00000000 blk_queue_update_dma_pad -EXPORT_SYMBOL vmlinux 0x00000000 blk_queue_virt_boundary -EXPORT_SYMBOL vmlinux 0x00000000 blk_register_region -EXPORT_SYMBOL vmlinux 0x00000000 blk_rq_append_bio -EXPORT_SYMBOL vmlinux 0x00000000 blk_rq_count_integrity_sg -EXPORT_SYMBOL vmlinux 0x00000000 blk_rq_init -EXPORT_SYMBOL vmlinux 0x00000000 blk_rq_map_integrity_sg -EXPORT_SYMBOL vmlinux 0x00000000 blk_rq_map_kern -EXPORT_SYMBOL vmlinux 0x00000000 blk_rq_map_sg -EXPORT_SYMBOL vmlinux 0x00000000 blk_rq_map_user -EXPORT_SYMBOL vmlinux 0x00000000 blk_rq_map_user_iov -EXPORT_SYMBOL vmlinux 0x00000000 blk_rq_unmap_user -EXPORT_SYMBOL vmlinux 0x00000000 blk_set_default_limits -EXPORT_SYMBOL vmlinux 0x00000000 blk_set_queue_depth -EXPORT_SYMBOL vmlinux 0x00000000 blk_set_runtime_active -EXPORT_SYMBOL vmlinux 0x00000000 blk_set_stacking_limits -EXPORT_SYMBOL vmlinux 0x00000000 blk_stack_limits -EXPORT_SYMBOL vmlinux 0x00000000 blk_start_plug -EXPORT_SYMBOL vmlinux 0x00000000 blk_sync_queue -EXPORT_SYMBOL vmlinux 0x00000000 blk_unregister_region -EXPORT_SYMBOL vmlinux 0x00000000 blk_verify_command -EXPORT_SYMBOL vmlinux 0x00000000 blkdev_compat_ptr_ioctl -EXPORT_SYMBOL vmlinux 0x00000000 blkdev_fsync -EXPORT_SYMBOL vmlinux 0x00000000 blkdev_get -EXPORT_SYMBOL vmlinux 0x00000000 blkdev_get_by_dev -EXPORT_SYMBOL vmlinux 0x00000000 blkdev_get_by_path -EXPORT_SYMBOL vmlinux 0x00000000 blkdev_issue_discard -EXPORT_SYMBOL vmlinux 0x00000000 blkdev_issue_flush -EXPORT_SYMBOL vmlinux 0x00000000 blkdev_issue_write_same -EXPORT_SYMBOL vmlinux 0x00000000 blkdev_issue_zeroout -EXPORT_SYMBOL vmlinux 0x00000000 blkdev_put -EXPORT_SYMBOL vmlinux 0x00000000 block_commit_write -EXPORT_SYMBOL vmlinux 0x00000000 block_invalidatepage -EXPORT_SYMBOL vmlinux 0x00000000 block_is_partially_uptodate -EXPORT_SYMBOL vmlinux 0x00000000 block_page_mkwrite -EXPORT_SYMBOL vmlinux 0x00000000 block_read_full_page -EXPORT_SYMBOL vmlinux 0x00000000 block_truncate_page -EXPORT_SYMBOL vmlinux 0x00000000 block_write_begin -EXPORT_SYMBOL vmlinux 0x00000000 block_write_end -EXPORT_SYMBOL vmlinux 0x00000000 block_write_full_page -EXPORT_SYMBOL vmlinux 0x00000000 bmap -EXPORT_SYMBOL vmlinux 0x00000000 boot_cpu_data -EXPORT_SYMBOL vmlinux 0x00000000 boot_option_idle_override -EXPORT_SYMBOL vmlinux 0x00000000 bpf_dispatcher_xdpfunc -EXPORT_SYMBOL vmlinux 0x00000000 bpf_prog_get_type_path -EXPORT_SYMBOL vmlinux 0x00000000 bpf_stats_enabled_key -EXPORT_SYMBOL vmlinux 0x00000000 bprm_change_interp -EXPORT_SYMBOL vmlinux 0x00000000 brioctl_set -EXPORT_SYMBOL vmlinux 0x00000000 bsearch -EXPORT_SYMBOL vmlinux 0x00000000 buffer_check_dirty_writeback -EXPORT_SYMBOL vmlinux 0x00000000 buffer_migrate_page -EXPORT_SYMBOL vmlinux 0x00000000 build_skb -EXPORT_SYMBOL vmlinux 0x00000000 build_skb_around -EXPORT_SYMBOL vmlinux 0x00000000 cad_pid -EXPORT_SYMBOL vmlinux 0x00000000 call_blocking_lsm_notifier -EXPORT_SYMBOL vmlinux 0x00000000 call_fib_notifier -EXPORT_SYMBOL vmlinux 0x00000000 call_fib_notifiers -EXPORT_SYMBOL vmlinux 0x00000000 call_netdevice_notifiers -EXPORT_SYMBOL vmlinux 0x00000000 call_usermodehelper -EXPORT_SYMBOL vmlinux 0x00000000 call_usermodehelper_exec -EXPORT_SYMBOL vmlinux 0x00000000 call_usermodehelper_setup -EXPORT_SYMBOL vmlinux 0x00000000 can_do_mlock -EXPORT_SYMBOL vmlinux 0x00000000 can_nice -EXPORT_SYMBOL vmlinux 0x00000000 cancel_delayed_work -EXPORT_SYMBOL vmlinux 0x00000000 cancel_delayed_work_sync -EXPORT_SYMBOL vmlinux 0x00000000 capable -EXPORT_SYMBOL vmlinux 0x00000000 capable_wrt_inode_uidgid -EXPORT_SYMBOL vmlinux 0x00000000 cdc_parse_cdc_header -EXPORT_SYMBOL vmlinux 0x00000000 cdev_add -EXPORT_SYMBOL vmlinux 0x00000000 cdev_alloc -EXPORT_SYMBOL vmlinux 0x00000000 cdev_del -EXPORT_SYMBOL vmlinux 0x00000000 cdev_device_add -EXPORT_SYMBOL vmlinux 0x00000000 cdev_device_del -EXPORT_SYMBOL vmlinux 0x00000000 cdev_init -EXPORT_SYMBOL vmlinux 0x00000000 cdev_set_parent -EXPORT_SYMBOL vmlinux 0x00000000 cdrom_check_events -EXPORT_SYMBOL vmlinux 0x00000000 cdrom_dummy_generic_packet -EXPORT_SYMBOL vmlinux 0x00000000 cdrom_get_last_written -EXPORT_SYMBOL vmlinux 0x00000000 cdrom_get_media_event -EXPORT_SYMBOL vmlinux 0x00000000 cdrom_ioctl -EXPORT_SYMBOL vmlinux 0x00000000 cdrom_media_changed -EXPORT_SYMBOL vmlinux 0x00000000 cdrom_mode_select -EXPORT_SYMBOL vmlinux 0x00000000 cdrom_mode_sense -EXPORT_SYMBOL vmlinux 0x00000000 cdrom_number_of_slots -EXPORT_SYMBOL vmlinux 0x00000000 cdrom_open -EXPORT_SYMBOL vmlinux 0x00000000 cdrom_release -EXPORT_SYMBOL vmlinux 0x00000000 cfb_copyarea -EXPORT_SYMBOL vmlinux 0x00000000 cfb_fillrect -EXPORT_SYMBOL vmlinux 0x00000000 cfb_imageblit -EXPORT_SYMBOL vmlinux 0x00000000 cgroup_bpf_enabled_key -EXPORT_SYMBOL vmlinux 0x00000000 chacha_block_generic -EXPORT_SYMBOL vmlinux 0x00000000 check_disk_change -EXPORT_SYMBOL vmlinux 0x00000000 check_signature -EXPORT_SYMBOL vmlinux 0x00000000 check_zeroed_user -EXPORT_SYMBOL vmlinux 0x00000000 clean_bdev_aliases -EXPORT_SYMBOL vmlinux 0x00000000 cleancache_register_ops -EXPORT_SYMBOL vmlinux 0x00000000 clear_inode -EXPORT_SYMBOL vmlinux 0x00000000 clear_nlink -EXPORT_SYMBOL vmlinux 0x00000000 clear_page_dirty_for_io -EXPORT_SYMBOL vmlinux 0x00000000 clear_user -EXPORT_SYMBOL vmlinux 0x00000000 clear_wb_congested -EXPORT_SYMBOL vmlinux 0x00000000 clk_add_alias -EXPORT_SYMBOL vmlinux 0x00000000 clk_bulk_get -EXPORT_SYMBOL vmlinux 0x00000000 clk_bulk_get_all -EXPORT_SYMBOL vmlinux 0x00000000 clk_bulk_put_all -EXPORT_SYMBOL vmlinux 0x00000000 clk_get -EXPORT_SYMBOL vmlinux 0x00000000 clk_get_sys -EXPORT_SYMBOL vmlinux 0x00000000 clk_hw_register_clkdev -EXPORT_SYMBOL vmlinux 0x00000000 clk_put -EXPORT_SYMBOL vmlinux 0x00000000 clk_register_clkdev -EXPORT_SYMBOL vmlinux 0x00000000 clkdev_add -EXPORT_SYMBOL vmlinux 0x00000000 clkdev_alloc -EXPORT_SYMBOL vmlinux 0x00000000 clkdev_drop -EXPORT_SYMBOL vmlinux 0x00000000 clkdev_hw_alloc -EXPORT_SYMBOL vmlinux 0x00000000 clock_t_to_jiffies -EXPORT_SYMBOL vmlinux 0x00000000 clocksource_change_rating -EXPORT_SYMBOL vmlinux 0x00000000 clocksource_unregister -EXPORT_SYMBOL vmlinux 0x00000000 cmdline_parts_find -EXPORT_SYMBOL vmlinux 0x00000000 cmdline_parts_free -EXPORT_SYMBOL vmlinux 0x00000000 cmdline_parts_parse -EXPORT_SYMBOL vmlinux 0x00000000 cmdline_parts_set -EXPORT_SYMBOL vmlinux 0x00000000 color_table -EXPORT_SYMBOL vmlinux 0x00000000 commit_creds -EXPORT_SYMBOL vmlinux 0x00000000 compat_import_iovec -EXPORT_SYMBOL vmlinux 0x00000000 compat_ip_getsockopt -EXPORT_SYMBOL vmlinux 0x00000000 compat_ip_setsockopt -EXPORT_SYMBOL vmlinux 0x00000000 compat_ipv6_getsockopt -EXPORT_SYMBOL vmlinux 0x00000000 compat_ipv6_setsockopt -EXPORT_SYMBOL vmlinux 0x00000000 compat_mc_getsockopt -EXPORT_SYMBOL vmlinux 0x00000000 compat_mc_setsockopt -EXPORT_SYMBOL vmlinux 0x00000000 compat_nf_getsockopt -EXPORT_SYMBOL vmlinux 0x00000000 compat_nf_setsockopt -EXPORT_SYMBOL vmlinux 0x00000000 compat_ptr_ioctl -EXPORT_SYMBOL vmlinux 0x00000000 compat_sock_common_getsockopt -EXPORT_SYMBOL vmlinux 0x00000000 compat_sock_common_setsockopt -EXPORT_SYMBOL vmlinux 0x00000000 compat_tcp_getsockopt -EXPORT_SYMBOL vmlinux 0x00000000 compat_tcp_setsockopt -EXPORT_SYMBOL vmlinux 0x00000000 complete -EXPORT_SYMBOL vmlinux 0x00000000 complete_all -EXPORT_SYMBOL vmlinux 0x00000000 complete_and_exit -EXPORT_SYMBOL vmlinux 0x00000000 complete_request_key -EXPORT_SYMBOL vmlinux 0x00000000 completion_done -EXPORT_SYMBOL vmlinux 0x00000000 component_match_add_release -EXPORT_SYMBOL vmlinux 0x00000000 component_match_add_typed -EXPORT_SYMBOL vmlinux 0x00000000 con_copy_unimap -EXPORT_SYMBOL vmlinux 0x00000000 con_is_bound -EXPORT_SYMBOL vmlinux 0x00000000 con_is_visible -EXPORT_SYMBOL vmlinux 0x00000000 con_set_default_unimap -EXPORT_SYMBOL vmlinux 0x00000000 config_group_find_item -EXPORT_SYMBOL vmlinux 0x00000000 config_group_init -EXPORT_SYMBOL vmlinux 0x00000000 config_group_init_type_name -EXPORT_SYMBOL vmlinux 0x00000000 config_item_get -EXPORT_SYMBOL vmlinux 0x00000000 config_item_get_unless_zero -EXPORT_SYMBOL vmlinux 0x00000000 config_item_init_type_name -EXPORT_SYMBOL vmlinux 0x00000000 config_item_put -EXPORT_SYMBOL vmlinux 0x00000000 config_item_set_name -EXPORT_SYMBOL vmlinux 0x00000000 configfs_depend_item -EXPORT_SYMBOL vmlinux 0x00000000 configfs_depend_item_unlocked -EXPORT_SYMBOL vmlinux 0x00000000 configfs_register_default_group -EXPORT_SYMBOL vmlinux 0x00000000 configfs_register_group -EXPORT_SYMBOL vmlinux 0x00000000 configfs_register_subsystem -EXPORT_SYMBOL vmlinux 0x00000000 configfs_remove_default_groups -EXPORT_SYMBOL vmlinux 0x00000000 configfs_undepend_item -EXPORT_SYMBOL vmlinux 0x00000000 configfs_unregister_default_group -EXPORT_SYMBOL vmlinux 0x00000000 configfs_unregister_group -EXPORT_SYMBOL vmlinux 0x00000000 configfs_unregister_subsystem -EXPORT_SYMBOL vmlinux 0x00000000 congestion_wait -EXPORT_SYMBOL vmlinux 0x00000000 console_blank_hook -EXPORT_SYMBOL vmlinux 0x00000000 console_blanked -EXPORT_SYMBOL vmlinux 0x00000000 console_conditional_schedule -EXPORT_SYMBOL vmlinux 0x00000000 console_lock -EXPORT_SYMBOL vmlinux 0x00000000 console_set_on_cmdline -EXPORT_SYMBOL vmlinux 0x00000000 console_start -EXPORT_SYMBOL vmlinux 0x00000000 console_stop -EXPORT_SYMBOL vmlinux 0x00000000 console_suspend_enabled -EXPORT_SYMBOL vmlinux 0x00000000 console_trylock -EXPORT_SYMBOL vmlinux 0x00000000 console_unlock -EXPORT_SYMBOL vmlinux 0x00000000 consume_skb -EXPORT_SYMBOL vmlinux 0x00000000 cont_write_begin -EXPORT_SYMBOL vmlinux 0x00000000 convert_art_ns_to_tsc -EXPORT_SYMBOL vmlinux 0x00000000 convert_art_to_tsc -EXPORT_SYMBOL vmlinux 0x00000000 cookie_ecn_ok -EXPORT_SYMBOL vmlinux 0x00000000 cookie_timestamp_decode -EXPORT_SYMBOL vmlinux 0x00000000 copy_page -EXPORT_SYMBOL vmlinux 0x00000000 copy_page_from_iter -EXPORT_SYMBOL vmlinux 0x00000000 copy_page_to_iter -EXPORT_SYMBOL vmlinux 0x00000000 copy_strings_kernel -EXPORT_SYMBOL vmlinux 0x00000000 copy_user_enhanced_fast_string -EXPORT_SYMBOL vmlinux 0x00000000 copy_user_generic_string -EXPORT_SYMBOL vmlinux 0x00000000 copy_user_generic_unrolled -EXPORT_SYMBOL vmlinux 0x00000000 cpu_all_bits -EXPORT_SYMBOL vmlinux 0x00000000 cpu_core_map -EXPORT_SYMBOL vmlinux 0x00000000 cpu_die_map -EXPORT_SYMBOL vmlinux 0x00000000 cpu_down -EXPORT_SYMBOL vmlinux 0x00000000 cpu_dr7 -EXPORT_SYMBOL vmlinux 0x00000000 cpu_info -EXPORT_SYMBOL vmlinux 0x00000000 cpu_khz -EXPORT_SYMBOL vmlinux 0x00000000 cpu_number -EXPORT_SYMBOL vmlinux 0x00000000 cpu_rmap_add -EXPORT_SYMBOL vmlinux 0x00000000 cpu_rmap_put -EXPORT_SYMBOL vmlinux 0x00000000 cpu_rmap_update -EXPORT_SYMBOL vmlinux 0x00000000 cpu_sibling_map -EXPORT_SYMBOL vmlinux 0x00000000 cpu_tlbstate -EXPORT_SYMBOL vmlinux 0x00000000 cpu_tss_rw -EXPORT_SYMBOL vmlinux 0x00000000 cpufreq_generic_suspend -EXPORT_SYMBOL vmlinux 0x00000000 cpufreq_get -EXPORT_SYMBOL vmlinux 0x00000000 cpufreq_get_policy -EXPORT_SYMBOL vmlinux 0x00000000 cpufreq_quick_get -EXPORT_SYMBOL vmlinux 0x00000000 cpufreq_quick_get_max -EXPORT_SYMBOL vmlinux 0x00000000 cpufreq_register_notifier -EXPORT_SYMBOL vmlinux 0x00000000 cpufreq_unregister_notifier -EXPORT_SYMBOL vmlinux 0x00000000 cpufreq_update_policy -EXPORT_SYMBOL vmlinux 0x00000000 cpumask_any_but -EXPORT_SYMBOL vmlinux 0x00000000 cpumask_local_spread -EXPORT_SYMBOL vmlinux 0x00000000 cpumask_next -EXPORT_SYMBOL vmlinux 0x00000000 cpumask_next_and -EXPORT_SYMBOL vmlinux 0x00000000 cpumask_next_wrap -EXPORT_SYMBOL vmlinux 0x00000000 crc16 -EXPORT_SYMBOL vmlinux 0x00000000 crc16_table -EXPORT_SYMBOL vmlinux 0x00000000 crc32_be -EXPORT_SYMBOL vmlinux 0x00000000 crc32_le -EXPORT_SYMBOL vmlinux 0x00000000 crc32_le_shift -EXPORT_SYMBOL vmlinux 0x00000000 crc32c_csum_stub -EXPORT_SYMBOL vmlinux 0x00000000 crc_ccitt -EXPORT_SYMBOL vmlinux 0x00000000 crc_ccitt_false -EXPORT_SYMBOL vmlinux 0x00000000 crc_ccitt_false_table -EXPORT_SYMBOL vmlinux 0x00000000 crc_ccitt_table -EXPORT_SYMBOL vmlinux 0x00000000 crc_t10dif -EXPORT_SYMBOL vmlinux 0x00000000 crc_t10dif_generic -EXPORT_SYMBOL vmlinux 0x00000000 crc_t10dif_update -EXPORT_SYMBOL vmlinux 0x00000000 create_empty_buffers -EXPORT_SYMBOL vmlinux 0x00000000 cred_fscmp -EXPORT_SYMBOL vmlinux 0x00000000 cros_ec_check_result -EXPORT_SYMBOL vmlinux 0x00000000 cros_ec_cmd_xfer -EXPORT_SYMBOL vmlinux 0x00000000 cros_ec_cmd_xfer_status -EXPORT_SYMBOL vmlinux 0x00000000 cros_ec_get_host_event -EXPORT_SYMBOL vmlinux 0x00000000 cros_ec_get_next_event -EXPORT_SYMBOL vmlinux 0x00000000 cros_ec_prepare_tx -EXPORT_SYMBOL vmlinux 0x00000000 cros_ec_query_all -EXPORT_SYMBOL vmlinux 0x00000000 crypto_aes_inv_sbox -EXPORT_SYMBOL vmlinux 0x00000000 crypto_aes_sbox -EXPORT_SYMBOL vmlinux 0x00000000 crypto_sha1_finup -EXPORT_SYMBOL vmlinux 0x00000000 crypto_sha1_update -EXPORT_SYMBOL vmlinux 0x00000000 crypto_sha256_finup -EXPORT_SYMBOL vmlinux 0x00000000 crypto_sha256_update -EXPORT_SYMBOL vmlinux 0x00000000 crypto_sha512_finup -EXPORT_SYMBOL vmlinux 0x00000000 crypto_sha512_update -EXPORT_SYMBOL vmlinux 0x00000000 csum_and_copy_from_iter -EXPORT_SYMBOL vmlinux 0x00000000 csum_and_copy_from_iter_full -EXPORT_SYMBOL vmlinux 0x00000000 csum_and_copy_to_iter -EXPORT_SYMBOL vmlinux 0x00000000 csum_ipv6_magic -EXPORT_SYMBOL vmlinux 0x00000000 csum_partial -EXPORT_SYMBOL vmlinux 0x00000000 csum_partial_copy_from_user -EXPORT_SYMBOL vmlinux 0x00000000 csum_partial_copy_nocheck -EXPORT_SYMBOL vmlinux 0x00000000 csum_partial_copy_to_user -EXPORT_SYMBOL vmlinux 0x00000000 current_in_userns -EXPORT_SYMBOL vmlinux 0x00000000 current_task -EXPORT_SYMBOL vmlinux 0x00000000 current_time -EXPORT_SYMBOL vmlinux 0x00000000 current_umask -EXPORT_SYMBOL vmlinux 0x00000000 current_work -EXPORT_SYMBOL vmlinux 0x00000000 d_add -EXPORT_SYMBOL vmlinux 0x00000000 d_add_ci -EXPORT_SYMBOL vmlinux 0x00000000 d_alloc -EXPORT_SYMBOL vmlinux 0x00000000 d_alloc_anon -EXPORT_SYMBOL vmlinux 0x00000000 d_alloc_name -EXPORT_SYMBOL vmlinux 0x00000000 d_alloc_parallel -EXPORT_SYMBOL vmlinux 0x00000000 d_delete -EXPORT_SYMBOL vmlinux 0x00000000 d_drop -EXPORT_SYMBOL vmlinux 0x00000000 d_exact_alias -EXPORT_SYMBOL vmlinux 0x00000000 d_find_alias -EXPORT_SYMBOL vmlinux 0x00000000 d_find_any_alias -EXPORT_SYMBOL vmlinux 0x00000000 d_genocide -EXPORT_SYMBOL vmlinux 0x00000000 d_hash_and_lookup -EXPORT_SYMBOL vmlinux 0x00000000 d_instantiate -EXPORT_SYMBOL vmlinux 0x00000000 d_instantiate_anon -EXPORT_SYMBOL vmlinux 0x00000000 d_instantiate_new -EXPORT_SYMBOL vmlinux 0x00000000 d_invalidate -EXPORT_SYMBOL vmlinux 0x00000000 d_lookup -EXPORT_SYMBOL vmlinux 0x00000000 d_make_root -EXPORT_SYMBOL vmlinux 0x00000000 d_move -EXPORT_SYMBOL vmlinux 0x00000000 d_obtain_alias -EXPORT_SYMBOL vmlinux 0x00000000 d_obtain_root -EXPORT_SYMBOL vmlinux 0x00000000 d_path -EXPORT_SYMBOL vmlinux 0x00000000 d_prune_aliases -EXPORT_SYMBOL vmlinux 0x00000000 d_rehash -EXPORT_SYMBOL vmlinux 0x00000000 d_set_d_op -EXPORT_SYMBOL vmlinux 0x00000000 d_set_fallthru -EXPORT_SYMBOL vmlinux 0x00000000 d_splice_alias -EXPORT_SYMBOL vmlinux 0x00000000 d_tmpfile -EXPORT_SYMBOL vmlinux 0x00000000 da903x_query_status -EXPORT_SYMBOL vmlinux 0x00000000 datagram_poll -EXPORT_SYMBOL vmlinux 0x00000000 dcache_dir_close -EXPORT_SYMBOL vmlinux 0x00000000 dcache_dir_lseek -EXPORT_SYMBOL vmlinux 0x00000000 dcache_dir_open -EXPORT_SYMBOL vmlinux 0x00000000 dcache_readdir -EXPORT_SYMBOL vmlinux 0x00000000 dcb_getapp -EXPORT_SYMBOL vmlinux 0x00000000 dcb_ieee_delapp -EXPORT_SYMBOL vmlinux 0x00000000 dcb_ieee_getapp_default_prio_mask -EXPORT_SYMBOL vmlinux 0x00000000 dcb_ieee_getapp_dscp_prio_mask_map -EXPORT_SYMBOL vmlinux 0x00000000 dcb_ieee_getapp_mask -EXPORT_SYMBOL vmlinux 0x00000000 dcb_ieee_getapp_prio_dscp_mask_map -EXPORT_SYMBOL vmlinux 0x00000000 dcb_ieee_setapp -EXPORT_SYMBOL vmlinux 0x00000000 dcb_setapp -EXPORT_SYMBOL vmlinux 0x00000000 dcbnl_cee_notify -EXPORT_SYMBOL vmlinux 0x00000000 dcbnl_ieee_notify -EXPORT_SYMBOL vmlinux 0x00000000 deactivate_locked_super -EXPORT_SYMBOL vmlinux 0x00000000 deactivate_super -EXPORT_SYMBOL vmlinux 0x00000000 debugfs_create_automount -EXPORT_SYMBOL vmlinux 0x00000000 dec_node_page_state -EXPORT_SYMBOL vmlinux 0x00000000 dec_zone_page_state -EXPORT_SYMBOL vmlinux 0x00000000 default_blu -EXPORT_SYMBOL vmlinux 0x00000000 default_grn -EXPORT_SYMBOL vmlinux 0x00000000 default_idle -EXPORT_SYMBOL vmlinux 0x00000000 default_llseek -EXPORT_SYMBOL vmlinux 0x00000000 default_qdisc_ops -EXPORT_SYMBOL vmlinux 0x00000000 default_red -EXPORT_SYMBOL vmlinux 0x00000000 default_wake_function -EXPORT_SYMBOL vmlinux 0x00000000 del_gendisk -EXPORT_SYMBOL vmlinux 0x00000000 del_random_ready_callback -EXPORT_SYMBOL vmlinux 0x00000000 del_timer -EXPORT_SYMBOL vmlinux 0x00000000 del_timer_sync -EXPORT_SYMBOL vmlinux 0x00000000 delayed_work_timer_fn -EXPORT_SYMBOL vmlinux 0x00000000 delete_from_page_cache -EXPORT_SYMBOL vmlinux 0x00000000 dentry_open -EXPORT_SYMBOL vmlinux 0x00000000 dentry_path_raw -EXPORT_SYMBOL vmlinux 0x00000000 dev_activate -EXPORT_SYMBOL vmlinux 0x00000000 dev_add_offload -EXPORT_SYMBOL vmlinux 0x00000000 dev_add_pack -EXPORT_SYMBOL vmlinux 0x00000000 dev_addr_add -EXPORT_SYMBOL vmlinux 0x00000000 dev_addr_del -EXPORT_SYMBOL vmlinux 0x00000000 dev_addr_flush -EXPORT_SYMBOL vmlinux 0x00000000 dev_addr_init -EXPORT_SYMBOL vmlinux 0x00000000 dev_alloc_name -EXPORT_SYMBOL vmlinux 0x00000000 dev_base_lock -EXPORT_SYMBOL vmlinux 0x00000000 dev_change_carrier -EXPORT_SYMBOL vmlinux 0x00000000 dev_change_flags -EXPORT_SYMBOL vmlinux 0x00000000 dev_change_proto_down -EXPORT_SYMBOL vmlinux 0x00000000 dev_change_proto_down_generic -EXPORT_SYMBOL vmlinux 0x00000000 dev_close -EXPORT_SYMBOL vmlinux 0x00000000 dev_close_many -EXPORT_SYMBOL vmlinux 0x00000000 dev_deactivate -EXPORT_SYMBOL vmlinux 0x00000000 dev_direct_xmit -EXPORT_SYMBOL vmlinux 0x00000000 dev_disable_lro -EXPORT_SYMBOL vmlinux 0x00000000 dev_driver_string -EXPORT_SYMBOL vmlinux 0x00000000 dev_get_by_index -EXPORT_SYMBOL vmlinux 0x00000000 dev_get_by_index_rcu -EXPORT_SYMBOL vmlinux 0x00000000 dev_get_by_name -EXPORT_SYMBOL vmlinux 0x00000000 dev_get_by_name_rcu -EXPORT_SYMBOL vmlinux 0x00000000 dev_get_by_napi_id -EXPORT_SYMBOL vmlinux 0x00000000 dev_get_flags -EXPORT_SYMBOL vmlinux 0x00000000 dev_get_iflink -EXPORT_SYMBOL vmlinux 0x00000000 dev_get_phys_port_id -EXPORT_SYMBOL vmlinux 0x00000000 dev_get_phys_port_name -EXPORT_SYMBOL vmlinux 0x00000000 dev_get_port_parent_id -EXPORT_SYMBOL vmlinux 0x00000000 dev_get_stats -EXPORT_SYMBOL vmlinux 0x00000000 dev_getbyhwaddr_rcu -EXPORT_SYMBOL vmlinux 0x00000000 dev_getfirstbyhwtype -EXPORT_SYMBOL vmlinux 0x00000000 dev_graft_qdisc -EXPORT_SYMBOL vmlinux 0x00000000 dev_load -EXPORT_SYMBOL vmlinux 0x00000000 dev_loopback_xmit -EXPORT_SYMBOL vmlinux 0x00000000 dev_lstats_read -EXPORT_SYMBOL vmlinux 0x00000000 dev_mc_add -EXPORT_SYMBOL vmlinux 0x00000000 dev_mc_add_excl -EXPORT_SYMBOL vmlinux 0x00000000 dev_mc_add_global -EXPORT_SYMBOL vmlinux 0x00000000 dev_mc_del -EXPORT_SYMBOL vmlinux 0x00000000 dev_mc_del_global -EXPORT_SYMBOL vmlinux 0x00000000 dev_mc_flush -EXPORT_SYMBOL vmlinux 0x00000000 dev_mc_init -EXPORT_SYMBOL vmlinux 0x00000000 dev_mc_sync -EXPORT_SYMBOL vmlinux 0x00000000 dev_mc_sync_multiple -EXPORT_SYMBOL vmlinux 0x00000000 dev_mc_unsync -EXPORT_SYMBOL vmlinux 0x00000000 dev_open -EXPORT_SYMBOL vmlinux 0x00000000 dev_pick_tx_cpu_id -EXPORT_SYMBOL vmlinux 0x00000000 dev_pick_tx_zero -EXPORT_SYMBOL vmlinux 0x00000000 dev_pm_opp_register_notifier -EXPORT_SYMBOL vmlinux 0x00000000 dev_pm_opp_unregister_notifier -EXPORT_SYMBOL vmlinux 0x00000000 dev_pre_changeaddr_notify -EXPORT_SYMBOL vmlinux 0x00000000 dev_printk -EXPORT_SYMBOL vmlinux 0x00000000 dev_printk_emit -EXPORT_SYMBOL vmlinux 0x00000000 dev_queue_xmit -EXPORT_SYMBOL vmlinux 0x00000000 dev_queue_xmit_accel -EXPORT_SYMBOL vmlinux 0x00000000 dev_remove_offload -EXPORT_SYMBOL vmlinux 0x00000000 dev_remove_pack -EXPORT_SYMBOL vmlinux 0x00000000 dev_set_alias -EXPORT_SYMBOL vmlinux 0x00000000 dev_set_allmulti -EXPORT_SYMBOL vmlinux 0x00000000 dev_set_group -EXPORT_SYMBOL vmlinux 0x00000000 dev_set_mac_address -EXPORT_SYMBOL vmlinux 0x00000000 dev_set_mtu -EXPORT_SYMBOL vmlinux 0x00000000 dev_set_promiscuity -EXPORT_SYMBOL vmlinux 0x00000000 dev_trans_start -EXPORT_SYMBOL vmlinux 0x00000000 dev_uc_add -EXPORT_SYMBOL vmlinux 0x00000000 dev_uc_add_excl -EXPORT_SYMBOL vmlinux 0x00000000 dev_uc_del -EXPORT_SYMBOL vmlinux 0x00000000 dev_uc_flush -EXPORT_SYMBOL vmlinux 0x00000000 dev_uc_init -EXPORT_SYMBOL vmlinux 0x00000000 dev_uc_sync -EXPORT_SYMBOL vmlinux 0x00000000 dev_uc_sync_multiple -EXPORT_SYMBOL vmlinux 0x00000000 dev_uc_unsync -EXPORT_SYMBOL vmlinux 0x00000000 dev_valid_name -EXPORT_SYMBOL vmlinux 0x00000000 dev_vprintk_emit -EXPORT_SYMBOL vmlinux 0x00000000 devcgroup_check_permission -EXPORT_SYMBOL vmlinux 0x00000000 devfreq_add_device -EXPORT_SYMBOL vmlinux 0x00000000 devfreq_add_governor -EXPORT_SYMBOL vmlinux 0x00000000 devfreq_interval_update -EXPORT_SYMBOL vmlinux 0x00000000 devfreq_monitor_resume -EXPORT_SYMBOL vmlinux 0x00000000 devfreq_monitor_start -EXPORT_SYMBOL vmlinux 0x00000000 devfreq_monitor_stop -EXPORT_SYMBOL vmlinux 0x00000000 devfreq_monitor_suspend -EXPORT_SYMBOL vmlinux 0x00000000 devfreq_recommended_opp -EXPORT_SYMBOL vmlinux 0x00000000 devfreq_register_notifier -EXPORT_SYMBOL vmlinux 0x00000000 devfreq_register_opp_notifier -EXPORT_SYMBOL vmlinux 0x00000000 devfreq_remove_device -EXPORT_SYMBOL vmlinux 0x00000000 devfreq_remove_governor -EXPORT_SYMBOL vmlinux 0x00000000 devfreq_resume_device -EXPORT_SYMBOL vmlinux 0x00000000 devfreq_suspend_device -EXPORT_SYMBOL vmlinux 0x00000000 devfreq_unregister_notifier -EXPORT_SYMBOL vmlinux 0x00000000 devfreq_unregister_opp_notifier -EXPORT_SYMBOL vmlinux 0x00000000 devfreq_update_status -EXPORT_SYMBOL vmlinux 0x00000000 device_add_disk -EXPORT_SYMBOL vmlinux 0x00000000 device_add_disk_no_queue_reg -EXPORT_SYMBOL vmlinux 0x00000000 device_get_mac_address -EXPORT_SYMBOL vmlinux 0x00000000 device_match_acpi_dev -EXPORT_SYMBOL vmlinux 0x00000000 devlink_dpipe_entry_clear -EXPORT_SYMBOL vmlinux 0x00000000 devlink_dpipe_header_ethernet -EXPORT_SYMBOL vmlinux 0x00000000 devlink_dpipe_header_ipv4 -EXPORT_SYMBOL vmlinux 0x00000000 devlink_dpipe_header_ipv6 -EXPORT_SYMBOL vmlinux 0x00000000 devm_alloc_etherdev_mqs -EXPORT_SYMBOL vmlinux 0x00000000 devm_backlight_device_register -EXPORT_SYMBOL vmlinux 0x00000000 devm_backlight_device_unregister -EXPORT_SYMBOL vmlinux 0x00000000 devm_clk_get -EXPORT_SYMBOL vmlinux 0x00000000 devm_clk_get_optional -EXPORT_SYMBOL vmlinux 0x00000000 devm_clk_hw_register_clkdev -EXPORT_SYMBOL vmlinux 0x00000000 devm_clk_put -EXPORT_SYMBOL vmlinux 0x00000000 devm_clk_release_clkdev -EXPORT_SYMBOL vmlinux 0x00000000 devm_devfreq_add_device -EXPORT_SYMBOL vmlinux 0x00000000 devm_devfreq_register_notifier -EXPORT_SYMBOL vmlinux 0x00000000 devm_devfreq_register_opp_notifier -EXPORT_SYMBOL vmlinux 0x00000000 devm_devfreq_remove_device -EXPORT_SYMBOL vmlinux 0x00000000 devm_devfreq_unregister_notifier -EXPORT_SYMBOL vmlinux 0x00000000 devm_devfreq_unregister_opp_notifier -EXPORT_SYMBOL vmlinux 0x00000000 devm_extcon_register_notifier -EXPORT_SYMBOL vmlinux 0x00000000 devm_extcon_register_notifier_all -EXPORT_SYMBOL vmlinux 0x00000000 devm_extcon_unregister_notifier -EXPORT_SYMBOL vmlinux 0x00000000 devm_extcon_unregister_notifier_all -EXPORT_SYMBOL vmlinux 0x00000000 devm_free_irq -EXPORT_SYMBOL vmlinux 0x00000000 devm_gen_pool_create -EXPORT_SYMBOL vmlinux 0x00000000 devm_get_clk_from_child -EXPORT_SYMBOL vmlinux 0x00000000 devm_input_allocate_device -EXPORT_SYMBOL vmlinux 0x00000000 devm_ioport_map -EXPORT_SYMBOL vmlinux 0x00000000 devm_ioport_unmap -EXPORT_SYMBOL vmlinux 0x00000000 devm_ioremap -EXPORT_SYMBOL vmlinux 0x00000000 devm_ioremap_resource -EXPORT_SYMBOL vmlinux 0x00000000 devm_ioremap_uc -EXPORT_SYMBOL vmlinux 0x00000000 devm_ioremap_wc -EXPORT_SYMBOL vmlinux 0x00000000 devm_iounmap -EXPORT_SYMBOL vmlinux 0x00000000 devm_kvasprintf -EXPORT_SYMBOL vmlinux 0x00000000 devm_memremap -EXPORT_SYMBOL vmlinux 0x00000000 devm_memunmap -EXPORT_SYMBOL vmlinux 0x00000000 devm_mfd_add_devices -EXPORT_SYMBOL vmlinux 0x00000000 devm_nvmem_cell_put -EXPORT_SYMBOL vmlinux 0x00000000 devm_nvmem_unregister -EXPORT_SYMBOL vmlinux 0x00000000 devm_of_find_backlight -EXPORT_SYMBOL vmlinux 0x00000000 devm_of_iomap -EXPORT_SYMBOL vmlinux 0x00000000 devm_pci_alloc_host_bridge -EXPORT_SYMBOL vmlinux 0x00000000 devm_pci_remap_cfg_resource -EXPORT_SYMBOL vmlinux 0x00000000 devm_pci_remap_cfgspace -EXPORT_SYMBOL vmlinux 0x00000000 devm_pci_remap_iospace -EXPORT_SYMBOL vmlinux 0x00000000 devm_register_reboot_notifier -EXPORT_SYMBOL vmlinux 0x00000000 devm_release_resource -EXPORT_SYMBOL vmlinux 0x00000000 devm_request_any_context_irq -EXPORT_SYMBOL vmlinux 0x00000000 devm_request_resource -EXPORT_SYMBOL vmlinux 0x00000000 devm_request_threaded_irq -EXPORT_SYMBOL vmlinux 0x00000000 devmap_managed_key -EXPORT_SYMBOL vmlinux 0x00000000 dget_parent -EXPORT_SYMBOL vmlinux 0x00000000 dim_calc_stats -EXPORT_SYMBOL vmlinux 0x00000000 dim_on_top -EXPORT_SYMBOL vmlinux 0x00000000 dim_park_on_top -EXPORT_SYMBOL vmlinux 0x00000000 dim_park_tired -EXPORT_SYMBOL vmlinux 0x00000000 dim_turn -EXPORT_SYMBOL vmlinux 0x00000000 disable_irq -EXPORT_SYMBOL vmlinux 0x00000000 disable_irq_nosync -EXPORT_SYMBOL vmlinux 0x00000000 discard_new_inode -EXPORT_SYMBOL vmlinux 0x00000000 disk_stack_limits -EXPORT_SYMBOL vmlinux 0x00000000 dlci_ioctl_set -EXPORT_SYMBOL vmlinux 0x00000000 dm_consume_args -EXPORT_SYMBOL vmlinux 0x00000000 dm_get_device -EXPORT_SYMBOL vmlinux 0x00000000 dm_io -EXPORT_SYMBOL vmlinux 0x00000000 dm_io_client_create -EXPORT_SYMBOL vmlinux 0x00000000 dm_io_client_destroy -EXPORT_SYMBOL vmlinux 0x00000000 dm_kcopyd_client_create -EXPORT_SYMBOL vmlinux 0x00000000 dm_kcopyd_client_destroy -EXPORT_SYMBOL vmlinux 0x00000000 dm_kcopyd_copy -EXPORT_SYMBOL vmlinux 0x00000000 dm_kcopyd_do_callback -EXPORT_SYMBOL vmlinux 0x00000000 dm_kcopyd_prepare_callback -EXPORT_SYMBOL vmlinux 0x00000000 dm_kcopyd_zero -EXPORT_SYMBOL vmlinux 0x00000000 dm_kobject_release -EXPORT_SYMBOL vmlinux 0x00000000 dm_mq_kick_requeue_list -EXPORT_SYMBOL vmlinux 0x00000000 dm_put_device -EXPORT_SYMBOL vmlinux 0x00000000 dm_put_table_device -EXPORT_SYMBOL vmlinux 0x00000000 dm_read_arg -EXPORT_SYMBOL vmlinux 0x00000000 dm_read_arg_group -EXPORT_SYMBOL vmlinux 0x00000000 dm_register_target -EXPORT_SYMBOL vmlinux 0x00000000 dm_shift_arg -EXPORT_SYMBOL vmlinux 0x00000000 dm_table_event -EXPORT_SYMBOL vmlinux 0x00000000 dm_table_get_md -EXPORT_SYMBOL vmlinux 0x00000000 dm_table_get_mode -EXPORT_SYMBOL vmlinux 0x00000000 dm_table_get_size -EXPORT_SYMBOL vmlinux 0x00000000 dm_table_run_md_queue_async -EXPORT_SYMBOL vmlinux 0x00000000 dm_unregister_target -EXPORT_SYMBOL vmlinux 0x00000000 dm_vcalloc -EXPORT_SYMBOL vmlinux 0x00000000 dma_alloc_attrs -EXPORT_SYMBOL vmlinux 0x00000000 dma_async_device_register -EXPORT_SYMBOL vmlinux 0x00000000 dma_async_device_unregister -EXPORT_SYMBOL vmlinux 0x00000000 dma_async_tx_descriptor_init -EXPORT_SYMBOL vmlinux 0x00000000 dma_cache_sync -EXPORT_SYMBOL vmlinux 0x00000000 dma_direct_map_page -EXPORT_SYMBOL vmlinux 0x00000000 dma_direct_map_resource -EXPORT_SYMBOL vmlinux 0x00000000 dma_direct_map_sg -EXPORT_SYMBOL vmlinux 0x00000000 dma_direct_sync_sg_for_cpu -EXPORT_SYMBOL vmlinux 0x00000000 dma_direct_sync_sg_for_device -EXPORT_SYMBOL vmlinux 0x00000000 dma_direct_sync_single_for_cpu -EXPORT_SYMBOL vmlinux 0x00000000 dma_direct_sync_single_for_device -EXPORT_SYMBOL vmlinux 0x00000000 dma_direct_unmap_page -EXPORT_SYMBOL vmlinux 0x00000000 dma_direct_unmap_sg -EXPORT_SYMBOL vmlinux 0x00000000 dma_dummy_ops -EXPORT_SYMBOL vmlinux 0x00000000 dma_fence_add_callback -EXPORT_SYMBOL vmlinux 0x00000000 dma_fence_array_create -EXPORT_SYMBOL vmlinux 0x00000000 dma_fence_array_ops -EXPORT_SYMBOL vmlinux 0x00000000 dma_fence_chain_find_seqno -EXPORT_SYMBOL vmlinux 0x00000000 dma_fence_chain_init -EXPORT_SYMBOL vmlinux 0x00000000 dma_fence_chain_ops -EXPORT_SYMBOL vmlinux 0x00000000 dma_fence_chain_walk -EXPORT_SYMBOL vmlinux 0x00000000 dma_fence_context_alloc -EXPORT_SYMBOL vmlinux 0x00000000 dma_fence_default_wait -EXPORT_SYMBOL vmlinux 0x00000000 dma_fence_enable_sw_signaling -EXPORT_SYMBOL vmlinux 0x00000000 dma_fence_free -EXPORT_SYMBOL vmlinux 0x00000000 dma_fence_get_status -EXPORT_SYMBOL vmlinux 0x00000000 dma_fence_get_stub -EXPORT_SYMBOL vmlinux 0x00000000 dma_fence_init -EXPORT_SYMBOL vmlinux 0x00000000 dma_fence_match_context -EXPORT_SYMBOL vmlinux 0x00000000 dma_fence_release -EXPORT_SYMBOL vmlinux 0x00000000 dma_fence_remove_callback -EXPORT_SYMBOL vmlinux 0x00000000 dma_fence_signal -EXPORT_SYMBOL vmlinux 0x00000000 dma_fence_signal_locked -EXPORT_SYMBOL vmlinux 0x00000000 dma_fence_wait_any_timeout -EXPORT_SYMBOL vmlinux 0x00000000 dma_fence_wait_timeout -EXPORT_SYMBOL vmlinux 0x00000000 dma_find_channel -EXPORT_SYMBOL vmlinux 0x00000000 dma_free_attrs -EXPORT_SYMBOL vmlinux 0x00000000 dma_get_sgtable_attrs -EXPORT_SYMBOL vmlinux 0x00000000 dma_issue_pending_all -EXPORT_SYMBOL vmlinux 0x00000000 dma_mmap_attrs -EXPORT_SYMBOL vmlinux 0x00000000 dma_ops -EXPORT_SYMBOL vmlinux 0x00000000 dma_pool_alloc -EXPORT_SYMBOL vmlinux 0x00000000 dma_pool_create -EXPORT_SYMBOL vmlinux 0x00000000 dma_pool_destroy -EXPORT_SYMBOL vmlinux 0x00000000 dma_pool_free -EXPORT_SYMBOL vmlinux 0x00000000 dma_resv_add_excl_fence -EXPORT_SYMBOL vmlinux 0x00000000 dma_resv_add_shared_fence -EXPORT_SYMBOL vmlinux 0x00000000 dma_resv_copy_fences -EXPORT_SYMBOL vmlinux 0x00000000 dma_resv_fini -EXPORT_SYMBOL vmlinux 0x00000000 dma_resv_init -EXPORT_SYMBOL vmlinux 0x00000000 dma_resv_reserve_shared -EXPORT_SYMBOL vmlinux 0x00000000 dma_set_coherent_mask -EXPORT_SYMBOL vmlinux 0x00000000 dma_set_mask -EXPORT_SYMBOL vmlinux 0x00000000 dma_spin_lock -EXPORT_SYMBOL vmlinux 0x00000000 dma_supported -EXPORT_SYMBOL vmlinux 0x00000000 dma_sync_wait -EXPORT_SYMBOL vmlinux 0x00000000 dma_virt_ops -EXPORT_SYMBOL vmlinux 0x00000000 dmaengine_get -EXPORT_SYMBOL vmlinux 0x00000000 dmaengine_get_unmap_data -EXPORT_SYMBOL vmlinux 0x00000000 dmaengine_put -EXPORT_SYMBOL vmlinux 0x00000000 dmaenginem_async_device_register -EXPORT_SYMBOL vmlinux 0x00000000 dmam_alloc_attrs -EXPORT_SYMBOL vmlinux 0x00000000 dmam_free_coherent -EXPORT_SYMBOL vmlinux 0x00000000 dmam_pool_create -EXPORT_SYMBOL vmlinux 0x00000000 dmam_pool_destroy -EXPORT_SYMBOL vmlinux 0x00000000 dmi_check_system -EXPORT_SYMBOL vmlinux 0x00000000 dmi_find_device -EXPORT_SYMBOL vmlinux 0x00000000 dmi_first_match -EXPORT_SYMBOL vmlinux 0x00000000 dmi_get_bios_year -EXPORT_SYMBOL vmlinux 0x00000000 dmi_get_date -EXPORT_SYMBOL vmlinux 0x00000000 dmi_get_system_info -EXPORT_SYMBOL vmlinux 0x00000000 dmi_name_in_vendors -EXPORT_SYMBOL vmlinux 0x00000000 dmt_modes -EXPORT_SYMBOL vmlinux 0x00000000 dns_query -EXPORT_SYMBOL vmlinux 0x00000000 do_SAK -EXPORT_SYMBOL vmlinux 0x00000000 do_blank_screen -EXPORT_SYMBOL vmlinux 0x00000000 do_clone_file_range -EXPORT_SYMBOL vmlinux 0x00000000 do_settimeofday64 -EXPORT_SYMBOL vmlinux 0x00000000 do_splice_direct -EXPORT_SYMBOL vmlinux 0x00000000 do_trace_rdpmc -EXPORT_SYMBOL vmlinux 0x00000000 do_trace_read_msr -EXPORT_SYMBOL vmlinux 0x00000000 do_trace_write_msr -EXPORT_SYMBOL vmlinux 0x00000000 do_unblank_screen -EXPORT_SYMBOL vmlinux 0x00000000 do_wait_intr -EXPORT_SYMBOL vmlinux 0x00000000 do_wait_intr_irq -EXPORT_SYMBOL vmlinux 0x00000000 done_path_create -EXPORT_SYMBOL vmlinux 0x00000000 down -EXPORT_SYMBOL vmlinux 0x00000000 down_interruptible -EXPORT_SYMBOL vmlinux 0x00000000 down_killable -EXPORT_SYMBOL vmlinux 0x00000000 down_read -EXPORT_SYMBOL vmlinux 0x00000000 down_read_killable -EXPORT_SYMBOL vmlinux 0x00000000 down_read_trylock -EXPORT_SYMBOL vmlinux 0x00000000 down_timeout -EXPORT_SYMBOL vmlinux 0x00000000 down_trylock -EXPORT_SYMBOL vmlinux 0x00000000 down_write -EXPORT_SYMBOL vmlinux 0x00000000 down_write_killable -EXPORT_SYMBOL vmlinux 0x00000000 down_write_trylock -EXPORT_SYMBOL vmlinux 0x00000000 downgrade_write -EXPORT_SYMBOL vmlinux 0x00000000 dput -EXPORT_SYMBOL vmlinux 0x00000000 dq_data_lock -EXPORT_SYMBOL vmlinux 0x00000000 dqget -EXPORT_SYMBOL vmlinux 0x00000000 dql_completed -EXPORT_SYMBOL vmlinux 0x00000000 dql_init -EXPORT_SYMBOL vmlinux 0x00000000 dql_reset -EXPORT_SYMBOL vmlinux 0x00000000 dqput -EXPORT_SYMBOL vmlinux 0x00000000 dqstats -EXPORT_SYMBOL vmlinux 0x00000000 dquot_acquire -EXPORT_SYMBOL vmlinux 0x00000000 dquot_alloc -EXPORT_SYMBOL vmlinux 0x00000000 dquot_alloc_inode -EXPORT_SYMBOL vmlinux 0x00000000 dquot_claim_space_nodirty -EXPORT_SYMBOL vmlinux 0x00000000 dquot_commit -EXPORT_SYMBOL vmlinux 0x00000000 dquot_commit_info -EXPORT_SYMBOL vmlinux 0x00000000 dquot_destroy -EXPORT_SYMBOL vmlinux 0x00000000 dquot_disable -EXPORT_SYMBOL vmlinux 0x00000000 dquot_drop -EXPORT_SYMBOL vmlinux 0x00000000 dquot_file_open -EXPORT_SYMBOL vmlinux 0x00000000 dquot_free_inode -EXPORT_SYMBOL vmlinux 0x00000000 dquot_get_dqblk -EXPORT_SYMBOL vmlinux 0x00000000 dquot_get_next_dqblk -EXPORT_SYMBOL vmlinux 0x00000000 dquot_get_next_id -EXPORT_SYMBOL vmlinux 0x00000000 dquot_get_state -EXPORT_SYMBOL vmlinux 0x00000000 dquot_initialize -EXPORT_SYMBOL vmlinux 0x00000000 dquot_initialize_needed -EXPORT_SYMBOL vmlinux 0x00000000 dquot_load_quota_inode -EXPORT_SYMBOL vmlinux 0x00000000 dquot_load_quota_sb -EXPORT_SYMBOL vmlinux 0x00000000 dquot_mark_dquot_dirty -EXPORT_SYMBOL vmlinux 0x00000000 dquot_operations -EXPORT_SYMBOL vmlinux 0x00000000 dquot_quota_off -EXPORT_SYMBOL vmlinux 0x00000000 dquot_quota_on -EXPORT_SYMBOL vmlinux 0x00000000 dquot_quota_on_mount -EXPORT_SYMBOL vmlinux 0x00000000 dquot_quota_sync -EXPORT_SYMBOL vmlinux 0x00000000 dquot_quotactl_sysfile_ops -EXPORT_SYMBOL vmlinux 0x00000000 dquot_reclaim_space_nodirty -EXPORT_SYMBOL vmlinux 0x00000000 dquot_release -EXPORT_SYMBOL vmlinux 0x00000000 dquot_resume -EXPORT_SYMBOL vmlinux 0x00000000 dquot_scan_active -EXPORT_SYMBOL vmlinux 0x00000000 dquot_set_dqblk -EXPORT_SYMBOL vmlinux 0x00000000 dquot_set_dqinfo -EXPORT_SYMBOL vmlinux 0x00000000 dquot_transfer -EXPORT_SYMBOL vmlinux 0x00000000 dquot_writeback_dquots -EXPORT_SYMBOL vmlinux 0x00000000 drm_get_panel_orientation_quirk -EXPORT_SYMBOL vmlinux 0x00000000 drop_nlink -EXPORT_SYMBOL vmlinux 0x00000000 drop_super -EXPORT_SYMBOL vmlinux 0x00000000 drop_super_exclusive -EXPORT_SYMBOL vmlinux 0x00000000 dst_alloc -EXPORT_SYMBOL vmlinux 0x00000000 dst_cow_metrics_generic -EXPORT_SYMBOL vmlinux 0x00000000 dst_default_metrics -EXPORT_SYMBOL vmlinux 0x00000000 dst_destroy -EXPORT_SYMBOL vmlinux 0x00000000 dst_dev_put -EXPORT_SYMBOL vmlinux 0x00000000 dst_discard_out -EXPORT_SYMBOL vmlinux 0x00000000 dst_init -EXPORT_SYMBOL vmlinux 0x00000000 dst_release -EXPORT_SYMBOL vmlinux 0x00000000 dst_release_immediate -EXPORT_SYMBOL vmlinux 0x00000000 dump_align -EXPORT_SYMBOL vmlinux 0x00000000 dump_emit -EXPORT_SYMBOL vmlinux 0x00000000 dump_fpu -EXPORT_SYMBOL vmlinux 0x00000000 dump_page -EXPORT_SYMBOL vmlinux 0x00000000 dump_skip -EXPORT_SYMBOL vmlinux 0x00000000 dump_stack -EXPORT_SYMBOL vmlinux 0x00000000 dump_truncate -EXPORT_SYMBOL vmlinux 0x00000000 dup_iter -EXPORT_SYMBOL vmlinux 0x00000000 ec_get_handle -EXPORT_SYMBOL vmlinux 0x00000000 ec_read -EXPORT_SYMBOL vmlinux 0x00000000 ec_transaction -EXPORT_SYMBOL vmlinux 0x00000000 ec_write -EXPORT_SYMBOL vmlinux 0x00000000 ecryptfs_fill_auth_tok -EXPORT_SYMBOL vmlinux 0x00000000 ecryptfs_get_auth_tok_key -EXPORT_SYMBOL vmlinux 0x00000000 ecryptfs_get_versions -EXPORT_SYMBOL vmlinux 0x00000000 edac_mc_find -EXPORT_SYMBOL vmlinux 0x00000000 efi -EXPORT_SYMBOL vmlinux 0x00000000 efi_tpm_final_log_size -EXPORT_SYMBOL vmlinux 0x00000000 eisa_bus_type -EXPORT_SYMBOL vmlinux 0x00000000 eisa_driver_register -EXPORT_SYMBOL vmlinux 0x00000000 eisa_driver_unregister -EXPORT_SYMBOL vmlinux 0x00000000 elevator_alloc -EXPORT_SYMBOL vmlinux 0x00000000 elv_bio_merge_ok -EXPORT_SYMBOL vmlinux 0x00000000 elv_rb_add -EXPORT_SYMBOL vmlinux 0x00000000 elv_rb_del -EXPORT_SYMBOL vmlinux 0x00000000 elv_rb_find -EXPORT_SYMBOL vmlinux 0x00000000 elv_rb_former_request -EXPORT_SYMBOL vmlinux 0x00000000 elv_rb_latter_request -EXPORT_SYMBOL vmlinux 0x00000000 empty_aops -EXPORT_SYMBOL vmlinux 0x00000000 empty_name -EXPORT_SYMBOL vmlinux 0x00000000 empty_zero_page -EXPORT_SYMBOL vmlinux 0x00000000 enable_irq -EXPORT_SYMBOL vmlinux 0x00000000 end_buffer_async_write -EXPORT_SYMBOL vmlinux 0x00000000 end_buffer_read_sync -EXPORT_SYMBOL vmlinux 0x00000000 end_buffer_write_sync -EXPORT_SYMBOL vmlinux 0x00000000 end_page_writeback -EXPORT_SYMBOL vmlinux 0x00000000 errseq_check -EXPORT_SYMBOL vmlinux 0x00000000 errseq_check_and_advance -EXPORT_SYMBOL vmlinux 0x00000000 errseq_sample -EXPORT_SYMBOL vmlinux 0x00000000 errseq_set -EXPORT_SYMBOL vmlinux 0x00000000 eth_commit_mac_addr_change -EXPORT_SYMBOL vmlinux 0x00000000 eth_get_headlen -EXPORT_SYMBOL vmlinux 0x00000000 eth_gro_complete -EXPORT_SYMBOL vmlinux 0x00000000 eth_gro_receive -EXPORT_SYMBOL vmlinux 0x00000000 eth_header -EXPORT_SYMBOL vmlinux 0x00000000 eth_header_cache -EXPORT_SYMBOL vmlinux 0x00000000 eth_header_cache_update -EXPORT_SYMBOL vmlinux 0x00000000 eth_header_parse -EXPORT_SYMBOL vmlinux 0x00000000 eth_header_parse_protocol -EXPORT_SYMBOL vmlinux 0x00000000 eth_mac_addr -EXPORT_SYMBOL vmlinux 0x00000000 eth_platform_get_mac_address -EXPORT_SYMBOL vmlinux 0x00000000 eth_prepare_mac_addr_change -EXPORT_SYMBOL vmlinux 0x00000000 eth_type_trans -EXPORT_SYMBOL vmlinux 0x00000000 eth_validate_addr -EXPORT_SYMBOL vmlinux 0x00000000 ether_setup -EXPORT_SYMBOL vmlinux 0x00000000 ethtool_convert_legacy_u32_to_link_mode -EXPORT_SYMBOL vmlinux 0x00000000 ethtool_convert_link_mode_to_legacy_u32 -EXPORT_SYMBOL vmlinux 0x00000000 ethtool_intersect_link_masks -EXPORT_SYMBOL vmlinux 0x00000000 ethtool_notify -EXPORT_SYMBOL vmlinux 0x00000000 ethtool_op_get_link -EXPORT_SYMBOL vmlinux 0x00000000 ethtool_op_get_ts_info -EXPORT_SYMBOL vmlinux 0x00000000 ethtool_rx_flow_rule_create -EXPORT_SYMBOL vmlinux 0x00000000 ethtool_rx_flow_rule_destroy -EXPORT_SYMBOL vmlinux 0x00000000 ex_handler_clear_fs -EXPORT_SYMBOL vmlinux 0x00000000 ex_handler_default -EXPORT_SYMBOL vmlinux 0x00000000 ex_handler_ext -EXPORT_SYMBOL vmlinux 0x00000000 ex_handler_rdmsr_unsafe -EXPORT_SYMBOL vmlinux 0x00000000 ex_handler_uaccess -EXPORT_SYMBOL vmlinux 0x00000000 ex_handler_wrmsr_unsafe -EXPORT_SYMBOL vmlinux 0x00000000 f_setown -EXPORT_SYMBOL vmlinux 0x00000000 fasync_helper -EXPORT_SYMBOL vmlinux 0x00000000 fb_add_videomode -EXPORT_SYMBOL vmlinux 0x00000000 fb_alloc_cmap -EXPORT_SYMBOL vmlinux 0x00000000 fb_blank -EXPORT_SYMBOL vmlinux 0x00000000 fb_class -EXPORT_SYMBOL vmlinux 0x00000000 fb_copy_cmap -EXPORT_SYMBOL vmlinux 0x00000000 fb_dealloc_cmap -EXPORT_SYMBOL vmlinux 0x00000000 fb_default_cmap -EXPORT_SYMBOL vmlinux 0x00000000 fb_destroy_modedb -EXPORT_SYMBOL vmlinux 0x00000000 fb_edid_to_monspecs -EXPORT_SYMBOL vmlinux 0x00000000 fb_find_best_display -EXPORT_SYMBOL vmlinux 0x00000000 fb_find_best_mode -EXPORT_SYMBOL vmlinux 0x00000000 fb_find_mode -EXPORT_SYMBOL vmlinux 0x00000000 fb_find_mode_cvt -EXPORT_SYMBOL vmlinux 0x00000000 fb_find_nearest_mode -EXPORT_SYMBOL vmlinux 0x00000000 fb_firmware_edid -EXPORT_SYMBOL vmlinux 0x00000000 fb_get_buffer_offset -EXPORT_SYMBOL vmlinux 0x00000000 fb_get_color_depth -EXPORT_SYMBOL vmlinux 0x00000000 fb_get_mode -EXPORT_SYMBOL vmlinux 0x00000000 fb_get_options -EXPORT_SYMBOL vmlinux 0x00000000 fb_invert_cmaps -EXPORT_SYMBOL vmlinux 0x00000000 fb_is_primary_device -EXPORT_SYMBOL vmlinux 0x00000000 fb_match_mode -EXPORT_SYMBOL vmlinux 0x00000000 fb_mode_is_equal -EXPORT_SYMBOL vmlinux 0x00000000 fb_pad_aligned_buffer -EXPORT_SYMBOL vmlinux 0x00000000 fb_pad_unaligned_buffer -EXPORT_SYMBOL vmlinux 0x00000000 fb_pan_display -EXPORT_SYMBOL vmlinux 0x00000000 fb_parse_edid -EXPORT_SYMBOL vmlinux 0x00000000 fb_prepare_logo -EXPORT_SYMBOL vmlinux 0x00000000 fb_register_client -EXPORT_SYMBOL vmlinux 0x00000000 fb_set_cmap -EXPORT_SYMBOL vmlinux 0x00000000 fb_set_suspend -EXPORT_SYMBOL vmlinux 0x00000000 fb_set_var -EXPORT_SYMBOL vmlinux 0x00000000 fb_show_logo -EXPORT_SYMBOL vmlinux 0x00000000 fb_unregister_client -EXPORT_SYMBOL vmlinux 0x00000000 fb_validate_mode -EXPORT_SYMBOL vmlinux 0x00000000 fb_var_to_videomode -EXPORT_SYMBOL vmlinux 0x00000000 fb_videomode_to_modelist -EXPORT_SYMBOL vmlinux 0x00000000 fb_videomode_to_var -EXPORT_SYMBOL vmlinux 0x00000000 fbcon_rotate_ccw -EXPORT_SYMBOL vmlinux 0x00000000 fbcon_rotate_cw -EXPORT_SYMBOL vmlinux 0x00000000 fbcon_rotate_ud -EXPORT_SYMBOL vmlinux 0x00000000 fbcon_set_bitops -EXPORT_SYMBOL vmlinux 0x00000000 fbcon_set_rotate -EXPORT_SYMBOL vmlinux 0x00000000 fbcon_set_tileops -EXPORT_SYMBOL vmlinux 0x00000000 fbcon_update_vcs -EXPORT_SYMBOL vmlinux 0x00000000 fc_mount -EXPORT_SYMBOL vmlinux 0x00000000 fd_install -EXPORT_SYMBOL vmlinux 0x00000000 fddi_type_trans -EXPORT_SYMBOL vmlinux 0x00000000 fg_console -EXPORT_SYMBOL vmlinux 0x00000000 fget -EXPORT_SYMBOL vmlinux 0x00000000 fget_raw -EXPORT_SYMBOL vmlinux 0x00000000 fib_default_rule_add -EXPORT_SYMBOL vmlinux 0x00000000 fib_notifier_ops_register -EXPORT_SYMBOL vmlinux 0x00000000 fib_notifier_ops_unregister -EXPORT_SYMBOL vmlinux 0x00000000 fiemap_check_flags -EXPORT_SYMBOL vmlinux 0x00000000 fiemap_fill_next_extent -EXPORT_SYMBOL vmlinux 0x00000000 fifo_create_dflt -EXPORT_SYMBOL vmlinux 0x00000000 fifo_set_limit -EXPORT_SYMBOL vmlinux 0x00000000 file_check_and_advance_wb_err -EXPORT_SYMBOL vmlinux 0x00000000 file_fdatawait_range -EXPORT_SYMBOL vmlinux 0x00000000 file_modified -EXPORT_SYMBOL vmlinux 0x00000000 file_ns_capable -EXPORT_SYMBOL vmlinux 0x00000000 file_open_root -EXPORT_SYMBOL vmlinux 0x00000000 file_path -EXPORT_SYMBOL vmlinux 0x00000000 file_remove_privs -EXPORT_SYMBOL vmlinux 0x00000000 file_update_time -EXPORT_SYMBOL vmlinux 0x00000000 file_write_and_wait_range -EXPORT_SYMBOL vmlinux 0x00000000 filemap_check_errors -EXPORT_SYMBOL vmlinux 0x00000000 filemap_fault -EXPORT_SYMBOL vmlinux 0x00000000 filemap_fdatawait_keep_errors -EXPORT_SYMBOL vmlinux 0x00000000 filemap_fdatawait_range -EXPORT_SYMBOL vmlinux 0x00000000 filemap_fdatawait_range_keep_errors -EXPORT_SYMBOL vmlinux 0x00000000 filemap_fdatawrite -EXPORT_SYMBOL vmlinux 0x00000000 filemap_fdatawrite_range -EXPORT_SYMBOL vmlinux 0x00000000 filemap_flush -EXPORT_SYMBOL vmlinux 0x00000000 filemap_map_pages -EXPORT_SYMBOL vmlinux 0x00000000 filemap_page_mkwrite -EXPORT_SYMBOL vmlinux 0x00000000 filemap_range_has_page -EXPORT_SYMBOL vmlinux 0x00000000 filemap_write_and_wait_range -EXPORT_SYMBOL vmlinux 0x00000000 filp_close -EXPORT_SYMBOL vmlinux 0x00000000 filp_open -EXPORT_SYMBOL vmlinux 0x00000000 finalize_exec -EXPORT_SYMBOL vmlinux 0x00000000 find_first_bit -EXPORT_SYMBOL vmlinux 0x00000000 find_first_zero_bit -EXPORT_SYMBOL vmlinux 0x00000000 find_font -EXPORT_SYMBOL vmlinux 0x00000000 find_get_entry -EXPORT_SYMBOL vmlinux 0x00000000 find_get_pages_contig -EXPORT_SYMBOL vmlinux 0x00000000 find_get_pages_range_tag -EXPORT_SYMBOL vmlinux 0x00000000 find_inode_nowait -EXPORT_SYMBOL vmlinux 0x00000000 find_last_bit -EXPORT_SYMBOL vmlinux 0x00000000 find_lock_entry -EXPORT_SYMBOL vmlinux 0x00000000 find_next_and_bit -EXPORT_SYMBOL vmlinux 0x00000000 find_next_bit -EXPORT_SYMBOL vmlinux 0x00000000 find_next_clump8 -EXPORT_SYMBOL vmlinux 0x00000000 find_next_zero_bit -EXPORT_SYMBOL vmlinux 0x00000000 find_vma -EXPORT_SYMBOL vmlinux 0x00000000 finish_no_open -EXPORT_SYMBOL vmlinux 0x00000000 finish_open -EXPORT_SYMBOL vmlinux 0x00000000 finish_swait -EXPORT_SYMBOL vmlinux 0x00000000 finish_wait -EXPORT_SYMBOL vmlinux 0x00000000 first_ec -EXPORT_SYMBOL vmlinux 0x00000000 fixed_size_llseek -EXPORT_SYMBOL vmlinux 0x00000000 flow_block_cb_alloc -EXPORT_SYMBOL vmlinux 0x00000000 flow_block_cb_decref -EXPORT_SYMBOL vmlinux 0x00000000 flow_block_cb_free -EXPORT_SYMBOL vmlinux 0x00000000 flow_block_cb_incref -EXPORT_SYMBOL vmlinux 0x00000000 flow_block_cb_is_busy -EXPORT_SYMBOL vmlinux 0x00000000 flow_block_cb_lookup -EXPORT_SYMBOL vmlinux 0x00000000 flow_block_cb_priv -EXPORT_SYMBOL vmlinux 0x00000000 flow_block_cb_setup_simple -EXPORT_SYMBOL vmlinux 0x00000000 flow_get_u32_dst -EXPORT_SYMBOL vmlinux 0x00000000 flow_get_u32_src -EXPORT_SYMBOL vmlinux 0x00000000 flow_hash_from_keys -EXPORT_SYMBOL vmlinux 0x00000000 flow_keys_basic_dissector -EXPORT_SYMBOL vmlinux 0x00000000 flow_keys_dissector -EXPORT_SYMBOL vmlinux 0x00000000 flow_rule_alloc -EXPORT_SYMBOL vmlinux 0x00000000 flow_rule_match_basic -EXPORT_SYMBOL vmlinux 0x00000000 flow_rule_match_control -EXPORT_SYMBOL vmlinux 0x00000000 flow_rule_match_cvlan -EXPORT_SYMBOL vmlinux 0x00000000 flow_rule_match_enc_control -EXPORT_SYMBOL vmlinux 0x00000000 flow_rule_match_enc_ip -EXPORT_SYMBOL vmlinux 0x00000000 flow_rule_match_enc_ipv4_addrs -EXPORT_SYMBOL vmlinux 0x00000000 flow_rule_match_enc_ipv6_addrs -EXPORT_SYMBOL vmlinux 0x00000000 flow_rule_match_enc_keyid -EXPORT_SYMBOL vmlinux 0x00000000 flow_rule_match_enc_opts -EXPORT_SYMBOL vmlinux 0x00000000 flow_rule_match_enc_ports -EXPORT_SYMBOL vmlinux 0x00000000 flow_rule_match_eth_addrs -EXPORT_SYMBOL vmlinux 0x00000000 flow_rule_match_icmp -EXPORT_SYMBOL vmlinux 0x00000000 flow_rule_match_ip -EXPORT_SYMBOL vmlinux 0x00000000 flow_rule_match_ipv4_addrs -EXPORT_SYMBOL vmlinux 0x00000000 flow_rule_match_ipv6_addrs -EXPORT_SYMBOL vmlinux 0x00000000 flow_rule_match_meta -EXPORT_SYMBOL vmlinux 0x00000000 flow_rule_match_mpls -EXPORT_SYMBOL vmlinux 0x00000000 flow_rule_match_ports -EXPORT_SYMBOL vmlinux 0x00000000 flow_rule_match_tcp -EXPORT_SYMBOL vmlinux 0x00000000 flow_rule_match_vlan -EXPORT_SYMBOL vmlinux 0x00000000 flush_delayed_work -EXPORT_SYMBOL vmlinux 0x00000000 flush_old_exec -EXPORT_SYMBOL vmlinux 0x00000000 flush_rcu_work -EXPORT_SYMBOL vmlinux 0x00000000 flush_signals -EXPORT_SYMBOL vmlinux 0x00000000 flush_workqueue -EXPORT_SYMBOL vmlinux 0x00000000 follow_down -EXPORT_SYMBOL vmlinux 0x00000000 follow_down_one -EXPORT_SYMBOL vmlinux 0x00000000 follow_pfn -EXPORT_SYMBOL vmlinux 0x00000000 follow_pte_pmd -EXPORT_SYMBOL vmlinux 0x00000000 follow_up -EXPORT_SYMBOL vmlinux 0x00000000 font_vga_8x16 -EXPORT_SYMBOL vmlinux 0x00000000 force_sig -EXPORT_SYMBOL vmlinux 0x00000000 forget_all_cached_acls -EXPORT_SYMBOL vmlinux 0x00000000 forget_cached_acl -EXPORT_SYMBOL vmlinux 0x00000000 fortify_panic -EXPORT_SYMBOL vmlinux 0x00000000 fput -EXPORT_SYMBOL vmlinux 0x00000000 fqdir_exit -EXPORT_SYMBOL vmlinux 0x00000000 fqdir_init -EXPORT_SYMBOL vmlinux 0x00000000 frame_vector_create -EXPORT_SYMBOL vmlinux 0x00000000 frame_vector_destroy -EXPORT_SYMBOL vmlinux 0x00000000 frame_vector_to_pages -EXPORT_SYMBOL vmlinux 0x00000000 frame_vector_to_pfns -EXPORT_SYMBOL vmlinux 0x00000000 framebuffer_alloc -EXPORT_SYMBOL vmlinux 0x00000000 framebuffer_release -EXPORT_SYMBOL vmlinux 0x00000000 free_anon_bdev -EXPORT_SYMBOL vmlinux 0x00000000 free_bucket_spinlocks -EXPORT_SYMBOL vmlinux 0x00000000 free_buffer_head -EXPORT_SYMBOL vmlinux 0x00000000 free_cgroup_ns -EXPORT_SYMBOL vmlinux 0x00000000 free_cpumask_var -EXPORT_SYMBOL vmlinux 0x00000000 free_dma -EXPORT_SYMBOL vmlinux 0x00000000 free_inode_nonrcu -EXPORT_SYMBOL vmlinux 0x00000000 free_iova_mem -EXPORT_SYMBOL vmlinux 0x00000000 free_irq -EXPORT_SYMBOL vmlinux 0x00000000 free_irq_cpu_rmap -EXPORT_SYMBOL vmlinux 0x00000000 free_netdev -EXPORT_SYMBOL vmlinux 0x00000000 free_opal_dev -EXPORT_SYMBOL vmlinux 0x00000000 free_pages -EXPORT_SYMBOL vmlinux 0x00000000 free_pages_exact -EXPORT_SYMBOL vmlinux 0x00000000 free_task -EXPORT_SYMBOL vmlinux 0x00000000 free_xenballooned_pages -EXPORT_SYMBOL vmlinux 0x00000000 freeze_bdev -EXPORT_SYMBOL vmlinux 0x00000000 freeze_super -EXPORT_SYMBOL vmlinux 0x00000000 freezing_slow_path -EXPORT_SYMBOL vmlinux 0x00000000 from_kgid -EXPORT_SYMBOL vmlinux 0x00000000 from_kgid_munged -EXPORT_SYMBOL vmlinux 0x00000000 from_kprojid -EXPORT_SYMBOL vmlinux 0x00000000 from_kprojid_munged -EXPORT_SYMBOL vmlinux 0x00000000 from_kqid -EXPORT_SYMBOL vmlinux 0x00000000 from_kqid_munged -EXPORT_SYMBOL vmlinux 0x00000000 from_kuid -EXPORT_SYMBOL vmlinux 0x00000000 from_kuid_munged -EXPORT_SYMBOL vmlinux 0x00000000 frontswap_curr_pages -EXPORT_SYMBOL vmlinux 0x00000000 frontswap_register_ops -EXPORT_SYMBOL vmlinux 0x00000000 frontswap_shrink -EXPORT_SYMBOL vmlinux 0x00000000 frontswap_tmem_exclusive_gets -EXPORT_SYMBOL vmlinux 0x00000000 frontswap_writethrough -EXPORT_SYMBOL vmlinux 0x00000000 fs_bio_set -EXPORT_SYMBOL vmlinux 0x00000000 fs_context_for_mount -EXPORT_SYMBOL vmlinux 0x00000000 fs_context_for_reconfigure -EXPORT_SYMBOL vmlinux 0x00000000 fs_context_for_submount -EXPORT_SYMBOL vmlinux 0x00000000 fs_lookup_param -EXPORT_SYMBOL vmlinux 0x00000000 fs_overflowgid -EXPORT_SYMBOL vmlinux 0x00000000 fs_overflowuid -EXPORT_SYMBOL vmlinux 0x00000000 fs_param_is_blob -EXPORT_SYMBOL vmlinux 0x00000000 fs_param_is_blockdev -EXPORT_SYMBOL vmlinux 0x00000000 fs_param_is_bool -EXPORT_SYMBOL vmlinux 0x00000000 fs_param_is_enum -EXPORT_SYMBOL vmlinux 0x00000000 fs_param_is_fd -EXPORT_SYMBOL vmlinux 0x00000000 fs_param_is_path -EXPORT_SYMBOL vmlinux 0x00000000 fs_param_is_s32 -EXPORT_SYMBOL vmlinux 0x00000000 fs_param_is_string -EXPORT_SYMBOL vmlinux 0x00000000 fs_param_is_u32 -EXPORT_SYMBOL vmlinux 0x00000000 fs_param_is_u64 -EXPORT_SYMBOL vmlinux 0x00000000 fscrypt_decrypt_bio -EXPORT_SYMBOL vmlinux 0x00000000 fscrypt_decrypt_block_inplace -EXPORT_SYMBOL vmlinux 0x00000000 fscrypt_decrypt_pagecache_blocks -EXPORT_SYMBOL vmlinux 0x00000000 fscrypt_encrypt_block_inplace -EXPORT_SYMBOL vmlinux 0x00000000 fscrypt_encrypt_pagecache_blocks -EXPORT_SYMBOL vmlinux 0x00000000 fscrypt_enqueue_decrypt_work -EXPORT_SYMBOL vmlinux 0x00000000 fscrypt_fname_alloc_buffer -EXPORT_SYMBOL vmlinux 0x00000000 fscrypt_fname_disk_to_usr -EXPORT_SYMBOL vmlinux 0x00000000 fscrypt_fname_free_buffer -EXPORT_SYMBOL vmlinux 0x00000000 fscrypt_free_bounce_page -EXPORT_SYMBOL vmlinux 0x00000000 fscrypt_free_inode -EXPORT_SYMBOL vmlinux 0x00000000 fscrypt_get_encryption_info -EXPORT_SYMBOL vmlinux 0x00000000 fscrypt_has_permitted_context -EXPORT_SYMBOL vmlinux 0x00000000 fscrypt_inherit_context -EXPORT_SYMBOL vmlinux 0x00000000 fscrypt_ioctl_get_policy -EXPORT_SYMBOL vmlinux 0x00000000 fscrypt_ioctl_set_policy -EXPORT_SYMBOL vmlinux 0x00000000 fscrypt_put_encryption_info -EXPORT_SYMBOL vmlinux 0x00000000 fscrypt_setup_filename -EXPORT_SYMBOL vmlinux 0x00000000 fscrypt_zeroout_range -EXPORT_SYMBOL vmlinux 0x00000000 fsync_bdev -EXPORT_SYMBOL vmlinux 0x00000000 full_name_hash -EXPORT_SYMBOL vmlinux 0x00000000 fuse_dequeue_forget -EXPORT_SYMBOL vmlinux 0x00000000 fwnode_get_mac_address -EXPORT_SYMBOL vmlinux 0x00000000 fwnode_graph_parse_endpoint -EXPORT_SYMBOL vmlinux 0x00000000 fwnode_irq_get -EXPORT_SYMBOL vmlinux 0x00000000 gc_inflight_list -EXPORT_SYMBOL vmlinux 0x00000000 gen_estimator_active -EXPORT_SYMBOL vmlinux 0x00000000 gen_estimator_read -EXPORT_SYMBOL vmlinux 0x00000000 gen_kill_estimator -EXPORT_SYMBOL vmlinux 0x00000000 gen_new_estimator -EXPORT_SYMBOL vmlinux 0x00000000 gen_pool_add_owner -EXPORT_SYMBOL vmlinux 0x00000000 gen_pool_alloc_algo_owner -EXPORT_SYMBOL vmlinux 0x00000000 gen_pool_best_fit -EXPORT_SYMBOL vmlinux 0x00000000 gen_pool_create -EXPORT_SYMBOL vmlinux 0x00000000 gen_pool_destroy -EXPORT_SYMBOL vmlinux 0x00000000 gen_pool_dma_alloc -EXPORT_SYMBOL vmlinux 0x00000000 gen_pool_dma_alloc_algo -EXPORT_SYMBOL vmlinux 0x00000000 gen_pool_dma_alloc_align -EXPORT_SYMBOL vmlinux 0x00000000 gen_pool_dma_zalloc -EXPORT_SYMBOL vmlinux 0x00000000 gen_pool_dma_zalloc_algo -EXPORT_SYMBOL vmlinux 0x00000000 gen_pool_dma_zalloc_align -EXPORT_SYMBOL vmlinux 0x00000000 gen_pool_first_fit -EXPORT_SYMBOL vmlinux 0x00000000 gen_pool_first_fit_align -EXPORT_SYMBOL vmlinux 0x00000000 gen_pool_first_fit_order_align -EXPORT_SYMBOL vmlinux 0x00000000 gen_pool_fixed_alloc -EXPORT_SYMBOL vmlinux 0x00000000 gen_pool_for_each_chunk -EXPORT_SYMBOL vmlinux 0x00000000 gen_pool_free_owner -EXPORT_SYMBOL vmlinux 0x00000000 gen_pool_has_addr -EXPORT_SYMBOL vmlinux 0x00000000 gen_pool_set_algo -EXPORT_SYMBOL vmlinux 0x00000000 gen_pool_virt_to_phys -EXPORT_SYMBOL vmlinux 0x00000000 gen_replace_estimator -EXPORT_SYMBOL vmlinux 0x00000000 generate_pm_trace -EXPORT_SYMBOL vmlinux 0x00000000 generate_random_uuid -EXPORT_SYMBOL vmlinux 0x00000000 generic_block_bmap -EXPORT_SYMBOL vmlinux 0x00000000 generic_block_fiemap -EXPORT_SYMBOL vmlinux 0x00000000 generic_check_addressable -EXPORT_SYMBOL vmlinux 0x00000000 generic_cont_expand_simple -EXPORT_SYMBOL vmlinux 0x00000000 generic_copy_file_range -EXPORT_SYMBOL vmlinux 0x00000000 generic_delete_inode -EXPORT_SYMBOL vmlinux 0x00000000 generic_end_io_acct -EXPORT_SYMBOL vmlinux 0x00000000 generic_error_remove_page -EXPORT_SYMBOL vmlinux 0x00000000 generic_fadvise -EXPORT_SYMBOL vmlinux 0x00000000 generic_file_direct_write -EXPORT_SYMBOL vmlinux 0x00000000 generic_file_fsync -EXPORT_SYMBOL vmlinux 0x00000000 generic_file_llseek -EXPORT_SYMBOL vmlinux 0x00000000 generic_file_llseek_size -EXPORT_SYMBOL vmlinux 0x00000000 generic_file_mmap -EXPORT_SYMBOL vmlinux 0x00000000 generic_file_open -EXPORT_SYMBOL vmlinux 0x00000000 generic_file_read_iter -EXPORT_SYMBOL vmlinux 0x00000000 generic_file_readonly_mmap -EXPORT_SYMBOL vmlinux 0x00000000 generic_file_splice_read -EXPORT_SYMBOL vmlinux 0x00000000 generic_file_write_iter -EXPORT_SYMBOL vmlinux 0x00000000 generic_fillattr -EXPORT_SYMBOL vmlinux 0x00000000 generic_iommu_put_resv_regions -EXPORT_SYMBOL vmlinux 0x00000000 generic_key_instantiate -EXPORT_SYMBOL vmlinux 0x00000000 generic_listxattr -EXPORT_SYMBOL vmlinux 0x00000000 generic_make_request -EXPORT_SYMBOL vmlinux 0x00000000 generic_parse_monolithic -EXPORT_SYMBOL vmlinux 0x00000000 generic_perform_write -EXPORT_SYMBOL vmlinux 0x00000000 generic_permission -EXPORT_SYMBOL vmlinux 0x00000000 generic_pipe_buf_confirm -EXPORT_SYMBOL vmlinux 0x00000000 generic_pipe_buf_get -EXPORT_SYMBOL vmlinux 0x00000000 generic_pipe_buf_release -EXPORT_SYMBOL vmlinux 0x00000000 generic_pipe_buf_steal -EXPORT_SYMBOL vmlinux 0x00000000 generic_read_dir -EXPORT_SYMBOL vmlinux 0x00000000 generic_remap_file_range_prep -EXPORT_SYMBOL vmlinux 0x00000000 generic_ro_fops -EXPORT_SYMBOL vmlinux 0x00000000 generic_setlease -EXPORT_SYMBOL vmlinux 0x00000000 generic_shutdown_super -EXPORT_SYMBOL vmlinux 0x00000000 generic_splice_sendpage -EXPORT_SYMBOL vmlinux 0x00000000 generic_start_io_acct -EXPORT_SYMBOL vmlinux 0x00000000 generic_update_time -EXPORT_SYMBOL vmlinux 0x00000000 generic_write_checks -EXPORT_SYMBOL vmlinux 0x00000000 generic_write_end -EXPORT_SYMBOL vmlinux 0x00000000 generic_writepages -EXPORT_SYMBOL vmlinux 0x00000000 genl_lock -EXPORT_SYMBOL vmlinux 0x00000000 genl_notify -EXPORT_SYMBOL vmlinux 0x00000000 genl_register_family -EXPORT_SYMBOL vmlinux 0x00000000 genl_unlock -EXPORT_SYMBOL vmlinux 0x00000000 genl_unregister_family -EXPORT_SYMBOL vmlinux 0x00000000 genlmsg_multicast_allns -EXPORT_SYMBOL vmlinux 0x00000000 genlmsg_put -EXPORT_SYMBOL vmlinux 0x00000000 genphy_aneg_done -EXPORT_SYMBOL vmlinux 0x00000000 genphy_c37_config_aneg -EXPORT_SYMBOL vmlinux 0x00000000 genphy_c37_read_status -EXPORT_SYMBOL vmlinux 0x00000000 genphy_check_and_restart_aneg -EXPORT_SYMBOL vmlinux 0x00000000 genphy_config_eee_advert -EXPORT_SYMBOL vmlinux 0x00000000 genphy_loopback -EXPORT_SYMBOL vmlinux 0x00000000 genphy_read_abilities -EXPORT_SYMBOL vmlinux 0x00000000 genphy_read_lpa -EXPORT_SYMBOL vmlinux 0x00000000 genphy_read_mmd_unsupported -EXPORT_SYMBOL vmlinux 0x00000000 genphy_read_status -EXPORT_SYMBOL vmlinux 0x00000000 genphy_read_status_fixed -EXPORT_SYMBOL vmlinux 0x00000000 genphy_restart_aneg -EXPORT_SYMBOL vmlinux 0x00000000 genphy_resume -EXPORT_SYMBOL vmlinux 0x00000000 genphy_setup_forced -EXPORT_SYMBOL vmlinux 0x00000000 genphy_soft_reset -EXPORT_SYMBOL vmlinux 0x00000000 genphy_suspend -EXPORT_SYMBOL vmlinux 0x00000000 genphy_update_link -EXPORT_SYMBOL vmlinux 0x00000000 genphy_write_mmd_unsupported -EXPORT_SYMBOL vmlinux 0x00000000 get_acl -EXPORT_SYMBOL vmlinux 0x00000000 get_agp_version -EXPORT_SYMBOL vmlinux 0x00000000 get_amd_iommu -EXPORT_SYMBOL vmlinux 0x00000000 get_anon_bdev -EXPORT_SYMBOL vmlinux 0x00000000 get_bitmap_from_slot -EXPORT_SYMBOL vmlinux 0x00000000 get_cached_acl -EXPORT_SYMBOL vmlinux 0x00000000 get_cached_acl_rcu -EXPORT_SYMBOL vmlinux 0x00000000 get_cpu_entry_area -EXPORT_SYMBOL vmlinux 0x00000000 get_default_font -EXPORT_SYMBOL vmlinux 0x00000000 get_dev_data -EXPORT_SYMBOL vmlinux 0x00000000 get_disk_and_module -EXPORT_SYMBOL vmlinux 0x00000000 get_fs_type -EXPORT_SYMBOL vmlinux 0x00000000 get_gendisk -EXPORT_SYMBOL vmlinux 0x00000000 get_ibs_caps -EXPORT_SYMBOL vmlinux 0x00000000 get_ipc_ns_exported -EXPORT_SYMBOL vmlinux 0x00000000 get_mem_cgroup_from_mm -EXPORT_SYMBOL vmlinux 0x00000000 get_mem_cgroup_from_page -EXPORT_SYMBOL vmlinux 0x00000000 get_mm_exe_file -EXPORT_SYMBOL vmlinux 0x00000000 get_next_ino -EXPORT_SYMBOL vmlinux 0x00000000 get_option -EXPORT_SYMBOL vmlinux 0x00000000 get_options -EXPORT_SYMBOL vmlinux 0x00000000 get_phy_device -EXPORT_SYMBOL vmlinux 0x00000000 get_random_bytes -EXPORT_SYMBOL vmlinux 0x00000000 get_random_bytes_arch -EXPORT_SYMBOL vmlinux 0x00000000 get_random_u32 -EXPORT_SYMBOL vmlinux 0x00000000 get_random_u64 -EXPORT_SYMBOL vmlinux 0x00000000 get_sg_io_hdr -EXPORT_SYMBOL vmlinux 0x00000000 get_super -EXPORT_SYMBOL vmlinux 0x00000000 get_super_exclusive_thawed -EXPORT_SYMBOL vmlinux 0x00000000 get_super_thawed -EXPORT_SYMBOL vmlinux 0x00000000 get_task_cred -EXPORT_SYMBOL vmlinux 0x00000000 get_task_exe_file -EXPORT_SYMBOL vmlinux 0x00000000 get_thermal_instance -EXPORT_SYMBOL vmlinux 0x00000000 get_tree_bdev -EXPORT_SYMBOL vmlinux 0x00000000 get_tree_keyed -EXPORT_SYMBOL vmlinux 0x00000000 get_tree_nodev -EXPORT_SYMBOL vmlinux 0x00000000 get_tree_single -EXPORT_SYMBOL vmlinux 0x00000000 get_tree_single_reconf -EXPORT_SYMBOL vmlinux 0x00000000 get_tz_trend -EXPORT_SYMBOL vmlinux 0x00000000 get_unmapped_area -EXPORT_SYMBOL vmlinux 0x00000000 get_unused_fd_flags -EXPORT_SYMBOL vmlinux 0x00000000 get_user_pages -EXPORT_SYMBOL vmlinux 0x00000000 get_user_pages_locked -EXPORT_SYMBOL vmlinux 0x00000000 get_user_pages_remote -EXPORT_SYMBOL vmlinux 0x00000000 get_user_pages_unlocked -EXPORT_SYMBOL vmlinux 0x00000000 get_vaddr_frames -EXPORT_SYMBOL vmlinux 0x00000000 get_vm_area -EXPORT_SYMBOL vmlinux 0x00000000 get_zeroed_page -EXPORT_SYMBOL vmlinux 0x00000000 gf128mul_4k_bbe -EXPORT_SYMBOL vmlinux 0x00000000 gf128mul_4k_lle -EXPORT_SYMBOL vmlinux 0x00000000 gf128mul_64k_bbe -EXPORT_SYMBOL vmlinux 0x00000000 gf128mul_bbe -EXPORT_SYMBOL vmlinux 0x00000000 gf128mul_free_64k -EXPORT_SYMBOL vmlinux 0x00000000 gf128mul_init_4k_bbe -EXPORT_SYMBOL vmlinux 0x00000000 gf128mul_init_4k_lle -EXPORT_SYMBOL vmlinux 0x00000000 gf128mul_init_64k_bbe -EXPORT_SYMBOL vmlinux 0x00000000 gf128mul_lle -EXPORT_SYMBOL vmlinux 0x00000000 gf128mul_x8_ble -EXPORT_SYMBOL vmlinux 0x00000000 give_up_console -EXPORT_SYMBOL vmlinux 0x00000000 glob_match -EXPORT_SYMBOL vmlinux 0x00000000 global_cache_flush -EXPORT_SYMBOL vmlinux 0x00000000 global_cursor_default -EXPORT_SYMBOL vmlinux 0x00000000 gnet_stats_copy_app -EXPORT_SYMBOL vmlinux 0x00000000 gnet_stats_copy_basic -EXPORT_SYMBOL vmlinux 0x00000000 gnet_stats_copy_basic_hw -EXPORT_SYMBOL vmlinux 0x00000000 gnet_stats_copy_queue -EXPORT_SYMBOL vmlinux 0x00000000 gnet_stats_copy_rate_est -EXPORT_SYMBOL vmlinux 0x00000000 gnet_stats_finish_copy -EXPORT_SYMBOL vmlinux 0x00000000 gnet_stats_start_copy -EXPORT_SYMBOL vmlinux 0x00000000 gnet_stats_start_copy_compat -EXPORT_SYMBOL vmlinux 0x00000000 grab_cache_page_write_begin -EXPORT_SYMBOL vmlinux 0x00000000 gro_cells_destroy -EXPORT_SYMBOL vmlinux 0x00000000 gro_cells_init -EXPORT_SYMBOL vmlinux 0x00000000 gro_cells_receive -EXPORT_SYMBOL vmlinux 0x00000000 gro_find_complete_by_type -EXPORT_SYMBOL vmlinux 0x00000000 gro_find_receive_by_type -EXPORT_SYMBOL vmlinux 0x00000000 groups_alloc -EXPORT_SYMBOL vmlinux 0x00000000 groups_free -EXPORT_SYMBOL vmlinux 0x00000000 groups_sort -EXPORT_SYMBOL vmlinux 0x00000000 guid_null -EXPORT_SYMBOL vmlinux 0x00000000 guid_parse -EXPORT_SYMBOL vmlinux 0x00000000 handle_edge_irq -EXPORT_SYMBOL vmlinux 0x00000000 handle_sysrq -EXPORT_SYMBOL vmlinux 0x00000000 has_capability -EXPORT_SYMBOL vmlinux 0x00000000 hash_and_copy_to_iter -EXPORT_SYMBOL vmlinux 0x00000000 hashlen_string -EXPORT_SYMBOL vmlinux 0x00000000 hchacha_block_generic -EXPORT_SYMBOL vmlinux 0x00000000 hdmi_audio_infoframe_check -EXPORT_SYMBOL vmlinux 0x00000000 hdmi_audio_infoframe_init -EXPORT_SYMBOL vmlinux 0x00000000 hdmi_audio_infoframe_pack -EXPORT_SYMBOL vmlinux 0x00000000 hdmi_audio_infoframe_pack_only -EXPORT_SYMBOL vmlinux 0x00000000 hdmi_avi_infoframe_check -EXPORT_SYMBOL vmlinux 0x00000000 hdmi_avi_infoframe_init -EXPORT_SYMBOL vmlinux 0x00000000 hdmi_avi_infoframe_pack -EXPORT_SYMBOL vmlinux 0x00000000 hdmi_avi_infoframe_pack_only -EXPORT_SYMBOL vmlinux 0x00000000 hdmi_drm_infoframe_check -EXPORT_SYMBOL vmlinux 0x00000000 hdmi_drm_infoframe_init -EXPORT_SYMBOL vmlinux 0x00000000 hdmi_drm_infoframe_pack -EXPORT_SYMBOL vmlinux 0x00000000 hdmi_drm_infoframe_pack_only -EXPORT_SYMBOL vmlinux 0x00000000 hdmi_infoframe_check -EXPORT_SYMBOL vmlinux 0x00000000 hdmi_infoframe_log -EXPORT_SYMBOL vmlinux 0x00000000 hdmi_infoframe_pack -EXPORT_SYMBOL vmlinux 0x00000000 hdmi_infoframe_pack_only -EXPORT_SYMBOL vmlinux 0x00000000 hdmi_infoframe_unpack -EXPORT_SYMBOL vmlinux 0x00000000 hdmi_spd_infoframe_check -EXPORT_SYMBOL vmlinux 0x00000000 hdmi_spd_infoframe_init -EXPORT_SYMBOL vmlinux 0x00000000 hdmi_spd_infoframe_pack -EXPORT_SYMBOL vmlinux 0x00000000 hdmi_spd_infoframe_pack_only -EXPORT_SYMBOL vmlinux 0x00000000 hdmi_vendor_infoframe_check -EXPORT_SYMBOL vmlinux 0x00000000 hdmi_vendor_infoframe_init -EXPORT_SYMBOL vmlinux 0x00000000 hdmi_vendor_infoframe_pack -EXPORT_SYMBOL vmlinux 0x00000000 hdmi_vendor_infoframe_pack_only -EXPORT_SYMBOL vmlinux 0x00000000 hex2bin -EXPORT_SYMBOL vmlinux 0x00000000 hex_asc -EXPORT_SYMBOL vmlinux 0x00000000 hex_asc_upper -EXPORT_SYMBOL vmlinux 0x00000000 hex_dump_to_buffer -EXPORT_SYMBOL vmlinux 0x00000000 hex_to_bin -EXPORT_SYMBOL vmlinux 0x00000000 high_memory -EXPORT_SYMBOL vmlinux 0x00000000 hmm_range_fault -EXPORT_SYMBOL vmlinux 0x00000000 hsiphash_1u32 -EXPORT_SYMBOL vmlinux 0x00000000 hsiphash_2u32 -EXPORT_SYMBOL vmlinux 0x00000000 hsiphash_3u32 -EXPORT_SYMBOL vmlinux 0x00000000 hsiphash_4u32 -EXPORT_SYMBOL vmlinux 0x00000000 i2c_add_adapter -EXPORT_SYMBOL vmlinux 0x00000000 i2c_clients_command -EXPORT_SYMBOL vmlinux 0x00000000 i2c_del_adapter -EXPORT_SYMBOL vmlinux 0x00000000 i2c_del_driver -EXPORT_SYMBOL vmlinux 0x00000000 i2c_get_adapter -EXPORT_SYMBOL vmlinux 0x00000000 i2c_put_adapter -EXPORT_SYMBOL vmlinux 0x00000000 i2c_register_driver -EXPORT_SYMBOL vmlinux 0x00000000 i2c_smbus_read_block_data -EXPORT_SYMBOL vmlinux 0x00000000 i2c_smbus_read_byte -EXPORT_SYMBOL vmlinux 0x00000000 i2c_smbus_read_byte_data -EXPORT_SYMBOL vmlinux 0x00000000 i2c_smbus_read_i2c_block_data -EXPORT_SYMBOL vmlinux 0x00000000 i2c_smbus_read_i2c_block_data_or_emulated -EXPORT_SYMBOL vmlinux 0x00000000 i2c_smbus_read_word_data -EXPORT_SYMBOL vmlinux 0x00000000 i2c_smbus_write_block_data -EXPORT_SYMBOL vmlinux 0x00000000 i2c_smbus_write_byte -EXPORT_SYMBOL vmlinux 0x00000000 i2c_smbus_write_byte_data -EXPORT_SYMBOL vmlinux 0x00000000 i2c_smbus_write_i2c_block_data -EXPORT_SYMBOL vmlinux 0x00000000 i2c_smbus_write_word_data -EXPORT_SYMBOL vmlinux 0x00000000 i2c_smbus_xfer -EXPORT_SYMBOL vmlinux 0x00000000 i2c_transfer -EXPORT_SYMBOL vmlinux 0x00000000 i2c_transfer_buffer_flags -EXPORT_SYMBOL vmlinux 0x00000000 i2c_verify_adapter -EXPORT_SYMBOL vmlinux 0x00000000 i2c_verify_client -EXPORT_SYMBOL vmlinux 0x00000000 i8042_command -EXPORT_SYMBOL vmlinux 0x00000000 i8042_install_filter -EXPORT_SYMBOL vmlinux 0x00000000 i8042_lock_chip -EXPORT_SYMBOL vmlinux 0x00000000 i8042_remove_filter -EXPORT_SYMBOL vmlinux 0x00000000 i8042_unlock_chip -EXPORT_SYMBOL vmlinux 0x00000000 i8253_lock -EXPORT_SYMBOL vmlinux 0x00000000 icmp_err_convert -EXPORT_SYMBOL vmlinux 0x00000000 icmp_global_allow -EXPORT_SYMBOL vmlinux 0x00000000 icmp_ndo_send -EXPORT_SYMBOL vmlinux 0x00000000 icmpv6_err_convert -EXPORT_SYMBOL vmlinux 0x00000000 icmpv6_ndo_send -EXPORT_SYMBOL vmlinux 0x00000000 icmpv6_send -EXPORT_SYMBOL vmlinux 0x00000000 ida_alloc_range -EXPORT_SYMBOL vmlinux 0x00000000 ida_destroy -EXPORT_SYMBOL vmlinux 0x00000000 ida_free -EXPORT_SYMBOL vmlinux 0x00000000 idr_alloc_cyclic -EXPORT_SYMBOL vmlinux 0x00000000 idr_destroy -EXPORT_SYMBOL vmlinux 0x00000000 idr_for_each -EXPORT_SYMBOL vmlinux 0x00000000 idr_get_next -EXPORT_SYMBOL vmlinux 0x00000000 idr_get_next_ul -EXPORT_SYMBOL vmlinux 0x00000000 idr_preload -EXPORT_SYMBOL vmlinux 0x00000000 idr_replace -EXPORT_SYMBOL vmlinux 0x00000000 iget5_locked -EXPORT_SYMBOL vmlinux 0x00000000 iget_failed -EXPORT_SYMBOL vmlinux 0x00000000 iget_locked -EXPORT_SYMBOL vmlinux 0x00000000 ignore_console_lock_warning -EXPORT_SYMBOL vmlinux 0x00000000 igrab -EXPORT_SYMBOL vmlinux 0x00000000 ihold -EXPORT_SYMBOL vmlinux 0x00000000 ilookup -EXPORT_SYMBOL vmlinux 0x00000000 ilookup5 -EXPORT_SYMBOL vmlinux 0x00000000 ilookup5_nowait -EXPORT_SYMBOL vmlinux 0x00000000 import_iovec -EXPORT_SYMBOL vmlinux 0x00000000 import_single_range -EXPORT_SYMBOL vmlinux 0x00000000 in4_pton -EXPORT_SYMBOL vmlinux 0x00000000 in6_dev_finish_destroy -EXPORT_SYMBOL vmlinux 0x00000000 in6_pton -EXPORT_SYMBOL vmlinux 0x00000000 in6addr_any -EXPORT_SYMBOL vmlinux 0x00000000 in6addr_interfacelocal_allnodes -EXPORT_SYMBOL vmlinux 0x00000000 in6addr_interfacelocal_allrouters -EXPORT_SYMBOL vmlinux 0x00000000 in6addr_linklocal_allnodes -EXPORT_SYMBOL vmlinux 0x00000000 in6addr_linklocal_allrouters -EXPORT_SYMBOL vmlinux 0x00000000 in6addr_loopback -EXPORT_SYMBOL vmlinux 0x00000000 in6addr_sitelocal_allrouters -EXPORT_SYMBOL vmlinux 0x00000000 in_aton -EXPORT_SYMBOL vmlinux 0x00000000 in_dev_finish_destroy -EXPORT_SYMBOL vmlinux 0x00000000 in_egroup_p -EXPORT_SYMBOL vmlinux 0x00000000 in_group_p -EXPORT_SYMBOL vmlinux 0x00000000 in_lock_functions -EXPORT_SYMBOL vmlinux 0x00000000 inc_nlink -EXPORT_SYMBOL vmlinux 0x00000000 inc_node_page_state -EXPORT_SYMBOL vmlinux 0x00000000 inc_zone_page_state -EXPORT_SYMBOL vmlinux 0x00000000 inet6_add_offload -EXPORT_SYMBOL vmlinux 0x00000000 inet6_add_protocol -EXPORT_SYMBOL vmlinux 0x00000000 inet6_bind -EXPORT_SYMBOL vmlinux 0x00000000 inet6_csk_route_req -EXPORT_SYMBOL vmlinux 0x00000000 inet6_del_offload -EXPORT_SYMBOL vmlinux 0x00000000 inet6_del_protocol -EXPORT_SYMBOL vmlinux 0x00000000 inet6_getname -EXPORT_SYMBOL vmlinux 0x00000000 inet6_ioctl -EXPORT_SYMBOL vmlinux 0x00000000 inet6_offloads -EXPORT_SYMBOL vmlinux 0x00000000 inet6_protos -EXPORT_SYMBOL vmlinux 0x00000000 inet6_register_icmp_sender -EXPORT_SYMBOL vmlinux 0x00000000 inet6_register_protosw -EXPORT_SYMBOL vmlinux 0x00000000 inet6_release -EXPORT_SYMBOL vmlinux 0x00000000 inet6_unregister_icmp_sender -EXPORT_SYMBOL vmlinux 0x00000000 inet6_unregister_protosw -EXPORT_SYMBOL vmlinux 0x00000000 inet6addr_notifier_call_chain -EXPORT_SYMBOL vmlinux 0x00000000 inet6addr_validator_notifier_call_chain -EXPORT_SYMBOL vmlinux 0x00000000 inet_accept -EXPORT_SYMBOL vmlinux 0x00000000 inet_add_offload -EXPORT_SYMBOL vmlinux 0x00000000 inet_add_protocol -EXPORT_SYMBOL vmlinux 0x00000000 inet_addr_is_any -EXPORT_SYMBOL vmlinux 0x00000000 inet_addr_type -EXPORT_SYMBOL vmlinux 0x00000000 inet_addr_type_dev_table -EXPORT_SYMBOL vmlinux 0x00000000 inet_addr_type_table -EXPORT_SYMBOL vmlinux 0x00000000 inet_bind -EXPORT_SYMBOL vmlinux 0x00000000 inet_confirm_addr -EXPORT_SYMBOL vmlinux 0x00000000 inet_csk_accept -EXPORT_SYMBOL vmlinux 0x00000000 inet_csk_clear_xmit_timers -EXPORT_SYMBOL vmlinux 0x00000000 inet_csk_complete_hashdance -EXPORT_SYMBOL vmlinux 0x00000000 inet_csk_delete_keepalive_timer -EXPORT_SYMBOL vmlinux 0x00000000 inet_csk_destroy_sock -EXPORT_SYMBOL vmlinux 0x00000000 inet_csk_init_xmit_timers -EXPORT_SYMBOL vmlinux 0x00000000 inet_csk_prepare_forced_close -EXPORT_SYMBOL vmlinux 0x00000000 inet_csk_reqsk_queue_add -EXPORT_SYMBOL vmlinux 0x00000000 inet_csk_reqsk_queue_drop -EXPORT_SYMBOL vmlinux 0x00000000 inet_csk_reqsk_queue_drop_and_put -EXPORT_SYMBOL vmlinux 0x00000000 inet_csk_reset_keepalive_timer -EXPORT_SYMBOL vmlinux 0x00000000 inet_current_timestamp -EXPORT_SYMBOL vmlinux 0x00000000 inet_del_offload -EXPORT_SYMBOL vmlinux 0x00000000 inet_del_protocol -EXPORT_SYMBOL vmlinux 0x00000000 inet_dev_addr_type -EXPORT_SYMBOL vmlinux 0x00000000 inet_dgram_connect -EXPORT_SYMBOL vmlinux 0x00000000 inet_dgram_ops -EXPORT_SYMBOL vmlinux 0x00000000 inet_frag_destroy -EXPORT_SYMBOL vmlinux 0x00000000 inet_frag_find -EXPORT_SYMBOL vmlinux 0x00000000 inet_frag_kill -EXPORT_SYMBOL vmlinux 0x00000000 inet_frag_pull_head -EXPORT_SYMBOL vmlinux 0x00000000 inet_frag_queue_insert -EXPORT_SYMBOL vmlinux 0x00000000 inet_frag_rbtree_purge -EXPORT_SYMBOL vmlinux 0x00000000 inet_frag_reasm_finish -EXPORT_SYMBOL vmlinux 0x00000000 inet_frag_reasm_prepare -EXPORT_SYMBOL vmlinux 0x00000000 inet_frags_fini -EXPORT_SYMBOL vmlinux 0x00000000 inet_frags_init -EXPORT_SYMBOL vmlinux 0x00000000 inet_get_local_port_range -EXPORT_SYMBOL vmlinux 0x00000000 inet_getname -EXPORT_SYMBOL vmlinux 0x00000000 inet_gro_complete -EXPORT_SYMBOL vmlinux 0x00000000 inet_gro_receive -EXPORT_SYMBOL vmlinux 0x00000000 inet_gso_segment -EXPORT_SYMBOL vmlinux 0x00000000 inet_ioctl -EXPORT_SYMBOL vmlinux 0x00000000 inet_listen -EXPORT_SYMBOL vmlinux 0x00000000 inet_offloads -EXPORT_SYMBOL vmlinux 0x00000000 inet_peer_xrlim_allow -EXPORT_SYMBOL vmlinux 0x00000000 inet_proto_csum_replace16 -EXPORT_SYMBOL vmlinux 0x00000000 inet_proto_csum_replace4 -EXPORT_SYMBOL vmlinux 0x00000000 inet_proto_csum_replace_by_diff -EXPORT_SYMBOL vmlinux 0x00000000 inet_protos -EXPORT_SYMBOL vmlinux 0x00000000 inet_pton_with_scope -EXPORT_SYMBOL vmlinux 0x00000000 inet_put_port -EXPORT_SYMBOL vmlinux 0x00000000 inet_rcv_saddr_equal -EXPORT_SYMBOL vmlinux 0x00000000 inet_recvmsg -EXPORT_SYMBOL vmlinux 0x00000000 inet_register_protosw -EXPORT_SYMBOL vmlinux 0x00000000 inet_release -EXPORT_SYMBOL vmlinux 0x00000000 inet_reqsk_alloc -EXPORT_SYMBOL vmlinux 0x00000000 inet_rtx_syn_ack -EXPORT_SYMBOL vmlinux 0x00000000 inet_select_addr -EXPORT_SYMBOL vmlinux 0x00000000 inet_sendmsg -EXPORT_SYMBOL vmlinux 0x00000000 inet_sendpage -EXPORT_SYMBOL vmlinux 0x00000000 inet_shutdown -EXPORT_SYMBOL vmlinux 0x00000000 inet_sk_rebuild_header -EXPORT_SYMBOL vmlinux 0x00000000 inet_sk_rx_dst_set -EXPORT_SYMBOL vmlinux 0x00000000 inet_sk_set_state -EXPORT_SYMBOL vmlinux 0x00000000 inet_sock_destruct -EXPORT_SYMBOL vmlinux 0x00000000 inet_stream_connect -EXPORT_SYMBOL vmlinux 0x00000000 inet_stream_ops -EXPORT_SYMBOL vmlinux 0x00000000 inet_twsk_deschedule_put -EXPORT_SYMBOL vmlinux 0x00000000 inet_unregister_protosw -EXPORT_SYMBOL vmlinux 0x00000000 inetdev_by_index -EXPORT_SYMBOL vmlinux 0x00000000 inetpeer_invalidate_tree -EXPORT_SYMBOL vmlinux 0x00000000 init_cdrom_command -EXPORT_SYMBOL vmlinux 0x00000000 init_net -EXPORT_SYMBOL vmlinux 0x00000000 init_on_alloc -EXPORT_SYMBOL vmlinux 0x00000000 init_on_free -EXPORT_SYMBOL vmlinux 0x00000000 init_opal_dev -EXPORT_SYMBOL vmlinux 0x00000000 init_pseudo -EXPORT_SYMBOL vmlinux 0x00000000 init_special_inode -EXPORT_SYMBOL vmlinux 0x00000000 init_task -EXPORT_SYMBOL vmlinux 0x00000000 init_timer_key -EXPORT_SYMBOL vmlinux 0x00000000 init_wait_entry -EXPORT_SYMBOL vmlinux 0x00000000 init_wait_var_entry -EXPORT_SYMBOL vmlinux 0x00000000 inode_add_bytes -EXPORT_SYMBOL vmlinux 0x00000000 inode_dio_wait -EXPORT_SYMBOL vmlinux 0x00000000 inode_get_bytes -EXPORT_SYMBOL vmlinux 0x00000000 inode_init_always -EXPORT_SYMBOL vmlinux 0x00000000 inode_init_once -EXPORT_SYMBOL vmlinux 0x00000000 inode_init_owner -EXPORT_SYMBOL vmlinux 0x00000000 inode_insert5 -EXPORT_SYMBOL vmlinux 0x00000000 inode_needs_sync -EXPORT_SYMBOL vmlinux 0x00000000 inode_newsize_ok -EXPORT_SYMBOL vmlinux 0x00000000 inode_nohighmem -EXPORT_SYMBOL vmlinux 0x00000000 inode_owner_or_capable -EXPORT_SYMBOL vmlinux 0x00000000 inode_permission -EXPORT_SYMBOL vmlinux 0x00000000 inode_set_bytes -EXPORT_SYMBOL vmlinux 0x00000000 inode_set_flags -EXPORT_SYMBOL vmlinux 0x00000000 inode_sub_bytes -EXPORT_SYMBOL vmlinux 0x00000000 input_alloc_absinfo -EXPORT_SYMBOL vmlinux 0x00000000 input_allocate_device -EXPORT_SYMBOL vmlinux 0x00000000 input_close_device -EXPORT_SYMBOL vmlinux 0x00000000 input_enable_softrepeat -EXPORT_SYMBOL vmlinux 0x00000000 input_event -EXPORT_SYMBOL vmlinux 0x00000000 input_flush_device -EXPORT_SYMBOL vmlinux 0x00000000 input_free_device -EXPORT_SYMBOL vmlinux 0x00000000 input_free_minor -EXPORT_SYMBOL vmlinux 0x00000000 input_get_keycode -EXPORT_SYMBOL vmlinux 0x00000000 input_get_new_minor -EXPORT_SYMBOL vmlinux 0x00000000 input_get_poll_interval -EXPORT_SYMBOL vmlinux 0x00000000 input_get_timestamp -EXPORT_SYMBOL vmlinux 0x00000000 input_grab_device -EXPORT_SYMBOL vmlinux 0x00000000 input_handler_for_each_handle -EXPORT_SYMBOL vmlinux 0x00000000 input_inject_event -EXPORT_SYMBOL vmlinux 0x00000000 input_match_device_id -EXPORT_SYMBOL vmlinux 0x00000000 input_mt_assign_slots -EXPORT_SYMBOL vmlinux 0x00000000 input_mt_destroy_slots -EXPORT_SYMBOL vmlinux 0x00000000 input_mt_drop_unused -EXPORT_SYMBOL vmlinux 0x00000000 input_mt_get_slot_by_key -EXPORT_SYMBOL vmlinux 0x00000000 input_mt_init_slots -EXPORT_SYMBOL vmlinux 0x00000000 input_mt_report_finger_count -EXPORT_SYMBOL vmlinux 0x00000000 input_mt_report_pointer_emulation -EXPORT_SYMBOL vmlinux 0x00000000 input_mt_report_slot_state -EXPORT_SYMBOL vmlinux 0x00000000 input_mt_sync_frame -EXPORT_SYMBOL vmlinux 0x00000000 input_open_device -EXPORT_SYMBOL vmlinux 0x00000000 input_register_device -EXPORT_SYMBOL vmlinux 0x00000000 input_register_handle -EXPORT_SYMBOL vmlinux 0x00000000 input_register_handler -EXPORT_SYMBOL vmlinux 0x00000000 input_release_device -EXPORT_SYMBOL vmlinux 0x00000000 input_reset_device -EXPORT_SYMBOL vmlinux 0x00000000 input_scancode_to_scalar -EXPORT_SYMBOL vmlinux 0x00000000 input_set_abs_params -EXPORT_SYMBOL vmlinux 0x00000000 input_set_capability -EXPORT_SYMBOL vmlinux 0x00000000 input_set_keycode -EXPORT_SYMBOL vmlinux 0x00000000 input_set_max_poll_interval -EXPORT_SYMBOL vmlinux 0x00000000 input_set_min_poll_interval -EXPORT_SYMBOL vmlinux 0x00000000 input_set_poll_interval -EXPORT_SYMBOL vmlinux 0x00000000 input_set_timestamp -EXPORT_SYMBOL vmlinux 0x00000000 input_setup_polling -EXPORT_SYMBOL vmlinux 0x00000000 input_unregister_device -EXPORT_SYMBOL vmlinux 0x00000000 input_unregister_handle -EXPORT_SYMBOL vmlinux 0x00000000 input_unregister_handler -EXPORT_SYMBOL vmlinux 0x00000000 insert_inode_locked -EXPORT_SYMBOL vmlinux 0x00000000 insert_inode_locked4 -EXPORT_SYMBOL vmlinux 0x00000000 install_exec_creds -EXPORT_SYMBOL vmlinux 0x00000000 int_sqrt -EXPORT_SYMBOL vmlinux 0x00000000 int_to_scsilun -EXPORT_SYMBOL vmlinux 0x00000000 intel_enable_gtt -EXPORT_SYMBOL vmlinux 0x00000000 intel_gmch_probe -EXPORT_SYMBOL vmlinux 0x00000000 intel_gmch_remove -EXPORT_SYMBOL vmlinux 0x00000000 intel_graphics_stolen_res -EXPORT_SYMBOL vmlinux 0x00000000 intel_gtt_chipset_flush -EXPORT_SYMBOL vmlinux 0x00000000 intel_gtt_clear_range -EXPORT_SYMBOL vmlinux 0x00000000 intel_gtt_get -EXPORT_SYMBOL vmlinux 0x00000000 intel_gtt_insert_page -EXPORT_SYMBOL vmlinux 0x00000000 intel_gtt_insert_sg_entries -EXPORT_SYMBOL vmlinux 0x00000000 invalidate_bdev -EXPORT_SYMBOL vmlinux 0x00000000 invalidate_inode_buffers -EXPORT_SYMBOL vmlinux 0x00000000 invalidate_mapping_pages -EXPORT_SYMBOL vmlinux 0x00000000 invalidate_partition -EXPORT_SYMBOL vmlinux 0x00000000 io_schedule -EXPORT_SYMBOL vmlinux 0x00000000 io_schedule_timeout -EXPORT_SYMBOL vmlinux 0x00000000 io_uring_get_socket -EXPORT_SYMBOL vmlinux 0x00000000 ioc_lookup_icq -EXPORT_SYMBOL vmlinux 0x00000000 ioctl_by_bdev -EXPORT_SYMBOL vmlinux 0x00000000 iomem_resource -EXPORT_SYMBOL vmlinux 0x00000000 iommu_dma_get_resv_regions -EXPORT_SYMBOL vmlinux 0x00000000 iommu_get_dma_cookie -EXPORT_SYMBOL vmlinux 0x00000000 iommu_get_msi_cookie -EXPORT_SYMBOL vmlinux 0x00000000 iommu_put_dma_cookie -EXPORT_SYMBOL vmlinux 0x00000000 ioport_map -EXPORT_SYMBOL vmlinux 0x00000000 ioport_resource -EXPORT_SYMBOL vmlinux 0x00000000 ioport_unmap -EXPORT_SYMBOL vmlinux 0x00000000 ioread16 -EXPORT_SYMBOL vmlinux 0x00000000 ioread16_rep -EXPORT_SYMBOL vmlinux 0x00000000 ioread16be -EXPORT_SYMBOL vmlinux 0x00000000 ioread32 -EXPORT_SYMBOL vmlinux 0x00000000 ioread32_rep -EXPORT_SYMBOL vmlinux 0x00000000 ioread32be -EXPORT_SYMBOL vmlinux 0x00000000 ioread64_hi_lo -EXPORT_SYMBOL vmlinux 0x00000000 ioread64_lo_hi -EXPORT_SYMBOL vmlinux 0x00000000 ioread64be_hi_lo -EXPORT_SYMBOL vmlinux 0x00000000 ioread64be_lo_hi -EXPORT_SYMBOL vmlinux 0x00000000 ioread8 -EXPORT_SYMBOL vmlinux 0x00000000 ioread8_rep -EXPORT_SYMBOL vmlinux 0x00000000 ioremap -EXPORT_SYMBOL vmlinux 0x00000000 ioremap_cache -EXPORT_SYMBOL vmlinux 0x00000000 ioremap_encrypted -EXPORT_SYMBOL vmlinux 0x00000000 ioremap_prot -EXPORT_SYMBOL vmlinux 0x00000000 ioremap_wc -EXPORT_SYMBOL vmlinux 0x00000000 ioremap_wt -EXPORT_SYMBOL vmlinux 0x00000000 iosf_mbi_assert_punit_acquired -EXPORT_SYMBOL vmlinux 0x00000000 iosf_mbi_available -EXPORT_SYMBOL vmlinux 0x00000000 iosf_mbi_block_punit_i2c_access -EXPORT_SYMBOL vmlinux 0x00000000 iosf_mbi_modify -EXPORT_SYMBOL vmlinux 0x00000000 iosf_mbi_punit_acquire -EXPORT_SYMBOL vmlinux 0x00000000 iosf_mbi_punit_release -EXPORT_SYMBOL vmlinux 0x00000000 iosf_mbi_read -EXPORT_SYMBOL vmlinux 0x00000000 iosf_mbi_register_pmic_bus_access_notifier -EXPORT_SYMBOL vmlinux 0x00000000 iosf_mbi_unblock_punit_i2c_access -EXPORT_SYMBOL vmlinux 0x00000000 iosf_mbi_unregister_pmic_bus_access_notifier -EXPORT_SYMBOL vmlinux 0x00000000 iosf_mbi_unregister_pmic_bus_access_notifier_unlocked -EXPORT_SYMBOL vmlinux 0x00000000 iosf_mbi_write -EXPORT_SYMBOL vmlinux 0x00000000 iounmap -EXPORT_SYMBOL vmlinux 0x00000000 iov_iter_advance -EXPORT_SYMBOL vmlinux 0x00000000 iov_iter_alignment -EXPORT_SYMBOL vmlinux 0x00000000 iov_iter_bvec -EXPORT_SYMBOL vmlinux 0x00000000 iov_iter_copy_from_user_atomic -EXPORT_SYMBOL vmlinux 0x00000000 iov_iter_discard -EXPORT_SYMBOL vmlinux 0x00000000 iov_iter_fault_in_readable -EXPORT_SYMBOL vmlinux 0x00000000 iov_iter_for_each_range -EXPORT_SYMBOL vmlinux 0x00000000 iov_iter_gap_alignment -EXPORT_SYMBOL vmlinux 0x00000000 iov_iter_get_pages -EXPORT_SYMBOL vmlinux 0x00000000 iov_iter_get_pages_alloc -EXPORT_SYMBOL vmlinux 0x00000000 iov_iter_init -EXPORT_SYMBOL vmlinux 0x00000000 iov_iter_kvec -EXPORT_SYMBOL vmlinux 0x00000000 iov_iter_npages -EXPORT_SYMBOL vmlinux 0x00000000 iov_iter_pipe -EXPORT_SYMBOL vmlinux 0x00000000 iov_iter_revert -EXPORT_SYMBOL vmlinux 0x00000000 iov_iter_single_seg_count -EXPORT_SYMBOL vmlinux 0x00000000 iov_iter_zero -EXPORT_SYMBOL vmlinux 0x00000000 iowrite16 -EXPORT_SYMBOL vmlinux 0x00000000 iowrite16_rep -EXPORT_SYMBOL vmlinux 0x00000000 iowrite16be -EXPORT_SYMBOL vmlinux 0x00000000 iowrite32 -EXPORT_SYMBOL vmlinux 0x00000000 iowrite32_rep -EXPORT_SYMBOL vmlinux 0x00000000 iowrite32be -EXPORT_SYMBOL vmlinux 0x00000000 iowrite64_hi_lo -EXPORT_SYMBOL vmlinux 0x00000000 iowrite64_lo_hi -EXPORT_SYMBOL vmlinux 0x00000000 iowrite64be_hi_lo -EXPORT_SYMBOL vmlinux 0x00000000 iowrite64be_lo_hi -EXPORT_SYMBOL vmlinux 0x00000000 iowrite8 -EXPORT_SYMBOL vmlinux 0x00000000 iowrite8_rep -EXPORT_SYMBOL vmlinux 0x00000000 ip4_datagram_connect -EXPORT_SYMBOL vmlinux 0x00000000 ip6_dst_alloc -EXPORT_SYMBOL vmlinux 0x00000000 ip6_dst_hoplimit -EXPORT_SYMBOL vmlinux 0x00000000 ip6_err_gen_icmpv6_unreach -EXPORT_SYMBOL vmlinux 0x00000000 ip6_find_1stfragopt -EXPORT_SYMBOL vmlinux 0x00000000 ip6_frag_init -EXPORT_SYMBOL vmlinux 0x00000000 ip6_frag_next -EXPORT_SYMBOL vmlinux 0x00000000 ip6_fraglist_init -EXPORT_SYMBOL vmlinux 0x00000000 ip6_fraglist_prepare -EXPORT_SYMBOL vmlinux 0x00000000 ip6_route_me_harder -EXPORT_SYMBOL vmlinux 0x00000000 ip6_xmit -EXPORT_SYMBOL vmlinux 0x00000000 ip6mr_rule_default -EXPORT_SYMBOL vmlinux 0x00000000 ip6tun_encaps -EXPORT_SYMBOL vmlinux 0x00000000 ip_check_defrag -EXPORT_SYMBOL vmlinux 0x00000000 ip_cmsg_recv_offset -EXPORT_SYMBOL vmlinux 0x00000000 ip_compute_csum -EXPORT_SYMBOL vmlinux 0x00000000 ip_ct_attach -EXPORT_SYMBOL vmlinux 0x00000000 ip_defrag -EXPORT_SYMBOL vmlinux 0x00000000 ip_do_fragment -EXPORT_SYMBOL vmlinux 0x00000000 ip_frag_ecn_table -EXPORT_SYMBOL vmlinux 0x00000000 ip_frag_init -EXPORT_SYMBOL vmlinux 0x00000000 ip_frag_next -EXPORT_SYMBOL vmlinux 0x00000000 ip_fraglist_init -EXPORT_SYMBOL vmlinux 0x00000000 ip_fraglist_prepare -EXPORT_SYMBOL vmlinux 0x00000000 ip_generic_getfrag -EXPORT_SYMBOL vmlinux 0x00000000 ip_getsockopt -EXPORT_SYMBOL vmlinux 0x00000000 ip_idents_reserve -EXPORT_SYMBOL vmlinux 0x00000000 ip_mc_check_igmp -EXPORT_SYMBOL vmlinux 0x00000000 ip_mc_inc_group -EXPORT_SYMBOL vmlinux 0x00000000 ip_mc_join_group -EXPORT_SYMBOL vmlinux 0x00000000 ip_mc_leave_group -EXPORT_SYMBOL vmlinux 0x00000000 ip_options_compile -EXPORT_SYMBOL vmlinux 0x00000000 ip_options_rcv_srr -EXPORT_SYMBOL vmlinux 0x00000000 ip_route_input_noref -EXPORT_SYMBOL vmlinux 0x00000000 ip_route_me_harder -EXPORT_SYMBOL vmlinux 0x00000000 ip_send_check -EXPORT_SYMBOL vmlinux 0x00000000 ip_setsockopt -EXPORT_SYMBOL vmlinux 0x00000000 ip_tos2prio -EXPORT_SYMBOL vmlinux 0x00000000 ip_tunnel_metadata_cnt -EXPORT_SYMBOL vmlinux 0x00000000 ipmi_dmi_get_slave_addr -EXPORT_SYMBOL vmlinux 0x00000000 ipmi_platform_add -EXPORT_SYMBOL vmlinux 0x00000000 ipmr_rule_default -EXPORT_SYMBOL vmlinux 0x00000000 iptun_encaps -EXPORT_SYMBOL vmlinux 0x00000000 iput -EXPORT_SYMBOL vmlinux 0x00000000 ipv4_specific -EXPORT_SYMBOL vmlinux 0x00000000 ipv6_chk_addr -EXPORT_SYMBOL vmlinux 0x00000000 ipv6_chk_addr_and_flags -EXPORT_SYMBOL vmlinux 0x00000000 ipv6_chk_custom_prefix -EXPORT_SYMBOL vmlinux 0x00000000 ipv6_chk_prefix -EXPORT_SYMBOL vmlinux 0x00000000 ipv6_dev_get_saddr -EXPORT_SYMBOL vmlinux 0x00000000 ipv6_dev_mc_dec -EXPORT_SYMBOL vmlinux 0x00000000 ipv6_dev_mc_inc -EXPORT_SYMBOL vmlinux 0x00000000 ipv6_ext_hdr -EXPORT_SYMBOL vmlinux 0x00000000 ipv6_find_hdr -EXPORT_SYMBOL vmlinux 0x00000000 ipv6_flowlabel_exclusive -EXPORT_SYMBOL vmlinux 0x00000000 ipv6_getsockopt -EXPORT_SYMBOL vmlinux 0x00000000 ipv6_mc_check_icmpv6 -EXPORT_SYMBOL vmlinux 0x00000000 ipv6_mc_check_mld -EXPORT_SYMBOL vmlinux 0x00000000 ipv6_push_frag_opts -EXPORT_SYMBOL vmlinux 0x00000000 ipv6_select_ident -EXPORT_SYMBOL vmlinux 0x00000000 ipv6_setsockopt -EXPORT_SYMBOL vmlinux 0x00000000 ipv6_skip_exthdr -EXPORT_SYMBOL vmlinux 0x00000000 ipv6_sock_mc_drop -EXPORT_SYMBOL vmlinux 0x00000000 ipv6_sock_mc_join -EXPORT_SYMBOL vmlinux 0x00000000 irq_cpu_rmap_add -EXPORT_SYMBOL vmlinux 0x00000000 irq_domain_set_info -EXPORT_SYMBOL vmlinux 0x00000000 irq_fpu_usable -EXPORT_SYMBOL vmlinux 0x00000000 irq_poll_complete -EXPORT_SYMBOL vmlinux 0x00000000 irq_poll_disable -EXPORT_SYMBOL vmlinux 0x00000000 irq_poll_enable -EXPORT_SYMBOL vmlinux 0x00000000 irq_poll_init -EXPORT_SYMBOL vmlinux 0x00000000 irq_poll_sched -EXPORT_SYMBOL vmlinux 0x00000000 irq_regs -EXPORT_SYMBOL vmlinux 0x00000000 irq_set_chip -EXPORT_SYMBOL vmlinux 0x00000000 irq_set_chip_data -EXPORT_SYMBOL vmlinux 0x00000000 irq_set_handler_data -EXPORT_SYMBOL vmlinux 0x00000000 irq_set_irq_type -EXPORT_SYMBOL vmlinux 0x00000000 irq_set_irq_wake -EXPORT_SYMBOL vmlinux 0x00000000 irq_stat -EXPORT_SYMBOL vmlinux 0x00000000 irq_to_desc -EXPORT_SYMBOL vmlinux 0x00000000 is_acpi_data_node -EXPORT_SYMBOL vmlinux 0x00000000 is_acpi_device_node -EXPORT_SYMBOL vmlinux 0x00000000 is_bad_inode -EXPORT_SYMBOL vmlinux 0x00000000 is_console_locked -EXPORT_SYMBOL vmlinux 0x00000000 is_module_sig_enforced -EXPORT_SYMBOL vmlinux 0x00000000 is_nd_btt -EXPORT_SYMBOL vmlinux 0x00000000 is_nd_dax -EXPORT_SYMBOL vmlinux 0x00000000 is_nd_pfn -EXPORT_SYMBOL vmlinux 0x00000000 is_nvdimm_bus_locked -EXPORT_SYMBOL vmlinux 0x00000000 is_subdir -EXPORT_SYMBOL vmlinux 0x00000000 is_vmalloc_addr -EXPORT_SYMBOL vmlinux 0x00000000 isa_dma_bridge_buggy -EXPORT_SYMBOL vmlinux 0x00000000 iter_div_u64_rem -EXPORT_SYMBOL vmlinux 0x00000000 iter_file_splice_write -EXPORT_SYMBOL vmlinux 0x00000000 iterate_dir -EXPORT_SYMBOL vmlinux 0x00000000 iterate_fd -EXPORT_SYMBOL vmlinux 0x00000000 iterate_supers_type -EXPORT_SYMBOL vmlinux 0x00000000 iunique -EXPORT_SYMBOL vmlinux 0x00000000 iw_handler_get_spy -EXPORT_SYMBOL vmlinux 0x00000000 iw_handler_get_thrspy -EXPORT_SYMBOL vmlinux 0x00000000 iw_handler_set_spy -EXPORT_SYMBOL vmlinux 0x00000000 iw_handler_set_thrspy -EXPORT_SYMBOL vmlinux 0x00000000 iwe_stream_add_event -EXPORT_SYMBOL vmlinux 0x00000000 iwe_stream_add_point -EXPORT_SYMBOL vmlinux 0x00000000 iwe_stream_add_value -EXPORT_SYMBOL vmlinux 0x00000000 jbd2__journal_restart -EXPORT_SYMBOL vmlinux 0x00000000 jbd2__journal_start -EXPORT_SYMBOL vmlinux 0x00000000 jbd2_complete_transaction -EXPORT_SYMBOL vmlinux 0x00000000 jbd2_inode_cache -EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_abort -EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_ack_err -EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_begin_ordered_truncate -EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_blocks_per_page -EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_check_available_features -EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_check_used_features -EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_clear_err -EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_clear_features -EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_destroy -EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_dirty_metadata -EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_errno -EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_extend -EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_flush -EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_force_commit -EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_force_commit_nested -EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_forget -EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_free_reserved -EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_get_create_access -EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_get_undo_access -EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_get_write_access -EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_init_dev -EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_init_inode -EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_init_jbd_inode -EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_inode_ranged_wait -EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_inode_ranged_write -EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_invalidatepage -EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_load -EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_lock_updates -EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_release_jbd_inode -EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_restart -EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_revoke -EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_set_features -EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_set_triggers -EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_start -EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_start_commit -EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_start_reserved -EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_stop -EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_try_to_free_buffers -EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_unlock_updates -EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_update_sb_errno -EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_wipe -EXPORT_SYMBOL vmlinux 0x00000000 jbd2_log_start_commit -EXPORT_SYMBOL vmlinux 0x00000000 jbd2_log_wait_commit -EXPORT_SYMBOL vmlinux 0x00000000 jbd2_trans_will_send_data_barrier -EXPORT_SYMBOL vmlinux 0x00000000 jbd2_transaction_committed -EXPORT_SYMBOL vmlinux 0x00000000 jiffies -EXPORT_SYMBOL vmlinux 0x00000000 jiffies64_to_msecs -EXPORT_SYMBOL vmlinux 0x00000000 jiffies64_to_nsecs -EXPORT_SYMBOL vmlinux 0x00000000 jiffies_64 -EXPORT_SYMBOL vmlinux 0x00000000 jiffies_64_to_clock_t -EXPORT_SYMBOL vmlinux 0x00000000 jiffies_to_clock_t -EXPORT_SYMBOL vmlinux 0x00000000 jiffies_to_msecs -EXPORT_SYMBOL vmlinux 0x00000000 jiffies_to_timespec64 -EXPORT_SYMBOL vmlinux 0x00000000 jiffies_to_usecs -EXPORT_SYMBOL vmlinux 0x00000000 kasprintf -EXPORT_SYMBOL vmlinux 0x00000000 kblockd_mod_delayed_work_on -EXPORT_SYMBOL vmlinux 0x00000000 kblockd_schedule_work -EXPORT_SYMBOL vmlinux 0x00000000 kd_mksound -EXPORT_SYMBOL vmlinux 0x00000000 kdb_grepping_flag -EXPORT_SYMBOL vmlinux 0x00000000 kdbgetsymval -EXPORT_SYMBOL vmlinux 0x00000000 kern_path -EXPORT_SYMBOL vmlinux 0x00000000 kern_path_create -EXPORT_SYMBOL vmlinux 0x00000000 kern_path_mountpoint -EXPORT_SYMBOL vmlinux 0x00000000 kern_unmount -EXPORT_SYMBOL vmlinux 0x00000000 kernel_accept -EXPORT_SYMBOL vmlinux 0x00000000 kernel_bind -EXPORT_SYMBOL vmlinux 0x00000000 kernel_connect -EXPORT_SYMBOL vmlinux 0x00000000 kernel_cpustat -EXPORT_SYMBOL vmlinux 0x00000000 kernel_getpeername -EXPORT_SYMBOL vmlinux 0x00000000 kernel_getsockname -EXPORT_SYMBOL vmlinux 0x00000000 kernel_getsockopt -EXPORT_SYMBOL vmlinux 0x00000000 kernel_listen -EXPORT_SYMBOL vmlinux 0x00000000 kernel_param_lock -EXPORT_SYMBOL vmlinux 0x00000000 kernel_param_unlock -EXPORT_SYMBOL vmlinux 0x00000000 kernel_read -EXPORT_SYMBOL vmlinux 0x00000000 kernel_recvmsg -EXPORT_SYMBOL vmlinux 0x00000000 kernel_sendmsg -EXPORT_SYMBOL vmlinux 0x00000000 kernel_sendmsg_locked -EXPORT_SYMBOL vmlinux 0x00000000 kernel_sendpage -EXPORT_SYMBOL vmlinux 0x00000000 kernel_sendpage_locked -EXPORT_SYMBOL vmlinux 0x00000000 kernel_setsockopt -EXPORT_SYMBOL vmlinux 0x00000000 kernel_sigaction -EXPORT_SYMBOL vmlinux 0x00000000 kernel_sock_ip_overhead -EXPORT_SYMBOL vmlinux 0x00000000 kernel_sock_shutdown -EXPORT_SYMBOL vmlinux 0x00000000 kernel_write -EXPORT_SYMBOL vmlinux 0x00000000 key_alloc -EXPORT_SYMBOL vmlinux 0x00000000 key_create_or_update -EXPORT_SYMBOL vmlinux 0x00000000 key_instantiate_and_link -EXPORT_SYMBOL vmlinux 0x00000000 key_invalidate -EXPORT_SYMBOL vmlinux 0x00000000 key_link -EXPORT_SYMBOL vmlinux 0x00000000 key_move -EXPORT_SYMBOL vmlinux 0x00000000 key_payload_reserve -EXPORT_SYMBOL vmlinux 0x00000000 key_put -EXPORT_SYMBOL vmlinux 0x00000000 key_reject_and_link -EXPORT_SYMBOL vmlinux 0x00000000 key_revoke -EXPORT_SYMBOL vmlinux 0x00000000 key_task_permission -EXPORT_SYMBOL vmlinux 0x00000000 key_type_keyring -EXPORT_SYMBOL vmlinux 0x00000000 key_unlink -EXPORT_SYMBOL vmlinux 0x00000000 key_update -EXPORT_SYMBOL vmlinux 0x00000000 key_validate -EXPORT_SYMBOL vmlinux 0x00000000 keyring_alloc -EXPORT_SYMBOL vmlinux 0x00000000 keyring_clear -EXPORT_SYMBOL vmlinux 0x00000000 keyring_restrict -EXPORT_SYMBOL vmlinux 0x00000000 keyring_search -EXPORT_SYMBOL vmlinux 0x00000000 kfree -EXPORT_SYMBOL vmlinux 0x00000000 kfree_const -EXPORT_SYMBOL vmlinux 0x00000000 kfree_link -EXPORT_SYMBOL vmlinux 0x00000000 kfree_skb -EXPORT_SYMBOL vmlinux 0x00000000 kfree_skb_list -EXPORT_SYMBOL vmlinux 0x00000000 kfree_skb_partial -EXPORT_SYMBOL vmlinux 0x00000000 kill_anon_super -EXPORT_SYMBOL vmlinux 0x00000000 kill_bdev -EXPORT_SYMBOL vmlinux 0x00000000 kill_block_super -EXPORT_SYMBOL vmlinux 0x00000000 kill_fasync -EXPORT_SYMBOL vmlinux 0x00000000 kill_litter_super -EXPORT_SYMBOL vmlinux 0x00000000 kill_pgrp -EXPORT_SYMBOL vmlinux 0x00000000 kill_pid -EXPORT_SYMBOL vmlinux 0x00000000 kiocb_set_cancel_fn -EXPORT_SYMBOL vmlinux 0x00000000 km_new_mapping -EXPORT_SYMBOL vmlinux 0x00000000 km_policy_expired -EXPORT_SYMBOL vmlinux 0x00000000 km_policy_notify -EXPORT_SYMBOL vmlinux 0x00000000 km_query -EXPORT_SYMBOL vmlinux 0x00000000 km_report -EXPORT_SYMBOL vmlinux 0x00000000 km_state_expired -EXPORT_SYMBOL vmlinux 0x00000000 km_state_notify -EXPORT_SYMBOL vmlinux 0x00000000 kmalloc_caches -EXPORT_SYMBOL vmlinux 0x00000000 kmalloc_order -EXPORT_SYMBOL vmlinux 0x00000000 kmalloc_order_trace -EXPORT_SYMBOL vmlinux 0x00000000 kmem_cache_alloc -EXPORT_SYMBOL vmlinux 0x00000000 kmem_cache_alloc_bulk -EXPORT_SYMBOL vmlinux 0x00000000 kmem_cache_alloc_node -EXPORT_SYMBOL vmlinux 0x00000000 kmem_cache_alloc_node_trace -EXPORT_SYMBOL vmlinux 0x00000000 kmem_cache_alloc_trace -EXPORT_SYMBOL vmlinux 0x00000000 kmem_cache_create -EXPORT_SYMBOL vmlinux 0x00000000 kmem_cache_create_usercopy -EXPORT_SYMBOL vmlinux 0x00000000 kmem_cache_destroy -EXPORT_SYMBOL vmlinux 0x00000000 kmem_cache_free -EXPORT_SYMBOL vmlinux 0x00000000 kmem_cache_free_bulk -EXPORT_SYMBOL vmlinux 0x00000000 kmem_cache_shrink -EXPORT_SYMBOL vmlinux 0x00000000 kmem_cache_size -EXPORT_SYMBOL vmlinux 0x00000000 kmemdup -EXPORT_SYMBOL vmlinux 0x00000000 kmemdup_nul -EXPORT_SYMBOL vmlinux 0x00000000 kobject_add -EXPORT_SYMBOL vmlinux 0x00000000 kobject_del -EXPORT_SYMBOL vmlinux 0x00000000 kobject_get -EXPORT_SYMBOL vmlinux 0x00000000 kobject_get_unless_zero -EXPORT_SYMBOL vmlinux 0x00000000 kobject_init -EXPORT_SYMBOL vmlinux 0x00000000 kobject_put -EXPORT_SYMBOL vmlinux 0x00000000 kobject_set_name -EXPORT_SYMBOL vmlinux 0x00000000 krealloc -EXPORT_SYMBOL vmlinux 0x00000000 kset_register -EXPORT_SYMBOL vmlinux 0x00000000 kset_unregister -EXPORT_SYMBOL vmlinux 0x00000000 ksize -EXPORT_SYMBOL vmlinux 0x00000000 kstat -EXPORT_SYMBOL vmlinux 0x00000000 kstrdup -EXPORT_SYMBOL vmlinux 0x00000000 kstrdup_const -EXPORT_SYMBOL vmlinux 0x00000000 kstrndup -EXPORT_SYMBOL vmlinux 0x00000000 kstrtobool -EXPORT_SYMBOL vmlinux 0x00000000 kstrtobool_from_user -EXPORT_SYMBOL vmlinux 0x00000000 kstrtoint -EXPORT_SYMBOL vmlinux 0x00000000 kstrtoint_from_user -EXPORT_SYMBOL vmlinux 0x00000000 kstrtol_from_user -EXPORT_SYMBOL vmlinux 0x00000000 kstrtoll -EXPORT_SYMBOL vmlinux 0x00000000 kstrtoll_from_user -EXPORT_SYMBOL vmlinux 0x00000000 kstrtos16 -EXPORT_SYMBOL vmlinux 0x00000000 kstrtos16_from_user -EXPORT_SYMBOL vmlinux 0x00000000 kstrtos8 -EXPORT_SYMBOL vmlinux 0x00000000 kstrtos8_from_user -EXPORT_SYMBOL vmlinux 0x00000000 kstrtou16 -EXPORT_SYMBOL vmlinux 0x00000000 kstrtou16_from_user -EXPORT_SYMBOL vmlinux 0x00000000 kstrtou8 -EXPORT_SYMBOL vmlinux 0x00000000 kstrtou8_from_user -EXPORT_SYMBOL vmlinux 0x00000000 kstrtouint -EXPORT_SYMBOL vmlinux 0x00000000 kstrtouint_from_user -EXPORT_SYMBOL vmlinux 0x00000000 kstrtoul_from_user -EXPORT_SYMBOL vmlinux 0x00000000 kstrtoull -EXPORT_SYMBOL vmlinux 0x00000000 kstrtoull_from_user -EXPORT_SYMBOL vmlinux 0x00000000 kthread_associate_blkcg -EXPORT_SYMBOL vmlinux 0x00000000 kthread_bind -EXPORT_SYMBOL vmlinux 0x00000000 kthread_blkcg -EXPORT_SYMBOL vmlinux 0x00000000 kthread_create_on_node -EXPORT_SYMBOL vmlinux 0x00000000 kthread_create_worker -EXPORT_SYMBOL vmlinux 0x00000000 kthread_create_worker_on_cpu -EXPORT_SYMBOL vmlinux 0x00000000 kthread_delayed_work_timer_fn -EXPORT_SYMBOL vmlinux 0x00000000 kthread_destroy_worker -EXPORT_SYMBOL vmlinux 0x00000000 kthread_should_stop -EXPORT_SYMBOL vmlinux 0x00000000 kthread_stop -EXPORT_SYMBOL vmlinux 0x00000000 ktime_get_coarse_real_ts64 -EXPORT_SYMBOL vmlinux 0x00000000 ktime_get_coarse_ts64 -EXPORT_SYMBOL vmlinux 0x00000000 ktime_get_raw_ts64 -EXPORT_SYMBOL vmlinux 0x00000000 ktime_get_real_ts64 -EXPORT_SYMBOL vmlinux 0x00000000 kvasprintf -EXPORT_SYMBOL vmlinux 0x00000000 kvasprintf_const -EXPORT_SYMBOL vmlinux 0x00000000 kvfree -EXPORT_SYMBOL vmlinux 0x00000000 kvfree_sensitive -EXPORT_SYMBOL vmlinux 0x00000000 kvmalloc_node -EXPORT_SYMBOL vmlinux 0x00000000 kzfree -EXPORT_SYMBOL vmlinux 0x00000000 laptop_mode -EXPORT_SYMBOL vmlinux 0x00000000 lease_get_mtime -EXPORT_SYMBOL vmlinux 0x00000000 lease_modify -EXPORT_SYMBOL vmlinux 0x00000000 ledtrig_cpu -EXPORT_SYMBOL vmlinux 0x00000000 ledtrig_disk_activity -EXPORT_SYMBOL vmlinux 0x00000000 ledtrig_mtd_activity -EXPORT_SYMBOL vmlinux 0x00000000 legacy_pic -EXPORT_SYMBOL vmlinux 0x00000000 linkwatch_fire_event -EXPORT_SYMBOL vmlinux 0x00000000 list_sort -EXPORT_SYMBOL vmlinux 0x00000000 ll_rw_block -EXPORT_SYMBOL vmlinux 0x00000000 load_nls -EXPORT_SYMBOL vmlinux 0x00000000 load_nls_default -EXPORT_SYMBOL vmlinux 0x00000000 lock_page_memcg -EXPORT_SYMBOL vmlinux 0x00000000 lock_rename -EXPORT_SYMBOL vmlinux 0x00000000 lock_sock_fast -EXPORT_SYMBOL vmlinux 0x00000000 lock_sock_nested -EXPORT_SYMBOL vmlinux 0x00000000 lock_two_nondirectories -EXPORT_SYMBOL vmlinux 0x00000000 lockref_get -EXPORT_SYMBOL vmlinux 0x00000000 lockref_get_not_dead -EXPORT_SYMBOL vmlinux 0x00000000 lockref_get_not_zero -EXPORT_SYMBOL vmlinux 0x00000000 lockref_get_or_lock -EXPORT_SYMBOL vmlinux 0x00000000 lockref_mark_dead -EXPORT_SYMBOL vmlinux 0x00000000 lockref_put_not_zero -EXPORT_SYMBOL vmlinux 0x00000000 lockref_put_or_lock -EXPORT_SYMBOL vmlinux 0x00000000 lockref_put_return -EXPORT_SYMBOL vmlinux 0x00000000 locks_copy_conflock -EXPORT_SYMBOL vmlinux 0x00000000 locks_copy_lock -EXPORT_SYMBOL vmlinux 0x00000000 locks_delete_block -EXPORT_SYMBOL vmlinux 0x00000000 locks_free_lock -EXPORT_SYMBOL vmlinux 0x00000000 locks_init_lock -EXPORT_SYMBOL vmlinux 0x00000000 locks_lock_inode_wait -EXPORT_SYMBOL vmlinux 0x00000000 locks_mandatory_area -EXPORT_SYMBOL vmlinux 0x00000000 locks_remove_posix -EXPORT_SYMBOL vmlinux 0x00000000 logfc -EXPORT_SYMBOL vmlinux 0x00000000 lookup_bdev -EXPORT_SYMBOL vmlinux 0x00000000 lookup_constant -EXPORT_SYMBOL vmlinux 0x00000000 lookup_one_len -EXPORT_SYMBOL vmlinux 0x00000000 lookup_one_len_unlocked -EXPORT_SYMBOL vmlinux 0x00000000 lookup_positive_unlocked -EXPORT_SYMBOL vmlinux 0x00000000 lookup_user_key -EXPORT_SYMBOL vmlinux 0x00000000 loop_register_transfer -EXPORT_SYMBOL vmlinux 0x00000000 loop_unregister_transfer -EXPORT_SYMBOL vmlinux 0x00000000 loops_per_jiffy -EXPORT_SYMBOL vmlinux 0x00000000 lru_cache_add_file -EXPORT_SYMBOL vmlinux 0x00000000 mac_pton -EXPORT_SYMBOL vmlinux 0x00000000 machine_to_phys_mapping -EXPORT_SYMBOL vmlinux 0x00000000 machine_to_phys_nr -EXPORT_SYMBOL vmlinux 0x00000000 make_bad_inode -EXPORT_SYMBOL vmlinux 0x00000000 make_flow_keys_digest -EXPORT_SYMBOL vmlinux 0x00000000 make_kgid -EXPORT_SYMBOL vmlinux 0x00000000 make_kprojid -EXPORT_SYMBOL vmlinux 0x00000000 make_kuid -EXPORT_SYMBOL vmlinux 0x00000000 mangle_path -EXPORT_SYMBOL vmlinux 0x00000000 map_kernel_range_noflush -EXPORT_SYMBOL vmlinux 0x00000000 mark_buffer_async_write -EXPORT_SYMBOL vmlinux 0x00000000 mark_buffer_dirty -EXPORT_SYMBOL vmlinux 0x00000000 mark_buffer_dirty_inode -EXPORT_SYMBOL vmlinux 0x00000000 mark_buffer_write_io_error -EXPORT_SYMBOL vmlinux 0x00000000 mark_info_dirty -EXPORT_SYMBOL vmlinux 0x00000000 mark_page_accessed -EXPORT_SYMBOL vmlinux 0x00000000 match_hex -EXPORT_SYMBOL vmlinux 0x00000000 match_int -EXPORT_SYMBOL vmlinux 0x00000000 match_octal -EXPORT_SYMBOL vmlinux 0x00000000 match_strdup -EXPORT_SYMBOL vmlinux 0x00000000 match_string -EXPORT_SYMBOL vmlinux 0x00000000 match_strlcpy -EXPORT_SYMBOL vmlinux 0x00000000 match_token -EXPORT_SYMBOL vmlinux 0x00000000 match_u64 -EXPORT_SYMBOL vmlinux 0x00000000 match_wildcard -EXPORT_SYMBOL vmlinux 0x00000000 max8925_bulk_read -EXPORT_SYMBOL vmlinux 0x00000000 max8925_bulk_write -EXPORT_SYMBOL vmlinux 0x00000000 max8925_reg_read -EXPORT_SYMBOL vmlinux 0x00000000 max8925_reg_write -EXPORT_SYMBOL vmlinux 0x00000000 max8925_set_bits -EXPORT_SYMBOL vmlinux 0x00000000 max8998_bulk_read -EXPORT_SYMBOL vmlinux 0x00000000 max8998_bulk_write -EXPORT_SYMBOL vmlinux 0x00000000 max8998_read_reg -EXPORT_SYMBOL vmlinux 0x00000000 max8998_update_reg -EXPORT_SYMBOL vmlinux 0x00000000 max8998_write_reg -EXPORT_SYMBOL vmlinux 0x00000000 may_umount -EXPORT_SYMBOL vmlinux 0x00000000 may_umount_tree -EXPORT_SYMBOL vmlinux 0x00000000 mb_cache_create -EXPORT_SYMBOL vmlinux 0x00000000 mb_cache_destroy -EXPORT_SYMBOL vmlinux 0x00000000 mb_cache_entry_create -EXPORT_SYMBOL vmlinux 0x00000000 mb_cache_entry_delete -EXPORT_SYMBOL vmlinux 0x00000000 mb_cache_entry_find_first -EXPORT_SYMBOL vmlinux 0x00000000 mb_cache_entry_find_next -EXPORT_SYMBOL vmlinux 0x00000000 mb_cache_entry_get -EXPORT_SYMBOL vmlinux 0x00000000 mb_cache_entry_touch -EXPORT_SYMBOL vmlinux 0x00000000 md_bitmap_close_sync -EXPORT_SYMBOL vmlinux 0x00000000 md_bitmap_cond_end_sync -EXPORT_SYMBOL vmlinux 0x00000000 md_bitmap_end_sync -EXPORT_SYMBOL vmlinux 0x00000000 md_bitmap_endwrite -EXPORT_SYMBOL vmlinux 0x00000000 md_bitmap_free -EXPORT_SYMBOL vmlinux 0x00000000 md_bitmap_start_sync -EXPORT_SYMBOL vmlinux 0x00000000 md_bitmap_startwrite -EXPORT_SYMBOL vmlinux 0x00000000 md_bitmap_sync_with_cluster -EXPORT_SYMBOL vmlinux 0x00000000 md_bitmap_unplug -EXPORT_SYMBOL vmlinux 0x00000000 md_bitmap_update_sb -EXPORT_SYMBOL vmlinux 0x00000000 md_check_no_bitmap -EXPORT_SYMBOL vmlinux 0x00000000 md_check_recovery -EXPORT_SYMBOL vmlinux 0x00000000 md_cluster_ops -EXPORT_SYMBOL vmlinux 0x00000000 md_done_sync -EXPORT_SYMBOL vmlinux 0x00000000 md_error -EXPORT_SYMBOL vmlinux 0x00000000 md_finish_reshape -EXPORT_SYMBOL vmlinux 0x00000000 md_flush_request -EXPORT_SYMBOL vmlinux 0x00000000 md_handle_request -EXPORT_SYMBOL vmlinux 0x00000000 md_integrity_add_rdev -EXPORT_SYMBOL vmlinux 0x00000000 md_integrity_register -EXPORT_SYMBOL vmlinux 0x00000000 md_reap_sync_thread -EXPORT_SYMBOL vmlinux 0x00000000 md_register_thread -EXPORT_SYMBOL vmlinux 0x00000000 md_reload_sb -EXPORT_SYMBOL vmlinux 0x00000000 md_set_array_sectors -EXPORT_SYMBOL vmlinux 0x00000000 md_unregister_thread -EXPORT_SYMBOL vmlinux 0x00000000 md_update_sb -EXPORT_SYMBOL vmlinux 0x00000000 md_wait_for_blocked_rdev -EXPORT_SYMBOL vmlinux 0x00000000 md_wakeup_thread -EXPORT_SYMBOL vmlinux 0x00000000 md_write_end -EXPORT_SYMBOL vmlinux 0x00000000 md_write_inc -EXPORT_SYMBOL vmlinux 0x00000000 md_write_start -EXPORT_SYMBOL vmlinux 0x00000000 mdio_bus_type -EXPORT_SYMBOL vmlinux 0x00000000 mdio_device_create -EXPORT_SYMBOL vmlinux 0x00000000 mdio_device_free -EXPORT_SYMBOL vmlinux 0x00000000 mdio_device_register -EXPORT_SYMBOL vmlinux 0x00000000 mdio_device_remove -EXPORT_SYMBOL vmlinux 0x00000000 mdio_device_reset -EXPORT_SYMBOL vmlinux 0x00000000 mdio_driver_register -EXPORT_SYMBOL vmlinux 0x00000000 mdio_driver_unregister -EXPORT_SYMBOL vmlinux 0x00000000 mdiobus_alloc_size -EXPORT_SYMBOL vmlinux 0x00000000 mdiobus_free -EXPORT_SYMBOL vmlinux 0x00000000 mdiobus_get_phy -EXPORT_SYMBOL vmlinux 0x00000000 mdiobus_is_registered_device -EXPORT_SYMBOL vmlinux 0x00000000 mdiobus_read -EXPORT_SYMBOL vmlinux 0x00000000 mdiobus_read_nested -EXPORT_SYMBOL vmlinux 0x00000000 mdiobus_register_board_info -EXPORT_SYMBOL vmlinux 0x00000000 mdiobus_register_device -EXPORT_SYMBOL vmlinux 0x00000000 mdiobus_scan -EXPORT_SYMBOL vmlinux 0x00000000 mdiobus_setup_mdiodev_from_board_info -EXPORT_SYMBOL vmlinux 0x00000000 mdiobus_unregister -EXPORT_SYMBOL vmlinux 0x00000000 mdiobus_unregister_device -EXPORT_SYMBOL vmlinux 0x00000000 mdiobus_write -EXPORT_SYMBOL vmlinux 0x00000000 mdiobus_write_nested -EXPORT_SYMBOL vmlinux 0x00000000 mem_cgroup_from_task -EXPORT_SYMBOL vmlinux 0x00000000 mem_section -EXPORT_SYMBOL vmlinux 0x00000000 memcg_kmem_enabled_key -EXPORT_SYMBOL vmlinux 0x00000000 memcg_sockets_enabled_key -EXPORT_SYMBOL vmlinux 0x00000000 memchr -EXPORT_SYMBOL vmlinux 0x00000000 memchr_inv -EXPORT_SYMBOL vmlinux 0x00000000 memcmp -EXPORT_SYMBOL vmlinux 0x00000000 memcpy -EXPORT_SYMBOL vmlinux 0x00000000 memcpy_fromio -EXPORT_SYMBOL vmlinux 0x00000000 memcpy_toio -EXPORT_SYMBOL vmlinux 0x00000000 memdup_user -EXPORT_SYMBOL vmlinux 0x00000000 memdup_user_nul -EXPORT_SYMBOL vmlinux 0x00000000 memmove -EXPORT_SYMBOL vmlinux 0x00000000 memory_cgrp_subsys -EXPORT_SYMBOL vmlinux 0x00000000 memory_read_from_buffer -EXPORT_SYMBOL vmlinux 0x00000000 memory_read_from_io_buffer -EXPORT_SYMBOL vmlinux 0x00000000 memparse -EXPORT_SYMBOL vmlinux 0x00000000 mempool_alloc -EXPORT_SYMBOL vmlinux 0x00000000 mempool_alloc_pages -EXPORT_SYMBOL vmlinux 0x00000000 mempool_alloc_slab -EXPORT_SYMBOL vmlinux 0x00000000 mempool_create -EXPORT_SYMBOL vmlinux 0x00000000 mempool_create_node -EXPORT_SYMBOL vmlinux 0x00000000 mempool_destroy -EXPORT_SYMBOL vmlinux 0x00000000 mempool_exit -EXPORT_SYMBOL vmlinux 0x00000000 mempool_free -EXPORT_SYMBOL vmlinux 0x00000000 mempool_free_pages -EXPORT_SYMBOL vmlinux 0x00000000 mempool_free_slab -EXPORT_SYMBOL vmlinux 0x00000000 mempool_init -EXPORT_SYMBOL vmlinux 0x00000000 mempool_init_node -EXPORT_SYMBOL vmlinux 0x00000000 mempool_kfree -EXPORT_SYMBOL vmlinux 0x00000000 mempool_kmalloc -EXPORT_SYMBOL vmlinux 0x00000000 mempool_resize -EXPORT_SYMBOL vmlinux 0x00000000 memregion_alloc -EXPORT_SYMBOL vmlinux 0x00000000 memregion_free -EXPORT_SYMBOL vmlinux 0x00000000 memremap -EXPORT_SYMBOL vmlinux 0x00000000 memscan -EXPORT_SYMBOL vmlinux 0x00000000 memset -EXPORT_SYMBOL vmlinux 0x00000000 memset_io -EXPORT_SYMBOL vmlinux 0x00000000 memunmap -EXPORT_SYMBOL vmlinux 0x00000000 memweight -EXPORT_SYMBOL vmlinux 0x00000000 mfd_add_devices -EXPORT_SYMBOL vmlinux 0x00000000 mfd_cell_disable -EXPORT_SYMBOL vmlinux 0x00000000 mfd_cell_enable -EXPORT_SYMBOL vmlinux 0x00000000 mfd_remove_devices -EXPORT_SYMBOL vmlinux 0x00000000 migrate_page -EXPORT_SYMBOL vmlinux 0x00000000 migrate_page_copy -EXPORT_SYMBOL vmlinux 0x00000000 migrate_page_move_mapping -EXPORT_SYMBOL vmlinux 0x00000000 migrate_page_states -EXPORT_SYMBOL vmlinux 0x00000000 migrate_vma_finalize -EXPORT_SYMBOL vmlinux 0x00000000 migrate_vma_pages -EXPORT_SYMBOL vmlinux 0x00000000 migrate_vma_setup -EXPORT_SYMBOL vmlinux 0x00000000 mini_qdisc_pair_init -EXPORT_SYMBOL vmlinux 0x00000000 mini_qdisc_pair_swap -EXPORT_SYMBOL vmlinux 0x00000000 minmax_running_max -EXPORT_SYMBOL vmlinux 0x00000000 mipi_dsi_attach -EXPORT_SYMBOL vmlinux 0x00000000 mipi_dsi_compression_mode -EXPORT_SYMBOL vmlinux 0x00000000 mipi_dsi_create_packet -EXPORT_SYMBOL vmlinux 0x00000000 mipi_dsi_dcs_enter_sleep_mode -EXPORT_SYMBOL vmlinux 0x00000000 mipi_dsi_dcs_exit_sleep_mode -EXPORT_SYMBOL vmlinux 0x00000000 mipi_dsi_dcs_get_display_brightness -EXPORT_SYMBOL vmlinux 0x00000000 mipi_dsi_dcs_get_pixel_format -EXPORT_SYMBOL vmlinux 0x00000000 mipi_dsi_dcs_get_power_mode -EXPORT_SYMBOL vmlinux 0x00000000 mipi_dsi_dcs_nop -EXPORT_SYMBOL vmlinux 0x00000000 mipi_dsi_dcs_read -EXPORT_SYMBOL vmlinux 0x00000000 mipi_dsi_dcs_set_column_address -EXPORT_SYMBOL vmlinux 0x00000000 mipi_dsi_dcs_set_display_brightness -EXPORT_SYMBOL vmlinux 0x00000000 mipi_dsi_dcs_set_display_off -EXPORT_SYMBOL vmlinux 0x00000000 mipi_dsi_dcs_set_display_on -EXPORT_SYMBOL vmlinux 0x00000000 mipi_dsi_dcs_set_page_address -EXPORT_SYMBOL vmlinux 0x00000000 mipi_dsi_dcs_set_pixel_format -EXPORT_SYMBOL vmlinux 0x00000000 mipi_dsi_dcs_set_tear_off -EXPORT_SYMBOL vmlinux 0x00000000 mipi_dsi_dcs_set_tear_on -EXPORT_SYMBOL vmlinux 0x00000000 mipi_dsi_dcs_set_tear_scanline -EXPORT_SYMBOL vmlinux 0x00000000 mipi_dsi_dcs_soft_reset -EXPORT_SYMBOL vmlinux 0x00000000 mipi_dsi_dcs_write -EXPORT_SYMBOL vmlinux 0x00000000 mipi_dsi_dcs_write_buffer -EXPORT_SYMBOL vmlinux 0x00000000 mipi_dsi_detach -EXPORT_SYMBOL vmlinux 0x00000000 mipi_dsi_device_register_full -EXPORT_SYMBOL vmlinux 0x00000000 mipi_dsi_device_unregister -EXPORT_SYMBOL vmlinux 0x00000000 mipi_dsi_driver_register_full -EXPORT_SYMBOL vmlinux 0x00000000 mipi_dsi_driver_unregister -EXPORT_SYMBOL vmlinux 0x00000000 mipi_dsi_generic_read -EXPORT_SYMBOL vmlinux 0x00000000 mipi_dsi_generic_write -EXPORT_SYMBOL vmlinux 0x00000000 mipi_dsi_host_register -EXPORT_SYMBOL vmlinux 0x00000000 mipi_dsi_host_unregister -EXPORT_SYMBOL vmlinux 0x00000000 mipi_dsi_packet_format_is_long -EXPORT_SYMBOL vmlinux 0x00000000 mipi_dsi_packet_format_is_short -EXPORT_SYMBOL vmlinux 0x00000000 mipi_dsi_picture_parameter_set -EXPORT_SYMBOL vmlinux 0x00000000 mipi_dsi_set_maximum_return_packet_size -EXPORT_SYMBOL vmlinux 0x00000000 mipi_dsi_shutdown_peripheral -EXPORT_SYMBOL vmlinux 0x00000000 mipi_dsi_turn_on_peripheral -EXPORT_SYMBOL vmlinux 0x00000000 misc_deregister -EXPORT_SYMBOL vmlinux 0x00000000 misc_register -EXPORT_SYMBOL vmlinux 0x00000000 mktime64 -EXPORT_SYMBOL vmlinux 0x00000000 mmc_add_host -EXPORT_SYMBOL vmlinux 0x00000000 mmc_alloc_host -EXPORT_SYMBOL vmlinux 0x00000000 mmc_calc_max_discard -EXPORT_SYMBOL vmlinux 0x00000000 mmc_can_discard -EXPORT_SYMBOL vmlinux 0x00000000 mmc_can_erase -EXPORT_SYMBOL vmlinux 0x00000000 mmc_can_gpio_cd -EXPORT_SYMBOL vmlinux 0x00000000 mmc_can_gpio_ro -EXPORT_SYMBOL vmlinux 0x00000000 mmc_can_sanitize -EXPORT_SYMBOL vmlinux 0x00000000 mmc_can_secure_erase_trim -EXPORT_SYMBOL vmlinux 0x00000000 mmc_can_trim -EXPORT_SYMBOL vmlinux 0x00000000 mmc_card_is_blockaddr -EXPORT_SYMBOL vmlinux 0x00000000 mmc_command_done -EXPORT_SYMBOL vmlinux 0x00000000 mmc_cqe_post_req -EXPORT_SYMBOL vmlinux 0x00000000 mmc_cqe_recovery -EXPORT_SYMBOL vmlinux 0x00000000 mmc_cqe_request_done -EXPORT_SYMBOL vmlinux 0x00000000 mmc_cqe_start_req -EXPORT_SYMBOL vmlinux 0x00000000 mmc_detect_card_removed -EXPORT_SYMBOL vmlinux 0x00000000 mmc_detect_change -EXPORT_SYMBOL vmlinux 0x00000000 mmc_erase -EXPORT_SYMBOL vmlinux 0x00000000 mmc_erase_group_aligned -EXPORT_SYMBOL vmlinux 0x00000000 mmc_flush_cache -EXPORT_SYMBOL vmlinux 0x00000000 mmc_free_host -EXPORT_SYMBOL vmlinux 0x00000000 mmc_get_card -EXPORT_SYMBOL vmlinux 0x00000000 mmc_gpio_get_cd -EXPORT_SYMBOL vmlinux 0x00000000 mmc_gpio_get_ro -EXPORT_SYMBOL vmlinux 0x00000000 mmc_gpio_set_cd_isr -EXPORT_SYMBOL vmlinux 0x00000000 mmc_gpio_set_cd_wake -EXPORT_SYMBOL vmlinux 0x00000000 mmc_gpiod_request_cd -EXPORT_SYMBOL vmlinux 0x00000000 mmc_gpiod_request_cd_irq -EXPORT_SYMBOL vmlinux 0x00000000 mmc_gpiod_request_ro -EXPORT_SYMBOL vmlinux 0x00000000 mmc_hw_reset -EXPORT_SYMBOL vmlinux 0x00000000 mmc_is_req_done -EXPORT_SYMBOL vmlinux 0x00000000 mmc_of_parse -EXPORT_SYMBOL vmlinux 0x00000000 mmc_of_parse_voltage -EXPORT_SYMBOL vmlinux 0x00000000 mmc_put_card -EXPORT_SYMBOL vmlinux 0x00000000 mmc_register_driver -EXPORT_SYMBOL vmlinux 0x00000000 mmc_release_host -EXPORT_SYMBOL vmlinux 0x00000000 mmc_remove_host -EXPORT_SYMBOL vmlinux 0x00000000 mmc_request_done -EXPORT_SYMBOL vmlinux 0x00000000 mmc_retune_pause -EXPORT_SYMBOL vmlinux 0x00000000 mmc_retune_release -EXPORT_SYMBOL vmlinux 0x00000000 mmc_retune_timer_stop -EXPORT_SYMBOL vmlinux 0x00000000 mmc_retune_unpause -EXPORT_SYMBOL vmlinux 0x00000000 mmc_run_bkops -EXPORT_SYMBOL vmlinux 0x00000000 mmc_set_blocklen -EXPORT_SYMBOL vmlinux 0x00000000 mmc_set_data_timeout -EXPORT_SYMBOL vmlinux 0x00000000 mmc_start_request -EXPORT_SYMBOL vmlinux 0x00000000 mmc_sw_reset -EXPORT_SYMBOL vmlinux 0x00000000 mmc_unregister_driver -EXPORT_SYMBOL vmlinux 0x00000000 mmc_wait_for_cmd -EXPORT_SYMBOL vmlinux 0x00000000 mmc_wait_for_req -EXPORT_SYMBOL vmlinux 0x00000000 mmc_wait_for_req_done -EXPORT_SYMBOL vmlinux 0x00000000 mmiotrace_printk -EXPORT_SYMBOL vmlinux 0x00000000 mmput_async -EXPORT_SYMBOL vmlinux 0x00000000 mnt_drop_write_file -EXPORT_SYMBOL vmlinux 0x00000000 mnt_set_expiry -EXPORT_SYMBOL vmlinux 0x00000000 mntget -EXPORT_SYMBOL vmlinux 0x00000000 mntput -EXPORT_SYMBOL vmlinux 0x00000000 mod_node_page_state -EXPORT_SYMBOL vmlinux 0x00000000 mod_timer -EXPORT_SYMBOL vmlinux 0x00000000 mod_timer_pending -EXPORT_SYMBOL vmlinux 0x00000000 mod_zone_page_state -EXPORT_SYMBOL vmlinux 0x00000000 module_put -EXPORT_SYMBOL vmlinux 0x00000000 module_refcount -EXPORT_SYMBOL vmlinux 0x00000000 mount_bdev -EXPORT_SYMBOL vmlinux 0x00000000 mount_nodev -EXPORT_SYMBOL vmlinux 0x00000000 mount_single -EXPORT_SYMBOL vmlinux 0x00000000 mount_subtree -EXPORT_SYMBOL vmlinux 0x00000000 movable_zone -EXPORT_SYMBOL vmlinux 0x00000000 mpage_readpage -EXPORT_SYMBOL vmlinux 0x00000000 mpage_readpages -EXPORT_SYMBOL vmlinux 0x00000000 mpage_writepage -EXPORT_SYMBOL vmlinux 0x00000000 mpage_writepages -EXPORT_SYMBOL vmlinux 0x00000000 mr_dump -EXPORT_SYMBOL vmlinux 0x00000000 mr_fill_mroute -EXPORT_SYMBOL vmlinux 0x00000000 mr_mfc_find_any -EXPORT_SYMBOL vmlinux 0x00000000 mr_mfc_find_any_parent -EXPORT_SYMBOL vmlinux 0x00000000 mr_mfc_find_parent -EXPORT_SYMBOL vmlinux 0x00000000 mr_mfc_seq_idx -EXPORT_SYMBOL vmlinux 0x00000000 mr_mfc_seq_next -EXPORT_SYMBOL vmlinux 0x00000000 mr_rtm_dumproute -EXPORT_SYMBOL vmlinux 0x00000000 mr_table_alloc -EXPORT_SYMBOL vmlinux 0x00000000 mr_table_dump -EXPORT_SYMBOL vmlinux 0x00000000 mr_vif_seq_idx -EXPORT_SYMBOL vmlinux 0x00000000 mr_vif_seq_next -EXPORT_SYMBOL vmlinux 0x00000000 mroute6_is_socket -EXPORT_SYMBOL vmlinux 0x00000000 msi_desc_to_pci_dev -EXPORT_SYMBOL vmlinux 0x00000000 msleep -EXPORT_SYMBOL vmlinux 0x00000000 msleep_interruptible -EXPORT_SYMBOL vmlinux 0x00000000 msrs_alloc -EXPORT_SYMBOL vmlinux 0x00000000 msrs_free -EXPORT_SYMBOL vmlinux 0x00000000 mutex_is_locked -EXPORT_SYMBOL vmlinux 0x00000000 mutex_lock -EXPORT_SYMBOL vmlinux 0x00000000 mutex_lock_interruptible -EXPORT_SYMBOL vmlinux 0x00000000 mutex_lock_killable -EXPORT_SYMBOL vmlinux 0x00000000 mutex_trylock -EXPORT_SYMBOL vmlinux 0x00000000 mutex_trylock_recursive -EXPORT_SYMBOL vmlinux 0x00000000 mutex_unlock -EXPORT_SYMBOL vmlinux 0x00000000 n_tty_ioctl_helper -EXPORT_SYMBOL vmlinux 0x00000000 names_cachep -EXPORT_SYMBOL vmlinux 0x00000000 napi_alloc_frag -EXPORT_SYMBOL vmlinux 0x00000000 napi_busy_loop -EXPORT_SYMBOL vmlinux 0x00000000 napi_complete_done -EXPORT_SYMBOL vmlinux 0x00000000 napi_consume_skb -EXPORT_SYMBOL vmlinux 0x00000000 napi_disable -EXPORT_SYMBOL vmlinux 0x00000000 napi_get_frags -EXPORT_SYMBOL vmlinux 0x00000000 napi_gro_flush -EXPORT_SYMBOL vmlinux 0x00000000 napi_gro_frags -EXPORT_SYMBOL vmlinux 0x00000000 napi_gro_receive -EXPORT_SYMBOL vmlinux 0x00000000 napi_schedule_prep -EXPORT_SYMBOL vmlinux 0x00000000 native_io_delay -EXPORT_SYMBOL vmlinux 0x00000000 native_load_gs_index -EXPORT_SYMBOL vmlinux 0x00000000 native_queued_spin_lock_slowpath -EXPORT_SYMBOL vmlinux 0x00000000 native_restore_fl -EXPORT_SYMBOL vmlinux 0x00000000 native_save_fl -EXPORT_SYMBOL vmlinux 0x00000000 native_write_cr0 -EXPORT_SYMBOL vmlinux 0x00000000 native_write_cr4 -EXPORT_SYMBOL vmlinux 0x00000000 nd_btt_arena_is_valid -EXPORT_SYMBOL vmlinux 0x00000000 nd_btt_probe -EXPORT_SYMBOL vmlinux 0x00000000 nd_btt_version -EXPORT_SYMBOL vmlinux 0x00000000 nd_dax_probe -EXPORT_SYMBOL vmlinux 0x00000000 nd_dev_to_uuid -EXPORT_SYMBOL vmlinux 0x00000000 nd_device_notify -EXPORT_SYMBOL vmlinux 0x00000000 nd_device_register -EXPORT_SYMBOL vmlinux 0x00000000 nd_device_unregister -EXPORT_SYMBOL vmlinux 0x00000000 nd_integrity_init -EXPORT_SYMBOL vmlinux 0x00000000 nd_namespace_blk_validate -EXPORT_SYMBOL vmlinux 0x00000000 nd_pfn_probe -EXPORT_SYMBOL vmlinux 0x00000000 nd_pfn_validate -EXPORT_SYMBOL vmlinux 0x00000000 nd_region_acquire_lane -EXPORT_SYMBOL vmlinux 0x00000000 nd_region_release_lane -EXPORT_SYMBOL vmlinux 0x00000000 nd_region_to_nstype -EXPORT_SYMBOL vmlinux 0x00000000 nd_sb_checksum -EXPORT_SYMBOL vmlinux 0x00000000 ndisc_mc_map -EXPORT_SYMBOL vmlinux 0x00000000 ndo_dflt_fdb_add -EXPORT_SYMBOL vmlinux 0x00000000 ndo_dflt_fdb_del -EXPORT_SYMBOL vmlinux 0x00000000 ndo_dflt_fdb_dump -EXPORT_SYMBOL vmlinux 0x00000000 neigh_app_ns -EXPORT_SYMBOL vmlinux 0x00000000 neigh_carrier_down -EXPORT_SYMBOL vmlinux 0x00000000 neigh_changeaddr -EXPORT_SYMBOL vmlinux 0x00000000 neigh_connected_output -EXPORT_SYMBOL vmlinux 0x00000000 neigh_destroy -EXPORT_SYMBOL vmlinux 0x00000000 neigh_direct_output -EXPORT_SYMBOL vmlinux 0x00000000 neigh_event_ns -EXPORT_SYMBOL vmlinux 0x00000000 neigh_for_each -EXPORT_SYMBOL vmlinux 0x00000000 neigh_ifdown -EXPORT_SYMBOL vmlinux 0x00000000 neigh_lookup -EXPORT_SYMBOL vmlinux 0x00000000 neigh_lookup_nodev -EXPORT_SYMBOL vmlinux 0x00000000 neigh_parms_alloc -EXPORT_SYMBOL vmlinux 0x00000000 neigh_parms_release -EXPORT_SYMBOL vmlinux 0x00000000 neigh_proc_dointvec -EXPORT_SYMBOL vmlinux 0x00000000 neigh_proc_dointvec_jiffies -EXPORT_SYMBOL vmlinux 0x00000000 neigh_proc_dointvec_ms_jiffies -EXPORT_SYMBOL vmlinux 0x00000000 neigh_rand_reach_time -EXPORT_SYMBOL vmlinux 0x00000000 neigh_resolve_output -EXPORT_SYMBOL vmlinux 0x00000000 neigh_seq_next -EXPORT_SYMBOL vmlinux 0x00000000 neigh_seq_start -EXPORT_SYMBOL vmlinux 0x00000000 neigh_seq_stop -EXPORT_SYMBOL vmlinux 0x00000000 neigh_sysctl_register -EXPORT_SYMBOL vmlinux 0x00000000 neigh_sysctl_unregister -EXPORT_SYMBOL vmlinux 0x00000000 neigh_table_clear -EXPORT_SYMBOL vmlinux 0x00000000 neigh_table_init -EXPORT_SYMBOL vmlinux 0x00000000 neigh_update -EXPORT_SYMBOL vmlinux 0x00000000 neigh_xmit -EXPORT_SYMBOL vmlinux 0x00000000 net_dim -EXPORT_SYMBOL vmlinux 0x00000000 net_dim_get_def_rx_moderation -EXPORT_SYMBOL vmlinux 0x00000000 net_dim_get_def_tx_moderation -EXPORT_SYMBOL vmlinux 0x00000000 net_dim_get_rx_moderation -EXPORT_SYMBOL vmlinux 0x00000000 net_dim_get_tx_moderation -EXPORT_SYMBOL vmlinux 0x00000000 net_disable_timestamp -EXPORT_SYMBOL vmlinux 0x00000000 net_enable_timestamp -EXPORT_SYMBOL vmlinux 0x00000000 net_ns_barrier -EXPORT_SYMBOL vmlinux 0x00000000 net_ratelimit -EXPORT_SYMBOL vmlinux 0x00000000 netdev_adjacent_change_abort -EXPORT_SYMBOL vmlinux 0x00000000 netdev_adjacent_change_commit -EXPORT_SYMBOL vmlinux 0x00000000 netdev_adjacent_change_prepare -EXPORT_SYMBOL vmlinux 0x00000000 netdev_adjacent_get_private -EXPORT_SYMBOL vmlinux 0x00000000 netdev_alert -EXPORT_SYMBOL vmlinux 0x00000000 netdev_alloc_frag -EXPORT_SYMBOL vmlinux 0x00000000 netdev_bind_sb_channel_queue -EXPORT_SYMBOL vmlinux 0x00000000 netdev_bonding_info_change -EXPORT_SYMBOL vmlinux 0x00000000 netdev_boot_setup_check -EXPORT_SYMBOL vmlinux 0x00000000 netdev_change_features -EXPORT_SYMBOL vmlinux 0x00000000 netdev_class_create_file_ns -EXPORT_SYMBOL vmlinux 0x00000000 netdev_class_remove_file_ns -EXPORT_SYMBOL vmlinux 0x00000000 netdev_crit -EXPORT_SYMBOL vmlinux 0x00000000 netdev_emerg -EXPORT_SYMBOL vmlinux 0x00000000 netdev_err -EXPORT_SYMBOL vmlinux 0x00000000 netdev_features_change -EXPORT_SYMBOL vmlinux 0x00000000 netdev_has_any_upper_dev -EXPORT_SYMBOL vmlinux 0x00000000 netdev_has_upper_dev -EXPORT_SYMBOL vmlinux 0x00000000 netdev_has_upper_dev_all_rcu -EXPORT_SYMBOL vmlinux 0x00000000 netdev_increment_features -EXPORT_SYMBOL vmlinux 0x00000000 netdev_info -EXPORT_SYMBOL vmlinux 0x00000000 netdev_lower_dev_get_private -EXPORT_SYMBOL vmlinux 0x00000000 netdev_lower_get_first_private_rcu -EXPORT_SYMBOL vmlinux 0x00000000 netdev_lower_get_next -EXPORT_SYMBOL vmlinux 0x00000000 netdev_lower_get_next_private -EXPORT_SYMBOL vmlinux 0x00000000 netdev_lower_get_next_private_rcu -EXPORT_SYMBOL vmlinux 0x00000000 netdev_lower_state_changed -EXPORT_SYMBOL vmlinux 0x00000000 netdev_master_upper_dev_get -EXPORT_SYMBOL vmlinux 0x00000000 netdev_master_upper_dev_get_rcu -EXPORT_SYMBOL vmlinux 0x00000000 netdev_master_upper_dev_link -EXPORT_SYMBOL vmlinux 0x00000000 netdev_max_backlog -EXPORT_SYMBOL vmlinux 0x00000000 netdev_name_node_alt_create -EXPORT_SYMBOL vmlinux 0x00000000 netdev_name_node_alt_destroy -EXPORT_SYMBOL vmlinux 0x00000000 netdev_next_lower_dev_rcu -EXPORT_SYMBOL vmlinux 0x00000000 netdev_notice -EXPORT_SYMBOL vmlinux 0x00000000 netdev_notify_peers -EXPORT_SYMBOL vmlinux 0x00000000 netdev_pick_tx -EXPORT_SYMBOL vmlinux 0x00000000 netdev_port_same_parent_id -EXPORT_SYMBOL vmlinux 0x00000000 netdev_printk -EXPORT_SYMBOL vmlinux 0x00000000 netdev_refcnt_read -EXPORT_SYMBOL vmlinux 0x00000000 netdev_reset_tc -EXPORT_SYMBOL vmlinux 0x00000000 netdev_rss_key_fill -EXPORT_SYMBOL vmlinux 0x00000000 netdev_rx_csum_fault -EXPORT_SYMBOL vmlinux 0x00000000 netdev_set_num_tc -EXPORT_SYMBOL vmlinux 0x00000000 netdev_set_sb_channel -EXPORT_SYMBOL vmlinux 0x00000000 netdev_set_tc_queue -EXPORT_SYMBOL vmlinux 0x00000000 netdev_state_change -EXPORT_SYMBOL vmlinux 0x00000000 netdev_stats_to_stats64 -EXPORT_SYMBOL vmlinux 0x00000000 netdev_txq_to_tc -EXPORT_SYMBOL vmlinux 0x00000000 netdev_unbind_sb_channel -EXPORT_SYMBOL vmlinux 0x00000000 netdev_update_features -EXPORT_SYMBOL vmlinux 0x00000000 netdev_update_lockdep_key -EXPORT_SYMBOL vmlinux 0x00000000 netdev_upper_dev_link -EXPORT_SYMBOL vmlinux 0x00000000 netdev_upper_dev_unlink -EXPORT_SYMBOL vmlinux 0x00000000 netdev_upper_get_next_dev_rcu -EXPORT_SYMBOL vmlinux 0x00000000 netdev_warn -EXPORT_SYMBOL vmlinux 0x00000000 netif_carrier_off -EXPORT_SYMBOL vmlinux 0x00000000 netif_carrier_on -EXPORT_SYMBOL vmlinux 0x00000000 netif_device_attach -EXPORT_SYMBOL vmlinux 0x00000000 netif_device_detach -EXPORT_SYMBOL vmlinux 0x00000000 netif_get_num_default_rss_queues -EXPORT_SYMBOL vmlinux 0x00000000 netif_napi_add -EXPORT_SYMBOL vmlinux 0x00000000 netif_napi_del -EXPORT_SYMBOL vmlinux 0x00000000 netif_receive_skb -EXPORT_SYMBOL vmlinux 0x00000000 netif_receive_skb_core -EXPORT_SYMBOL vmlinux 0x00000000 netif_receive_skb_list -EXPORT_SYMBOL vmlinux 0x00000000 netif_rx -EXPORT_SYMBOL vmlinux 0x00000000 netif_rx_ni -EXPORT_SYMBOL vmlinux 0x00000000 netif_schedule_queue -EXPORT_SYMBOL vmlinux 0x00000000 netif_set_real_num_rx_queues -EXPORT_SYMBOL vmlinux 0x00000000 netif_set_real_num_tx_queues -EXPORT_SYMBOL vmlinux 0x00000000 netif_set_xps_queue -EXPORT_SYMBOL vmlinux 0x00000000 netif_skb_features -EXPORT_SYMBOL vmlinux 0x00000000 netif_stacked_transfer_operstate -EXPORT_SYMBOL vmlinux 0x00000000 netif_tx_stop_all_queues -EXPORT_SYMBOL vmlinux 0x00000000 netif_tx_wake_queue -EXPORT_SYMBOL vmlinux 0x00000000 netlbl_audit_start -EXPORT_SYMBOL vmlinux 0x00000000 netlbl_bitmap_setbit -EXPORT_SYMBOL vmlinux 0x00000000 netlbl_bitmap_walk -EXPORT_SYMBOL vmlinux 0x00000000 netlbl_calipso_ops_register -EXPORT_SYMBOL vmlinux 0x00000000 netlbl_catmap_setbit -EXPORT_SYMBOL vmlinux 0x00000000 netlbl_catmap_walk -EXPORT_SYMBOL vmlinux 0x00000000 netlink_ack -EXPORT_SYMBOL vmlinux 0x00000000 netlink_broadcast -EXPORT_SYMBOL vmlinux 0x00000000 netlink_broadcast_filtered -EXPORT_SYMBOL vmlinux 0x00000000 netlink_capable -EXPORT_SYMBOL vmlinux 0x00000000 netlink_kernel_release -EXPORT_SYMBOL vmlinux 0x00000000 netlink_net_capable -EXPORT_SYMBOL vmlinux 0x00000000 netlink_ns_capable -EXPORT_SYMBOL vmlinux 0x00000000 netlink_rcv_skb -EXPORT_SYMBOL vmlinux 0x00000000 netlink_register_notifier -EXPORT_SYMBOL vmlinux 0x00000000 netlink_set_err -EXPORT_SYMBOL vmlinux 0x00000000 netlink_unicast -EXPORT_SYMBOL vmlinux 0x00000000 netlink_unregister_notifier -EXPORT_SYMBOL vmlinux 0x00000000 netpoll_cleanup -EXPORT_SYMBOL vmlinux 0x00000000 netpoll_parse_options -EXPORT_SYMBOL vmlinux 0x00000000 netpoll_poll_dev -EXPORT_SYMBOL vmlinux 0x00000000 netpoll_poll_disable -EXPORT_SYMBOL vmlinux 0x00000000 netpoll_poll_enable -EXPORT_SYMBOL vmlinux 0x00000000 netpoll_print_options -EXPORT_SYMBOL vmlinux 0x00000000 netpoll_send_skb_on_dev -EXPORT_SYMBOL vmlinux 0x00000000 netpoll_send_udp -EXPORT_SYMBOL vmlinux 0x00000000 netpoll_setup -EXPORT_SYMBOL vmlinux 0x00000000 new_inode -EXPORT_SYMBOL vmlinux 0x00000000 nf_conntrack_destroy -EXPORT_SYMBOL vmlinux 0x00000000 nf_ct_attach -EXPORT_SYMBOL vmlinux 0x00000000 nf_ct_get_tuple_skb -EXPORT_SYMBOL vmlinux 0x00000000 nf_getsockopt -EXPORT_SYMBOL vmlinux 0x00000000 nf_hook_slow -EXPORT_SYMBOL vmlinux 0x00000000 nf_hook_slow_list -EXPORT_SYMBOL vmlinux 0x00000000 nf_hooks_needed -EXPORT_SYMBOL vmlinux 0x00000000 nf_ip6_checksum -EXPORT_SYMBOL vmlinux 0x00000000 nf_ip_checksum -EXPORT_SYMBOL vmlinux 0x00000000 nf_log_bind_pf -EXPORT_SYMBOL vmlinux 0x00000000 nf_log_packet -EXPORT_SYMBOL vmlinux 0x00000000 nf_log_register -EXPORT_SYMBOL vmlinux 0x00000000 nf_log_set -EXPORT_SYMBOL vmlinux 0x00000000 nf_log_trace -EXPORT_SYMBOL vmlinux 0x00000000 nf_log_unbind_pf -EXPORT_SYMBOL vmlinux 0x00000000 nf_log_unregister -EXPORT_SYMBOL vmlinux 0x00000000 nf_log_unset -EXPORT_SYMBOL vmlinux 0x00000000 nf_register_net_hook -EXPORT_SYMBOL vmlinux 0x00000000 nf_register_net_hooks -EXPORT_SYMBOL vmlinux 0x00000000 nf_register_queue_handler -EXPORT_SYMBOL vmlinux 0x00000000 nf_register_sockopt -EXPORT_SYMBOL vmlinux 0x00000000 nf_reinject -EXPORT_SYMBOL vmlinux 0x00000000 nf_setsockopt -EXPORT_SYMBOL vmlinux 0x00000000 nf_unregister_net_hook -EXPORT_SYMBOL vmlinux 0x00000000 nf_unregister_net_hooks -EXPORT_SYMBOL vmlinux 0x00000000 nf_unregister_queue_handler -EXPORT_SYMBOL vmlinux 0x00000000 nf_unregister_sockopt -EXPORT_SYMBOL vmlinux 0x00000000 nla_append -EXPORT_SYMBOL vmlinux 0x00000000 nla_find -EXPORT_SYMBOL vmlinux 0x00000000 nla_memcmp -EXPORT_SYMBOL vmlinux 0x00000000 nla_memcpy -EXPORT_SYMBOL vmlinux 0x00000000 nla_policy_len -EXPORT_SYMBOL vmlinux 0x00000000 nla_put -EXPORT_SYMBOL vmlinux 0x00000000 nla_put_64bit -EXPORT_SYMBOL vmlinux 0x00000000 nla_put_nohdr -EXPORT_SYMBOL vmlinux 0x00000000 nla_reserve -EXPORT_SYMBOL vmlinux 0x00000000 nla_reserve_64bit -EXPORT_SYMBOL vmlinux 0x00000000 nla_reserve_nohdr -EXPORT_SYMBOL vmlinux 0x00000000 nla_strcmp -EXPORT_SYMBOL vmlinux 0x00000000 nla_strdup -EXPORT_SYMBOL vmlinux 0x00000000 nla_strlcpy -EXPORT_SYMBOL vmlinux 0x00000000 nlmsg_notify -EXPORT_SYMBOL vmlinux 0x00000000 nmi_panic -EXPORT_SYMBOL vmlinux 0x00000000 no_llseek -EXPORT_SYMBOL vmlinux 0x00000000 no_pci_devices -EXPORT_SYMBOL vmlinux 0x00000000 no_seek_end_llseek -EXPORT_SYMBOL vmlinux 0x00000000 no_seek_end_llseek_size -EXPORT_SYMBOL vmlinux 0x00000000 nobh_truncate_page -EXPORT_SYMBOL vmlinux 0x00000000 nobh_write_begin -EXPORT_SYMBOL vmlinux 0x00000000 nobh_write_end -EXPORT_SYMBOL vmlinux 0x00000000 nobh_writepage -EXPORT_SYMBOL vmlinux 0x00000000 node_data -EXPORT_SYMBOL vmlinux 0x00000000 node_states -EXPORT_SYMBOL vmlinux 0x00000000 node_to_cpumask_map -EXPORT_SYMBOL vmlinux 0x00000000 nonseekable_open -EXPORT_SYMBOL vmlinux 0x00000000 noop_fsync -EXPORT_SYMBOL vmlinux 0x00000000 noop_llseek -EXPORT_SYMBOL vmlinux 0x00000000 noop_qdisc -EXPORT_SYMBOL vmlinux 0x00000000 nosteal_pipe_buf_ops -EXPORT_SYMBOL vmlinux 0x00000000 notify_change -EXPORT_SYMBOL vmlinux 0x00000000 nr_cpu_ids -EXPORT_SYMBOL vmlinux 0x00000000 nr_node_ids -EXPORT_SYMBOL vmlinux 0x00000000 nr_online_nodes -EXPORT_SYMBOL vmlinux 0x00000000 ns_capable -EXPORT_SYMBOL vmlinux 0x00000000 ns_capable_noaudit -EXPORT_SYMBOL vmlinux 0x00000000 ns_capable_setid -EXPORT_SYMBOL vmlinux 0x00000000 ns_to_kernel_old_timeval -EXPORT_SYMBOL vmlinux 0x00000000 ns_to_timespec64 -EXPORT_SYMBOL vmlinux 0x00000000 nsecs_to_jiffies64 -EXPORT_SYMBOL vmlinux 0x00000000 num_registered_fb -EXPORT_SYMBOL vmlinux 0x00000000 numa_node -EXPORT_SYMBOL vmlinux 0x00000000 nvdimm_bus_lock -EXPORT_SYMBOL vmlinux 0x00000000 nvdimm_bus_unlock -EXPORT_SYMBOL vmlinux 0x00000000 nvdimm_namespace_capacity -EXPORT_SYMBOL vmlinux 0x00000000 nvdimm_namespace_common_probe -EXPORT_SYMBOL vmlinux 0x00000000 nvdimm_namespace_disk_name -EXPORT_SYMBOL vmlinux 0x00000000 nvdimm_namespace_locked -EXPORT_SYMBOL vmlinux 0x00000000 nvdimm_revalidate_disk -EXPORT_SYMBOL vmlinux 0x00000000 nvm_alloc_dev -EXPORT_SYMBOL vmlinux 0x00000000 nvm_dev_dma_alloc -EXPORT_SYMBOL vmlinux 0x00000000 nvm_dev_dma_free -EXPORT_SYMBOL vmlinux 0x00000000 nvm_end_io -EXPORT_SYMBOL vmlinux 0x00000000 nvm_register -EXPORT_SYMBOL vmlinux 0x00000000 nvm_register_tgt_type -EXPORT_SYMBOL vmlinux 0x00000000 nvm_submit_io -EXPORT_SYMBOL vmlinux 0x00000000 nvm_submit_io_sync -EXPORT_SYMBOL vmlinux 0x00000000 nvm_unregister -EXPORT_SYMBOL vmlinux 0x00000000 nvm_unregister_tgt_type -EXPORT_SYMBOL vmlinux 0x00000000 nvmem_get_mac_address -EXPORT_SYMBOL vmlinux 0x00000000 of_find_backlight -EXPORT_SYMBOL vmlinux 0x00000000 of_find_mipi_dsi_device_by_node -EXPORT_SYMBOL vmlinux 0x00000000 of_find_mipi_dsi_host_by_node -EXPORT_SYMBOL vmlinux 0x00000000 on_each_cpu -EXPORT_SYMBOL vmlinux 0x00000000 on_each_cpu_cond -EXPORT_SYMBOL vmlinux 0x00000000 on_each_cpu_cond_mask -EXPORT_SYMBOL vmlinux 0x00000000 on_each_cpu_mask -EXPORT_SYMBOL vmlinux 0x00000000 oops_in_progress -EXPORT_SYMBOL vmlinux 0x00000000 opal_unlock_from_suspend -EXPORT_SYMBOL vmlinux 0x00000000 open_exec -EXPORT_SYMBOL vmlinux 0x00000000 open_with_fake_path -EXPORT_SYMBOL vmlinux 0x00000000 out_of_line_wait_on_bit -EXPORT_SYMBOL vmlinux 0x00000000 out_of_line_wait_on_bit_lock -EXPORT_SYMBOL vmlinux 0x00000000 overflowgid -EXPORT_SYMBOL vmlinux 0x00000000 overflowuid -EXPORT_SYMBOL vmlinux 0x00000000 override_creds -EXPORT_SYMBOL vmlinux 0x00000000 packing -EXPORT_SYMBOL vmlinux 0x00000000 padata_alloc_possible -EXPORT_SYMBOL vmlinux 0x00000000 padata_alloc_shell -EXPORT_SYMBOL vmlinux 0x00000000 padata_do_parallel -EXPORT_SYMBOL vmlinux 0x00000000 padata_do_serial -EXPORT_SYMBOL vmlinux 0x00000000 padata_free -EXPORT_SYMBOL vmlinux 0x00000000 padata_free_shell -EXPORT_SYMBOL vmlinux 0x00000000 padata_set_cpumask -EXPORT_SYMBOL vmlinux 0x00000000 padata_start -EXPORT_SYMBOL vmlinux 0x00000000 padata_stop -EXPORT_SYMBOL vmlinux 0x00000000 paddr_vmcoreinfo_note -EXPORT_SYMBOL vmlinux 0x00000000 page_cache_next_miss -EXPORT_SYMBOL vmlinux 0x00000000 page_cache_prev_miss -EXPORT_SYMBOL vmlinux 0x00000000 page_frag_alloc -EXPORT_SYMBOL vmlinux 0x00000000 page_frag_free -EXPORT_SYMBOL vmlinux 0x00000000 page_get_link -EXPORT_SYMBOL vmlinux 0x00000000 page_mapped -EXPORT_SYMBOL vmlinux 0x00000000 page_mapping -EXPORT_SYMBOL vmlinux 0x00000000 page_offset_base -EXPORT_SYMBOL vmlinux 0x00000000 page_pool_alloc_pages -EXPORT_SYMBOL vmlinux 0x00000000 page_pool_create -EXPORT_SYMBOL vmlinux 0x00000000 page_pool_destroy -EXPORT_SYMBOL vmlinux 0x00000000 page_pool_unmap_page -EXPORT_SYMBOL vmlinux 0x00000000 page_pool_update_nid -EXPORT_SYMBOL vmlinux 0x00000000 page_put_link -EXPORT_SYMBOL vmlinux 0x00000000 page_readlink -EXPORT_SYMBOL vmlinux 0x00000000 page_symlink -EXPORT_SYMBOL vmlinux 0x00000000 page_symlink_inode_operations -EXPORT_SYMBOL vmlinux 0x00000000 page_zero_new_buffers -EXPORT_SYMBOL vmlinux 0x00000000 pagecache_get_page -EXPORT_SYMBOL vmlinux 0x00000000 pagecache_isize_extended -EXPORT_SYMBOL vmlinux 0x00000000 pagecache_write_begin -EXPORT_SYMBOL vmlinux 0x00000000 pagecache_write_end -EXPORT_SYMBOL vmlinux 0x00000000 pagevec_lookup_range -EXPORT_SYMBOL vmlinux 0x00000000 pagevec_lookup_range_nr_tag -EXPORT_SYMBOL vmlinux 0x00000000 pagevec_lookup_range_tag -EXPORT_SYMBOL vmlinux 0x00000000 panic -EXPORT_SYMBOL vmlinux 0x00000000 panic_blink -EXPORT_SYMBOL vmlinux 0x00000000 panic_notifier_list -EXPORT_SYMBOL vmlinux 0x00000000 param_array_ops -EXPORT_SYMBOL vmlinux 0x00000000 param_free_charp -EXPORT_SYMBOL vmlinux 0x00000000 param_get_bool -EXPORT_SYMBOL vmlinux 0x00000000 param_get_byte -EXPORT_SYMBOL vmlinux 0x00000000 param_get_charp -EXPORT_SYMBOL vmlinux 0x00000000 param_get_int -EXPORT_SYMBOL vmlinux 0x00000000 param_get_invbool -EXPORT_SYMBOL vmlinux 0x00000000 param_get_long -EXPORT_SYMBOL vmlinux 0x00000000 param_get_short -EXPORT_SYMBOL vmlinux 0x00000000 param_get_string -EXPORT_SYMBOL vmlinux 0x00000000 param_get_uint -EXPORT_SYMBOL vmlinux 0x00000000 param_get_ullong -EXPORT_SYMBOL vmlinux 0x00000000 param_get_ulong -EXPORT_SYMBOL vmlinux 0x00000000 param_get_ushort -EXPORT_SYMBOL vmlinux 0x00000000 param_ops_bint -EXPORT_SYMBOL vmlinux 0x00000000 param_ops_bool -EXPORT_SYMBOL vmlinux 0x00000000 param_ops_byte -EXPORT_SYMBOL vmlinux 0x00000000 param_ops_charp -EXPORT_SYMBOL vmlinux 0x00000000 param_ops_int -EXPORT_SYMBOL vmlinux 0x00000000 param_ops_invbool -EXPORT_SYMBOL vmlinux 0x00000000 param_ops_long -EXPORT_SYMBOL vmlinux 0x00000000 param_ops_short -EXPORT_SYMBOL vmlinux 0x00000000 param_ops_string -EXPORT_SYMBOL vmlinux 0x00000000 param_ops_uint -EXPORT_SYMBOL vmlinux 0x00000000 param_ops_ullong -EXPORT_SYMBOL vmlinux 0x00000000 param_ops_ulong -EXPORT_SYMBOL vmlinux 0x00000000 param_ops_ushort -EXPORT_SYMBOL vmlinux 0x00000000 param_set_bint -EXPORT_SYMBOL vmlinux 0x00000000 param_set_bool -EXPORT_SYMBOL vmlinux 0x00000000 param_set_byte -EXPORT_SYMBOL vmlinux 0x00000000 param_set_charp -EXPORT_SYMBOL vmlinux 0x00000000 param_set_copystring -EXPORT_SYMBOL vmlinux 0x00000000 param_set_int -EXPORT_SYMBOL vmlinux 0x00000000 param_set_invbool -EXPORT_SYMBOL vmlinux 0x00000000 param_set_long -EXPORT_SYMBOL vmlinux 0x00000000 param_set_short -EXPORT_SYMBOL vmlinux 0x00000000 param_set_uint -EXPORT_SYMBOL vmlinux 0x00000000 param_set_ullong -EXPORT_SYMBOL vmlinux 0x00000000 param_set_ulong -EXPORT_SYMBOL vmlinux 0x00000000 param_set_ushort -EXPORT_SYMBOL vmlinux 0x00000000 passthru_features_check -EXPORT_SYMBOL vmlinux 0x00000000 path_get -EXPORT_SYMBOL vmlinux 0x00000000 path_has_submounts -EXPORT_SYMBOL vmlinux 0x00000000 path_is_mountpoint -EXPORT_SYMBOL vmlinux 0x00000000 path_is_under -EXPORT_SYMBOL vmlinux 0x00000000 path_nosuid -EXPORT_SYMBOL vmlinux 0x00000000 path_put -EXPORT_SYMBOL vmlinux 0x00000000 pci_add_new_bus -EXPORT_SYMBOL vmlinux 0x00000000 pci_add_resource -EXPORT_SYMBOL vmlinux 0x00000000 pci_add_resource_offset -EXPORT_SYMBOL vmlinux 0x00000000 pci_alloc_dev -EXPORT_SYMBOL vmlinux 0x00000000 pci_alloc_host_bridge -EXPORT_SYMBOL vmlinux 0x00000000 pci_alloc_irq_vectors_affinity -EXPORT_SYMBOL vmlinux 0x00000000 pci_assign_resource -EXPORT_SYMBOL vmlinux 0x00000000 pci_back_from_sleep -EXPORT_SYMBOL vmlinux 0x00000000 pci_biosrom_size -EXPORT_SYMBOL vmlinux 0x00000000 pci_bus_add_devices -EXPORT_SYMBOL vmlinux 0x00000000 pci_bus_alloc_resource -EXPORT_SYMBOL vmlinux 0x00000000 pci_bus_assign_resources -EXPORT_SYMBOL vmlinux 0x00000000 pci_bus_claim_resources -EXPORT_SYMBOL vmlinux 0x00000000 pci_bus_find_capability -EXPORT_SYMBOL vmlinux 0x00000000 pci_bus_read_config_byte -EXPORT_SYMBOL vmlinux 0x00000000 pci_bus_read_config_dword -EXPORT_SYMBOL vmlinux 0x00000000 pci_bus_read_config_word -EXPORT_SYMBOL vmlinux 0x00000000 pci_bus_read_dev_vendor_id -EXPORT_SYMBOL vmlinux 0x00000000 pci_bus_set_ops -EXPORT_SYMBOL vmlinux 0x00000000 pci_bus_size_bridges -EXPORT_SYMBOL vmlinux 0x00000000 pci_bus_type -EXPORT_SYMBOL vmlinux 0x00000000 pci_bus_write_config_byte -EXPORT_SYMBOL vmlinux 0x00000000 pci_bus_write_config_dword -EXPORT_SYMBOL vmlinux 0x00000000 pci_bus_write_config_word -EXPORT_SYMBOL vmlinux 0x00000000 pci_choose_state -EXPORT_SYMBOL vmlinux 0x00000000 pci_claim_resource -EXPORT_SYMBOL vmlinux 0x00000000 pci_clear_master -EXPORT_SYMBOL vmlinux 0x00000000 pci_clear_mwi -EXPORT_SYMBOL vmlinux 0x00000000 pci_dev_driver -EXPORT_SYMBOL vmlinux 0x00000000 pci_dev_get -EXPORT_SYMBOL vmlinux 0x00000000 pci_dev_present -EXPORT_SYMBOL vmlinux 0x00000000 pci_dev_put -EXPORT_SYMBOL vmlinux 0x00000000 pci_disable_device -EXPORT_SYMBOL vmlinux 0x00000000 pci_disable_link_state -EXPORT_SYMBOL vmlinux 0x00000000 pci_disable_link_state_locked -EXPORT_SYMBOL vmlinux 0x00000000 pci_disable_msi -EXPORT_SYMBOL vmlinux 0x00000000 pci_disable_msix -EXPORT_SYMBOL vmlinux 0x00000000 pci_enable_atomic_ops_to_root -EXPORT_SYMBOL vmlinux 0x00000000 pci_enable_device -EXPORT_SYMBOL vmlinux 0x00000000 pci_enable_device_io -EXPORT_SYMBOL vmlinux 0x00000000 pci_enable_device_mem -EXPORT_SYMBOL vmlinux 0x00000000 pci_enable_msi -EXPORT_SYMBOL vmlinux 0x00000000 pci_enable_msix_range -EXPORT_SYMBOL vmlinux 0x00000000 pci_enable_ptm -EXPORT_SYMBOL vmlinux 0x00000000 pci_enable_wake -EXPORT_SYMBOL vmlinux 0x00000000 pci_ep_cfs_add_epc_group -EXPORT_SYMBOL vmlinux 0x00000000 pci_ep_cfs_add_epf_group -EXPORT_SYMBOL vmlinux 0x00000000 pci_ep_cfs_remove_epc_group -EXPORT_SYMBOL vmlinux 0x00000000 pci_ep_cfs_remove_epf_group -EXPORT_SYMBOL vmlinux 0x00000000 pci_find_bus -EXPORT_SYMBOL vmlinux 0x00000000 pci_find_capability -EXPORT_SYMBOL vmlinux 0x00000000 pci_find_next_bus -EXPORT_SYMBOL vmlinux 0x00000000 pci_find_parent_resource -EXPORT_SYMBOL vmlinux 0x00000000 pci_find_pcie_root_port -EXPORT_SYMBOL vmlinux 0x00000000 pci_find_resource -EXPORT_SYMBOL vmlinux 0x00000000 pci_fixup_cardbus -EXPORT_SYMBOL vmlinux 0x00000000 pci_fixup_device -EXPORT_SYMBOL vmlinux 0x00000000 pci_free_host_bridge -EXPORT_SYMBOL vmlinux 0x00000000 pci_free_irq -EXPORT_SYMBOL vmlinux 0x00000000 pci_free_irq_vectors -EXPORT_SYMBOL vmlinux 0x00000000 pci_free_resource_list -EXPORT_SYMBOL vmlinux 0x00000000 pci_get_class -EXPORT_SYMBOL vmlinux 0x00000000 pci_get_device -EXPORT_SYMBOL vmlinux 0x00000000 pci_get_domain_bus_and_slot -EXPORT_SYMBOL vmlinux 0x00000000 pci_get_slot -EXPORT_SYMBOL vmlinux 0x00000000 pci_get_subsys -EXPORT_SYMBOL vmlinux 0x00000000 pci_iomap -EXPORT_SYMBOL vmlinux 0x00000000 pci_iomap_range -EXPORT_SYMBOL vmlinux 0x00000000 pci_iounmap -EXPORT_SYMBOL vmlinux 0x00000000 pci_irq_get_affinity -EXPORT_SYMBOL vmlinux 0x00000000 pci_irq_vector -EXPORT_SYMBOL vmlinux 0x00000000 pci_lost_interrupt -EXPORT_SYMBOL vmlinux 0x00000000 pci_map_biosrom -EXPORT_SYMBOL vmlinux 0x00000000 pci_map_rom -EXPORT_SYMBOL vmlinux 0x00000000 pci_match_id -EXPORT_SYMBOL vmlinux 0x00000000 pci_mem_start -EXPORT_SYMBOL vmlinux 0x00000000 pci_msi_enabled -EXPORT_SYMBOL vmlinux 0x00000000 pci_msi_vec_count -EXPORT_SYMBOL vmlinux 0x00000000 pci_msix_vec_count -EXPORT_SYMBOL vmlinux 0x00000000 pci_pci_problems -EXPORT_SYMBOL vmlinux 0x00000000 pci_platform_rom -EXPORT_SYMBOL vmlinux 0x00000000 pci_pme_active -EXPORT_SYMBOL vmlinux 0x00000000 pci_pme_capable -EXPORT_SYMBOL vmlinux 0x00000000 pci_prepare_to_sleep -EXPORT_SYMBOL vmlinux 0x00000000 pci_read_config_byte -EXPORT_SYMBOL vmlinux 0x00000000 pci_read_config_dword -EXPORT_SYMBOL vmlinux 0x00000000 pci_read_config_word -EXPORT_SYMBOL vmlinux 0x00000000 pci_read_vpd -EXPORT_SYMBOL vmlinux 0x00000000 pci_reenable_device -EXPORT_SYMBOL vmlinux 0x00000000 pci_release_region -EXPORT_SYMBOL vmlinux 0x00000000 pci_release_regions -EXPORT_SYMBOL vmlinux 0x00000000 pci_release_resource -EXPORT_SYMBOL vmlinux 0x00000000 pci_release_selected_regions -EXPORT_SYMBOL vmlinux 0x00000000 pci_remap_iospace -EXPORT_SYMBOL vmlinux 0x00000000 pci_remove_bus -EXPORT_SYMBOL vmlinux 0x00000000 pci_request_irq -EXPORT_SYMBOL vmlinux 0x00000000 pci_request_region -EXPORT_SYMBOL vmlinux 0x00000000 pci_request_regions -EXPORT_SYMBOL vmlinux 0x00000000 pci_request_regions_exclusive -EXPORT_SYMBOL vmlinux 0x00000000 pci_request_selected_regions -EXPORT_SYMBOL vmlinux 0x00000000 pci_request_selected_regions_exclusive -EXPORT_SYMBOL vmlinux 0x00000000 pci_resize_resource -EXPORT_SYMBOL vmlinux 0x00000000 pci_restore_state -EXPORT_SYMBOL vmlinux 0x00000000 pci_root_buses -EXPORT_SYMBOL vmlinux 0x00000000 pci_save_state -EXPORT_SYMBOL vmlinux 0x00000000 pci_scan_bridge -EXPORT_SYMBOL vmlinux 0x00000000 pci_scan_bus -EXPORT_SYMBOL vmlinux 0x00000000 pci_scan_root_bus -EXPORT_SYMBOL vmlinux 0x00000000 pci_scan_root_bus_bridge -EXPORT_SYMBOL vmlinux 0x00000000 pci_scan_single_device -EXPORT_SYMBOL vmlinux 0x00000000 pci_scan_slot -EXPORT_SYMBOL vmlinux 0x00000000 pci_select_bars -EXPORT_SYMBOL vmlinux 0x00000000 pci_set_master -EXPORT_SYMBOL vmlinux 0x00000000 pci_set_mwi -EXPORT_SYMBOL vmlinux 0x00000000 pci_set_power_state -EXPORT_SYMBOL vmlinux 0x00000000 pci_set_vpd_size -EXPORT_SYMBOL vmlinux 0x00000000 pci_setup_cardbus -EXPORT_SYMBOL vmlinux 0x00000000 pci_stop_and_remove_bus_device -EXPORT_SYMBOL vmlinux 0x00000000 pci_try_set_mwi -EXPORT_SYMBOL vmlinux 0x00000000 pci_unmap_biosrom -EXPORT_SYMBOL vmlinux 0x00000000 pci_unmap_iospace -EXPORT_SYMBOL vmlinux 0x00000000 pci_unmap_rom -EXPORT_SYMBOL vmlinux 0x00000000 pci_unregister_driver -EXPORT_SYMBOL vmlinux 0x00000000 pci_wait_for_pending_transaction -EXPORT_SYMBOL vmlinux 0x00000000 pci_wake_from_d3 -EXPORT_SYMBOL vmlinux 0x00000000 pci_write_config_byte -EXPORT_SYMBOL vmlinux 0x00000000 pci_write_config_dword -EXPORT_SYMBOL vmlinux 0x00000000 pci_write_config_word -EXPORT_SYMBOL vmlinux 0x00000000 pci_write_vpd -EXPORT_SYMBOL vmlinux 0x00000000 pcibios_align_resource -EXPORT_SYMBOL vmlinux 0x00000000 pcibios_bus_to_resource -EXPORT_SYMBOL vmlinux 0x00000000 pcibios_resource_to_bus -EXPORT_SYMBOL vmlinux 0x00000000 pcie_aspm_support_enabled -EXPORT_SYMBOL vmlinux 0x00000000 pcie_bandwidth_available -EXPORT_SYMBOL vmlinux 0x00000000 pcie_capability_clear_and_set_dword -EXPORT_SYMBOL vmlinux 0x00000000 pcie_capability_clear_and_set_word -EXPORT_SYMBOL vmlinux 0x00000000 pcie_capability_read_dword -EXPORT_SYMBOL vmlinux 0x00000000 pcie_capability_read_word -EXPORT_SYMBOL vmlinux 0x00000000 pcie_capability_write_dword -EXPORT_SYMBOL vmlinux 0x00000000 pcie_capability_write_word -EXPORT_SYMBOL vmlinux 0x00000000 pcie_get_mps -EXPORT_SYMBOL vmlinux 0x00000000 pcie_get_readrq -EXPORT_SYMBOL vmlinux 0x00000000 pcie_get_speed_cap -EXPORT_SYMBOL vmlinux 0x00000000 pcie_get_width_cap -EXPORT_SYMBOL vmlinux 0x00000000 pcie_port_service_register -EXPORT_SYMBOL vmlinux 0x00000000 pcie_port_service_unregister -EXPORT_SYMBOL vmlinux 0x00000000 pcie_print_link_status -EXPORT_SYMBOL vmlinux 0x00000000 pcie_relaxed_ordering_enabled -EXPORT_SYMBOL vmlinux 0x00000000 pcie_set_mps -EXPORT_SYMBOL vmlinux 0x00000000 pcie_set_readrq -EXPORT_SYMBOL vmlinux 0x00000000 pcim_enable_device -EXPORT_SYMBOL vmlinux 0x00000000 pcim_iomap -EXPORT_SYMBOL vmlinux 0x00000000 pcim_iomap_regions -EXPORT_SYMBOL vmlinux 0x00000000 pcim_iomap_regions_request_all -EXPORT_SYMBOL vmlinux 0x00000000 pcim_iomap_table -EXPORT_SYMBOL vmlinux 0x00000000 pcim_iounmap -EXPORT_SYMBOL vmlinux 0x00000000 pcim_iounmap_regions -EXPORT_SYMBOL vmlinux 0x00000000 pcim_pin_device -EXPORT_SYMBOL vmlinux 0x00000000 pcim_set_mwi -EXPORT_SYMBOL vmlinux 0x00000000 pcix_get_max_mmrbc -EXPORT_SYMBOL vmlinux 0x00000000 pcix_get_mmrbc -EXPORT_SYMBOL vmlinux 0x00000000 pcix_set_mmrbc -EXPORT_SYMBOL vmlinux 0x00000000 peernet2id -EXPORT_SYMBOL vmlinux 0x00000000 percpu_counter_add_batch -EXPORT_SYMBOL vmlinux 0x00000000 percpu_counter_batch -EXPORT_SYMBOL vmlinux 0x00000000 percpu_counter_destroy -EXPORT_SYMBOL vmlinux 0x00000000 percpu_counter_set -EXPORT_SYMBOL vmlinux 0x00000000 pfifo_fast_ops -EXPORT_SYMBOL vmlinux 0x00000000 pfifo_qdisc_ops -EXPORT_SYMBOL vmlinux 0x00000000 phy_advertise_supported -EXPORT_SYMBOL vmlinux 0x00000000 phy_aneg_done -EXPORT_SYMBOL vmlinux 0x00000000 phy_attach -EXPORT_SYMBOL vmlinux 0x00000000 phy_attach_direct -EXPORT_SYMBOL vmlinux 0x00000000 phy_attached_info -EXPORT_SYMBOL vmlinux 0x00000000 phy_attached_info_irq -EXPORT_SYMBOL vmlinux 0x00000000 phy_attached_print -EXPORT_SYMBOL vmlinux 0x00000000 phy_connect -EXPORT_SYMBOL vmlinux 0x00000000 phy_connect_direct -EXPORT_SYMBOL vmlinux 0x00000000 phy_detach -EXPORT_SYMBOL vmlinux 0x00000000 phy_device_create -EXPORT_SYMBOL vmlinux 0x00000000 phy_device_free -EXPORT_SYMBOL vmlinux 0x00000000 phy_device_register -EXPORT_SYMBOL vmlinux 0x00000000 phy_device_remove -EXPORT_SYMBOL vmlinux 0x00000000 phy_disconnect -EXPORT_SYMBOL vmlinux 0x00000000 phy_do_ioctl -EXPORT_SYMBOL vmlinux 0x00000000 phy_do_ioctl_running -EXPORT_SYMBOL vmlinux 0x00000000 phy_driver_register -EXPORT_SYMBOL vmlinux 0x00000000 phy_driver_unregister -EXPORT_SYMBOL vmlinux 0x00000000 phy_drivers_register -EXPORT_SYMBOL vmlinux 0x00000000 phy_drivers_unregister -EXPORT_SYMBOL vmlinux 0x00000000 phy_ethtool_get_eee -EXPORT_SYMBOL vmlinux 0x00000000 phy_ethtool_get_link_ksettings -EXPORT_SYMBOL vmlinux 0x00000000 phy_ethtool_get_wol -EXPORT_SYMBOL vmlinux 0x00000000 phy_ethtool_ksettings_get -EXPORT_SYMBOL vmlinux 0x00000000 phy_ethtool_ksettings_set -EXPORT_SYMBOL vmlinux 0x00000000 phy_ethtool_nway_reset -EXPORT_SYMBOL vmlinux 0x00000000 phy_ethtool_set_eee -EXPORT_SYMBOL vmlinux 0x00000000 phy_ethtool_set_link_ksettings -EXPORT_SYMBOL vmlinux 0x00000000 phy_ethtool_set_wol -EXPORT_SYMBOL vmlinux 0x00000000 phy_find_first -EXPORT_SYMBOL vmlinux 0x00000000 phy_free_interrupt -EXPORT_SYMBOL vmlinux 0x00000000 phy_get_eee_err -EXPORT_SYMBOL vmlinux 0x00000000 phy_init_eee -EXPORT_SYMBOL vmlinux 0x00000000 phy_init_hw -EXPORT_SYMBOL vmlinux 0x00000000 phy_loopback -EXPORT_SYMBOL vmlinux 0x00000000 phy_mac_interrupt -EXPORT_SYMBOL vmlinux 0x00000000 phy_mii_ioctl -EXPORT_SYMBOL vmlinux 0x00000000 phy_modify_paged -EXPORT_SYMBOL vmlinux 0x00000000 phy_modify_paged_changed -EXPORT_SYMBOL vmlinux 0x00000000 phy_print_status -EXPORT_SYMBOL vmlinux 0x00000000 phy_queue_state_machine -EXPORT_SYMBOL vmlinux 0x00000000 phy_read_mmd -EXPORT_SYMBOL vmlinux 0x00000000 phy_read_paged -EXPORT_SYMBOL vmlinux 0x00000000 phy_register_fixup -EXPORT_SYMBOL vmlinux 0x00000000 phy_register_fixup_for_id -EXPORT_SYMBOL vmlinux 0x00000000 phy_register_fixup_for_uid -EXPORT_SYMBOL vmlinux 0x00000000 phy_remove_link_mode -EXPORT_SYMBOL vmlinux 0x00000000 phy_request_interrupt -EXPORT_SYMBOL vmlinux 0x00000000 phy_reset_after_clk_enable -EXPORT_SYMBOL vmlinux 0x00000000 phy_resume -EXPORT_SYMBOL vmlinux 0x00000000 phy_set_asym_pause -EXPORT_SYMBOL vmlinux 0x00000000 phy_set_max_speed -EXPORT_SYMBOL vmlinux 0x00000000 phy_set_sym_pause -EXPORT_SYMBOL vmlinux 0x00000000 phy_sfp_attach -EXPORT_SYMBOL vmlinux 0x00000000 phy_sfp_detach -EXPORT_SYMBOL vmlinux 0x00000000 phy_sfp_probe -EXPORT_SYMBOL vmlinux 0x00000000 phy_start -EXPORT_SYMBOL vmlinux 0x00000000 phy_start_aneg -EXPORT_SYMBOL vmlinux 0x00000000 phy_stop -EXPORT_SYMBOL vmlinux 0x00000000 phy_support_asym_pause -EXPORT_SYMBOL vmlinux 0x00000000 phy_support_sym_pause -EXPORT_SYMBOL vmlinux 0x00000000 phy_suspend -EXPORT_SYMBOL vmlinux 0x00000000 phy_unregister_fixup -EXPORT_SYMBOL vmlinux 0x00000000 phy_unregister_fixup_for_id -EXPORT_SYMBOL vmlinux 0x00000000 phy_unregister_fixup_for_uid -EXPORT_SYMBOL vmlinux 0x00000000 phy_validate_pause -EXPORT_SYMBOL vmlinux 0x00000000 phy_write_mmd -EXPORT_SYMBOL vmlinux 0x00000000 phy_write_paged -EXPORT_SYMBOL vmlinux 0x00000000 phys_base -EXPORT_SYMBOL vmlinux 0x00000000 physical_mask -EXPORT_SYMBOL vmlinux 0x00000000 pid_task -EXPORT_SYMBOL vmlinux 0x00000000 pin_user_pages -EXPORT_SYMBOL vmlinux 0x00000000 pin_user_pages_remote -EXPORT_SYMBOL vmlinux 0x00000000 ping_prot -EXPORT_SYMBOL vmlinux 0x00000000 pipe_lock -EXPORT_SYMBOL vmlinux 0x00000000 pipe_unlock -EXPORT_SYMBOL vmlinux 0x00000000 platform_thermal_notify -EXPORT_SYMBOL vmlinux 0x00000000 pm8606_osc_disable -EXPORT_SYMBOL vmlinux 0x00000000 pm8606_osc_enable -EXPORT_SYMBOL vmlinux 0x00000000 pm860x_bulk_read -EXPORT_SYMBOL vmlinux 0x00000000 pm860x_bulk_write -EXPORT_SYMBOL vmlinux 0x00000000 pm860x_page_bulk_read -EXPORT_SYMBOL vmlinux 0x00000000 pm860x_page_reg_write -EXPORT_SYMBOL vmlinux 0x00000000 pm860x_reg_read -EXPORT_SYMBOL vmlinux 0x00000000 pm860x_reg_write -EXPORT_SYMBOL vmlinux 0x00000000 pm860x_set_bits -EXPORT_SYMBOL vmlinux 0x00000000 pm_power_off -EXPORT_SYMBOL vmlinux 0x00000000 pm_set_vt_switch -EXPORT_SYMBOL vmlinux 0x00000000 pm_suspend -EXPORT_SYMBOL vmlinux 0x00000000 pm_vt_switch_required -EXPORT_SYMBOL vmlinux 0x00000000 pm_vt_switch_unregister -EXPORT_SYMBOL vmlinux 0x00000000 pmem_sector_size -EXPORT_SYMBOL vmlinux 0x00000000 pmem_should_map_pages -EXPORT_SYMBOL vmlinux 0x00000000 pneigh_enqueue -EXPORT_SYMBOL vmlinux 0x00000000 pneigh_lookup -EXPORT_SYMBOL vmlinux 0x00000000 pnp_activate_dev -EXPORT_SYMBOL vmlinux 0x00000000 pnp_device_attach -EXPORT_SYMBOL vmlinux 0x00000000 pnp_device_detach -EXPORT_SYMBOL vmlinux 0x00000000 pnp_disable_dev -EXPORT_SYMBOL vmlinux 0x00000000 pnp_get_resource -EXPORT_SYMBOL vmlinux 0x00000000 pnp_is_active -EXPORT_SYMBOL vmlinux 0x00000000 pnp_platform_devices -EXPORT_SYMBOL vmlinux 0x00000000 pnp_possible_config -EXPORT_SYMBOL vmlinux 0x00000000 pnp_range_reserved -EXPORT_SYMBOL vmlinux 0x00000000 pnp_register_card_driver -EXPORT_SYMBOL vmlinux 0x00000000 pnp_register_driver -EXPORT_SYMBOL vmlinux 0x00000000 pnp_release_card_device -EXPORT_SYMBOL vmlinux 0x00000000 pnp_request_card_device -EXPORT_SYMBOL vmlinux 0x00000000 pnp_start_dev -EXPORT_SYMBOL vmlinux 0x00000000 pnp_stop_dev -EXPORT_SYMBOL vmlinux 0x00000000 pnp_unregister_card_driver -EXPORT_SYMBOL vmlinux 0x00000000 pnp_unregister_driver -EXPORT_SYMBOL vmlinux 0x00000000 pnpacpi_protocol -EXPORT_SYMBOL vmlinux 0x00000000 poll_freewait -EXPORT_SYMBOL vmlinux 0x00000000 poll_initwait -EXPORT_SYMBOL vmlinux 0x00000000 posix_acl_alloc -EXPORT_SYMBOL vmlinux 0x00000000 posix_acl_chmod -EXPORT_SYMBOL vmlinux 0x00000000 posix_acl_equiv_mode -EXPORT_SYMBOL vmlinux 0x00000000 posix_acl_from_mode -EXPORT_SYMBOL vmlinux 0x00000000 posix_acl_from_xattr -EXPORT_SYMBOL vmlinux 0x00000000 posix_acl_init -EXPORT_SYMBOL vmlinux 0x00000000 posix_acl_to_xattr -EXPORT_SYMBOL vmlinux 0x00000000 posix_acl_update_mode -EXPORT_SYMBOL vmlinux 0x00000000 posix_acl_valid -EXPORT_SYMBOL vmlinux 0x00000000 posix_lock_file -EXPORT_SYMBOL vmlinux 0x00000000 posix_test_lock -EXPORT_SYMBOL vmlinux 0x00000000 ppp_channel_index -EXPORT_SYMBOL vmlinux 0x00000000 ppp_dev_name -EXPORT_SYMBOL vmlinux 0x00000000 ppp_input -EXPORT_SYMBOL vmlinux 0x00000000 ppp_input_error -EXPORT_SYMBOL vmlinux 0x00000000 ppp_output_wakeup -EXPORT_SYMBOL vmlinux 0x00000000 ppp_register_channel -EXPORT_SYMBOL vmlinux 0x00000000 ppp_register_compressor -EXPORT_SYMBOL vmlinux 0x00000000 ppp_register_net_channel -EXPORT_SYMBOL vmlinux 0x00000000 ppp_unit_number -EXPORT_SYMBOL vmlinux 0x00000000 ppp_unregister_channel -EXPORT_SYMBOL vmlinux 0x00000000 ppp_unregister_compressor -EXPORT_SYMBOL vmlinux 0x00000000 pps_event -EXPORT_SYMBOL vmlinux 0x00000000 pps_lookup_dev -EXPORT_SYMBOL vmlinux 0x00000000 pps_register_source -EXPORT_SYMBOL vmlinux 0x00000000 pps_unregister_source -EXPORT_SYMBOL vmlinux 0x00000000 prandom_bytes -EXPORT_SYMBOL vmlinux 0x00000000 prandom_bytes_state -EXPORT_SYMBOL vmlinux 0x00000000 prandom_seed -EXPORT_SYMBOL vmlinux 0x00000000 prandom_seed_full_state -EXPORT_SYMBOL vmlinux 0x00000000 prandom_u32 -EXPORT_SYMBOL vmlinux 0x00000000 prandom_u32_state -EXPORT_SYMBOL vmlinux 0x00000000 prepare_binprm -EXPORT_SYMBOL vmlinux 0x00000000 prepare_creds -EXPORT_SYMBOL vmlinux 0x00000000 prepare_kernel_cred -EXPORT_SYMBOL vmlinux 0x00000000 prepare_to_swait_event -EXPORT_SYMBOL vmlinux 0x00000000 prepare_to_swait_exclusive -EXPORT_SYMBOL vmlinux 0x00000000 prepare_to_wait -EXPORT_SYMBOL vmlinux 0x00000000 prepare_to_wait_event -EXPORT_SYMBOL vmlinux 0x00000000 prepare_to_wait_exclusive -EXPORT_SYMBOL vmlinux 0x00000000 print_hex_dump -EXPORT_SYMBOL vmlinux 0x00000000 printk -EXPORT_SYMBOL vmlinux 0x00000000 printk_timed_ratelimit -EXPORT_SYMBOL vmlinux 0x00000000 probe_irq_mask -EXPORT_SYMBOL vmlinux 0x00000000 probe_irq_off -EXPORT_SYMBOL vmlinux 0x00000000 probe_irq_on -EXPORT_SYMBOL vmlinux 0x00000000 proc_create -EXPORT_SYMBOL vmlinux 0x00000000 proc_create_data -EXPORT_SYMBOL vmlinux 0x00000000 proc_create_mount_point -EXPORT_SYMBOL vmlinux 0x00000000 proc_create_seq_private -EXPORT_SYMBOL vmlinux 0x00000000 proc_create_single_data -EXPORT_SYMBOL vmlinux 0x00000000 proc_do_large_bitmap -EXPORT_SYMBOL vmlinux 0x00000000 proc_dointvec -EXPORT_SYMBOL vmlinux 0x00000000 proc_dointvec_jiffies -EXPORT_SYMBOL vmlinux 0x00000000 proc_dointvec_minmax -EXPORT_SYMBOL vmlinux 0x00000000 proc_dointvec_ms_jiffies -EXPORT_SYMBOL vmlinux 0x00000000 proc_dointvec_userhz_jiffies -EXPORT_SYMBOL vmlinux 0x00000000 proc_dostring -EXPORT_SYMBOL vmlinux 0x00000000 proc_douintvec -EXPORT_SYMBOL vmlinux 0x00000000 proc_doulongvec_minmax -EXPORT_SYMBOL vmlinux 0x00000000 proc_doulongvec_ms_jiffies_minmax -EXPORT_SYMBOL vmlinux 0x00000000 proc_mkdir -EXPORT_SYMBOL vmlinux 0x00000000 proc_mkdir_mode -EXPORT_SYMBOL vmlinux 0x00000000 proc_remove -EXPORT_SYMBOL vmlinux 0x00000000 proc_set_size -EXPORT_SYMBOL vmlinux 0x00000000 proc_set_user -EXPORT_SYMBOL vmlinux 0x00000000 proc_symlink -EXPORT_SYMBOL vmlinux 0x00000000 processors -EXPORT_SYMBOL vmlinux 0x00000000 profile_pc -EXPORT_SYMBOL vmlinux 0x00000000 proto_register -EXPORT_SYMBOL vmlinux 0x00000000 proto_unregister -EXPORT_SYMBOL vmlinux 0x00000000 ps2_begin_command -EXPORT_SYMBOL vmlinux 0x00000000 ps2_cmd_aborted -EXPORT_SYMBOL vmlinux 0x00000000 ps2_command -EXPORT_SYMBOL vmlinux 0x00000000 ps2_drain -EXPORT_SYMBOL vmlinux 0x00000000 ps2_end_command -EXPORT_SYMBOL vmlinux 0x00000000 ps2_handle_ack -EXPORT_SYMBOL vmlinux 0x00000000 ps2_handle_response -EXPORT_SYMBOL vmlinux 0x00000000 ps2_init -EXPORT_SYMBOL vmlinux 0x00000000 ps2_is_keyboard_id -EXPORT_SYMBOL vmlinux 0x00000000 ps2_sendbyte -EXPORT_SYMBOL vmlinux 0x00000000 ps2_sliced_command -EXPORT_SYMBOL vmlinux 0x00000000 psched_ratecfg_precompute -EXPORT_SYMBOL vmlinux 0x00000000 pskb_expand_head -EXPORT_SYMBOL vmlinux 0x00000000 pskb_extract -EXPORT_SYMBOL vmlinux 0x00000000 pskb_trim_rcsum_slow -EXPORT_SYMBOL vmlinux 0x00000000 ptp_cancel_worker_sync -EXPORT_SYMBOL vmlinux 0x00000000 ptp_clock_event -EXPORT_SYMBOL vmlinux 0x00000000 ptp_clock_index -EXPORT_SYMBOL vmlinux 0x00000000 ptp_clock_register -EXPORT_SYMBOL vmlinux 0x00000000 ptp_clock_unregister -EXPORT_SYMBOL vmlinux 0x00000000 ptp_find_pin -EXPORT_SYMBOL vmlinux 0x00000000 ptp_schedule_worker -EXPORT_SYMBOL vmlinux 0x00000000 put_cmsg -EXPORT_SYMBOL vmlinux 0x00000000 put_cmsg_scm_timestamping -EXPORT_SYMBOL vmlinux 0x00000000 put_cmsg_scm_timestamping64 -EXPORT_SYMBOL vmlinux 0x00000000 put_devmap_managed_page -EXPORT_SYMBOL vmlinux 0x00000000 put_disk -EXPORT_SYMBOL vmlinux 0x00000000 put_disk_and_module -EXPORT_SYMBOL vmlinux 0x00000000 put_fs_context -EXPORT_SYMBOL vmlinux 0x00000000 put_ipc_ns -EXPORT_SYMBOL vmlinux 0x00000000 put_pages_list -EXPORT_SYMBOL vmlinux 0x00000000 put_sg_io_hdr -EXPORT_SYMBOL vmlinux 0x00000000 put_tty_driver -EXPORT_SYMBOL vmlinux 0x00000000 put_unused_fd -EXPORT_SYMBOL vmlinux 0x00000000 put_vaddr_frames -EXPORT_SYMBOL vmlinux 0x00000000 pv_ops -EXPORT_SYMBOL vmlinux 0x00000000 qdf2400_e44_present -EXPORT_SYMBOL vmlinux 0x00000000 qdisc_class_hash_destroy -EXPORT_SYMBOL vmlinux 0x00000000 qdisc_class_hash_grow -EXPORT_SYMBOL vmlinux 0x00000000 qdisc_class_hash_init -EXPORT_SYMBOL vmlinux 0x00000000 qdisc_class_hash_insert -EXPORT_SYMBOL vmlinux 0x00000000 qdisc_class_hash_remove -EXPORT_SYMBOL vmlinux 0x00000000 qdisc_create_dflt -EXPORT_SYMBOL vmlinux 0x00000000 qdisc_get_rtab -EXPORT_SYMBOL vmlinux 0x00000000 qdisc_hash_add -EXPORT_SYMBOL vmlinux 0x00000000 qdisc_hash_del -EXPORT_SYMBOL vmlinux 0x00000000 qdisc_offload_dump_helper -EXPORT_SYMBOL vmlinux 0x00000000 qdisc_offload_graft_helper -EXPORT_SYMBOL vmlinux 0x00000000 qdisc_put -EXPORT_SYMBOL vmlinux 0x00000000 qdisc_put_rtab -EXPORT_SYMBOL vmlinux 0x00000000 qdisc_put_stab -EXPORT_SYMBOL vmlinux 0x00000000 qdisc_put_unlocked -EXPORT_SYMBOL vmlinux 0x00000000 qdisc_reset -EXPORT_SYMBOL vmlinux 0x00000000 qdisc_tree_reduce_backlog -EXPORT_SYMBOL vmlinux 0x00000000 qdisc_warn_nonwc -EXPORT_SYMBOL vmlinux 0x00000000 qdisc_watchdog_cancel -EXPORT_SYMBOL vmlinux 0x00000000 qdisc_watchdog_init -EXPORT_SYMBOL vmlinux 0x00000000 qdisc_watchdog_init_clockid -EXPORT_SYMBOL vmlinux 0x00000000 qdisc_watchdog_schedule_ns -EXPORT_SYMBOL vmlinux 0x00000000 qid_eq -EXPORT_SYMBOL vmlinux 0x00000000 qid_lt -EXPORT_SYMBOL vmlinux 0x00000000 qid_valid -EXPORT_SYMBOL vmlinux 0x00000000 queue_delayed_work_on -EXPORT_SYMBOL vmlinux 0x00000000 queue_rcu_work -EXPORT_SYMBOL vmlinux 0x00000000 queue_work_on -EXPORT_SYMBOL vmlinux 0x00000000 queued_read_lock_slowpath -EXPORT_SYMBOL vmlinux 0x00000000 queued_write_lock_slowpath -EXPORT_SYMBOL vmlinux 0x00000000 quota_send_warning -EXPORT_SYMBOL vmlinux 0x00000000 radix_tree_delete -EXPORT_SYMBOL vmlinux 0x00000000 radix_tree_delete_item -EXPORT_SYMBOL vmlinux 0x00000000 radix_tree_gang_lookup -EXPORT_SYMBOL vmlinux 0x00000000 radix_tree_gang_lookup_tag -EXPORT_SYMBOL vmlinux 0x00000000 radix_tree_gang_lookup_tag_slot -EXPORT_SYMBOL vmlinux 0x00000000 radix_tree_insert -EXPORT_SYMBOL vmlinux 0x00000000 radix_tree_iter_delete -EXPORT_SYMBOL vmlinux 0x00000000 radix_tree_iter_resume -EXPORT_SYMBOL vmlinux 0x00000000 radix_tree_lookup -EXPORT_SYMBOL vmlinux 0x00000000 radix_tree_lookup_slot -EXPORT_SYMBOL vmlinux 0x00000000 radix_tree_maybe_preload -EXPORT_SYMBOL vmlinux 0x00000000 radix_tree_next_chunk -EXPORT_SYMBOL vmlinux 0x00000000 radix_tree_preload -EXPORT_SYMBOL vmlinux 0x00000000 radix_tree_replace_slot -EXPORT_SYMBOL vmlinux 0x00000000 radix_tree_tag_clear -EXPORT_SYMBOL vmlinux 0x00000000 radix_tree_tag_get -EXPORT_SYMBOL vmlinux 0x00000000 radix_tree_tag_set -EXPORT_SYMBOL vmlinux 0x00000000 radix_tree_tagged -EXPORT_SYMBOL vmlinux 0x00000000 rational_best_approximation -EXPORT_SYMBOL vmlinux 0x00000000 rawv6_mh_filter_register -EXPORT_SYMBOL vmlinux 0x00000000 rawv6_mh_filter_unregister -EXPORT_SYMBOL vmlinux 0x00000000 rb_erase -EXPORT_SYMBOL vmlinux 0x00000000 rb_first -EXPORT_SYMBOL vmlinux 0x00000000 rb_first_postorder -EXPORT_SYMBOL vmlinux 0x00000000 rb_insert_color -EXPORT_SYMBOL vmlinux 0x00000000 rb_last -EXPORT_SYMBOL vmlinux 0x00000000 rb_next -EXPORT_SYMBOL vmlinux 0x00000000 rb_next_postorder -EXPORT_SYMBOL vmlinux 0x00000000 rb_prev -EXPORT_SYMBOL vmlinux 0x00000000 rb_replace_node -EXPORT_SYMBOL vmlinux 0x00000000 rb_replace_node_rcu -EXPORT_SYMBOL vmlinux 0x00000000 rc5t583_ext_power_req_config -EXPORT_SYMBOL vmlinux 0x00000000 rdma_dim -EXPORT_SYMBOL vmlinux 0x00000000 rdmacg_register_device -EXPORT_SYMBOL vmlinux 0x00000000 rdmacg_try_charge -EXPORT_SYMBOL vmlinux 0x00000000 rdmacg_uncharge -EXPORT_SYMBOL vmlinux 0x00000000 rdmacg_unregister_device -EXPORT_SYMBOL vmlinux 0x00000000 rdmsr_on_cpu -EXPORT_SYMBOL vmlinux 0x00000000 rdmsr_on_cpus -EXPORT_SYMBOL vmlinux 0x00000000 rdmsr_safe_on_cpu -EXPORT_SYMBOL vmlinux 0x00000000 rdmsr_safe_regs -EXPORT_SYMBOL vmlinux 0x00000000 rdmsr_safe_regs_on_cpu -EXPORT_SYMBOL vmlinux 0x00000000 rdmsrl_on_cpu -EXPORT_SYMBOL vmlinux 0x00000000 rdmsrl_safe_on_cpu -EXPORT_SYMBOL vmlinux 0x00000000 read_cache_page -EXPORT_SYMBOL vmlinux 0x00000000 read_cache_page_gfp -EXPORT_SYMBOL vmlinux 0x00000000 read_cache_pages -EXPORT_SYMBOL vmlinux 0x00000000 read_code -EXPORT_SYMBOL vmlinux 0x00000000 read_dev_sector -EXPORT_SYMBOL vmlinux 0x00000000 recalc_sigpending -EXPORT_SYMBOL vmlinux 0x00000000 recalibrate_cpu_khz -EXPORT_SYMBOL vmlinux 0x00000000 reciprocal_value -EXPORT_SYMBOL vmlinux 0x00000000 reciprocal_value_adv -EXPORT_SYMBOL vmlinux 0x00000000 redirty_page_for_writepage -EXPORT_SYMBOL vmlinux 0x00000000 redraw_screen -EXPORT_SYMBOL vmlinux 0x00000000 refcount_dec_and_lock -EXPORT_SYMBOL vmlinux 0x00000000 refcount_dec_and_lock_irqsave -EXPORT_SYMBOL vmlinux 0x00000000 refcount_dec_and_mutex_lock -EXPORT_SYMBOL vmlinux 0x00000000 refcount_dec_and_rtnl_lock -EXPORT_SYMBOL vmlinux 0x00000000 refcount_dec_if_one -EXPORT_SYMBOL vmlinux 0x00000000 refcount_dec_not_one -EXPORT_SYMBOL vmlinux 0x00000000 refcount_warn_saturate -EXPORT_SYMBOL vmlinux 0x00000000 refresh_frequency_limits -EXPORT_SYMBOL vmlinux 0x00000000 register_acpi_notifier -EXPORT_SYMBOL vmlinux 0x00000000 register_blkdev -EXPORT_SYMBOL vmlinux 0x00000000 register_blocking_lsm_notifier -EXPORT_SYMBOL vmlinux 0x00000000 register_cdrom -EXPORT_SYMBOL vmlinux 0x00000000 register_chrdev_region -EXPORT_SYMBOL vmlinux 0x00000000 register_console -EXPORT_SYMBOL vmlinux 0x00000000 register_dcbevent_notifier -EXPORT_SYMBOL vmlinux 0x00000000 register_fib_notifier -EXPORT_SYMBOL vmlinux 0x00000000 register_filesystem -EXPORT_SYMBOL vmlinux 0x00000000 register_framebuffer -EXPORT_SYMBOL vmlinux 0x00000000 register_gifconf -EXPORT_SYMBOL vmlinux 0x00000000 register_inet6addr_notifier -EXPORT_SYMBOL vmlinux 0x00000000 register_inet6addr_validator_notifier -EXPORT_SYMBOL vmlinux 0x00000000 register_inetaddr_notifier -EXPORT_SYMBOL vmlinux 0x00000000 register_inetaddr_validator_notifier -EXPORT_SYMBOL vmlinux 0x00000000 register_key_type -EXPORT_SYMBOL vmlinux 0x00000000 register_kmmio_probe -EXPORT_SYMBOL vmlinux 0x00000000 register_md_cluster_operations -EXPORT_SYMBOL vmlinux 0x00000000 register_md_personality -EXPORT_SYMBOL vmlinux 0x00000000 register_memory_notifier -EXPORT_SYMBOL vmlinux 0x00000000 register_mii_timestamper -EXPORT_SYMBOL vmlinux 0x00000000 register_mii_tstamp_controller -EXPORT_SYMBOL vmlinux 0x00000000 register_module_notifier -EXPORT_SYMBOL vmlinux 0x00000000 register_netdev -EXPORT_SYMBOL vmlinux 0x00000000 register_netdevice -EXPORT_SYMBOL vmlinux 0x00000000 register_netdevice_notifier -EXPORT_SYMBOL vmlinux 0x00000000 register_netdevice_notifier_dev_net -EXPORT_SYMBOL vmlinux 0x00000000 register_netdevice_notifier_net -EXPORT_SYMBOL vmlinux 0x00000000 register_qdisc -EXPORT_SYMBOL vmlinux 0x00000000 register_quota_format -EXPORT_SYMBOL vmlinux 0x00000000 register_reboot_notifier -EXPORT_SYMBOL vmlinux 0x00000000 register_restart_handler -EXPORT_SYMBOL vmlinux 0x00000000 register_shrinker -EXPORT_SYMBOL vmlinux 0x00000000 register_sysctl -EXPORT_SYMBOL vmlinux 0x00000000 register_sysctl_paths -EXPORT_SYMBOL vmlinux 0x00000000 register_sysctl_table -EXPORT_SYMBOL vmlinux 0x00000000 register_sysrq_key -EXPORT_SYMBOL vmlinux 0x00000000 register_tcf_proto_ops -EXPORT_SYMBOL vmlinux 0x00000000 registered_fb -EXPORT_SYMBOL vmlinux 0x00000000 release_dentry_name_snapshot -EXPORT_SYMBOL vmlinux 0x00000000 release_evntsel_nmi -EXPORT_SYMBOL vmlinux 0x00000000 release_firmware -EXPORT_SYMBOL vmlinux 0x00000000 release_pages -EXPORT_SYMBOL vmlinux 0x00000000 release_perfctr_nmi -EXPORT_SYMBOL vmlinux 0x00000000 release_resource -EXPORT_SYMBOL vmlinux 0x00000000 release_sock -EXPORT_SYMBOL vmlinux 0x00000000 remap_pfn_range -EXPORT_SYMBOL vmlinux 0x00000000 remap_vmalloc_range -EXPORT_SYMBOL vmlinux 0x00000000 remap_vmalloc_range_partial -EXPORT_SYMBOL vmlinux 0x00000000 remove_arg_zero -EXPORT_SYMBOL vmlinux 0x00000000 remove_conflicting_framebuffers -EXPORT_SYMBOL vmlinux 0x00000000 remove_conflicting_pci_framebuffers -EXPORT_SYMBOL vmlinux 0x00000000 remove_proc_entry -EXPORT_SYMBOL vmlinux 0x00000000 remove_proc_subtree -EXPORT_SYMBOL vmlinux 0x00000000 remove_wait_queue -EXPORT_SYMBOL vmlinux 0x00000000 rename_lock -EXPORT_SYMBOL vmlinux 0x00000000 request_dma -EXPORT_SYMBOL vmlinux 0x00000000 request_firmware -EXPORT_SYMBOL vmlinux 0x00000000 request_firmware_into_buf -EXPORT_SYMBOL vmlinux 0x00000000 request_firmware_nowait -EXPORT_SYMBOL vmlinux 0x00000000 request_key_rcu -EXPORT_SYMBOL vmlinux 0x00000000 request_key_tag -EXPORT_SYMBOL vmlinux 0x00000000 request_key_with_auxdata -EXPORT_SYMBOL vmlinux 0x00000000 request_resource -EXPORT_SYMBOL vmlinux 0x00000000 request_threaded_irq -EXPORT_SYMBOL vmlinux 0x00000000 reservation_seqcount_class -EXPORT_SYMBOL vmlinux 0x00000000 reservation_seqcount_string -EXPORT_SYMBOL vmlinux 0x00000000 reservation_ww_class -EXPORT_SYMBOL vmlinux 0x00000000 reserve_evntsel_nmi -EXPORT_SYMBOL vmlinux 0x00000000 reserve_perfctr_nmi -EXPORT_SYMBOL vmlinux 0x00000000 reset_devices -EXPORT_SYMBOL vmlinux 0x00000000 resource_list_create_entry -EXPORT_SYMBOL vmlinux 0x00000000 resource_list_free -EXPORT_SYMBOL vmlinux 0x00000000 reuseport_add_sock -EXPORT_SYMBOL vmlinux 0x00000000 reuseport_alloc -EXPORT_SYMBOL vmlinux 0x00000000 reuseport_attach_prog -EXPORT_SYMBOL vmlinux 0x00000000 reuseport_detach_prog -EXPORT_SYMBOL vmlinux 0x00000000 reuseport_detach_sock -EXPORT_SYMBOL vmlinux 0x00000000 reuseport_select_sock -EXPORT_SYMBOL vmlinux 0x00000000 revalidate_disk -EXPORT_SYMBOL vmlinux 0x00000000 revert_creds -EXPORT_SYMBOL vmlinux 0x00000000 rfkill_alloc -EXPORT_SYMBOL vmlinux 0x00000000 rfkill_blocked -EXPORT_SYMBOL vmlinux 0x00000000 rfkill_destroy -EXPORT_SYMBOL vmlinux 0x00000000 rfkill_find_type -EXPORT_SYMBOL vmlinux 0x00000000 rfkill_get_led_trigger_name -EXPORT_SYMBOL vmlinux 0x00000000 rfkill_init_sw_state -EXPORT_SYMBOL vmlinux 0x00000000 rfkill_pause_polling -EXPORT_SYMBOL vmlinux 0x00000000 rfkill_register -EXPORT_SYMBOL vmlinux 0x00000000 rfkill_resume_polling -EXPORT_SYMBOL vmlinux 0x00000000 rfkill_set_hw_state -EXPORT_SYMBOL vmlinux 0x00000000 rfkill_set_led_trigger_name -EXPORT_SYMBOL vmlinux 0x00000000 rfkill_set_states -EXPORT_SYMBOL vmlinux 0x00000000 rfkill_set_sw_state -EXPORT_SYMBOL vmlinux 0x00000000 rfkill_unregister -EXPORT_SYMBOL vmlinux 0x00000000 rfs_needed -EXPORT_SYMBOL vmlinux 0x00000000 rio_query_mport -EXPORT_SYMBOL vmlinux 0x00000000 rng_is_initialized -EXPORT_SYMBOL vmlinux 0x00000000 rproc_add -EXPORT_SYMBOL vmlinux 0x00000000 rproc_add_carveout -EXPORT_SYMBOL vmlinux 0x00000000 rproc_add_subdev -EXPORT_SYMBOL vmlinux 0x00000000 rproc_alloc -EXPORT_SYMBOL vmlinux 0x00000000 rproc_boot -EXPORT_SYMBOL vmlinux 0x00000000 rproc_coredump_add_custom_segment -EXPORT_SYMBOL vmlinux 0x00000000 rproc_coredump_add_segment -EXPORT_SYMBOL vmlinux 0x00000000 rproc_da_to_va -EXPORT_SYMBOL vmlinux 0x00000000 rproc_del -EXPORT_SYMBOL vmlinux 0x00000000 rproc_elf_find_loaded_rsc_table -EXPORT_SYMBOL vmlinux 0x00000000 rproc_elf_get_boot_addr -EXPORT_SYMBOL vmlinux 0x00000000 rproc_elf_load_rsc_table -EXPORT_SYMBOL vmlinux 0x00000000 rproc_elf_load_segments -EXPORT_SYMBOL vmlinux 0x00000000 rproc_elf_sanity_check -EXPORT_SYMBOL vmlinux 0x00000000 rproc_free -EXPORT_SYMBOL vmlinux 0x00000000 rproc_get_by_child -EXPORT_SYMBOL vmlinux 0x00000000 rproc_get_by_phandle -EXPORT_SYMBOL vmlinux 0x00000000 rproc_mem_entry_init -EXPORT_SYMBOL vmlinux 0x00000000 rproc_of_resm_mem_entry_init -EXPORT_SYMBOL vmlinux 0x00000000 rproc_put -EXPORT_SYMBOL vmlinux 0x00000000 rproc_remove_subdev -EXPORT_SYMBOL vmlinux 0x00000000 rproc_report_crash -EXPORT_SYMBOL vmlinux 0x00000000 rproc_shutdown -EXPORT_SYMBOL vmlinux 0x00000000 rproc_va_to_pa -EXPORT_SYMBOL vmlinux 0x00000000 rproc_vq_interrupt -EXPORT_SYMBOL vmlinux 0x00000000 rps_cpu_mask -EXPORT_SYMBOL vmlinux 0x00000000 rps_may_expire_flow -EXPORT_SYMBOL vmlinux 0x00000000 rps_needed -EXPORT_SYMBOL vmlinux 0x00000000 rps_sock_flow_table -EXPORT_SYMBOL vmlinux 0x00000000 rt6_lookup -EXPORT_SYMBOL vmlinux 0x00000000 rt_dst_alloc -EXPORT_SYMBOL vmlinux 0x00000000 rt_dst_clone -EXPORT_SYMBOL vmlinux 0x00000000 rtc_add_group -EXPORT_SYMBOL vmlinux 0x00000000 rtc_add_groups -EXPORT_SYMBOL vmlinux 0x00000000 rtc_cmos_read -EXPORT_SYMBOL vmlinux 0x00000000 rtc_cmos_write -EXPORT_SYMBOL vmlinux 0x00000000 rtc_lock -EXPORT_SYMBOL vmlinux 0x00000000 rtc_month_days -EXPORT_SYMBOL vmlinux 0x00000000 rtc_time64_to_tm -EXPORT_SYMBOL vmlinux 0x00000000 rtc_tm_to_time64 -EXPORT_SYMBOL vmlinux 0x00000000 rtc_valid_tm -EXPORT_SYMBOL vmlinux 0x00000000 rtc_year_days -EXPORT_SYMBOL vmlinux 0x00000000 rtnetlink_put_metrics -EXPORT_SYMBOL vmlinux 0x00000000 rtnl_configure_link -EXPORT_SYMBOL vmlinux 0x00000000 rtnl_create_link -EXPORT_SYMBOL vmlinux 0x00000000 rtnl_is_locked -EXPORT_SYMBOL vmlinux 0x00000000 rtnl_kfree_skbs -EXPORT_SYMBOL vmlinux 0x00000000 rtnl_link_get_net -EXPORT_SYMBOL vmlinux 0x00000000 rtnl_lock -EXPORT_SYMBOL vmlinux 0x00000000 rtnl_lock_killable -EXPORT_SYMBOL vmlinux 0x00000000 rtnl_nla_parse_ifla -EXPORT_SYMBOL vmlinux 0x00000000 rtnl_notify -EXPORT_SYMBOL vmlinux 0x00000000 rtnl_set_sk_err -EXPORT_SYMBOL vmlinux 0x00000000 rtnl_trylock -EXPORT_SYMBOL vmlinux 0x00000000 rtnl_unicast -EXPORT_SYMBOL vmlinux 0x00000000 rtnl_unlock -EXPORT_SYMBOL vmlinux 0x00000000 sb_min_blocksize -EXPORT_SYMBOL vmlinux 0x00000000 sb_set_blocksize -EXPORT_SYMBOL vmlinux 0x00000000 scaled_ppm_to_ppb -EXPORT_SYMBOL vmlinux 0x00000000 sched_autogroup_create_attach -EXPORT_SYMBOL vmlinux 0x00000000 sched_autogroup_detach -EXPORT_SYMBOL vmlinux 0x00000000 schedule -EXPORT_SYMBOL vmlinux 0x00000000 schedule_timeout -EXPORT_SYMBOL vmlinux 0x00000000 schedule_timeout_idle -EXPORT_SYMBOL vmlinux 0x00000000 schedule_timeout_interruptible -EXPORT_SYMBOL vmlinux 0x00000000 schedule_timeout_killable -EXPORT_SYMBOL vmlinux 0x00000000 schedule_timeout_uninterruptible -EXPORT_SYMBOL vmlinux 0x00000000 scm_detach_fds -EXPORT_SYMBOL vmlinux 0x00000000 scm_fp_dup -EXPORT_SYMBOL vmlinux 0x00000000 scmd_printk -EXPORT_SYMBOL vmlinux 0x00000000 scnprintf -EXPORT_SYMBOL vmlinux 0x00000000 screen_info -EXPORT_SYMBOL vmlinux 0x00000000 scsi_add_device -EXPORT_SYMBOL vmlinux 0x00000000 scsi_add_host_with_dma -EXPORT_SYMBOL vmlinux 0x00000000 scsi_bios_ptable -EXPORT_SYMBOL vmlinux 0x00000000 scsi_block_requests -EXPORT_SYMBOL vmlinux 0x00000000 scsi_block_when_processing_errors -EXPORT_SYMBOL vmlinux 0x00000000 scsi_build_sense_buffer -EXPORT_SYMBOL vmlinux 0x00000000 scsi_change_queue_depth -EXPORT_SYMBOL vmlinux 0x00000000 scsi_cmd_blk_ioctl -EXPORT_SYMBOL vmlinux 0x00000000 scsi_cmd_ioctl -EXPORT_SYMBOL vmlinux 0x00000000 scsi_command_normalize_sense -EXPORT_SYMBOL vmlinux 0x00000000 scsi_command_size_tbl -EXPORT_SYMBOL vmlinux 0x00000000 scsi_compat_ioctl -EXPORT_SYMBOL vmlinux 0x00000000 scsi_dev_info_add_list -EXPORT_SYMBOL vmlinux 0x00000000 scsi_dev_info_list_add_keyed -EXPORT_SYMBOL vmlinux 0x00000000 scsi_dev_info_list_del_keyed -EXPORT_SYMBOL vmlinux 0x00000000 scsi_dev_info_remove_list -EXPORT_SYMBOL vmlinux 0x00000000 scsi_device_get -EXPORT_SYMBOL vmlinux 0x00000000 scsi_device_lookup -EXPORT_SYMBOL vmlinux 0x00000000 scsi_device_lookup_by_target -EXPORT_SYMBOL vmlinux 0x00000000 scsi_device_put -EXPORT_SYMBOL vmlinux 0x00000000 scsi_device_quiesce -EXPORT_SYMBOL vmlinux 0x00000000 scsi_device_resume -EXPORT_SYMBOL vmlinux 0x00000000 scsi_device_set_state -EXPORT_SYMBOL vmlinux 0x00000000 scsi_device_type -EXPORT_SYMBOL vmlinux 0x00000000 scsi_dma_map -EXPORT_SYMBOL vmlinux 0x00000000 scsi_dma_unmap -EXPORT_SYMBOL vmlinux 0x00000000 scsi_driverbyte_string -EXPORT_SYMBOL vmlinux 0x00000000 scsi_eh_finish_cmd -EXPORT_SYMBOL vmlinux 0x00000000 scsi_eh_flush_done_q -EXPORT_SYMBOL vmlinux 0x00000000 scsi_eh_prep_cmnd -EXPORT_SYMBOL vmlinux 0x00000000 scsi_eh_restore_cmnd -EXPORT_SYMBOL vmlinux 0x00000000 scsi_extd_sense_format -EXPORT_SYMBOL vmlinux 0x00000000 scsi_free_host_dev -EXPORT_SYMBOL vmlinux 0x00000000 scsi_get_device_flags_keyed -EXPORT_SYMBOL vmlinux 0x00000000 scsi_get_host_dev -EXPORT_SYMBOL vmlinux 0x00000000 scsi_get_sense_info_fld -EXPORT_SYMBOL vmlinux 0x00000000 scsi_host_alloc -EXPORT_SYMBOL vmlinux 0x00000000 scsi_host_busy -EXPORT_SYMBOL vmlinux 0x00000000 scsi_host_get -EXPORT_SYMBOL vmlinux 0x00000000 scsi_host_lookup -EXPORT_SYMBOL vmlinux 0x00000000 scsi_host_put -EXPORT_SYMBOL vmlinux 0x00000000 scsi_hostbyte_string -EXPORT_SYMBOL vmlinux 0x00000000 scsi_init_io -EXPORT_SYMBOL vmlinux 0x00000000 scsi_ioctl -EXPORT_SYMBOL vmlinux 0x00000000 scsi_is_host_device -EXPORT_SYMBOL vmlinux 0x00000000 scsi_is_sdev_device -EXPORT_SYMBOL vmlinux 0x00000000 scsi_is_target_device -EXPORT_SYMBOL vmlinux 0x00000000 scsi_kmap_atomic_sg -EXPORT_SYMBOL vmlinux 0x00000000 scsi_kunmap_atomic_sg -EXPORT_SYMBOL vmlinux 0x00000000 scsi_logging_level -EXPORT_SYMBOL vmlinux 0x00000000 scsi_mlreturn_string -EXPORT_SYMBOL vmlinux 0x00000000 scsi_mode_sense -EXPORT_SYMBOL vmlinux 0x00000000 scsi_normalize_sense -EXPORT_SYMBOL vmlinux 0x00000000 scsi_partsize -EXPORT_SYMBOL vmlinux 0x00000000 scsi_print_command -EXPORT_SYMBOL vmlinux 0x00000000 scsi_print_result -EXPORT_SYMBOL vmlinux 0x00000000 scsi_print_sense -EXPORT_SYMBOL vmlinux 0x00000000 scsi_print_sense_hdr -EXPORT_SYMBOL vmlinux 0x00000000 scsi_register_driver -EXPORT_SYMBOL vmlinux 0x00000000 scsi_register_interface -EXPORT_SYMBOL vmlinux 0x00000000 scsi_remove_device -EXPORT_SYMBOL vmlinux 0x00000000 scsi_remove_host -EXPORT_SYMBOL vmlinux 0x00000000 scsi_remove_target -EXPORT_SYMBOL vmlinux 0x00000000 scsi_report_bus_reset -EXPORT_SYMBOL vmlinux 0x00000000 scsi_report_device_reset -EXPORT_SYMBOL vmlinux 0x00000000 scsi_report_opcode -EXPORT_SYMBOL vmlinux 0x00000000 scsi_req_init -EXPORT_SYMBOL vmlinux 0x00000000 scsi_rescan_device -EXPORT_SYMBOL vmlinux 0x00000000 scsi_sanitize_inquiry_string -EXPORT_SYMBOL vmlinux 0x00000000 scsi_scan_host -EXPORT_SYMBOL vmlinux 0x00000000 scsi_scan_target -EXPORT_SYMBOL vmlinux 0x00000000 scsi_sd_pm_domain -EXPORT_SYMBOL vmlinux 0x00000000 scsi_sense_desc_find -EXPORT_SYMBOL vmlinux 0x00000000 scsi_sense_key_string -EXPORT_SYMBOL vmlinux 0x00000000 scsi_set_medium_removal -EXPORT_SYMBOL vmlinux 0x00000000 scsi_set_sense_field_pointer -EXPORT_SYMBOL vmlinux 0x00000000 scsi_set_sense_information -EXPORT_SYMBOL vmlinux 0x00000000 scsi_target_quiesce -EXPORT_SYMBOL vmlinux 0x00000000 scsi_target_resume -EXPORT_SYMBOL vmlinux 0x00000000 scsi_test_unit_ready -EXPORT_SYMBOL vmlinux 0x00000000 scsi_track_queue_full -EXPORT_SYMBOL vmlinux 0x00000000 scsi_unblock_requests -EXPORT_SYMBOL vmlinux 0x00000000 scsi_verify_blk_ioctl -EXPORT_SYMBOL vmlinux 0x00000000 scsi_vpd_lun_id -EXPORT_SYMBOL vmlinux 0x00000000 scsi_vpd_tpg_id -EXPORT_SYMBOL vmlinux 0x00000000 scsicam_bios_param -EXPORT_SYMBOL vmlinux 0x00000000 scsilun_to_int -EXPORT_SYMBOL vmlinux 0x00000000 sdev_disable_disk_events -EXPORT_SYMBOL vmlinux 0x00000000 sdev_enable_disk_events -EXPORT_SYMBOL vmlinux 0x00000000 sdev_prefix_printk -EXPORT_SYMBOL vmlinux 0x00000000 search_binary_handler -EXPORT_SYMBOL vmlinux 0x00000000 secpath_set -EXPORT_SYMBOL vmlinux 0x00000000 secure_dccp_sequence_number -EXPORT_SYMBOL vmlinux 0x00000000 secure_dccpv6_sequence_number -EXPORT_SYMBOL vmlinux 0x00000000 secure_ipv6_port_ephemeral -EXPORT_SYMBOL vmlinux 0x00000000 secure_tcpv6_seq -EXPORT_SYMBOL vmlinux 0x00000000 secure_tcpv6_ts_off -EXPORT_SYMBOL vmlinux 0x00000000 security_add_mnt_opt -EXPORT_SYMBOL vmlinux 0x00000000 security_binder_set_context_mgr -EXPORT_SYMBOL vmlinux 0x00000000 security_binder_transaction -EXPORT_SYMBOL vmlinux 0x00000000 security_binder_transfer_binder -EXPORT_SYMBOL vmlinux 0x00000000 security_binder_transfer_file -EXPORT_SYMBOL vmlinux 0x00000000 security_cred_getsecid -EXPORT_SYMBOL vmlinux 0x00000000 security_d_instantiate -EXPORT_SYMBOL vmlinux 0x00000000 security_dentry_create_files_as -EXPORT_SYMBOL vmlinux 0x00000000 security_dentry_init_security -EXPORT_SYMBOL vmlinux 0x00000000 security_free_mnt_opts -EXPORT_SYMBOL vmlinux 0x00000000 security_ib_alloc_security -EXPORT_SYMBOL vmlinux 0x00000000 security_ib_endport_manage_subnet -EXPORT_SYMBOL vmlinux 0x00000000 security_ib_free_security -EXPORT_SYMBOL vmlinux 0x00000000 security_ib_pkey_access -EXPORT_SYMBOL vmlinux 0x00000000 security_inet_conn_established -EXPORT_SYMBOL vmlinux 0x00000000 security_inet_conn_request -EXPORT_SYMBOL vmlinux 0x00000000 security_inode_copy_up -EXPORT_SYMBOL vmlinux 0x00000000 security_inode_copy_up_xattr -EXPORT_SYMBOL vmlinux 0x00000000 security_inode_getsecctx -EXPORT_SYMBOL vmlinux 0x00000000 security_inode_init_security -EXPORT_SYMBOL vmlinux 0x00000000 security_inode_invalidate_secctx -EXPORT_SYMBOL vmlinux 0x00000000 security_inode_listsecurity -EXPORT_SYMBOL vmlinux 0x00000000 security_inode_notifysecctx -EXPORT_SYMBOL vmlinux 0x00000000 security_inode_setsecctx -EXPORT_SYMBOL vmlinux 0x00000000 security_ismaclabel -EXPORT_SYMBOL vmlinux 0x00000000 security_lock_kernel_down -EXPORT_SYMBOL vmlinux 0x00000000 security_locked_down -EXPORT_SYMBOL vmlinux 0x00000000 security_old_inode_init_security -EXPORT_SYMBOL vmlinux 0x00000000 security_path_mkdir -EXPORT_SYMBOL vmlinux 0x00000000 security_path_mknod -EXPORT_SYMBOL vmlinux 0x00000000 security_path_rename -EXPORT_SYMBOL vmlinux 0x00000000 security_path_unlink -EXPORT_SYMBOL vmlinux 0x00000000 security_release_secctx -EXPORT_SYMBOL vmlinux 0x00000000 security_req_classify_flow -EXPORT_SYMBOL vmlinux 0x00000000 security_sb_clone_mnt_opts -EXPORT_SYMBOL vmlinux 0x00000000 security_sb_eat_lsm_opts -EXPORT_SYMBOL vmlinux 0x00000000 security_sb_remount -EXPORT_SYMBOL vmlinux 0x00000000 security_sb_set_mnt_opts -EXPORT_SYMBOL vmlinux 0x00000000 security_sctp_assoc_request -EXPORT_SYMBOL vmlinux 0x00000000 security_sctp_bind_connect -EXPORT_SYMBOL vmlinux 0x00000000 security_sctp_sk_clone -EXPORT_SYMBOL vmlinux 0x00000000 security_secctx_to_secid -EXPORT_SYMBOL vmlinux 0x00000000 security_secid_to_secctx -EXPORT_SYMBOL vmlinux 0x00000000 security_secmark_refcount_dec -EXPORT_SYMBOL vmlinux 0x00000000 security_secmark_refcount_inc -EXPORT_SYMBOL vmlinux 0x00000000 security_secmark_relabel_packet -EXPORT_SYMBOL vmlinux 0x00000000 security_sk_classify_flow -EXPORT_SYMBOL vmlinux 0x00000000 security_sk_clone -EXPORT_SYMBOL vmlinux 0x00000000 security_skb_classify_flow -EXPORT_SYMBOL vmlinux 0x00000000 security_sock_graft -EXPORT_SYMBOL vmlinux 0x00000000 security_sock_rcv_skb -EXPORT_SYMBOL vmlinux 0x00000000 security_socket_getpeersec_dgram -EXPORT_SYMBOL vmlinux 0x00000000 security_socket_socketpair -EXPORT_SYMBOL vmlinux 0x00000000 security_task_getsecid -EXPORT_SYMBOL vmlinux 0x00000000 security_tun_dev_alloc_security -EXPORT_SYMBOL vmlinux 0x00000000 security_tun_dev_attach -EXPORT_SYMBOL vmlinux 0x00000000 security_tun_dev_attach_queue -EXPORT_SYMBOL vmlinux 0x00000000 security_tun_dev_create -EXPORT_SYMBOL vmlinux 0x00000000 security_tun_dev_free_security -EXPORT_SYMBOL vmlinux 0x00000000 security_tun_dev_open -EXPORT_SYMBOL vmlinux 0x00000000 security_unix_may_send -EXPORT_SYMBOL vmlinux 0x00000000 security_unix_stream_connect -EXPORT_SYMBOL vmlinux 0x00000000 security_xfrm_policy_alloc -EXPORT_SYMBOL vmlinux 0x00000000 security_xfrm_policy_free -EXPORT_SYMBOL vmlinux 0x00000000 security_xfrm_state_alloc -EXPORT_SYMBOL vmlinux 0x00000000 security_xfrm_state_delete -EXPORT_SYMBOL vmlinux 0x00000000 seg6_hmac_compute -EXPORT_SYMBOL vmlinux 0x00000000 seg6_hmac_exit -EXPORT_SYMBOL vmlinux 0x00000000 seg6_hmac_info_add -EXPORT_SYMBOL vmlinux 0x00000000 seg6_hmac_info_del -EXPORT_SYMBOL vmlinux 0x00000000 seg6_hmac_info_lookup -EXPORT_SYMBOL vmlinux 0x00000000 seg6_hmac_init -EXPORT_SYMBOL vmlinux 0x00000000 seg6_hmac_net_exit -EXPORT_SYMBOL vmlinux 0x00000000 seg6_hmac_net_init -EXPORT_SYMBOL vmlinux 0x00000000 seg6_hmac_validate_skb -EXPORT_SYMBOL vmlinux 0x00000000 seg6_push_hmac -EXPORT_SYMBOL vmlinux 0x00000000 send_sig -EXPORT_SYMBOL vmlinux 0x00000000 send_sig_info -EXPORT_SYMBOL vmlinux 0x00000000 send_sig_mceerr -EXPORT_SYMBOL vmlinux 0x00000000 seq_dentry -EXPORT_SYMBOL vmlinux 0x00000000 seq_escape -EXPORT_SYMBOL vmlinux 0x00000000 seq_escape_mem_ascii -EXPORT_SYMBOL vmlinux 0x00000000 seq_file_path -EXPORT_SYMBOL vmlinux 0x00000000 seq_hex_dump -EXPORT_SYMBOL vmlinux 0x00000000 seq_hlist_next -EXPORT_SYMBOL vmlinux 0x00000000 seq_hlist_next_percpu -EXPORT_SYMBOL vmlinux 0x00000000 seq_hlist_next_rcu -EXPORT_SYMBOL vmlinux 0x00000000 seq_hlist_start -EXPORT_SYMBOL vmlinux 0x00000000 seq_hlist_start_head -EXPORT_SYMBOL vmlinux 0x00000000 seq_hlist_start_head_rcu -EXPORT_SYMBOL vmlinux 0x00000000 seq_hlist_start_percpu -EXPORT_SYMBOL vmlinux 0x00000000 seq_hlist_start_rcu -EXPORT_SYMBOL vmlinux 0x00000000 seq_list_next -EXPORT_SYMBOL vmlinux 0x00000000 seq_list_start -EXPORT_SYMBOL vmlinux 0x00000000 seq_list_start_head -EXPORT_SYMBOL vmlinux 0x00000000 seq_lseek -EXPORT_SYMBOL vmlinux 0x00000000 seq_open -EXPORT_SYMBOL vmlinux 0x00000000 seq_open_private -EXPORT_SYMBOL vmlinux 0x00000000 seq_pad -EXPORT_SYMBOL vmlinux 0x00000000 seq_path -EXPORT_SYMBOL vmlinux 0x00000000 seq_printf -EXPORT_SYMBOL vmlinux 0x00000000 seq_put_decimal_ll -EXPORT_SYMBOL vmlinux 0x00000000 seq_put_decimal_ull -EXPORT_SYMBOL vmlinux 0x00000000 seq_putc -EXPORT_SYMBOL vmlinux 0x00000000 seq_puts -EXPORT_SYMBOL vmlinux 0x00000000 seq_read -EXPORT_SYMBOL vmlinux 0x00000000 seq_release -EXPORT_SYMBOL vmlinux 0x00000000 seq_release_private -EXPORT_SYMBOL vmlinux 0x00000000 seq_vprintf -EXPORT_SYMBOL vmlinux 0x00000000 seq_write -EXPORT_SYMBOL vmlinux 0x00000000 seqno_fence_ops -EXPORT_SYMBOL vmlinux 0x00000000 serial8250_do_pm -EXPORT_SYMBOL vmlinux 0x00000000 serial8250_do_set_termios -EXPORT_SYMBOL vmlinux 0x00000000 serial8250_register_8250_port -EXPORT_SYMBOL vmlinux 0x00000000 serial8250_resume_port -EXPORT_SYMBOL vmlinux 0x00000000 serial8250_set_isa_configurator -EXPORT_SYMBOL vmlinux 0x00000000 serial8250_suspend_port -EXPORT_SYMBOL vmlinux 0x00000000 serial8250_unregister_port -EXPORT_SYMBOL vmlinux 0x00000000 serio_bus -EXPORT_SYMBOL vmlinux 0x00000000 serio_close -EXPORT_SYMBOL vmlinux 0x00000000 serio_interrupt -EXPORT_SYMBOL vmlinux 0x00000000 serio_open -EXPORT_SYMBOL vmlinux 0x00000000 serio_reconnect -EXPORT_SYMBOL vmlinux 0x00000000 serio_rescan -EXPORT_SYMBOL vmlinux 0x00000000 serio_unregister_child_port -EXPORT_SYMBOL vmlinux 0x00000000 serio_unregister_driver -EXPORT_SYMBOL vmlinux 0x00000000 serio_unregister_port -EXPORT_SYMBOL vmlinux 0x00000000 set_anon_super -EXPORT_SYMBOL vmlinux 0x00000000 set_anon_super_fc -EXPORT_SYMBOL vmlinux 0x00000000 set_bh_page -EXPORT_SYMBOL vmlinux 0x00000000 set_binfmt -EXPORT_SYMBOL vmlinux 0x00000000 set_blocksize -EXPORT_SYMBOL vmlinux 0x00000000 set_cached_acl -EXPORT_SYMBOL vmlinux 0x00000000 set_create_files_as -EXPORT_SYMBOL vmlinux 0x00000000 set_current_groups -EXPORT_SYMBOL vmlinux 0x00000000 set_device_ro -EXPORT_SYMBOL vmlinux 0x00000000 set_disk_ro -EXPORT_SYMBOL vmlinux 0x00000000 set_freezable -EXPORT_SYMBOL vmlinux 0x00000000 set_groups -EXPORT_SYMBOL vmlinux 0x00000000 set_memory_uc -EXPORT_SYMBOL vmlinux 0x00000000 set_memory_wb -EXPORT_SYMBOL vmlinux 0x00000000 set_memory_wc -EXPORT_SYMBOL vmlinux 0x00000000 set_nlink -EXPORT_SYMBOL vmlinux 0x00000000 set_normalized_timespec64 -EXPORT_SYMBOL vmlinux 0x00000000 set_page_dirty -EXPORT_SYMBOL vmlinux 0x00000000 set_page_dirty_lock -EXPORT_SYMBOL vmlinux 0x00000000 set_pages_array_uc -EXPORT_SYMBOL vmlinux 0x00000000 set_pages_array_wb -EXPORT_SYMBOL vmlinux 0x00000000 set_pages_array_wc -EXPORT_SYMBOL vmlinux 0x00000000 set_pages_uc -EXPORT_SYMBOL vmlinux 0x00000000 set_pages_wb -EXPORT_SYMBOL vmlinux 0x00000000 set_posix_acl -EXPORT_SYMBOL vmlinux 0x00000000 set_security_override -EXPORT_SYMBOL vmlinux 0x00000000 set_security_override_from_ctx -EXPORT_SYMBOL vmlinux 0x00000000 set_trace_device -EXPORT_SYMBOL vmlinux 0x00000000 set_user_nice -EXPORT_SYMBOL vmlinux 0x00000000 set_wb_congested -EXPORT_SYMBOL vmlinux 0x00000000 setattr_copy -EXPORT_SYMBOL vmlinux 0x00000000 setattr_prepare -EXPORT_SYMBOL vmlinux 0x00000000 setup_arg_pages -EXPORT_SYMBOL vmlinux 0x00000000 setup_max_cpus -EXPORT_SYMBOL vmlinux 0x00000000 setup_new_exec -EXPORT_SYMBOL vmlinux 0x00000000 sfi_disabled -EXPORT_SYMBOL vmlinux 0x00000000 sg_alloc_table -EXPORT_SYMBOL vmlinux 0x00000000 sg_alloc_table_from_pages -EXPORT_SYMBOL vmlinux 0x00000000 sg_copy_buffer -EXPORT_SYMBOL vmlinux 0x00000000 sg_copy_from_buffer -EXPORT_SYMBOL vmlinux 0x00000000 sg_copy_to_buffer -EXPORT_SYMBOL vmlinux 0x00000000 sg_free_table -EXPORT_SYMBOL vmlinux 0x00000000 sg_init_one -EXPORT_SYMBOL vmlinux 0x00000000 sg_init_table -EXPORT_SYMBOL vmlinux 0x00000000 sg_last -EXPORT_SYMBOL vmlinux 0x00000000 sg_miter_next -EXPORT_SYMBOL vmlinux 0x00000000 sg_miter_skip -EXPORT_SYMBOL vmlinux 0x00000000 sg_miter_start -EXPORT_SYMBOL vmlinux 0x00000000 sg_miter_stop -EXPORT_SYMBOL vmlinux 0x00000000 sg_nents -EXPORT_SYMBOL vmlinux 0x00000000 sg_nents_for_len -EXPORT_SYMBOL vmlinux 0x00000000 sg_next -EXPORT_SYMBOL vmlinux 0x00000000 sg_pcopy_from_buffer -EXPORT_SYMBOL vmlinux 0x00000000 sg_pcopy_to_buffer -EXPORT_SYMBOL vmlinux 0x00000000 sg_zero_buffer -EXPORT_SYMBOL vmlinux 0x00000000 sget -EXPORT_SYMBOL vmlinux 0x00000000 sget_fc -EXPORT_SYMBOL vmlinux 0x00000000 sgl_alloc -EXPORT_SYMBOL vmlinux 0x00000000 sgl_alloc_order -EXPORT_SYMBOL vmlinux 0x00000000 sgl_free -EXPORT_SYMBOL vmlinux 0x00000000 sgl_free_n_order -EXPORT_SYMBOL vmlinux 0x00000000 sgl_free_order -EXPORT_SYMBOL vmlinux 0x00000000 sha224_final -EXPORT_SYMBOL vmlinux 0x00000000 sha224_update -EXPORT_SYMBOL vmlinux 0x00000000 sha256_final -EXPORT_SYMBOL vmlinux 0x00000000 sha256_update -EXPORT_SYMBOL vmlinux 0x00000000 sha_init -EXPORT_SYMBOL vmlinux 0x00000000 sha_transform -EXPORT_SYMBOL vmlinux 0x00000000 should_remove_suid -EXPORT_SYMBOL vmlinux 0x00000000 show_init_ipc_ns -EXPORT_SYMBOL vmlinux 0x00000000 shrink_dcache_parent -EXPORT_SYMBOL vmlinux 0x00000000 shrink_dcache_sb -EXPORT_SYMBOL vmlinux 0x00000000 si_meminfo -EXPORT_SYMBOL vmlinux 0x00000000 sigprocmask -EXPORT_SYMBOL vmlinux 0x00000000 simple_dentry_operations -EXPORT_SYMBOL vmlinux 0x00000000 simple_dir_inode_operations -EXPORT_SYMBOL vmlinux 0x00000000 simple_dir_operations -EXPORT_SYMBOL vmlinux 0x00000000 simple_empty -EXPORT_SYMBOL vmlinux 0x00000000 simple_fill_super -EXPORT_SYMBOL vmlinux 0x00000000 simple_get_link -EXPORT_SYMBOL vmlinux 0x00000000 simple_getattr -EXPORT_SYMBOL vmlinux 0x00000000 simple_link -EXPORT_SYMBOL vmlinux 0x00000000 simple_lookup -EXPORT_SYMBOL vmlinux 0x00000000 simple_nosetlease -EXPORT_SYMBOL vmlinux 0x00000000 simple_open -EXPORT_SYMBOL vmlinux 0x00000000 simple_pin_fs -EXPORT_SYMBOL vmlinux 0x00000000 simple_read_from_buffer -EXPORT_SYMBOL vmlinux 0x00000000 simple_readpage -EXPORT_SYMBOL vmlinux 0x00000000 simple_recursive_removal -EXPORT_SYMBOL vmlinux 0x00000000 simple_release_fs -EXPORT_SYMBOL vmlinux 0x00000000 simple_rename -EXPORT_SYMBOL vmlinux 0x00000000 simple_rmdir -EXPORT_SYMBOL vmlinux 0x00000000 simple_setattr -EXPORT_SYMBOL vmlinux 0x00000000 simple_statfs -EXPORT_SYMBOL vmlinux 0x00000000 simple_strtol -EXPORT_SYMBOL vmlinux 0x00000000 simple_strtoll -EXPORT_SYMBOL vmlinux 0x00000000 simple_strtoul -EXPORT_SYMBOL vmlinux 0x00000000 simple_strtoull -EXPORT_SYMBOL vmlinux 0x00000000 simple_symlink_inode_operations -EXPORT_SYMBOL vmlinux 0x00000000 simple_transaction_get -EXPORT_SYMBOL vmlinux 0x00000000 simple_transaction_read -EXPORT_SYMBOL vmlinux 0x00000000 simple_transaction_release -EXPORT_SYMBOL vmlinux 0x00000000 simple_transaction_set -EXPORT_SYMBOL vmlinux 0x00000000 simple_unlink -EXPORT_SYMBOL vmlinux 0x00000000 simple_write_begin -EXPORT_SYMBOL vmlinux 0x00000000 simple_write_end -EXPORT_SYMBOL vmlinux 0x00000000 simple_write_to_buffer -EXPORT_SYMBOL vmlinux 0x00000000 single_open -EXPORT_SYMBOL vmlinux 0x00000000 single_open_size -EXPORT_SYMBOL vmlinux 0x00000000 single_release -EXPORT_SYMBOL vmlinux 0x00000000 single_task_running -EXPORT_SYMBOL vmlinux 0x00000000 siphash_1u32 -EXPORT_SYMBOL vmlinux 0x00000000 siphash_1u64 -EXPORT_SYMBOL vmlinux 0x00000000 siphash_2u64 -EXPORT_SYMBOL vmlinux 0x00000000 siphash_3u32 -EXPORT_SYMBOL vmlinux 0x00000000 siphash_3u64 -EXPORT_SYMBOL vmlinux 0x00000000 siphash_4u64 -EXPORT_SYMBOL vmlinux 0x00000000 sk_alloc -EXPORT_SYMBOL vmlinux 0x00000000 sk_busy_loop_end -EXPORT_SYMBOL vmlinux 0x00000000 sk_capable -EXPORT_SYMBOL vmlinux 0x00000000 sk_common_release -EXPORT_SYMBOL vmlinux 0x00000000 sk_dst_check -EXPORT_SYMBOL vmlinux 0x00000000 sk_filter_trim_cap -EXPORT_SYMBOL vmlinux 0x00000000 sk_free -EXPORT_SYMBOL vmlinux 0x00000000 sk_mc_loop -EXPORT_SYMBOL vmlinux 0x00000000 sk_net_capable -EXPORT_SYMBOL vmlinux 0x00000000 sk_ns_capable -EXPORT_SYMBOL vmlinux 0x00000000 sk_page_frag_refill -EXPORT_SYMBOL vmlinux 0x00000000 sk_reset_timer -EXPORT_SYMBOL vmlinux 0x00000000 sk_send_sigurg -EXPORT_SYMBOL vmlinux 0x00000000 sk_stop_timer -EXPORT_SYMBOL vmlinux 0x00000000 sk_stream_error -EXPORT_SYMBOL vmlinux 0x00000000 sk_stream_kill_queues -EXPORT_SYMBOL vmlinux 0x00000000 sk_stream_wait_close -EXPORT_SYMBOL vmlinux 0x00000000 sk_stream_wait_connect -EXPORT_SYMBOL vmlinux 0x00000000 sk_stream_wait_memory -EXPORT_SYMBOL vmlinux 0x00000000 sk_wait_data -EXPORT_SYMBOL vmlinux 0x00000000 skb_abort_seq_read -EXPORT_SYMBOL vmlinux 0x00000000 skb_add_rx_frag -EXPORT_SYMBOL vmlinux 0x00000000 skb_append -EXPORT_SYMBOL vmlinux 0x00000000 skb_checksum -EXPORT_SYMBOL vmlinux 0x00000000 skb_checksum_help -EXPORT_SYMBOL vmlinux 0x00000000 skb_checksum_setup -EXPORT_SYMBOL vmlinux 0x00000000 skb_checksum_trimmed -EXPORT_SYMBOL vmlinux 0x00000000 skb_clone -EXPORT_SYMBOL vmlinux 0x00000000 skb_clone_sk -EXPORT_SYMBOL vmlinux 0x00000000 skb_coalesce_rx_frag -EXPORT_SYMBOL vmlinux 0x00000000 skb_copy -EXPORT_SYMBOL vmlinux 0x00000000 skb_copy_and_csum_bits -EXPORT_SYMBOL vmlinux 0x00000000 skb_copy_and_csum_datagram_msg -EXPORT_SYMBOL vmlinux 0x00000000 skb_copy_and_csum_dev -EXPORT_SYMBOL vmlinux 0x00000000 skb_copy_and_hash_datagram_iter -EXPORT_SYMBOL vmlinux 0x00000000 skb_copy_bits -EXPORT_SYMBOL vmlinux 0x00000000 skb_copy_datagram_from_iter -EXPORT_SYMBOL vmlinux 0x00000000 skb_copy_datagram_iter -EXPORT_SYMBOL vmlinux 0x00000000 skb_copy_expand -EXPORT_SYMBOL vmlinux 0x00000000 skb_copy_header -EXPORT_SYMBOL vmlinux 0x00000000 skb_csum_hwoffload_help -EXPORT_SYMBOL vmlinux 0x00000000 skb_dequeue -EXPORT_SYMBOL vmlinux 0x00000000 skb_dequeue_tail -EXPORT_SYMBOL vmlinux 0x00000000 skb_dump -EXPORT_SYMBOL vmlinux 0x00000000 skb_ensure_writable -EXPORT_SYMBOL vmlinux 0x00000000 skb_ext_add -EXPORT_SYMBOL vmlinux 0x00000000 skb_find_text -EXPORT_SYMBOL vmlinux 0x00000000 skb_flow_dissect_ct -EXPORT_SYMBOL vmlinux 0x00000000 skb_flow_dissect_meta -EXPORT_SYMBOL vmlinux 0x00000000 skb_flow_dissect_tunnel_info -EXPORT_SYMBOL vmlinux 0x00000000 skb_flow_dissector_init -EXPORT_SYMBOL vmlinux 0x00000000 skb_flow_get_icmp_tci -EXPORT_SYMBOL vmlinux 0x00000000 skb_free_datagram -EXPORT_SYMBOL vmlinux 0x00000000 skb_get_hash_perturb -EXPORT_SYMBOL vmlinux 0x00000000 skb_headers_offset_update -EXPORT_SYMBOL vmlinux 0x00000000 skb_kill_datagram -EXPORT_SYMBOL vmlinux 0x00000000 skb_mac_gso_segment -EXPORT_SYMBOL vmlinux 0x00000000 skb_orphan_partial -EXPORT_SYMBOL vmlinux 0x00000000 skb_page_frag_refill -EXPORT_SYMBOL vmlinux 0x00000000 skb_prepare_seq_read -EXPORT_SYMBOL vmlinux 0x00000000 skb_pull -EXPORT_SYMBOL vmlinux 0x00000000 skb_push -EXPORT_SYMBOL vmlinux 0x00000000 skb_put -EXPORT_SYMBOL vmlinux 0x00000000 skb_queue_head -EXPORT_SYMBOL vmlinux 0x00000000 skb_queue_purge -EXPORT_SYMBOL vmlinux 0x00000000 skb_queue_tail -EXPORT_SYMBOL vmlinux 0x00000000 skb_realloc_headroom -EXPORT_SYMBOL vmlinux 0x00000000 skb_recv_datagram -EXPORT_SYMBOL vmlinux 0x00000000 skb_seq_read -EXPORT_SYMBOL vmlinux 0x00000000 skb_set_owner_w -EXPORT_SYMBOL vmlinux 0x00000000 skb_split -EXPORT_SYMBOL vmlinux 0x00000000 skb_store_bits -EXPORT_SYMBOL vmlinux 0x00000000 skb_trim -EXPORT_SYMBOL vmlinux 0x00000000 skb_try_coalesce -EXPORT_SYMBOL vmlinux 0x00000000 skb_tx_error -EXPORT_SYMBOL vmlinux 0x00000000 skb_udp_tunnel_segment -EXPORT_SYMBOL vmlinux 0x00000000 skb_unlink -EXPORT_SYMBOL vmlinux 0x00000000 skb_vlan_pop -EXPORT_SYMBOL vmlinux 0x00000000 skb_vlan_push -EXPORT_SYMBOL vmlinux 0x00000000 skb_vlan_untag -EXPORT_SYMBOL vmlinux 0x00000000 skip_spaces -EXPORT_SYMBOL vmlinux 0x00000000 slash_name -EXPORT_SYMBOL vmlinux 0x00000000 slhc_compress -EXPORT_SYMBOL vmlinux 0x00000000 slhc_free -EXPORT_SYMBOL vmlinux 0x00000000 slhc_init -EXPORT_SYMBOL vmlinux 0x00000000 slhc_remember -EXPORT_SYMBOL vmlinux 0x00000000 slhc_toss -EXPORT_SYMBOL vmlinux 0x00000000 slhc_uncompress -EXPORT_SYMBOL vmlinux 0x00000000 sme_me_mask -EXPORT_SYMBOL vmlinux 0x00000000 smp_call_function -EXPORT_SYMBOL vmlinux 0x00000000 smp_call_function_many -EXPORT_SYMBOL vmlinux 0x00000000 smp_call_function_single -EXPORT_SYMBOL vmlinux 0x00000000 smp_num_siblings -EXPORT_SYMBOL vmlinux 0x00000000 snprintf -EXPORT_SYMBOL vmlinux 0x00000000 sock_alloc -EXPORT_SYMBOL vmlinux 0x00000000 sock_alloc_file -EXPORT_SYMBOL vmlinux 0x00000000 sock_alloc_send_pskb -EXPORT_SYMBOL vmlinux 0x00000000 sock_alloc_send_skb -EXPORT_SYMBOL vmlinux 0x00000000 sock_cmsg_send -EXPORT_SYMBOL vmlinux 0x00000000 sock_common_getsockopt -EXPORT_SYMBOL vmlinux 0x00000000 sock_common_recvmsg -EXPORT_SYMBOL vmlinux 0x00000000 sock_common_setsockopt -EXPORT_SYMBOL vmlinux 0x00000000 sock_create -EXPORT_SYMBOL vmlinux 0x00000000 sock_create_kern -EXPORT_SYMBOL vmlinux 0x00000000 sock_create_lite -EXPORT_SYMBOL vmlinux 0x00000000 sock_dequeue_err_skb -EXPORT_SYMBOL vmlinux 0x00000000 sock_diag_put_filterinfo -EXPORT_SYMBOL vmlinux 0x00000000 sock_edemux -EXPORT_SYMBOL vmlinux 0x00000000 sock_efree -EXPORT_SYMBOL vmlinux 0x00000000 sock_from_file -EXPORT_SYMBOL vmlinux 0x00000000 sock_gettstamp -EXPORT_SYMBOL vmlinux 0x00000000 sock_i_ino -EXPORT_SYMBOL vmlinux 0x00000000 sock_i_uid -EXPORT_SYMBOL vmlinux 0x00000000 sock_init_data -EXPORT_SYMBOL vmlinux 0x00000000 sock_kfree_s -EXPORT_SYMBOL vmlinux 0x00000000 sock_kmalloc -EXPORT_SYMBOL vmlinux 0x00000000 sock_kzfree_s -EXPORT_SYMBOL vmlinux 0x00000000 sock_load_diag_module -EXPORT_SYMBOL vmlinux 0x00000000 sock_no_accept -EXPORT_SYMBOL vmlinux 0x00000000 sock_no_bind -EXPORT_SYMBOL vmlinux 0x00000000 sock_no_connect -EXPORT_SYMBOL vmlinux 0x00000000 sock_no_getname -EXPORT_SYMBOL vmlinux 0x00000000 sock_no_getsockopt -EXPORT_SYMBOL vmlinux 0x00000000 sock_no_ioctl -EXPORT_SYMBOL vmlinux 0x00000000 sock_no_listen -EXPORT_SYMBOL vmlinux 0x00000000 sock_no_mmap -EXPORT_SYMBOL vmlinux 0x00000000 sock_no_recvmsg -EXPORT_SYMBOL vmlinux 0x00000000 sock_no_sendmsg -EXPORT_SYMBOL vmlinux 0x00000000 sock_no_sendmsg_locked -EXPORT_SYMBOL vmlinux 0x00000000 sock_no_sendpage -EXPORT_SYMBOL vmlinux 0x00000000 sock_no_sendpage_locked -EXPORT_SYMBOL vmlinux 0x00000000 sock_no_setsockopt -EXPORT_SYMBOL vmlinux 0x00000000 sock_no_shutdown -EXPORT_SYMBOL vmlinux 0x00000000 sock_no_socketpair -EXPORT_SYMBOL vmlinux 0x00000000 sock_queue_err_skb -EXPORT_SYMBOL vmlinux 0x00000000 sock_queue_rcv_skb -EXPORT_SYMBOL vmlinux 0x00000000 sock_recv_errqueue -EXPORT_SYMBOL vmlinux 0x00000000 sock_recvmsg -EXPORT_SYMBOL vmlinux 0x00000000 sock_register -EXPORT_SYMBOL vmlinux 0x00000000 sock_release -EXPORT_SYMBOL vmlinux 0x00000000 sock_rfree -EXPORT_SYMBOL vmlinux 0x00000000 sock_sendmsg -EXPORT_SYMBOL vmlinux 0x00000000 sock_setsockopt -EXPORT_SYMBOL vmlinux 0x00000000 sock_unregister -EXPORT_SYMBOL vmlinux 0x00000000 sock_wake_async -EXPORT_SYMBOL vmlinux 0x00000000 sock_wfree -EXPORT_SYMBOL vmlinux 0x00000000 sock_wmalloc -EXPORT_SYMBOL vmlinux 0x00000000 sockfd_lookup -EXPORT_SYMBOL vmlinux 0x00000000 soft_cursor -EXPORT_SYMBOL vmlinux 0x00000000 softnet_data -EXPORT_SYMBOL vmlinux 0x00000000 sort -EXPORT_SYMBOL vmlinux 0x00000000 sort_r -EXPORT_SYMBOL vmlinux 0x00000000 splice_direct_to_actor -EXPORT_SYMBOL vmlinux 0x00000000 sprintf -EXPORT_SYMBOL vmlinux 0x00000000 sscanf -EXPORT_SYMBOL vmlinux 0x00000000 starget_for_each_device -EXPORT_SYMBOL vmlinux 0x00000000 start_tty -EXPORT_SYMBOL vmlinux 0x00000000 stop_tty -EXPORT_SYMBOL vmlinux 0x00000000 strcasecmp -EXPORT_SYMBOL vmlinux 0x00000000 strcat -EXPORT_SYMBOL vmlinux 0x00000000 strchr -EXPORT_SYMBOL vmlinux 0x00000000 strchrnul -EXPORT_SYMBOL vmlinux 0x00000000 strcmp -EXPORT_SYMBOL vmlinux 0x00000000 strcpy -EXPORT_SYMBOL vmlinux 0x00000000 strcspn -EXPORT_SYMBOL vmlinux 0x00000000 stream_open -EXPORT_SYMBOL vmlinux 0x00000000 strim -EXPORT_SYMBOL vmlinux 0x00000000 string_escape_mem -EXPORT_SYMBOL vmlinux 0x00000000 string_escape_mem_ascii -EXPORT_SYMBOL vmlinux 0x00000000 string_get_size -EXPORT_SYMBOL vmlinux 0x00000000 string_unescape -EXPORT_SYMBOL vmlinux 0x00000000 strlcat -EXPORT_SYMBOL vmlinux 0x00000000 strlcpy -EXPORT_SYMBOL vmlinux 0x00000000 strlen -EXPORT_SYMBOL vmlinux 0x00000000 strncasecmp -EXPORT_SYMBOL vmlinux 0x00000000 strncat -EXPORT_SYMBOL vmlinux 0x00000000 strnchr -EXPORT_SYMBOL vmlinux 0x00000000 strncmp -EXPORT_SYMBOL vmlinux 0x00000000 strncpy -EXPORT_SYMBOL vmlinux 0x00000000 strncpy_from_user -EXPORT_SYMBOL vmlinux 0x00000000 strndup_user -EXPORT_SYMBOL vmlinux 0x00000000 strnlen -EXPORT_SYMBOL vmlinux 0x00000000 strnlen_user -EXPORT_SYMBOL vmlinux 0x00000000 strnstr -EXPORT_SYMBOL vmlinux 0x00000000 strpbrk -EXPORT_SYMBOL vmlinux 0x00000000 strrchr -EXPORT_SYMBOL vmlinux 0x00000000 strreplace -EXPORT_SYMBOL vmlinux 0x00000000 strscpy -EXPORT_SYMBOL vmlinux 0x00000000 strscpy_pad -EXPORT_SYMBOL vmlinux 0x00000000 strsep -EXPORT_SYMBOL vmlinux 0x00000000 strspn -EXPORT_SYMBOL vmlinux 0x00000000 strstr -EXPORT_SYMBOL vmlinux 0x00000000 submit_bh -EXPORT_SYMBOL vmlinux 0x00000000 submit_bio -EXPORT_SYMBOL vmlinux 0x00000000 submit_bio_wait -EXPORT_SYMBOL vmlinux 0x00000000 super_setup_bdi -EXPORT_SYMBOL vmlinux 0x00000000 super_setup_bdi_name -EXPORT_SYMBOL vmlinux 0x00000000 swake_up_all -EXPORT_SYMBOL vmlinux 0x00000000 swake_up_locked -EXPORT_SYMBOL vmlinux 0x00000000 swake_up_one -EXPORT_SYMBOL vmlinux 0x00000000 sync_blockdev -EXPORT_SYMBOL vmlinux 0x00000000 sync_dirty_buffer -EXPORT_SYMBOL vmlinux 0x00000000 sync_file_create -EXPORT_SYMBOL vmlinux 0x00000000 sync_file_get_fence -EXPORT_SYMBOL vmlinux 0x00000000 sync_filesystem -EXPORT_SYMBOL vmlinux 0x00000000 sync_inode -EXPORT_SYMBOL vmlinux 0x00000000 sync_inode_metadata -EXPORT_SYMBOL vmlinux 0x00000000 sync_inodes_sb -EXPORT_SYMBOL vmlinux 0x00000000 sync_mapping_buffers -EXPORT_SYMBOL vmlinux 0x00000000 synchronize_hardirq -EXPORT_SYMBOL vmlinux 0x00000000 synchronize_irq -EXPORT_SYMBOL vmlinux 0x00000000 synchronize_net -EXPORT_SYMBOL vmlinux 0x00000000 sys_tz -EXPORT_SYMBOL vmlinux 0x00000000 sysctl_devconf_inherit_init_net -EXPORT_SYMBOL vmlinux 0x00000000 sysctl_fb_tunnels_only_for_init_net -EXPORT_SYMBOL vmlinux 0x00000000 sysctl_max_skb_frags -EXPORT_SYMBOL vmlinux 0x00000000 sysctl_nf_log_all_netns -EXPORT_SYMBOL vmlinux 0x00000000 sysctl_optmem_max -EXPORT_SYMBOL vmlinux 0x00000000 sysctl_rmem_max -EXPORT_SYMBOL vmlinux 0x00000000 sysctl_tcp_mem -EXPORT_SYMBOL vmlinux 0x00000000 sysctl_udp_mem -EXPORT_SYMBOL vmlinux 0x00000000 sysctl_vals -EXPORT_SYMBOL vmlinux 0x00000000 sysctl_wmem_max -EXPORT_SYMBOL vmlinux 0x00000000 sysfs_format_mac -EXPORT_SYMBOL vmlinux 0x00000000 sysfs_streq -EXPORT_SYMBOL vmlinux 0x00000000 system_entering_hibernation -EXPORT_SYMBOL vmlinux 0x00000000 system_freezing_cnt -EXPORT_SYMBOL vmlinux 0x00000000 system_state -EXPORT_SYMBOL vmlinux 0x00000000 system_wq -EXPORT_SYMBOL vmlinux 0x00000000 t10_pi_type1_crc -EXPORT_SYMBOL vmlinux 0x00000000 t10_pi_type1_ip -EXPORT_SYMBOL vmlinux 0x00000000 t10_pi_type3_crc -EXPORT_SYMBOL vmlinux 0x00000000 t10_pi_type3_ip -EXPORT_SYMBOL vmlinux 0x00000000 tag_pages_for_writeback -EXPORT_SYMBOL vmlinux 0x00000000 take_dentry_name_snapshot -EXPORT_SYMBOL vmlinux 0x00000000 task_work_add -EXPORT_SYMBOL vmlinux 0x00000000 tasklet_init -EXPORT_SYMBOL vmlinux 0x00000000 tasklet_kill -EXPORT_SYMBOL vmlinux 0x00000000 tboot -EXPORT_SYMBOL vmlinux 0x00000000 tc_cleanup_flow_action -EXPORT_SYMBOL vmlinux 0x00000000 tc_setup_cb_add -EXPORT_SYMBOL vmlinux 0x00000000 tc_setup_cb_call -EXPORT_SYMBOL vmlinux 0x00000000 tc_setup_cb_destroy -EXPORT_SYMBOL vmlinux 0x00000000 tc_setup_cb_reoffload -EXPORT_SYMBOL vmlinux 0x00000000 tc_setup_cb_replace -EXPORT_SYMBOL vmlinux 0x00000000 tc_setup_flow_action -EXPORT_SYMBOL vmlinux 0x00000000 tcf_action_check_ctrlact -EXPORT_SYMBOL vmlinux 0x00000000 tcf_action_dump_1 -EXPORT_SYMBOL vmlinux 0x00000000 tcf_action_exec -EXPORT_SYMBOL vmlinux 0x00000000 tcf_action_set_ctrlact -EXPORT_SYMBOL vmlinux 0x00000000 tcf_action_update_stats -EXPORT_SYMBOL vmlinux 0x00000000 tcf_block_get -EXPORT_SYMBOL vmlinux 0x00000000 tcf_block_get_ext -EXPORT_SYMBOL vmlinux 0x00000000 tcf_block_netif_keep_dst -EXPORT_SYMBOL vmlinux 0x00000000 tcf_block_put -EXPORT_SYMBOL vmlinux 0x00000000 tcf_block_put_ext -EXPORT_SYMBOL vmlinux 0x00000000 tcf_chain_get_by_act -EXPORT_SYMBOL vmlinux 0x00000000 tcf_chain_put_by_act -EXPORT_SYMBOL vmlinux 0x00000000 tcf_classify -EXPORT_SYMBOL vmlinux 0x00000000 tcf_em_register -EXPORT_SYMBOL vmlinux 0x00000000 tcf_em_tree_destroy -EXPORT_SYMBOL vmlinux 0x00000000 tcf_em_tree_dump -EXPORT_SYMBOL vmlinux 0x00000000 tcf_em_tree_validate -EXPORT_SYMBOL vmlinux 0x00000000 tcf_em_unregister -EXPORT_SYMBOL vmlinux 0x00000000 tcf_exts_change -EXPORT_SYMBOL vmlinux 0x00000000 tcf_exts_destroy -EXPORT_SYMBOL vmlinux 0x00000000 tcf_exts_dump -EXPORT_SYMBOL vmlinux 0x00000000 tcf_exts_dump_stats -EXPORT_SYMBOL vmlinux 0x00000000 tcf_exts_num_actions -EXPORT_SYMBOL vmlinux 0x00000000 tcf_exts_validate -EXPORT_SYMBOL vmlinux 0x00000000 tcf_generic_walker -EXPORT_SYMBOL vmlinux 0x00000000 tcf_get_next_chain -EXPORT_SYMBOL vmlinux 0x00000000 tcf_get_next_proto -EXPORT_SYMBOL vmlinux 0x00000000 tcf_idr_check_alloc -EXPORT_SYMBOL vmlinux 0x00000000 tcf_idr_cleanup -EXPORT_SYMBOL vmlinux 0x00000000 tcf_idr_create -EXPORT_SYMBOL vmlinux 0x00000000 tcf_idr_create_from_flags -EXPORT_SYMBOL vmlinux 0x00000000 tcf_idr_insert -EXPORT_SYMBOL vmlinux 0x00000000 tcf_idr_search -EXPORT_SYMBOL vmlinux 0x00000000 tcf_idrinfo_destroy -EXPORT_SYMBOL vmlinux 0x00000000 tcf_queue_work -EXPORT_SYMBOL vmlinux 0x00000000 tcf_register_action -EXPORT_SYMBOL vmlinux 0x00000000 tcf_unregister_action -EXPORT_SYMBOL vmlinux 0x00000000 tcp_add_backlog -EXPORT_SYMBOL vmlinux 0x00000000 tcp_alloc_md5sig_pool -EXPORT_SYMBOL vmlinux 0x00000000 tcp_check_req -EXPORT_SYMBOL vmlinux 0x00000000 tcp_child_process -EXPORT_SYMBOL vmlinux 0x00000000 tcp_close -EXPORT_SYMBOL vmlinux 0x00000000 tcp_conn_request -EXPORT_SYMBOL vmlinux 0x00000000 tcp_connect -EXPORT_SYMBOL vmlinux 0x00000000 tcp_create_openreq_child -EXPORT_SYMBOL vmlinux 0x00000000 tcp_disconnect -EXPORT_SYMBOL vmlinux 0x00000000 tcp_enter_cwr -EXPORT_SYMBOL vmlinux 0x00000000 tcp_enter_quickack_mode -EXPORT_SYMBOL vmlinux 0x00000000 tcp_fastopen_defer_connect -EXPORT_SYMBOL vmlinux 0x00000000 tcp_filter -EXPORT_SYMBOL vmlinux 0x00000000 tcp_get_cookie_sock -EXPORT_SYMBOL vmlinux 0x00000000 tcp_get_md5sig_pool -EXPORT_SYMBOL vmlinux 0x00000000 tcp_getsockopt -EXPORT_SYMBOL vmlinux 0x00000000 tcp_gro_complete -EXPORT_SYMBOL vmlinux 0x00000000 tcp_hashinfo -EXPORT_SYMBOL vmlinux 0x00000000 tcp_have_smc -EXPORT_SYMBOL vmlinux 0x00000000 tcp_init_sock -EXPORT_SYMBOL vmlinux 0x00000000 tcp_initialize_rcv_mss -EXPORT_SYMBOL vmlinux 0x00000000 tcp_ioctl -EXPORT_SYMBOL vmlinux 0x00000000 tcp_make_synack -EXPORT_SYMBOL vmlinux 0x00000000 tcp_md5_do_add -EXPORT_SYMBOL vmlinux 0x00000000 tcp_md5_do_del -EXPORT_SYMBOL vmlinux 0x00000000 tcp_md5_hash_key -EXPORT_SYMBOL vmlinux 0x00000000 tcp_md5_hash_skb_data -EXPORT_SYMBOL vmlinux 0x00000000 tcp_md5_needed -EXPORT_SYMBOL vmlinux 0x00000000 tcp_memory_allocated -EXPORT_SYMBOL vmlinux 0x00000000 tcp_mmap -EXPORT_SYMBOL vmlinux 0x00000000 tcp_mss_to_mtu -EXPORT_SYMBOL vmlinux 0x00000000 tcp_mtup_init -EXPORT_SYMBOL vmlinux 0x00000000 tcp_openreq_init_rwin -EXPORT_SYMBOL vmlinux 0x00000000 tcp_parse_md5sig_option -EXPORT_SYMBOL vmlinux 0x00000000 tcp_parse_options -EXPORT_SYMBOL vmlinux 0x00000000 tcp_peek_len -EXPORT_SYMBOL vmlinux 0x00000000 tcp_poll -EXPORT_SYMBOL vmlinux 0x00000000 tcp_prot -EXPORT_SYMBOL vmlinux 0x00000000 tcp_rcv_established -EXPORT_SYMBOL vmlinux 0x00000000 tcp_rcv_state_process -EXPORT_SYMBOL vmlinux 0x00000000 tcp_read_sock -EXPORT_SYMBOL vmlinux 0x00000000 tcp_recvmsg -EXPORT_SYMBOL vmlinux 0x00000000 tcp_release_cb -EXPORT_SYMBOL vmlinux 0x00000000 tcp_req_err -EXPORT_SYMBOL vmlinux 0x00000000 tcp_rtx_synack -EXPORT_SYMBOL vmlinux 0x00000000 tcp_rx_skb_cache_key -EXPORT_SYMBOL vmlinux 0x00000000 tcp_select_initial_window -EXPORT_SYMBOL vmlinux 0x00000000 tcp_sendmsg -EXPORT_SYMBOL vmlinux 0x00000000 tcp_sendpage -EXPORT_SYMBOL vmlinux 0x00000000 tcp_seq_next -EXPORT_SYMBOL vmlinux 0x00000000 tcp_seq_start -EXPORT_SYMBOL vmlinux 0x00000000 tcp_seq_stop -EXPORT_SYMBOL vmlinux 0x00000000 tcp_set_rcvlowat -EXPORT_SYMBOL vmlinux 0x00000000 tcp_setsockopt -EXPORT_SYMBOL vmlinux 0x00000000 tcp_shutdown -EXPORT_SYMBOL vmlinux 0x00000000 tcp_simple_retransmit -EXPORT_SYMBOL vmlinux 0x00000000 tcp_sockets_allocated -EXPORT_SYMBOL vmlinux 0x00000000 tcp_splice_read -EXPORT_SYMBOL vmlinux 0x00000000 tcp_syn_ack_timeout -EXPORT_SYMBOL vmlinux 0x00000000 tcp_sync_mss -EXPORT_SYMBOL vmlinux 0x00000000 tcp_time_wait -EXPORT_SYMBOL vmlinux 0x00000000 tcp_timewait_state_process -EXPORT_SYMBOL vmlinux 0x00000000 tcp_tx_delay_enabled -EXPORT_SYMBOL vmlinux 0x00000000 tcp_v4_conn_request -EXPORT_SYMBOL vmlinux 0x00000000 tcp_v4_connect -EXPORT_SYMBOL vmlinux 0x00000000 tcp_v4_destroy_sock -EXPORT_SYMBOL vmlinux 0x00000000 tcp_v4_do_rcv -EXPORT_SYMBOL vmlinux 0x00000000 tcp_v4_md5_hash_skb -EXPORT_SYMBOL vmlinux 0x00000000 tcp_v4_md5_lookup -EXPORT_SYMBOL vmlinux 0x00000000 tcp_v4_mtu_reduced -EXPORT_SYMBOL vmlinux 0x00000000 tcp_v4_send_check -EXPORT_SYMBOL vmlinux 0x00000000 tcp_v4_syn_recv_sock -EXPORT_SYMBOL vmlinux 0x00000000 test_taint -EXPORT_SYMBOL vmlinux 0x00000000 textsearch_destroy -EXPORT_SYMBOL vmlinux 0x00000000 textsearch_find_continuous -EXPORT_SYMBOL vmlinux 0x00000000 textsearch_prepare -EXPORT_SYMBOL vmlinux 0x00000000 textsearch_register -EXPORT_SYMBOL vmlinux 0x00000000 textsearch_unregister -EXPORT_SYMBOL vmlinux 0x00000000 thaw_bdev -EXPORT_SYMBOL vmlinux 0x00000000 thaw_super -EXPORT_SYMBOL vmlinux 0x00000000 thermal_cdev_update -EXPORT_SYMBOL vmlinux 0x00000000 this_cpu_off -EXPORT_SYMBOL vmlinux 0x00000000 time64_to_tm -EXPORT_SYMBOL vmlinux 0x00000000 timer_reduce -EXPORT_SYMBOL vmlinux 0x00000000 timespec64_to_jiffies -EXPORT_SYMBOL vmlinux 0x00000000 timestamp_truncate -EXPORT_SYMBOL vmlinux 0x00000000 to_nd_btt -EXPORT_SYMBOL vmlinux 0x00000000 to_nd_dax -EXPORT_SYMBOL vmlinux 0x00000000 to_nd_pfn -EXPORT_SYMBOL vmlinux 0x00000000 to_ndd -EXPORT_SYMBOL vmlinux 0x00000000 topology_phys_to_logical_die -EXPORT_SYMBOL vmlinux 0x00000000 topology_phys_to_logical_pkg -EXPORT_SYMBOL vmlinux 0x00000000 touch_atime -EXPORT_SYMBOL vmlinux 0x00000000 touch_buffer -EXPORT_SYMBOL vmlinux 0x00000000 touch_softlockup_watchdog -EXPORT_SYMBOL vmlinux 0x00000000 touchscreen_parse_properties -EXPORT_SYMBOL vmlinux 0x00000000 touchscreen_report_pos -EXPORT_SYMBOL vmlinux 0x00000000 touchscreen_set_mt_pos -EXPORT_SYMBOL vmlinux 0x00000000 trace_print_array_seq -EXPORT_SYMBOL vmlinux 0x00000000 trace_print_flags_seq -EXPORT_SYMBOL vmlinux 0x00000000 trace_print_hex_dump_seq -EXPORT_SYMBOL vmlinux 0x00000000 trace_print_hex_seq -EXPORT_SYMBOL vmlinux 0x00000000 trace_print_symbols_seq -EXPORT_SYMBOL vmlinux 0x00000000 trace_raw_output_prep -EXPORT_SYMBOL vmlinux 0x00000000 trace_seq_hex_dump -EXPORT_SYMBOL vmlinux 0x00000000 translation_pre_enabled -EXPORT_SYMBOL vmlinux 0x00000000 truncate_inode_pages -EXPORT_SYMBOL vmlinux 0x00000000 truncate_inode_pages_final -EXPORT_SYMBOL vmlinux 0x00000000 truncate_inode_pages_range -EXPORT_SYMBOL vmlinux 0x00000000 truncate_pagecache -EXPORT_SYMBOL vmlinux 0x00000000 truncate_pagecache_range -EXPORT_SYMBOL vmlinux 0x00000000 truncate_setsize -EXPORT_SYMBOL vmlinux 0x00000000 try_lookup_one_len -EXPORT_SYMBOL vmlinux 0x00000000 try_module_get -EXPORT_SYMBOL vmlinux 0x00000000 try_offline_node -EXPORT_SYMBOL vmlinux 0x00000000 try_to_del_timer_sync -EXPORT_SYMBOL vmlinux 0x00000000 try_to_free_buffers -EXPORT_SYMBOL vmlinux 0x00000000 try_to_release_page -EXPORT_SYMBOL vmlinux 0x00000000 try_to_writeback_inodes_sb -EXPORT_SYMBOL vmlinux 0x00000000 try_wait_for_completion -EXPORT_SYMBOL vmlinux 0x00000000 tsc_khz -EXPORT_SYMBOL vmlinux 0x00000000 tso_build_data -EXPORT_SYMBOL vmlinux 0x00000000 tso_build_hdr -EXPORT_SYMBOL vmlinux 0x00000000 tso_count_descs -EXPORT_SYMBOL vmlinux 0x00000000 tso_start -EXPORT_SYMBOL vmlinux 0x00000000 tty_chars_in_buffer -EXPORT_SYMBOL vmlinux 0x00000000 tty_check_change -EXPORT_SYMBOL vmlinux 0x00000000 tty_devnum -EXPORT_SYMBOL vmlinux 0x00000000 tty_do_resize -EXPORT_SYMBOL vmlinux 0x00000000 tty_driver_flush_buffer -EXPORT_SYMBOL vmlinux 0x00000000 tty_driver_kref_put -EXPORT_SYMBOL vmlinux 0x00000000 tty_flip_buffer_push -EXPORT_SYMBOL vmlinux 0x00000000 tty_hangup -EXPORT_SYMBOL vmlinux 0x00000000 tty_hung_up_p -EXPORT_SYMBOL vmlinux 0x00000000 tty_insert_flip_string_fixed_flag -EXPORT_SYMBOL vmlinux 0x00000000 tty_insert_flip_string_flags -EXPORT_SYMBOL vmlinux 0x00000000 tty_kref_put -EXPORT_SYMBOL vmlinux 0x00000000 tty_lock -EXPORT_SYMBOL vmlinux 0x00000000 tty_name -EXPORT_SYMBOL vmlinux 0x00000000 tty_port_alloc_xmit_buf -EXPORT_SYMBOL vmlinux 0x00000000 tty_port_block_til_ready -EXPORT_SYMBOL vmlinux 0x00000000 tty_port_carrier_raised -EXPORT_SYMBOL vmlinux 0x00000000 tty_port_close -EXPORT_SYMBOL vmlinux 0x00000000 tty_port_close_end -EXPORT_SYMBOL vmlinux 0x00000000 tty_port_close_start -EXPORT_SYMBOL vmlinux 0x00000000 tty_port_destroy -EXPORT_SYMBOL vmlinux 0x00000000 tty_port_free_xmit_buf -EXPORT_SYMBOL vmlinux 0x00000000 tty_port_hangup -EXPORT_SYMBOL vmlinux 0x00000000 tty_port_init -EXPORT_SYMBOL vmlinux 0x00000000 tty_port_lower_dtr_rts -EXPORT_SYMBOL vmlinux 0x00000000 tty_port_open -EXPORT_SYMBOL vmlinux 0x00000000 tty_port_put -EXPORT_SYMBOL vmlinux 0x00000000 tty_port_raise_dtr_rts -EXPORT_SYMBOL vmlinux 0x00000000 tty_port_tty_get -EXPORT_SYMBOL vmlinux 0x00000000 tty_port_tty_set -EXPORT_SYMBOL vmlinux 0x00000000 tty_register_device -EXPORT_SYMBOL vmlinux 0x00000000 tty_register_driver -EXPORT_SYMBOL vmlinux 0x00000000 tty_register_ldisc -EXPORT_SYMBOL vmlinux 0x00000000 tty_schedule_flip -EXPORT_SYMBOL vmlinux 0x00000000 tty_set_operations -EXPORT_SYMBOL vmlinux 0x00000000 tty_std_termios -EXPORT_SYMBOL vmlinux 0x00000000 tty_termios_baud_rate -EXPORT_SYMBOL vmlinux 0x00000000 tty_termios_copy_hw -EXPORT_SYMBOL vmlinux 0x00000000 tty_termios_hw_change -EXPORT_SYMBOL vmlinux 0x00000000 tty_termios_input_baud_rate -EXPORT_SYMBOL vmlinux 0x00000000 tty_throttle -EXPORT_SYMBOL vmlinux 0x00000000 tty_unlock -EXPORT_SYMBOL vmlinux 0x00000000 tty_unregister_device -EXPORT_SYMBOL vmlinux 0x00000000 tty_unregister_driver -EXPORT_SYMBOL vmlinux 0x00000000 tty_unregister_ldisc -EXPORT_SYMBOL vmlinux 0x00000000 tty_unthrottle -EXPORT_SYMBOL vmlinux 0x00000000 tty_vhangup -EXPORT_SYMBOL vmlinux 0x00000000 tty_wait_until_sent -EXPORT_SYMBOL vmlinux 0x00000000 tty_write_room -EXPORT_SYMBOL vmlinux 0x00000000 tun_is_xdp_frame -EXPORT_SYMBOL vmlinux 0x00000000 tun_ptr_to_xdp -EXPORT_SYMBOL vmlinux 0x00000000 tun_xdp_to_ptr -EXPORT_SYMBOL vmlinux 0x00000000 twl6030_interrupt_mask -EXPORT_SYMBOL vmlinux 0x00000000 twl6030_interrupt_unmask -EXPORT_SYMBOL vmlinux 0x00000000 twl6030_mmc_card_detect -EXPORT_SYMBOL vmlinux 0x00000000 twl6030_mmc_card_detect_config -EXPORT_SYMBOL vmlinux 0x00000000 twl6040_clear_bits -EXPORT_SYMBOL vmlinux 0x00000000 twl6040_get_pll -EXPORT_SYMBOL vmlinux 0x00000000 twl6040_get_sysclk -EXPORT_SYMBOL vmlinux 0x00000000 twl6040_get_vibralr_status -EXPORT_SYMBOL vmlinux 0x00000000 twl6040_power -EXPORT_SYMBOL vmlinux 0x00000000 twl6040_reg_read -EXPORT_SYMBOL vmlinux 0x00000000 twl6040_reg_write -EXPORT_SYMBOL vmlinux 0x00000000 twl6040_set_bits -EXPORT_SYMBOL vmlinux 0x00000000 twl6040_set_pll -EXPORT_SYMBOL vmlinux 0x00000000 twl_i2c_read -EXPORT_SYMBOL vmlinux 0x00000000 twl_i2c_write -EXPORT_SYMBOL vmlinux 0x00000000 twl_rev -EXPORT_SYMBOL vmlinux 0x00000000 twl_set_regcache_bypass -EXPORT_SYMBOL vmlinux 0x00000000 uart_add_one_port -EXPORT_SYMBOL vmlinux 0x00000000 uart_get_baud_rate -EXPORT_SYMBOL vmlinux 0x00000000 uart_get_divisor -EXPORT_SYMBOL vmlinux 0x00000000 uart_match_port -EXPORT_SYMBOL vmlinux 0x00000000 uart_register_driver -EXPORT_SYMBOL vmlinux 0x00000000 uart_remove_one_port -EXPORT_SYMBOL vmlinux 0x00000000 uart_resume_port -EXPORT_SYMBOL vmlinux 0x00000000 uart_suspend_port -EXPORT_SYMBOL vmlinux 0x00000000 uart_unregister_driver -EXPORT_SYMBOL vmlinux 0x00000000 uart_update_timeout -EXPORT_SYMBOL vmlinux 0x00000000 uart_write_wakeup -EXPORT_SYMBOL vmlinux 0x00000000 ucs2_as_utf8 -EXPORT_SYMBOL vmlinux 0x00000000 ucs2_strlen -EXPORT_SYMBOL vmlinux 0x00000000 ucs2_strncmp -EXPORT_SYMBOL vmlinux 0x00000000 ucs2_strnlen -EXPORT_SYMBOL vmlinux 0x00000000 ucs2_strsize -EXPORT_SYMBOL vmlinux 0x00000000 ucs2_utf8size -EXPORT_SYMBOL vmlinux 0x00000000 udp6_csum_init -EXPORT_SYMBOL vmlinux 0x00000000 udp6_seq_ops -EXPORT_SYMBOL vmlinux 0x00000000 udp6_set_csum -EXPORT_SYMBOL vmlinux 0x00000000 udp_disconnect -EXPORT_SYMBOL vmlinux 0x00000000 udp_encap_enable -EXPORT_SYMBOL vmlinux 0x00000000 udp_flow_hashrnd -EXPORT_SYMBOL vmlinux 0x00000000 udp_flush_pending_frames -EXPORT_SYMBOL vmlinux 0x00000000 udp_gro_complete -EXPORT_SYMBOL vmlinux 0x00000000 udp_gro_receive -EXPORT_SYMBOL vmlinux 0x00000000 udp_ioctl -EXPORT_SYMBOL vmlinux 0x00000000 udp_lib_get_port -EXPORT_SYMBOL vmlinux 0x00000000 udp_lib_getsockopt -EXPORT_SYMBOL vmlinux 0x00000000 udp_lib_rehash -EXPORT_SYMBOL vmlinux 0x00000000 udp_lib_setsockopt -EXPORT_SYMBOL vmlinux 0x00000000 udp_lib_unhash -EXPORT_SYMBOL vmlinux 0x00000000 udp_memory_allocated -EXPORT_SYMBOL vmlinux 0x00000000 udp_poll -EXPORT_SYMBOL vmlinux 0x00000000 udp_pre_connect -EXPORT_SYMBOL vmlinux 0x00000000 udp_prot -EXPORT_SYMBOL vmlinux 0x00000000 udp_push_pending_frames -EXPORT_SYMBOL vmlinux 0x00000000 udp_sendmsg -EXPORT_SYMBOL vmlinux 0x00000000 udp_seq_next -EXPORT_SYMBOL vmlinux 0x00000000 udp_seq_ops -EXPORT_SYMBOL vmlinux 0x00000000 udp_seq_start -EXPORT_SYMBOL vmlinux 0x00000000 udp_seq_stop -EXPORT_SYMBOL vmlinux 0x00000000 udp_set_csum -EXPORT_SYMBOL vmlinux 0x00000000 udp_sk_rx_dst_set -EXPORT_SYMBOL vmlinux 0x00000000 udp_skb_destructor -EXPORT_SYMBOL vmlinux 0x00000000 udp_table -EXPORT_SYMBOL vmlinux 0x00000000 udplite_prot -EXPORT_SYMBOL vmlinux 0x00000000 udplite_table -EXPORT_SYMBOL vmlinux 0x00000000 udpv6_encap_enable -EXPORT_SYMBOL vmlinux 0x00000000 unix_attach_fds -EXPORT_SYMBOL vmlinux 0x00000000 unix_destruct_scm -EXPORT_SYMBOL vmlinux 0x00000000 unix_detach_fds -EXPORT_SYMBOL vmlinux 0x00000000 unix_gc_lock -EXPORT_SYMBOL vmlinux 0x00000000 unix_get_socket -EXPORT_SYMBOL vmlinux 0x00000000 unix_tot_inflight -EXPORT_SYMBOL vmlinux 0x00000000 unload_nls -EXPORT_SYMBOL vmlinux 0x00000000 unlock_buffer -EXPORT_SYMBOL vmlinux 0x00000000 unlock_new_inode -EXPORT_SYMBOL vmlinux 0x00000000 unlock_page -EXPORT_SYMBOL vmlinux 0x00000000 unlock_page_memcg -EXPORT_SYMBOL vmlinux 0x00000000 unlock_rename -EXPORT_SYMBOL vmlinux 0x00000000 unlock_two_nondirectories -EXPORT_SYMBOL vmlinux 0x00000000 unmap_mapping_range -EXPORT_SYMBOL vmlinux 0x00000000 unpin_user_pages -EXPORT_SYMBOL vmlinux 0x00000000 unpin_user_pages_dirty_lock -EXPORT_SYMBOL vmlinux 0x00000000 unpoison_memory -EXPORT_SYMBOL vmlinux 0x00000000 unregister_acpi_notifier -EXPORT_SYMBOL vmlinux 0x00000000 unregister_binfmt -EXPORT_SYMBOL vmlinux 0x00000000 unregister_blkdev -EXPORT_SYMBOL vmlinux 0x00000000 unregister_blocking_lsm_notifier -EXPORT_SYMBOL vmlinux 0x00000000 unregister_cdrom -EXPORT_SYMBOL vmlinux 0x00000000 unregister_chrdev_region -EXPORT_SYMBOL vmlinux 0x00000000 unregister_console -EXPORT_SYMBOL vmlinux 0x00000000 unregister_dcbevent_notifier -EXPORT_SYMBOL vmlinux 0x00000000 unregister_fib_notifier -EXPORT_SYMBOL vmlinux 0x00000000 unregister_filesystem -EXPORT_SYMBOL vmlinux 0x00000000 unregister_framebuffer -EXPORT_SYMBOL vmlinux 0x00000000 unregister_inet6addr_notifier -EXPORT_SYMBOL vmlinux 0x00000000 unregister_inet6addr_validator_notifier -EXPORT_SYMBOL vmlinux 0x00000000 unregister_inetaddr_notifier -EXPORT_SYMBOL vmlinux 0x00000000 unregister_inetaddr_validator_notifier -EXPORT_SYMBOL vmlinux 0x00000000 unregister_key_type -EXPORT_SYMBOL vmlinux 0x00000000 unregister_kmmio_probe -EXPORT_SYMBOL vmlinux 0x00000000 unregister_md_cluster_operations -EXPORT_SYMBOL vmlinux 0x00000000 unregister_md_personality -EXPORT_SYMBOL vmlinux 0x00000000 unregister_memory_notifier -EXPORT_SYMBOL vmlinux 0x00000000 unregister_mii_timestamper -EXPORT_SYMBOL vmlinux 0x00000000 unregister_mii_tstamp_controller -EXPORT_SYMBOL vmlinux 0x00000000 unregister_module_notifier -EXPORT_SYMBOL vmlinux 0x00000000 unregister_netdev -EXPORT_SYMBOL vmlinux 0x00000000 unregister_netdevice_many -EXPORT_SYMBOL vmlinux 0x00000000 unregister_netdevice_notifier -EXPORT_SYMBOL vmlinux 0x00000000 unregister_netdevice_notifier_dev_net -EXPORT_SYMBOL vmlinux 0x00000000 unregister_netdevice_notifier_net -EXPORT_SYMBOL vmlinux 0x00000000 unregister_netdevice_queue -EXPORT_SYMBOL vmlinux 0x00000000 unregister_nls -EXPORT_SYMBOL vmlinux 0x00000000 unregister_qdisc -EXPORT_SYMBOL vmlinux 0x00000000 unregister_quota_format -EXPORT_SYMBOL vmlinux 0x00000000 unregister_reboot_notifier -EXPORT_SYMBOL vmlinux 0x00000000 unregister_restart_handler -EXPORT_SYMBOL vmlinux 0x00000000 unregister_shrinker -EXPORT_SYMBOL vmlinux 0x00000000 unregister_sysctl_table -EXPORT_SYMBOL vmlinux 0x00000000 unregister_sysrq_key -EXPORT_SYMBOL vmlinux 0x00000000 unregister_tcf_proto_ops -EXPORT_SYMBOL vmlinux 0x00000000 up -EXPORT_SYMBOL vmlinux 0x00000000 up_read -EXPORT_SYMBOL vmlinux 0x00000000 up_write -EXPORT_SYMBOL vmlinux 0x00000000 update_devfreq -EXPORT_SYMBOL vmlinux 0x00000000 update_region -EXPORT_SYMBOL vmlinux 0x00000000 user_path_at_empty -EXPORT_SYMBOL vmlinux 0x00000000 user_path_create -EXPORT_SYMBOL vmlinux 0x00000000 user_revoke -EXPORT_SYMBOL vmlinux 0x00000000 usleep_range -EXPORT_SYMBOL vmlinux 0x00000000 utf16s_to_utf8s -EXPORT_SYMBOL vmlinux 0x00000000 utf32_to_utf8 -EXPORT_SYMBOL vmlinux 0x00000000 utf8_casefold -EXPORT_SYMBOL vmlinux 0x00000000 utf8_load -EXPORT_SYMBOL vmlinux 0x00000000 utf8_normalize -EXPORT_SYMBOL vmlinux 0x00000000 utf8_strncasecmp -EXPORT_SYMBOL vmlinux 0x00000000 utf8_strncasecmp_folded -EXPORT_SYMBOL vmlinux 0x00000000 utf8_strncmp -EXPORT_SYMBOL vmlinux 0x00000000 utf8_to_utf32 -EXPORT_SYMBOL vmlinux 0x00000000 utf8_unload -EXPORT_SYMBOL vmlinux 0x00000000 utf8_validate -EXPORT_SYMBOL vmlinux 0x00000000 utf8agemax -EXPORT_SYMBOL vmlinux 0x00000000 utf8agemin -EXPORT_SYMBOL vmlinux 0x00000000 utf8byte -EXPORT_SYMBOL vmlinux 0x00000000 utf8cursor -EXPORT_SYMBOL vmlinux 0x00000000 utf8len -EXPORT_SYMBOL vmlinux 0x00000000 utf8nagemax -EXPORT_SYMBOL vmlinux 0x00000000 utf8nagemin -EXPORT_SYMBOL vmlinux 0x00000000 utf8ncursor -EXPORT_SYMBOL vmlinux 0x00000000 utf8nfdi -EXPORT_SYMBOL vmlinux 0x00000000 utf8nfdicf -EXPORT_SYMBOL vmlinux 0x00000000 utf8nlen -EXPORT_SYMBOL vmlinux 0x00000000 utf8s_to_utf16s -EXPORT_SYMBOL vmlinux 0x00000000 utf8version_is_supported -EXPORT_SYMBOL vmlinux 0x00000000 utf8version_latest -EXPORT_SYMBOL vmlinux 0x00000000 uuid_is_valid -EXPORT_SYMBOL vmlinux 0x00000000 uuid_null -EXPORT_SYMBOL vmlinux 0x00000000 uuid_parse -EXPORT_SYMBOL vmlinux 0x00000000 vc_cons -EXPORT_SYMBOL vmlinux 0x00000000 vc_resize -EXPORT_SYMBOL vmlinux 0x00000000 verify_spi_info -EXPORT_SYMBOL vmlinux 0x00000000 vesa_modes -EXPORT_SYMBOL vmlinux 0x00000000 vfio_info_add_capability -EXPORT_SYMBOL vmlinux 0x00000000 vfio_info_cap_shift -EXPORT_SYMBOL vmlinux 0x00000000 vfio_pin_pages -EXPORT_SYMBOL vmlinux 0x00000000 vfio_register_notifier -EXPORT_SYMBOL vmlinux 0x00000000 vfio_set_irqs_validate_and_prepare -EXPORT_SYMBOL vmlinux 0x00000000 vfio_unpin_pages -EXPORT_SYMBOL vmlinux 0x00000000 vfio_unregister_notifier -EXPORT_SYMBOL vmlinux 0x00000000 vfree -EXPORT_SYMBOL vmlinux 0x00000000 vfs_clone_file_range -EXPORT_SYMBOL vmlinux 0x00000000 vfs_copy_file_range -EXPORT_SYMBOL vmlinux 0x00000000 vfs_create -EXPORT_SYMBOL vmlinux 0x00000000 vfs_create_mount -EXPORT_SYMBOL vmlinux 0x00000000 vfs_dedupe_file_range -EXPORT_SYMBOL vmlinux 0x00000000 vfs_dedupe_file_range_one -EXPORT_SYMBOL vmlinux 0x00000000 vfs_dup_fs_context -EXPORT_SYMBOL vmlinux 0x00000000 vfs_fadvise -EXPORT_SYMBOL vmlinux 0x00000000 vfs_fsync -EXPORT_SYMBOL vmlinux 0x00000000 vfs_fsync_range -EXPORT_SYMBOL vmlinux 0x00000000 vfs_get_fsid -EXPORT_SYMBOL vmlinux 0x00000000 vfs_get_link -EXPORT_SYMBOL vmlinux 0x00000000 vfs_get_super -EXPORT_SYMBOL vmlinux 0x00000000 vfs_get_tree -EXPORT_SYMBOL vmlinux 0x00000000 vfs_getattr -EXPORT_SYMBOL vmlinux 0x00000000 vfs_getattr_nosec -EXPORT_SYMBOL vmlinux 0x00000000 vfs_ioc_fssetxattr_check -EXPORT_SYMBOL vmlinux 0x00000000 vfs_ioc_setflags_prepare -EXPORT_SYMBOL vmlinux 0x00000000 vfs_iocb_iter_read -EXPORT_SYMBOL vmlinux 0x00000000 vfs_iocb_iter_write -EXPORT_SYMBOL vmlinux 0x00000000 vfs_ioctl -EXPORT_SYMBOL vmlinux 0x00000000 vfs_iter_read -EXPORT_SYMBOL vmlinux 0x00000000 vfs_iter_write -EXPORT_SYMBOL vmlinux 0x00000000 vfs_link -EXPORT_SYMBOL vmlinux 0x00000000 vfs_llseek -EXPORT_SYMBOL vmlinux 0x00000000 vfs_mkdir -EXPORT_SYMBOL vmlinux 0x00000000 vfs_mknod -EXPORT_SYMBOL vmlinux 0x00000000 vfs_mkobj -EXPORT_SYMBOL vmlinux 0x00000000 vfs_parse_fs_param -EXPORT_SYMBOL vmlinux 0x00000000 vfs_parse_fs_string -EXPORT_SYMBOL vmlinux 0x00000000 vfs_path_lookup -EXPORT_SYMBOL vmlinux 0x00000000 vfs_readlink -EXPORT_SYMBOL vmlinux 0x00000000 vfs_rename -EXPORT_SYMBOL vmlinux 0x00000000 vfs_rmdir -EXPORT_SYMBOL vmlinux 0x00000000 vfs_setpos -EXPORT_SYMBOL vmlinux 0x00000000 vfs_statfs -EXPORT_SYMBOL vmlinux 0x00000000 vfs_statx -EXPORT_SYMBOL vmlinux 0x00000000 vfs_statx_fd -EXPORT_SYMBOL vmlinux 0x00000000 vfs_symlink -EXPORT_SYMBOL vmlinux 0x00000000 vfs_tmpfile -EXPORT_SYMBOL vmlinux 0x00000000 vfs_unlink -EXPORT_SYMBOL vmlinux 0x00000000 vfs_whiteout -EXPORT_SYMBOL vmlinux 0x00000000 vga_client_register -EXPORT_SYMBOL vmlinux 0x00000000 vga_con -EXPORT_SYMBOL vmlinux 0x00000000 vga_get -EXPORT_SYMBOL vmlinux 0x00000000 vga_put -EXPORT_SYMBOL vmlinux 0x00000000 vga_remove_vgacon -EXPORT_SYMBOL vmlinux 0x00000000 vga_set_legacy_decoding -EXPORT_SYMBOL vmlinux 0x00000000 vga_switcheroo_client_fb_set -EXPORT_SYMBOL vmlinux 0x00000000 vga_switcheroo_client_probe_defer -EXPORT_SYMBOL vmlinux 0x00000000 vga_switcheroo_fini_domain_pm_ops -EXPORT_SYMBOL vmlinux 0x00000000 vga_switcheroo_get_client_state -EXPORT_SYMBOL vmlinux 0x00000000 vga_switcheroo_handler_flags -EXPORT_SYMBOL vmlinux 0x00000000 vga_switcheroo_init_domain_pm_ops -EXPORT_SYMBOL vmlinux 0x00000000 vga_switcheroo_lock_ddc -EXPORT_SYMBOL vmlinux 0x00000000 vga_switcheroo_process_delayed_switch -EXPORT_SYMBOL vmlinux 0x00000000 vga_switcheroo_register_audio_client -EXPORT_SYMBOL vmlinux 0x00000000 vga_switcheroo_register_client -EXPORT_SYMBOL vmlinux 0x00000000 vga_switcheroo_register_handler -EXPORT_SYMBOL vmlinux 0x00000000 vga_switcheroo_unlock_ddc -EXPORT_SYMBOL vmlinux 0x00000000 vga_switcheroo_unregister_client -EXPORT_SYMBOL vmlinux 0x00000000 vga_switcheroo_unregister_handler -EXPORT_SYMBOL vmlinux 0x00000000 vga_tryget -EXPORT_SYMBOL vmlinux 0x00000000 vgacon_text_force -EXPORT_SYMBOL vmlinux 0x00000000 vif_device_init -EXPORT_SYMBOL vmlinux 0x00000000 vlan_dev_real_dev -EXPORT_SYMBOL vmlinux 0x00000000 vlan_dev_vlan_id -EXPORT_SYMBOL vmlinux 0x00000000 vlan_dev_vlan_proto -EXPORT_SYMBOL vmlinux 0x00000000 vlan_filter_drop_vids -EXPORT_SYMBOL vmlinux 0x00000000 vlan_filter_push_vids -EXPORT_SYMBOL vmlinux 0x00000000 vlan_for_each -EXPORT_SYMBOL vmlinux 0x00000000 vlan_ioctl_set -EXPORT_SYMBOL vmlinux 0x00000000 vlan_uses_dev -EXPORT_SYMBOL vmlinux 0x00000000 vlan_vid_add -EXPORT_SYMBOL vmlinux 0x00000000 vlan_vid_del -EXPORT_SYMBOL vmlinux 0x00000000 vlan_vids_add_by_dev -EXPORT_SYMBOL vmlinux 0x00000000 vlan_vids_del_by_dev -EXPORT_SYMBOL vmlinux 0x00000000 vm_brk -EXPORT_SYMBOL vmlinux 0x00000000 vm_brk_flags -EXPORT_SYMBOL vmlinux 0x00000000 vm_event_states -EXPORT_SYMBOL vmlinux 0x00000000 vm_get_page_prot -EXPORT_SYMBOL vmlinux 0x00000000 vm_insert_page -EXPORT_SYMBOL vmlinux 0x00000000 vm_iomap_memory -EXPORT_SYMBOL vmlinux 0x00000000 vm_map_pages -EXPORT_SYMBOL vmlinux 0x00000000 vm_map_pages_zero -EXPORT_SYMBOL vmlinux 0x00000000 vm_map_ram -EXPORT_SYMBOL vmlinux 0x00000000 vm_mmap -EXPORT_SYMBOL vmlinux 0x00000000 vm_munmap -EXPORT_SYMBOL vmlinux 0x00000000 vm_node_stat -EXPORT_SYMBOL vmlinux 0x00000000 vm_numa_stat -EXPORT_SYMBOL vmlinux 0x00000000 vm_unmap_ram -EXPORT_SYMBOL vmlinux 0x00000000 vm_zone_stat -EXPORT_SYMBOL vmlinux 0x00000000 vmalloc -EXPORT_SYMBOL vmlinux 0x00000000 vmalloc_32 -EXPORT_SYMBOL vmlinux 0x00000000 vmalloc_32_user -EXPORT_SYMBOL vmlinux 0x00000000 vmalloc_base -EXPORT_SYMBOL vmlinux 0x00000000 vmalloc_node -EXPORT_SYMBOL vmlinux 0x00000000 vmalloc_to_page -EXPORT_SYMBOL vmlinux 0x00000000 vmalloc_to_pfn -EXPORT_SYMBOL vmlinux 0x00000000 vmalloc_user -EXPORT_SYMBOL vmlinux 0x00000000 vmalloc_user_node_flags -EXPORT_SYMBOL vmlinux 0x00000000 vmap -EXPORT_SYMBOL vmlinux 0x00000000 vmcore_add_device_dump -EXPORT_SYMBOL vmlinux 0x00000000 vme_alloc_consistent -EXPORT_SYMBOL vmlinux 0x00000000 vme_bus_error_handler -EXPORT_SYMBOL vmlinux 0x00000000 vme_bus_num -EXPORT_SYMBOL vmlinux 0x00000000 vme_bus_type -EXPORT_SYMBOL vmlinux 0x00000000 vme_check_window -EXPORT_SYMBOL vmlinux 0x00000000 vme_dma_free -EXPORT_SYMBOL vmlinux 0x00000000 vme_dma_free_attribute -EXPORT_SYMBOL vmlinux 0x00000000 vme_dma_list_add -EXPORT_SYMBOL vmlinux 0x00000000 vme_dma_list_exec -EXPORT_SYMBOL vmlinux 0x00000000 vme_dma_list_free -EXPORT_SYMBOL vmlinux 0x00000000 vme_dma_pattern_attribute -EXPORT_SYMBOL vmlinux 0x00000000 vme_dma_pci_attribute -EXPORT_SYMBOL vmlinux 0x00000000 vme_dma_request -EXPORT_SYMBOL vmlinux 0x00000000 vme_dma_vme_attribute -EXPORT_SYMBOL vmlinux 0x00000000 vme_free_consistent -EXPORT_SYMBOL vmlinux 0x00000000 vme_get_size -EXPORT_SYMBOL vmlinux 0x00000000 vme_init_bridge -EXPORT_SYMBOL vmlinux 0x00000000 vme_irq_free -EXPORT_SYMBOL vmlinux 0x00000000 vme_irq_generate -EXPORT_SYMBOL vmlinux 0x00000000 vme_irq_handler -EXPORT_SYMBOL vmlinux 0x00000000 vme_irq_request -EXPORT_SYMBOL vmlinux 0x00000000 vme_lm_attach -EXPORT_SYMBOL vmlinux 0x00000000 vme_lm_count -EXPORT_SYMBOL vmlinux 0x00000000 vme_lm_detach -EXPORT_SYMBOL vmlinux 0x00000000 vme_lm_free -EXPORT_SYMBOL vmlinux 0x00000000 vme_lm_get -EXPORT_SYMBOL vmlinux 0x00000000 vme_lm_request -EXPORT_SYMBOL vmlinux 0x00000000 vme_lm_set -EXPORT_SYMBOL vmlinux 0x00000000 vme_master_free -EXPORT_SYMBOL vmlinux 0x00000000 vme_master_get -EXPORT_SYMBOL vmlinux 0x00000000 vme_master_mmap -EXPORT_SYMBOL vmlinux 0x00000000 vme_master_read -EXPORT_SYMBOL vmlinux 0x00000000 vme_master_request -EXPORT_SYMBOL vmlinux 0x00000000 vme_master_rmw -EXPORT_SYMBOL vmlinux 0x00000000 vme_master_set -EXPORT_SYMBOL vmlinux 0x00000000 vme_master_write -EXPORT_SYMBOL vmlinux 0x00000000 vme_new_dma_list -EXPORT_SYMBOL vmlinux 0x00000000 vme_register_bridge -EXPORT_SYMBOL vmlinux 0x00000000 vme_register_driver -EXPORT_SYMBOL vmlinux 0x00000000 vme_register_error_handler -EXPORT_SYMBOL vmlinux 0x00000000 vme_slave_free -EXPORT_SYMBOL vmlinux 0x00000000 vme_slave_get -EXPORT_SYMBOL vmlinux 0x00000000 vme_slave_request -EXPORT_SYMBOL vmlinux 0x00000000 vme_slave_set -EXPORT_SYMBOL vmlinux 0x00000000 vme_slot_num -EXPORT_SYMBOL vmlinux 0x00000000 vme_unregister_bridge -EXPORT_SYMBOL vmlinux 0x00000000 vme_unregister_driver -EXPORT_SYMBOL vmlinux 0x00000000 vme_unregister_error_handler -EXPORT_SYMBOL vmlinux 0x00000000 vmemdup_user -EXPORT_SYMBOL vmlinux 0x00000000 vmemmap_base -EXPORT_SYMBOL vmlinux 0x00000000 vmf_insert_mixed -EXPORT_SYMBOL vmlinux 0x00000000 vmf_insert_mixed_mkwrite -EXPORT_SYMBOL vmlinux 0x00000000 vmf_insert_mixed_prot -EXPORT_SYMBOL vmlinux 0x00000000 vmf_insert_pfn -EXPORT_SYMBOL vmlinux 0x00000000 vmf_insert_pfn_prot -EXPORT_SYMBOL vmlinux 0x00000000 vprintk -EXPORT_SYMBOL vmlinux 0x00000000 vprintk_emit -EXPORT_SYMBOL vmlinux 0x00000000 vscnprintf -EXPORT_SYMBOL vmlinux 0x00000000 vsnprintf -EXPORT_SYMBOL vmlinux 0x00000000 vsprintf -EXPORT_SYMBOL vmlinux 0x00000000 vsscanf -EXPORT_SYMBOL vmlinux 0x00000000 vunmap -EXPORT_SYMBOL vmlinux 0x00000000 vzalloc -EXPORT_SYMBOL vmlinux 0x00000000 vzalloc_node -EXPORT_SYMBOL vmlinux 0x00000000 wait_for_completion -EXPORT_SYMBOL vmlinux 0x00000000 wait_for_completion_interruptible -EXPORT_SYMBOL vmlinux 0x00000000 wait_for_completion_interruptible_timeout -EXPORT_SYMBOL vmlinux 0x00000000 wait_for_completion_io -EXPORT_SYMBOL vmlinux 0x00000000 wait_for_completion_io_timeout -EXPORT_SYMBOL vmlinux 0x00000000 wait_for_completion_killable -EXPORT_SYMBOL vmlinux 0x00000000 wait_for_completion_killable_timeout -EXPORT_SYMBOL vmlinux 0x00000000 wait_for_completion_timeout -EXPORT_SYMBOL vmlinux 0x00000000 wait_for_key_construction -EXPORT_SYMBOL vmlinux 0x00000000 wait_for_random_bytes -EXPORT_SYMBOL vmlinux 0x00000000 wait_iff_congested -EXPORT_SYMBOL vmlinux 0x00000000 wait_on_page_bit -EXPORT_SYMBOL vmlinux 0x00000000 wait_on_page_bit_killable -EXPORT_SYMBOL vmlinux 0x00000000 wait_woken -EXPORT_SYMBOL vmlinux 0x00000000 wake_bit_function -EXPORT_SYMBOL vmlinux 0x00000000 wake_up_bit -EXPORT_SYMBOL vmlinux 0x00000000 wake_up_process -EXPORT_SYMBOL vmlinux 0x00000000 wake_up_var -EXPORT_SYMBOL vmlinux 0x00000000 watchdog_register_governor -EXPORT_SYMBOL vmlinux 0x00000000 watchdog_unregister_governor -EXPORT_SYMBOL vmlinux 0x00000000 wbinvd_on_all_cpus -EXPORT_SYMBOL vmlinux 0x00000000 wbinvd_on_cpu -EXPORT_SYMBOL vmlinux 0x00000000 wireless_send_event -EXPORT_SYMBOL vmlinux 0x00000000 wireless_spy_update -EXPORT_SYMBOL vmlinux 0x00000000 wl1251_get_platform_data -EXPORT_SYMBOL vmlinux 0x00000000 woken_wake_function -EXPORT_SYMBOL vmlinux 0x00000000 would_dump -EXPORT_SYMBOL vmlinux 0x00000000 write_cache_pages -EXPORT_SYMBOL vmlinux 0x00000000 write_dirty_buffer -EXPORT_SYMBOL vmlinux 0x00000000 write_inode_now -EXPORT_SYMBOL vmlinux 0x00000000 write_one_page -EXPORT_SYMBOL vmlinux 0x00000000 writeback_inodes_sb -EXPORT_SYMBOL vmlinux 0x00000000 writeback_inodes_sb_nr -EXPORT_SYMBOL vmlinux 0x00000000 wrmsr_on_cpu -EXPORT_SYMBOL vmlinux 0x00000000 wrmsr_on_cpus -EXPORT_SYMBOL vmlinux 0x00000000 wrmsr_safe_on_cpu -EXPORT_SYMBOL vmlinux 0x00000000 wrmsr_safe_regs -EXPORT_SYMBOL vmlinux 0x00000000 wrmsr_safe_regs_on_cpu -EXPORT_SYMBOL vmlinux 0x00000000 wrmsrl_on_cpu -EXPORT_SYMBOL vmlinux 0x00000000 wrmsrl_safe_on_cpu -EXPORT_SYMBOL vmlinux 0x00000000 ww_mutex_lock -EXPORT_SYMBOL vmlinux 0x00000000 ww_mutex_lock_interruptible -EXPORT_SYMBOL vmlinux 0x00000000 ww_mutex_unlock -EXPORT_SYMBOL vmlinux 0x00000000 x86_apple_machine -EXPORT_SYMBOL vmlinux 0x00000000 x86_bios_cpu_apicid -EXPORT_SYMBOL vmlinux 0x00000000 x86_cpu_to_acpiid -EXPORT_SYMBOL vmlinux 0x00000000 x86_cpu_to_apicid -EXPORT_SYMBOL vmlinux 0x00000000 x86_cpu_to_node_map -EXPORT_SYMBOL vmlinux 0x00000000 x86_hyper_type -EXPORT_SYMBOL vmlinux 0x00000000 x86_match_cpu -EXPORT_SYMBOL vmlinux 0x00000000 xa_clear_mark -EXPORT_SYMBOL vmlinux 0x00000000 xa_destroy -EXPORT_SYMBOL vmlinux 0x00000000 xa_erase -EXPORT_SYMBOL vmlinux 0x00000000 xa_extract -EXPORT_SYMBOL vmlinux 0x00000000 xa_find -EXPORT_SYMBOL vmlinux 0x00000000 xa_find_after -EXPORT_SYMBOL vmlinux 0x00000000 xa_get_mark -EXPORT_SYMBOL vmlinux 0x00000000 xa_load -EXPORT_SYMBOL vmlinux 0x00000000 xa_set_mark -EXPORT_SYMBOL vmlinux 0x00000000 xa_store -EXPORT_SYMBOL vmlinux 0x00000000 xa_store_range -EXPORT_SYMBOL vmlinux 0x00000000 xattr_full_name -EXPORT_SYMBOL vmlinux 0x00000000 xdp_get_umem_from_qid -EXPORT_SYMBOL vmlinux 0x00000000 xen_alloc_p2m_entry -EXPORT_SYMBOL vmlinux 0x00000000 xen_arch_register_cpu -EXPORT_SYMBOL vmlinux 0x00000000 xen_arch_unregister_cpu -EXPORT_SYMBOL vmlinux 0x00000000 xen_clear_irq_pending -EXPORT_SYMBOL vmlinux 0x00000000 xen_poll_irq_timeout -EXPORT_SYMBOL vmlinux 0x00000000 xen_start_flags -EXPORT_SYMBOL vmlinux 0x00000000 xen_vcpu_id -EXPORT_SYMBOL vmlinux 0x00000000 xenbus_dev_request_and_reply -EXPORT_SYMBOL vmlinux 0x00000000 xfrm4_protocol_deregister -EXPORT_SYMBOL vmlinux 0x00000000 xfrm4_protocol_init -EXPORT_SYMBOL vmlinux 0x00000000 xfrm4_protocol_register -EXPORT_SYMBOL vmlinux 0x00000000 xfrm4_rcv -EXPORT_SYMBOL vmlinux 0x00000000 xfrm4_rcv_encap -EXPORT_SYMBOL vmlinux 0x00000000 xfrm6_find_1stfragopt -EXPORT_SYMBOL vmlinux 0x00000000 xfrm6_input_addr -EXPORT_SYMBOL vmlinux 0x00000000 xfrm6_protocol_deregister -EXPORT_SYMBOL vmlinux 0x00000000 xfrm6_protocol_register -EXPORT_SYMBOL vmlinux 0x00000000 xfrm6_rcv -EXPORT_SYMBOL vmlinux 0x00000000 xfrm6_rcv_spi -EXPORT_SYMBOL vmlinux 0x00000000 xfrm6_rcv_tnl -EXPORT_SYMBOL vmlinux 0x00000000 xfrm_alloc_spi -EXPORT_SYMBOL vmlinux 0x00000000 xfrm_dev_state_flush -EXPORT_SYMBOL vmlinux 0x00000000 xfrm_dst_ifdown -EXPORT_SYMBOL vmlinux 0x00000000 xfrm_find_acq -EXPORT_SYMBOL vmlinux 0x00000000 xfrm_find_acq_byseq -EXPORT_SYMBOL vmlinux 0x00000000 xfrm_flush_gc -EXPORT_SYMBOL vmlinux 0x00000000 xfrm_get_acqseq -EXPORT_SYMBOL vmlinux 0x00000000 xfrm_if_register_cb -EXPORT_SYMBOL vmlinux 0x00000000 xfrm_if_unregister_cb -EXPORT_SYMBOL vmlinux 0x00000000 xfrm_init_replay -EXPORT_SYMBOL vmlinux 0x00000000 xfrm_init_state -EXPORT_SYMBOL vmlinux 0x00000000 xfrm_input -EXPORT_SYMBOL vmlinux 0x00000000 xfrm_input_register_afinfo -EXPORT_SYMBOL vmlinux 0x00000000 xfrm_input_resume -EXPORT_SYMBOL vmlinux 0x00000000 xfrm_input_unregister_afinfo -EXPORT_SYMBOL vmlinux 0x00000000 xfrm_lookup -EXPORT_SYMBOL vmlinux 0x00000000 xfrm_lookup_route -EXPORT_SYMBOL vmlinux 0x00000000 xfrm_lookup_with_ifid -EXPORT_SYMBOL vmlinux 0x00000000 xfrm_parse_spi -EXPORT_SYMBOL vmlinux 0x00000000 xfrm_policy_alloc -EXPORT_SYMBOL vmlinux 0x00000000 xfrm_policy_byid -EXPORT_SYMBOL vmlinux 0x00000000 xfrm_policy_bysel_ctx -EXPORT_SYMBOL vmlinux 0x00000000 xfrm_policy_delete -EXPORT_SYMBOL vmlinux 0x00000000 xfrm_policy_destroy -EXPORT_SYMBOL vmlinux 0x00000000 xfrm_policy_flush -EXPORT_SYMBOL vmlinux 0x00000000 xfrm_policy_hash_rebuild -EXPORT_SYMBOL vmlinux 0x00000000 xfrm_policy_insert -EXPORT_SYMBOL vmlinux 0x00000000 xfrm_policy_register_afinfo -EXPORT_SYMBOL vmlinux 0x00000000 xfrm_policy_unregister_afinfo -EXPORT_SYMBOL vmlinux 0x00000000 xfrm_policy_walk -EXPORT_SYMBOL vmlinux 0x00000000 xfrm_policy_walk_done -EXPORT_SYMBOL vmlinux 0x00000000 xfrm_policy_walk_init -EXPORT_SYMBOL vmlinux 0x00000000 xfrm_register_km -EXPORT_SYMBOL vmlinux 0x00000000 xfrm_register_type -EXPORT_SYMBOL vmlinux 0x00000000 xfrm_register_type_offload -EXPORT_SYMBOL vmlinux 0x00000000 xfrm_replay_seqhi -EXPORT_SYMBOL vmlinux 0x00000000 xfrm_sad_getinfo -EXPORT_SYMBOL vmlinux 0x00000000 xfrm_spd_getinfo -EXPORT_SYMBOL vmlinux 0x00000000 xfrm_state_add -EXPORT_SYMBOL vmlinux 0x00000000 xfrm_state_alloc -EXPORT_SYMBOL vmlinux 0x00000000 xfrm_state_check_expire -EXPORT_SYMBOL vmlinux 0x00000000 xfrm_state_delete -EXPORT_SYMBOL vmlinux 0x00000000 xfrm_state_delete_tunnel -EXPORT_SYMBOL vmlinux 0x00000000 xfrm_state_flush -EXPORT_SYMBOL vmlinux 0x00000000 xfrm_state_free -EXPORT_SYMBOL vmlinux 0x00000000 xfrm_state_insert -EXPORT_SYMBOL vmlinux 0x00000000 xfrm_state_lookup -EXPORT_SYMBOL vmlinux 0x00000000 xfrm_state_lookup_byaddr -EXPORT_SYMBOL vmlinux 0x00000000 xfrm_state_lookup_byspi -EXPORT_SYMBOL vmlinux 0x00000000 xfrm_state_register_afinfo -EXPORT_SYMBOL vmlinux 0x00000000 xfrm_state_unregister_afinfo -EXPORT_SYMBOL vmlinux 0x00000000 xfrm_state_update -EXPORT_SYMBOL vmlinux 0x00000000 xfrm_state_walk -EXPORT_SYMBOL vmlinux 0x00000000 xfrm_state_walk_done -EXPORT_SYMBOL vmlinux 0x00000000 xfrm_state_walk_init -EXPORT_SYMBOL vmlinux 0x00000000 xfrm_stateonly_find -EXPORT_SYMBOL vmlinux 0x00000000 xfrm_trans_queue -EXPORT_SYMBOL vmlinux 0x00000000 xfrm_trans_queue_net -EXPORT_SYMBOL vmlinux 0x00000000 xfrm_unregister_km -EXPORT_SYMBOL vmlinux 0x00000000 xfrm_unregister_type -EXPORT_SYMBOL vmlinux 0x00000000 xfrm_unregister_type_offload -EXPORT_SYMBOL vmlinux 0x00000000 xfrm_user_policy -EXPORT_SYMBOL vmlinux 0x00000000 xps_needed -EXPORT_SYMBOL vmlinux 0x00000000 xps_rxqs_needed -EXPORT_SYMBOL vmlinux 0x00000000 xsk_clear_rx_need_wakeup -EXPORT_SYMBOL vmlinux 0x00000000 xsk_clear_tx_need_wakeup -EXPORT_SYMBOL vmlinux 0x00000000 xsk_set_rx_need_wakeup -EXPORT_SYMBOL vmlinux 0x00000000 xsk_set_tx_need_wakeup -EXPORT_SYMBOL vmlinux 0x00000000 xsk_umem_complete_tx -EXPORT_SYMBOL vmlinux 0x00000000 xsk_umem_consume_tx -EXPORT_SYMBOL vmlinux 0x00000000 xsk_umem_consume_tx_done -EXPORT_SYMBOL vmlinux 0x00000000 xsk_umem_has_addrs -EXPORT_SYMBOL vmlinux 0x00000000 xsk_umem_peek_addr -EXPORT_SYMBOL vmlinux 0x00000000 xsk_umem_release_addr -EXPORT_SYMBOL vmlinux 0x00000000 xsk_umem_uses_need_wakeup -EXPORT_SYMBOL vmlinux 0x00000000 xxh32 -EXPORT_SYMBOL vmlinux 0x00000000 xxh32_copy_state -EXPORT_SYMBOL vmlinux 0x00000000 xxh32_digest -EXPORT_SYMBOL vmlinux 0x00000000 xxh32_reset -EXPORT_SYMBOL vmlinux 0x00000000 xxh32_update -EXPORT_SYMBOL vmlinux 0x00000000 xxh64 -EXPORT_SYMBOL vmlinux 0x00000000 xxh64_copy_state -EXPORT_SYMBOL vmlinux 0x00000000 xxh64_digest -EXPORT_SYMBOL vmlinux 0x00000000 xxh64_reset -EXPORT_SYMBOL vmlinux 0x00000000 xxh64_update -EXPORT_SYMBOL vmlinux 0x00000000 xz_dec_end -EXPORT_SYMBOL vmlinux 0x00000000 xz_dec_init -EXPORT_SYMBOL vmlinux 0x00000000 xz_dec_reset -EXPORT_SYMBOL vmlinux 0x00000000 xz_dec_run -EXPORT_SYMBOL vmlinux 0x00000000 yield -EXPORT_SYMBOL vmlinux 0x00000000 zalloc_cpumask_var -EXPORT_SYMBOL vmlinux 0x00000000 zalloc_cpumask_var_node -EXPORT_SYMBOL vmlinux 0x00000000 zap_page_range -EXPORT_SYMBOL vmlinux 0x00000000 zero_fill_bio_iter -EXPORT_SYMBOL vmlinux 0x00000000 zero_pfn -EXPORT_SYMBOL vmlinux 0x00000000 zerocopy_sg_from_iter -EXPORT_SYMBOL vmlinux 0x00000000 zlib_deflate -EXPORT_SYMBOL vmlinux 0x00000000 zlib_deflateEnd -EXPORT_SYMBOL vmlinux 0x00000000 zlib_deflateInit2 -EXPORT_SYMBOL vmlinux 0x00000000 zlib_deflateReset -EXPORT_SYMBOL vmlinux 0x00000000 zlib_deflate_dfltcc_enabled -EXPORT_SYMBOL vmlinux 0x00000000 zlib_deflate_workspacesize -EXPORT_SYMBOL vmlinux 0x00000000 zlib_inflate -EXPORT_SYMBOL vmlinux 0x00000000 zlib_inflateEnd -EXPORT_SYMBOL vmlinux 0x00000000 zlib_inflateIncomp -EXPORT_SYMBOL vmlinux 0x00000000 zlib_inflateInit2 -EXPORT_SYMBOL vmlinux 0x00000000 zlib_inflateReset -EXPORT_SYMBOL vmlinux 0x00000000 zlib_inflate_blob -EXPORT_SYMBOL vmlinux 0x00000000 zlib_inflate_workspacesize -EXPORT_SYMBOL vmlinux 0x00000000 zpool_has_pool -EXPORT_SYMBOL vmlinux 0x00000000 zpool_register_driver -EXPORT_SYMBOL vmlinux 0x00000000 zpool_unregister_driver -EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-aesni-avx-x86_64 0x00000000 camellia_cbc_dec_16way -EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-aesni-avx-x86_64 0x00000000 camellia_ctr_16way -EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-aesni-avx-x86_64 0x00000000 camellia_ecb_dec_16way -EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-aesni-avx-x86_64 0x00000000 camellia_ecb_enc_16way -EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-aesni-avx-x86_64 0x00000000 camellia_xts_dec -EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-aesni-avx-x86_64 0x00000000 camellia_xts_dec_16way -EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-aesni-avx-x86_64 0x00000000 camellia_xts_enc -EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-aesni-avx-x86_64 0x00000000 camellia_xts_enc_16way -EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-aesni-avx-x86_64 0x00000000 xts_camellia_setkey -EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-x86_64 0x00000000 __camellia_enc_blk -EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-x86_64 0x00000000 __camellia_enc_blk_2way -EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-x86_64 0x00000000 __camellia_setkey -EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-x86_64 0x00000000 camellia_crypt_ctr -EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-x86_64 0x00000000 camellia_crypt_ctr_2way -EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-x86_64 0x00000000 camellia_dec_blk -EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-x86_64 0x00000000 camellia_dec_blk_2way -EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-x86_64 0x00000000 camellia_decrypt_cbc_2way -EXPORT_SYMBOL_GPL arch/x86/crypto/glue_helper 0x00000000 glue_cbc_decrypt_req_128bit -EXPORT_SYMBOL_GPL arch/x86/crypto/glue_helper 0x00000000 glue_cbc_encrypt_req_128bit -EXPORT_SYMBOL_GPL arch/x86/crypto/glue_helper 0x00000000 glue_ctr_req_128bit -EXPORT_SYMBOL_GPL arch/x86/crypto/glue_helper 0x00000000 glue_ecb_req_128bit -EXPORT_SYMBOL_GPL arch/x86/crypto/glue_helper 0x00000000 glue_xts_crypt_128bit_one -EXPORT_SYMBOL_GPL arch/x86/crypto/glue_helper 0x00000000 glue_xts_req_128bit -EXPORT_SYMBOL_GPL arch/x86/crypto/serpent-avx-x86_64 0x00000000 __serpent_crypt_ctr -EXPORT_SYMBOL_GPL arch/x86/crypto/serpent-avx-x86_64 0x00000000 serpent_cbc_dec_8way_avx -EXPORT_SYMBOL_GPL arch/x86/crypto/serpent-avx-x86_64 0x00000000 serpent_ctr_8way_avx -EXPORT_SYMBOL_GPL arch/x86/crypto/serpent-avx-x86_64 0x00000000 serpent_ecb_dec_8way_avx -EXPORT_SYMBOL_GPL arch/x86/crypto/serpent-avx-x86_64 0x00000000 serpent_ecb_enc_8way_avx -EXPORT_SYMBOL_GPL arch/x86/crypto/serpent-avx-x86_64 0x00000000 serpent_xts_dec -EXPORT_SYMBOL_GPL arch/x86/crypto/serpent-avx-x86_64 0x00000000 serpent_xts_dec_8way_avx -EXPORT_SYMBOL_GPL arch/x86/crypto/serpent-avx-x86_64 0x00000000 serpent_xts_enc -EXPORT_SYMBOL_GPL arch/x86/crypto/serpent-avx-x86_64 0x00000000 serpent_xts_enc_8way_avx -EXPORT_SYMBOL_GPL arch/x86/crypto/serpent-avx-x86_64 0x00000000 xts_serpent_setkey -EXPORT_SYMBOL_GPL arch/x86/crypto/twofish-x86_64 0x00000000 twofish_dec_blk -EXPORT_SYMBOL_GPL arch/x86/crypto/twofish-x86_64 0x00000000 twofish_enc_blk -EXPORT_SYMBOL_GPL arch/x86/crypto/twofish-x86_64-3way 0x00000000 __twofish_enc_blk_3way -EXPORT_SYMBOL_GPL arch/x86/crypto/twofish-x86_64-3way 0x00000000 twofish_dec_blk_3way -EXPORT_SYMBOL_GPL arch/x86/crypto/twofish-x86_64-3way 0x00000000 twofish_dec_blk_cbc_3way -EXPORT_SYMBOL_GPL arch/x86/crypto/twofish-x86_64-3way 0x00000000 twofish_enc_blk_ctr -EXPORT_SYMBOL_GPL arch/x86/crypto/twofish-x86_64-3way 0x00000000 twofish_enc_blk_ctr_3way -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 __gfn_to_pfn_memslot -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 __kvm_apic_update_irr -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 __kvm_request_immediate_exit -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 __kvm_set_memory_region -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 __tracepoint_kvm_apicv_update_request -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 __tracepoint_kvm_avic_incomplete_ipi -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 __tracepoint_kvm_avic_unaccelerated_access -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 __tracepoint_kvm_cr -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 __tracepoint_kvm_exit -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 __tracepoint_kvm_fast_mmio -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 __tracepoint_kvm_inj_virq -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 __tracepoint_kvm_invlpga -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 __tracepoint_kvm_msr -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 __tracepoint_kvm_nested_intercepts -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 __tracepoint_kvm_nested_intr_vmexit -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 __tracepoint_kvm_nested_vmenter_failed -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 __tracepoint_kvm_nested_vmexit -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 __tracepoint_kvm_nested_vmexit_inject -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 __tracepoint_kvm_nested_vmrun -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 __tracepoint_kvm_page_fault -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 __tracepoint_kvm_pi_irte_update -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 __tracepoint_kvm_ple_window_update -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 __tracepoint_kvm_pml_full -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 __tracepoint_kvm_skinit -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 __tracepoint_kvm_write_tsc_offset -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 __x86_set_memory_region -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 cpuid_query_maxphyaddr -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 current_vcpu -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 enable_vmware_backdoor -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 gfn_to_hva -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 gfn_to_hva_memslot -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 gfn_to_memslot -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 gfn_to_page -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 gfn_to_page_many_atomic -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 gfn_to_pfn -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 gfn_to_pfn_atomic -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 gfn_to_pfn_memslot -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 gfn_to_pfn_memslot_atomic -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 gfn_to_pfn_prot -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 halt_poll_ns -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 halt_poll_ns_grow -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 halt_poll_ns_grow_start -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 halt_poll_ns_shrink -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 handle_fastpath_set_msr_irqoff -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 handle_ud -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_apic_match_dest -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_apic_set_eoi_accelerated -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_apic_update_apicv -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_apic_update_irr -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_apic_update_ppr -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_apic_write_nodecode -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_apicv_activated -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_apicv_init -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_arch_end_assignment -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_arch_has_assigned_device -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_arch_has_noncoherent_dma -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_arch_no_poll -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_arch_register_noncoherent_dma -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_arch_start_assignment -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_arch_unregister_noncoherent_dma -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_can_post_timer_interrupt -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_clear_dirty_log_protect -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_clear_guest -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_clear_guest_page -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_complete_insn_gp -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_cpu_get_interrupt -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_cpu_has_interrupt -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_cpuid -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_debugfs_dir -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_default_tsc_scaling_ratio -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_define_shared_msr -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_deliver_exception_payload -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_disable_largepages -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_disable_tdp -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_emulate_cpuid -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_emulate_halt -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_emulate_hypercall -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_emulate_instruction -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_emulate_instruction_from_buffer -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_emulate_rdmsr -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_emulate_wbinvd -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_emulate_wrmsr -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_enable_efer_bits -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_enable_tdp -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_exit -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_fast_pio -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_find_cpuid_entry -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_flush_remote_tlbs -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_get_apic_base -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_get_apic_mode -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_get_cr8 -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_get_cs_db_l_bits -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_get_dirty_log -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_get_dirty_log_protect -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_get_dr -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_get_kvm -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_get_linear_rip -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_get_msr -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_get_msr_common -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_get_pfn -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_get_rflags -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_gfn_to_hva_cache_init -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_handle_page_fault -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_has_tsc_control -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_hv_assist_page_enabled -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_hv_get_assist_page -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_init -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_init_mmu -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_init_shadow_ept_mmu -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_init_shadow_mmu -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_inject_nmi -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_inject_page_fault -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_inject_pending_timer_irqs -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_inject_realmode_interrupt -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_intr_is_single_vcpu -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_io_bus_get_dev -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_io_bus_write -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_irq_has_notifier -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_is_linear_rip -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_is_visible_gfn -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_lapic_expired_hv_timer -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_lapic_find_highest_irr -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_lapic_hv_timer_in_use -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_lapic_reg_read -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_lapic_reg_write -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_lapic_set_eoi -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_lapic_switch_to_hv_timer -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_lapic_switch_to_sw_timer -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_lmsw -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_load_guest_xsave_state -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_load_host_xsave_state -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_map_gfn -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_max_guest_tsc_khz -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_max_tsc_scaling_ratio -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_mce_cap_supported -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_mmu_clear_dirty_pt_masked -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_mmu_free_roots -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_mmu_invlpg -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_mmu_invpcid_gva -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_mmu_load -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_mmu_new_cr3 -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_mmu_page_fault -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_mmu_reset_context -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_mmu_set_mask_ptes -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_mmu_set_mmio_spte_mask -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_mmu_slot_largepage_remove_write_access -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_mmu_slot_leaf_clear_dirty -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_mmu_slot_set_dirty -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_mmu_sync_roots -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_mmu_unload -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_mmu_unprotect_page -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_mmu_unprotect_page_virt -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_mpx_supported -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_mtrr_get_guest_memory_type -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_mtrr_valid -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_no_apic_vcpu -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_page_track_register_notifier -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_page_track_unregister_notifier -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_put_kvm -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_put_kvm_no_destroy -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_queue_exception -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_queue_exception_e -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_rdpmc -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_read_guest -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_read_guest_cached -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_read_guest_page -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_read_guest_page_mmu -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_read_guest_virt -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_read_l1_tsc -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_rebooting -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_release_page_clean -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_release_page_dirty -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_release_pfn_clean -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_release_pfn_dirty -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_request_apicv_update -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_requeue_exception -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_requeue_exception_e -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_require_cpl -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_require_dr -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_scale_tsc -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_set_apic_base -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_set_cr0 -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_set_cr3 -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_set_cr4 -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_set_cr8 -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_set_dr -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_set_memory_region -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_set_msi_irq -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_set_msr -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_set_msr_common -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_set_pfn_accessed -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_set_pfn_dirty -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_set_rflags -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_set_shared_msr -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_set_xcr -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_skip_emulated_instruction -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_slot_page_track_add_page -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_slot_page_track_remove_page -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_spec_ctrl_valid_bits -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_spurious_fault -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_task_switch -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_tsc_scaling_ratio_frac_bits -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_unmap_gfn -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_valid_efer -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_vcpu_block -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_vcpu_destroy -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_vcpu_gfn_to_hva -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_vcpu_gfn_to_page -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_vcpu_gfn_to_pfn -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_vcpu_gfn_to_pfn_atomic -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_vcpu_halt -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_vcpu_is_reset_bsp -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_vcpu_kick -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_vcpu_map -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_vcpu_mark_page_dirty -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_vcpu_on_spin -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_vcpu_read_guest -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_vcpu_read_guest_atomic -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_vcpu_read_guest_page -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_vcpu_unmap -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_vcpu_update_apicv -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_vcpu_wake_up -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_vcpu_write_guest -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_vcpu_write_guest_page -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_vcpu_yield_to -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_wait_lapic_expire -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_write_guest -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_write_guest_cached -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_write_guest_offset_cached -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_write_guest_page -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_write_guest_virt_system -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_write_tsc -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_x86_ops -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 load_pdptrs -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 mark_page_dirty -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 pdptrs_changed -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 reprogram_counter -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 reprogram_fixed_counter -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 reprogram_gp_counter -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 reset_shadow_zero_bits_mask -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 vcpu_load -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 vcpu_put -EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 x86_fpu_cache -EXPORT_SYMBOL_GPL crypto/af_alg 0x00000000 af_alg_accept -EXPORT_SYMBOL_GPL crypto/af_alg 0x00000000 af_alg_alloc_areq -EXPORT_SYMBOL_GPL crypto/af_alg 0x00000000 af_alg_async_cb -EXPORT_SYMBOL_GPL crypto/af_alg 0x00000000 af_alg_count_tsgl -EXPORT_SYMBOL_GPL crypto/af_alg 0x00000000 af_alg_free_resources -EXPORT_SYMBOL_GPL crypto/af_alg 0x00000000 af_alg_free_sg -EXPORT_SYMBOL_GPL crypto/af_alg 0x00000000 af_alg_get_rsgl -EXPORT_SYMBOL_GPL crypto/af_alg 0x00000000 af_alg_make_sg -EXPORT_SYMBOL_GPL crypto/af_alg 0x00000000 af_alg_poll -EXPORT_SYMBOL_GPL crypto/af_alg 0x00000000 af_alg_pull_tsgl -EXPORT_SYMBOL_GPL crypto/af_alg 0x00000000 af_alg_register_type -EXPORT_SYMBOL_GPL crypto/af_alg 0x00000000 af_alg_release -EXPORT_SYMBOL_GPL crypto/af_alg 0x00000000 af_alg_release_parent -EXPORT_SYMBOL_GPL crypto/af_alg 0x00000000 af_alg_sendmsg -EXPORT_SYMBOL_GPL crypto/af_alg 0x00000000 af_alg_sendpage -EXPORT_SYMBOL_GPL crypto/af_alg 0x00000000 af_alg_unregister_type -EXPORT_SYMBOL_GPL crypto/af_alg 0x00000000 af_alg_wait_for_data -EXPORT_SYMBOL_GPL crypto/af_alg 0x00000000 af_alg_wmem_wakeup -EXPORT_SYMBOL_GPL crypto/asymmetric_keys/asym_tpm 0x00000000 asym_tpm_subtype -EXPORT_SYMBOL_GPL crypto/asymmetric_keys/asym_tpm 0x00000000 tpm_key_create -EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0x00000000 async_memcpy -EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x00000000 async_gen_syndrome -EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x00000000 async_syndrome_val -EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x00000000 async_raid6_2data_recov -EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x00000000 async_raid6_datap_recov -EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x00000000 __async_tx_find_channel -EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x00000000 async_trigger_callback -EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x00000000 async_tx_quiesce -EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x00000000 async_tx_submit -EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x00000000 async_xor -EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x00000000 async_xor_val -EXPORT_SYMBOL_GPL crypto/authenc 0x00000000 crypto_authenc_extractkeys -EXPORT_SYMBOL_GPL crypto/blowfish_common 0x00000000 blowfish_setkey -EXPORT_SYMBOL_GPL crypto/cast5_generic 0x00000000 __cast5_decrypt -EXPORT_SYMBOL_GPL crypto/cast5_generic 0x00000000 __cast5_encrypt -EXPORT_SYMBOL_GPL crypto/cast5_generic 0x00000000 cast5_setkey -EXPORT_SYMBOL_GPL crypto/cast6_generic 0x00000000 __cast6_decrypt -EXPORT_SYMBOL_GPL crypto/cast6_generic 0x00000000 __cast6_encrypt -EXPORT_SYMBOL_GPL crypto/cast6_generic 0x00000000 __cast6_setkey -EXPORT_SYMBOL_GPL crypto/cast6_generic 0x00000000 cast6_setkey -EXPORT_SYMBOL_GPL crypto/cast_common 0x00000000 cast_s1 -EXPORT_SYMBOL_GPL crypto/cast_common 0x00000000 cast_s2 -EXPORT_SYMBOL_GPL crypto/cast_common 0x00000000 cast_s3 -EXPORT_SYMBOL_GPL crypto/cast_common 0x00000000 cast_s4 -EXPORT_SYMBOL_GPL crypto/cryptd 0x00000000 cryptd_aead_child -EXPORT_SYMBOL_GPL crypto/cryptd 0x00000000 cryptd_aead_queued -EXPORT_SYMBOL_GPL crypto/cryptd 0x00000000 cryptd_ahash_child -EXPORT_SYMBOL_GPL crypto/cryptd 0x00000000 cryptd_ahash_queued -EXPORT_SYMBOL_GPL crypto/cryptd 0x00000000 cryptd_alloc_aead -EXPORT_SYMBOL_GPL crypto/cryptd 0x00000000 cryptd_alloc_ahash -EXPORT_SYMBOL_GPL crypto/cryptd 0x00000000 cryptd_alloc_skcipher -EXPORT_SYMBOL_GPL crypto/cryptd 0x00000000 cryptd_free_aead -EXPORT_SYMBOL_GPL crypto/cryptd 0x00000000 cryptd_free_ahash -EXPORT_SYMBOL_GPL crypto/cryptd 0x00000000 cryptd_free_skcipher -EXPORT_SYMBOL_GPL crypto/cryptd 0x00000000 cryptd_shash_desc -EXPORT_SYMBOL_GPL crypto/cryptd 0x00000000 cryptd_skcipher_child -EXPORT_SYMBOL_GPL crypto/cryptd 0x00000000 cryptd_skcipher_queued -EXPORT_SYMBOL_GPL crypto/crypto_engine 0x00000000 crypto_engine_alloc_init -EXPORT_SYMBOL_GPL crypto/crypto_engine 0x00000000 crypto_engine_exit -EXPORT_SYMBOL_GPL crypto/crypto_engine 0x00000000 crypto_engine_start -EXPORT_SYMBOL_GPL crypto/crypto_engine 0x00000000 crypto_engine_stop -EXPORT_SYMBOL_GPL crypto/crypto_engine 0x00000000 crypto_finalize_aead_request -EXPORT_SYMBOL_GPL crypto/crypto_engine 0x00000000 crypto_finalize_akcipher_request -EXPORT_SYMBOL_GPL crypto/crypto_engine 0x00000000 crypto_finalize_hash_request -EXPORT_SYMBOL_GPL crypto/crypto_engine 0x00000000 crypto_finalize_skcipher_request -EXPORT_SYMBOL_GPL crypto/crypto_engine 0x00000000 crypto_transfer_aead_request_to_engine -EXPORT_SYMBOL_GPL crypto/crypto_engine 0x00000000 crypto_transfer_akcipher_request_to_engine -EXPORT_SYMBOL_GPL crypto/crypto_engine 0x00000000 crypto_transfer_hash_request_to_engine -EXPORT_SYMBOL_GPL crypto/crypto_engine 0x00000000 crypto_transfer_skcipher_request_to_engine -EXPORT_SYMBOL_GPL crypto/crypto_simd 0x00000000 simd_aead_create -EXPORT_SYMBOL_GPL crypto/crypto_simd 0x00000000 simd_aead_create_compat -EXPORT_SYMBOL_GPL crypto/crypto_simd 0x00000000 simd_aead_free -EXPORT_SYMBOL_GPL crypto/crypto_simd 0x00000000 simd_register_aeads_compat -EXPORT_SYMBOL_GPL crypto/crypto_simd 0x00000000 simd_register_skciphers_compat -EXPORT_SYMBOL_GPL crypto/crypto_simd 0x00000000 simd_skcipher_create -EXPORT_SYMBOL_GPL crypto/crypto_simd 0x00000000 simd_skcipher_create_compat -EXPORT_SYMBOL_GPL crypto/crypto_simd 0x00000000 simd_skcipher_free -EXPORT_SYMBOL_GPL crypto/crypto_simd 0x00000000 simd_unregister_aeads -EXPORT_SYMBOL_GPL crypto/crypto_simd 0x00000000 simd_unregister_skciphers -EXPORT_SYMBOL_GPL crypto/ecdh_generic 0x00000000 crypto_ecdh_decode_key -EXPORT_SYMBOL_GPL crypto/ecdh_generic 0x00000000 crypto_ecdh_encode_key -EXPORT_SYMBOL_GPL crypto/ecdh_generic 0x00000000 crypto_ecdh_key_len -EXPORT_SYMBOL_GPL crypto/serpent_generic 0x00000000 __serpent_decrypt -EXPORT_SYMBOL_GPL crypto/serpent_generic 0x00000000 __serpent_encrypt -EXPORT_SYMBOL_GPL crypto/serpent_generic 0x00000000 __serpent_setkey -EXPORT_SYMBOL_GPL crypto/serpent_generic 0x00000000 serpent_setkey -EXPORT_SYMBOL_GPL crypto/sm3_generic 0x00000000 sm3_zero_message_hash -EXPORT_SYMBOL_GPL crypto/sm4_generic 0x00000000 crypto_sm4_decrypt -EXPORT_SYMBOL_GPL crypto/sm4_generic 0x00000000 crypto_sm4_encrypt -EXPORT_SYMBOL_GPL crypto/sm4_generic 0x00000000 crypto_sm4_expand_key -EXPORT_SYMBOL_GPL crypto/sm4_generic 0x00000000 crypto_sm4_set_key -EXPORT_SYMBOL_GPL crypto/twofish_common 0x00000000 __twofish_setkey -EXPORT_SYMBOL_GPL crypto/twofish_common 0x00000000 twofish_setkey -EXPORT_SYMBOL_GPL drivers/acpi/nfit/nfit 0x00000000 __acpi_nfit_notify -EXPORT_SYMBOL_GPL drivers/acpi/nfit/nfit 0x00000000 __acpi_nvdimm_notify -EXPORT_SYMBOL_GPL drivers/acpi/nfit/nfit 0x00000000 acpi_nfit_ctl -EXPORT_SYMBOL_GPL drivers/acpi/nfit/nfit 0x00000000 acpi_nfit_desc_init -EXPORT_SYMBOL_GPL drivers/acpi/nfit/nfit 0x00000000 acpi_nfit_init -EXPORT_SYMBOL_GPL drivers/acpi/nfit/nfit 0x00000000 acpi_nfit_shutdown -EXPORT_SYMBOL_GPL drivers/acpi/nfit/nfit 0x00000000 nfit_get_smbios_id -EXPORT_SYMBOL_GPL drivers/acpi/sbshc 0x00000000 acpi_smbus_read -EXPORT_SYMBOL_GPL drivers/acpi/sbshc 0x00000000 acpi_smbus_register_callback -EXPORT_SYMBOL_GPL drivers/acpi/sbshc 0x00000000 acpi_smbus_unregister_callback -EXPORT_SYMBOL_GPL drivers/acpi/sbshc 0x00000000 acpi_smbus_write -EXPORT_SYMBOL_GPL drivers/ata/libahci 0x00000000 ahci_check_ready -EXPORT_SYMBOL_GPL drivers/ata/libahci 0x00000000 ahci_dev_classify -EXPORT_SYMBOL_GPL drivers/ata/libahci 0x00000000 ahci_do_hardreset -EXPORT_SYMBOL_GPL drivers/ata/libahci 0x00000000 ahci_do_softreset -EXPORT_SYMBOL_GPL drivers/ata/libahci 0x00000000 ahci_error_handler -EXPORT_SYMBOL_GPL drivers/ata/libahci 0x00000000 ahci_fill_cmd_slot -EXPORT_SYMBOL_GPL drivers/ata/libahci 0x00000000 ahci_handle_port_intr -EXPORT_SYMBOL_GPL drivers/ata/libahci 0x00000000 ahci_host_activate -EXPORT_SYMBOL_GPL drivers/ata/libahci 0x00000000 ahci_ignore_sss -EXPORT_SYMBOL_GPL drivers/ata/libahci 0x00000000 ahci_init_controller -EXPORT_SYMBOL_GPL drivers/ata/libahci 0x00000000 ahci_kick_engine -EXPORT_SYMBOL_GPL drivers/ata/libahci 0x00000000 ahci_ops -EXPORT_SYMBOL_GPL drivers/ata/libahci 0x00000000 ahci_pmp_retry_srst_ops -EXPORT_SYMBOL_GPL drivers/ata/libahci 0x00000000 ahci_port_resume -EXPORT_SYMBOL_GPL drivers/ata/libahci 0x00000000 ahci_print_info -EXPORT_SYMBOL_GPL drivers/ata/libahci 0x00000000 ahci_qc_issue -EXPORT_SYMBOL_GPL drivers/ata/libahci 0x00000000 ahci_reset_controller -EXPORT_SYMBOL_GPL drivers/ata/libahci 0x00000000 ahci_reset_em -EXPORT_SYMBOL_GPL drivers/ata/libahci 0x00000000 ahci_save_initial_config -EXPORT_SYMBOL_GPL drivers/ata/libahci 0x00000000 ahci_sdev_attrs -EXPORT_SYMBOL_GPL drivers/ata/libahci 0x00000000 ahci_set_em_messages -EXPORT_SYMBOL_GPL drivers/ata/libahci 0x00000000 ahci_shost_attrs -EXPORT_SYMBOL_GPL drivers/ata/libahci 0x00000000 ahci_start_engine -EXPORT_SYMBOL_GPL drivers/ata/libahci 0x00000000 ahci_start_fis_rx -EXPORT_SYMBOL_GPL drivers/ata/libahci 0x00000000 ahci_stop_engine -EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x00000000 ahci_platform_disable_clks -EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x00000000 ahci_platform_disable_phys -EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x00000000 ahci_platform_disable_regulators -EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x00000000 ahci_platform_disable_resources -EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x00000000 ahci_platform_enable_clks -EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x00000000 ahci_platform_enable_phys -EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x00000000 ahci_platform_enable_regulators -EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x00000000 ahci_platform_enable_resources -EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x00000000 ahci_platform_get_resources -EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x00000000 ahci_platform_init_host -EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x00000000 ahci_platform_ops -EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x00000000 ahci_platform_resume -EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x00000000 ahci_platform_resume_host -EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x00000000 ahci_platform_shutdown -EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x00000000 ahci_platform_suspend -EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x00000000 ahci_platform_suspend_host -EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0x00000000 __pata_platform_probe -EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x00000000 cfag12864b_buffer -EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x00000000 cfag12864b_disable -EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x00000000 cfag12864b_enable -EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x00000000 cfag12864b_getrate -EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x00000000 cfag12864b_isenabled -EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x00000000 cfag12864b_isinited -EXPORT_SYMBOL_GPL drivers/auxdisplay/charlcd 0x00000000 charlcd_alloc -EXPORT_SYMBOL_GPL drivers/auxdisplay/charlcd 0x00000000 charlcd_free -EXPORT_SYMBOL_GPL drivers/auxdisplay/charlcd 0x00000000 charlcd_poke -EXPORT_SYMBOL_GPL drivers/auxdisplay/charlcd 0x00000000 charlcd_register -EXPORT_SYMBOL_GPL drivers/auxdisplay/charlcd 0x00000000 charlcd_unregister -EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x00000000 ks0108_address -EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x00000000 ks0108_displaystate -EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x00000000 ks0108_isinited -EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x00000000 ks0108_page -EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x00000000 ks0108_startline -EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x00000000 ks0108_writecontrol -EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x00000000 ks0108_writedata -EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-i3c 0x00000000 __devm_regmap_init_i3c -EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-sccb 0x00000000 __devm_regmap_init_sccb -EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-sccb 0x00000000 __regmap_init_sccb -EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-sdw 0x00000000 __devm_regmap_init_sdw -EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-sdw 0x00000000 __regmap_init_sdw -EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-slimbus 0x00000000 __devm_regmap_init_slimbus -EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-slimbus 0x00000000 __regmap_init_slimbus -EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-spmi 0x00000000 __devm_regmap_init_spmi_base -EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-spmi 0x00000000 __devm_regmap_init_spmi_ext -EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-spmi 0x00000000 __regmap_init_spmi_base -EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-spmi 0x00000000 __regmap_init_spmi_ext -EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-w1 0x00000000 __devm_regmap_init_w1 -EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-w1 0x00000000 __regmap_init_w1 -EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x00000000 __bcma_driver_register -EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x00000000 bcma_chipco_b_mii_write -EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x00000000 bcma_chipco_chipctl_maskset -EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x00000000 bcma_chipco_get_alp_clock -EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x00000000 bcma_chipco_gpio_control -EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x00000000 bcma_chipco_gpio_out -EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x00000000 bcma_chipco_gpio_outen -EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x00000000 bcma_chipco_pll_maskset -EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x00000000 bcma_chipco_pll_read -EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x00000000 bcma_chipco_pll_write -EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x00000000 bcma_chipco_regctl_maskset -EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x00000000 bcma_core_disable -EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x00000000 bcma_core_enable -EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x00000000 bcma_core_is_enabled -EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x00000000 bcma_core_pci_power_save -EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x00000000 bcma_core_pll_ctl -EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x00000000 bcma_core_set_clockmode -EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x00000000 bcma_driver_unregister -EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x00000000 bcma_find_core_unit -EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x00000000 bcma_host_pci_down -EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x00000000 bcma_host_pci_irq_ctl -EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x00000000 bcma_host_pci_up -EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x00000000 bcma_pmu_get_bus_clock -EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x00000000 bcma_pmu_spuravoid_pllupdate -EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0x00000000 btbcm_check_bdaddr -EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0x00000000 btbcm_finalize -EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0x00000000 btbcm_initialize -EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0x00000000 btbcm_read_pcm_int_params -EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0x00000000 btbcm_set_bdaddr -EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0x00000000 btbcm_setup_apple -EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0x00000000 btbcm_setup_patchram -EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0x00000000 btbcm_write_pcm_int_params -EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x00000000 btintel_check_bdaddr -EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x00000000 btintel_download_firmware -EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x00000000 btintel_enter_mfg -EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x00000000 btintel_exit_mfg -EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x00000000 btintel_hw_error -EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x00000000 btintel_load_ddc_config -EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x00000000 btintel_read_boot_params -EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x00000000 btintel_read_version -EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x00000000 btintel_regmap_init -EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x00000000 btintel_reset_to_bootloader -EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x00000000 btintel_secure_send -EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x00000000 btintel_send_intel_reset -EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x00000000 btintel_set_bdaddr -EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x00000000 btintel_set_diag -EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x00000000 btintel_set_diag_mfg -EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x00000000 btintel_set_event_mask -EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x00000000 btintel_set_event_mask_mfg -EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x00000000 btintel_version_info -EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x00000000 btmrvl_add_card -EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x00000000 btmrvl_check_evtpkt -EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x00000000 btmrvl_enable_hs -EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x00000000 btmrvl_enable_ps -EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x00000000 btmrvl_interrupt -EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x00000000 btmrvl_process_event -EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x00000000 btmrvl_pscan_window_reporting -EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x00000000 btmrvl_register_hdev -EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x00000000 btmrvl_remove_card -EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x00000000 btmrvl_send_hscfg_cmd -EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x00000000 btmrvl_send_module_cfg_cmd -EXPORT_SYMBOL_GPL drivers/bluetooth/btqca 0x00000000 qca_read_soc_version -EXPORT_SYMBOL_GPL drivers/bluetooth/btqca 0x00000000 qca_send_pre_shutdown_cmd -EXPORT_SYMBOL_GPL drivers/bluetooth/btqca 0x00000000 qca_set_bdaddr -EXPORT_SYMBOL_GPL drivers/bluetooth/btqca 0x00000000 qca_set_bdaddr_rome -EXPORT_SYMBOL_GPL drivers/bluetooth/btqca 0x00000000 qca_uart_setup -EXPORT_SYMBOL_GPL drivers/bluetooth/btrtl 0x00000000 btrtl_download_firmware -EXPORT_SYMBOL_GPL drivers/bluetooth/btrtl 0x00000000 btrtl_free -EXPORT_SYMBOL_GPL drivers/bluetooth/btrtl 0x00000000 btrtl_get_uart_settings -EXPORT_SYMBOL_GPL drivers/bluetooth/btrtl 0x00000000 btrtl_initialize -EXPORT_SYMBOL_GPL drivers/bluetooth/btrtl 0x00000000 btrtl_setup_realtek -EXPORT_SYMBOL_GPL drivers/bluetooth/btrtl 0x00000000 btrtl_shutdown_realtek -EXPORT_SYMBOL_GPL drivers/bluetooth/hci_uart 0x00000000 h4_recv_buf -EXPORT_SYMBOL_GPL drivers/bluetooth/hci_uart 0x00000000 hci_uart_register_device -EXPORT_SYMBOL_GPL drivers/bluetooth/hci_uart 0x00000000 hci_uart_tx_wakeup -EXPORT_SYMBOL_GPL drivers/bluetooth/hci_uart 0x00000000 hci_uart_unregister_device -EXPORT_SYMBOL_GPL drivers/counter/counter 0x00000000 counter_count_direction_str -EXPORT_SYMBOL_GPL drivers/counter/counter 0x00000000 counter_count_enum_available_read -EXPORT_SYMBOL_GPL drivers/counter/counter 0x00000000 counter_count_enum_read -EXPORT_SYMBOL_GPL drivers/counter/counter 0x00000000 counter_count_enum_write -EXPORT_SYMBOL_GPL drivers/counter/counter 0x00000000 counter_count_mode_str -EXPORT_SYMBOL_GPL drivers/counter/counter 0x00000000 counter_device_enum_available_read -EXPORT_SYMBOL_GPL drivers/counter/counter 0x00000000 counter_device_enum_read -EXPORT_SYMBOL_GPL drivers/counter/counter 0x00000000 counter_device_enum_write -EXPORT_SYMBOL_GPL drivers/counter/counter 0x00000000 counter_register -EXPORT_SYMBOL_GPL drivers/counter/counter 0x00000000 counter_signal_enum_available_read -EXPORT_SYMBOL_GPL drivers/counter/counter 0x00000000 counter_signal_enum_read -EXPORT_SYMBOL_GPL drivers/counter/counter 0x00000000 counter_signal_enum_write -EXPORT_SYMBOL_GPL drivers/counter/counter 0x00000000 counter_unregister -EXPORT_SYMBOL_GPL drivers/counter/counter 0x00000000 devm_counter_register -EXPORT_SYMBOL_GPL drivers/counter/counter 0x00000000 devm_counter_unregister -EXPORT_SYMBOL_GPL drivers/cpufreq/speedstep-lib 0x00000000 speedstep_detect_processor -EXPORT_SYMBOL_GPL drivers/cpufreq/speedstep-lib 0x00000000 speedstep_get_freqs -EXPORT_SYMBOL_GPL drivers/cpufreq/speedstep-lib 0x00000000 speedstep_get_frequency -EXPORT_SYMBOL_GPL drivers/crypto/ccp/ccp 0x00000000 ccp_enqueue_cmd -EXPORT_SYMBOL_GPL drivers/crypto/ccp/ccp 0x00000000 ccp_present -EXPORT_SYMBOL_GPL drivers/crypto/ccp/ccp 0x00000000 ccp_version -EXPORT_SYMBOL_GPL drivers/crypto/ccp/ccp 0x00000000 psp_copy_user_blob -EXPORT_SYMBOL_GPL drivers/crypto/ccp/ccp 0x00000000 sev_guest_activate -EXPORT_SYMBOL_GPL drivers/crypto/ccp/ccp 0x00000000 sev_guest_deactivate -EXPORT_SYMBOL_GPL drivers/crypto/ccp/ccp 0x00000000 sev_guest_decommission -EXPORT_SYMBOL_GPL drivers/crypto/ccp/ccp 0x00000000 sev_guest_df_flush -EXPORT_SYMBOL_GPL drivers/crypto/ccp/ccp 0x00000000 sev_issue_cmd_external_user -EXPORT_SYMBOL_GPL drivers/crypto/ccp/ccp 0x00000000 sev_platform_init -EXPORT_SYMBOL_GPL drivers/crypto/ccp/ccp 0x00000000 sev_platform_status -EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_cfg_add_key_value_param -EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_cfg_dev_add -EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_cfg_dev_remove -EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_cfg_section_add -EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_clean_vf_map -EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_cleanup_etr_data -EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_dev_get -EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_dev_in_use -EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_dev_init -EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_dev_put -EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_dev_shutdown -EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_dev_start -EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_dev_started -EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_dev_stop -EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_devmgr_add_dev -EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_devmgr_in_reset -EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_devmgr_pci_to_accel_dev -EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_devmgr_rm_dev -EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_devmgr_update_class_index -EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_disable_aer -EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_disable_sriov -EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_enable_aer -EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_enable_vf2pf_comms -EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_exit_admin_comms -EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_exit_arb -EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_init_admin_comms -EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_init_arb -EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_init_etr_data -EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_iov_putmsg -EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_isr_resource_alloc -EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_isr_resource_free -EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_reset_flr -EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_reset_sbr -EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_send_admin_init -EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_sriov_configure -EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_vf2pf_init -EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_vf2pf_shutdown -EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_vf_isr_resource_alloc -EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_vf_isr_resource_free -EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 qat_crypto_dev_config -EXPORT_SYMBOL_GPL drivers/dax/device_dax 0x00000000 dev_dax_probe -EXPORT_SYMBOL_GPL drivers/dax/pmem/dax_pmem_core 0x00000000 __dax_pmem_probe -EXPORT_SYMBOL_GPL drivers/dca/dca 0x00000000 alloc_dca_provider -EXPORT_SYMBOL_GPL drivers/dca/dca 0x00000000 dca3_get_tag -EXPORT_SYMBOL_GPL drivers/dca/dca 0x00000000 dca_add_requester -EXPORT_SYMBOL_GPL drivers/dca/dca 0x00000000 dca_get_tag -EXPORT_SYMBOL_GPL drivers/dca/dca 0x00000000 dca_register_notify -EXPORT_SYMBOL_GPL drivers/dca/dca 0x00000000 dca_remove_requester -EXPORT_SYMBOL_GPL drivers/dca/dca 0x00000000 dca_unregister_notify -EXPORT_SYMBOL_GPL drivers/dca/dca 0x00000000 free_dca_provider -EXPORT_SYMBOL_GPL drivers/dca/dca 0x00000000 register_dca_provider -EXPORT_SYMBOL_GPL drivers/dca/dca 0x00000000 unregister_dca_provider -EXPORT_SYMBOL_GPL drivers/dma/dw-edma/dw-edma 0x00000000 dw_edma_probe -EXPORT_SYMBOL_GPL drivers/dma/dw-edma/dw-edma 0x00000000 dw_edma_remove -EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x00000000 do_dw_dma_disable -EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x00000000 do_dw_dma_enable -EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x00000000 dw_dma_filter -EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x00000000 dw_dma_probe -EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x00000000 dw_dma_remove -EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x00000000 idma32_dma_probe -EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x00000000 idma32_dma_remove -EXPORT_SYMBOL_GPL drivers/dma/hsu/hsu_dma 0x00000000 hsu_dma_do_irq -EXPORT_SYMBOL_GPL drivers/dma/hsu/hsu_dma 0x00000000 hsu_dma_get_status -EXPORT_SYMBOL_GPL drivers/dma/hsu/hsu_dma 0x00000000 hsu_dma_probe -EXPORT_SYMBOL_GPL drivers/dma/hsu/hsu_dma 0x00000000 hsu_dma_remove -EXPORT_SYMBOL_GPL drivers/dma/qcom/hdma_mgmt 0x00000000 hidma_mgmt_init_sys -EXPORT_SYMBOL_GPL drivers/dma/qcom/hdma_mgmt 0x00000000 hidma_mgmt_setup -EXPORT_SYMBOL_GPL drivers/dma/virt-dma 0x00000000 vchan_dma_desc_free_list -EXPORT_SYMBOL_GPL drivers/dma/virt-dma 0x00000000 vchan_find_desc -EXPORT_SYMBOL_GPL drivers/dma/virt-dma 0x00000000 vchan_init -EXPORT_SYMBOL_GPL drivers/dma/virt-dma 0x00000000 vchan_tx_desc_free -EXPORT_SYMBOL_GPL drivers/dma/virt-dma 0x00000000 vchan_tx_submit -EXPORT_SYMBOL_GPL drivers/edac/amd64_edac_mod 0x00000000 amd64_get_dram_hole_info -EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x00000000 amd_register_ecc_decoder -EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x00000000 amd_report_gart_errors -EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x00000000 amd_unregister_ecc_decoder -EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x00000000 pp_msgs -EXPORT_SYMBOL_GPL drivers/firewire/firewire-core 0x00000000 fw_card_release -EXPORT_SYMBOL_GPL drivers/fpga/altera-pr-ip-core 0x00000000 alt_pr_register -EXPORT_SYMBOL_GPL drivers/fpga/altera-pr-ip-core 0x00000000 alt_pr_unregister -EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x00000000 __dfl_fpga_cdev_find_port -EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x00000000 dfl_fpga_cdev_assign_port -EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x00000000 dfl_fpga_cdev_config_ports_pf -EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x00000000 dfl_fpga_cdev_config_ports_vf -EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x00000000 dfl_fpga_cdev_release_port -EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x00000000 dfl_fpga_check_port_id -EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x00000000 dfl_fpga_dev_feature_init -EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x00000000 dfl_fpga_dev_feature_uinit -EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x00000000 dfl_fpga_dev_ops_register -EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x00000000 dfl_fpga_dev_ops_unregister -EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x00000000 dfl_fpga_enum_info_add_dfl -EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x00000000 dfl_fpga_enum_info_alloc -EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x00000000 dfl_fpga_enum_info_free -EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x00000000 dfl_fpga_feature_devs_enumerate -EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x00000000 dfl_fpga_feature_devs_remove -EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x00000000 dfl_fpga_port_ops_add -EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x00000000 dfl_fpga_port_ops_del -EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x00000000 dfl_fpga_port_ops_get -EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x00000000 dfl_fpga_port_ops_put -EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x00000000 devm_fpga_bridge_create -EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x00000000 fpga_bridge_create -EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x00000000 fpga_bridge_disable -EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x00000000 fpga_bridge_enable -EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x00000000 fpga_bridge_free -EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x00000000 fpga_bridge_get -EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x00000000 fpga_bridge_get_to_list -EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x00000000 fpga_bridge_put -EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x00000000 fpga_bridge_register -EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x00000000 fpga_bridge_unregister -EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x00000000 fpga_bridges_disable -EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x00000000 fpga_bridges_enable -EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x00000000 fpga_bridges_put -EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x00000000 of_fpga_bridge_get -EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x00000000 of_fpga_bridge_get_to_list -EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x00000000 devm_fpga_mgr_create -EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x00000000 fpga_image_info_alloc -EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x00000000 fpga_image_info_free -EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x00000000 fpga_mgr_create -EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x00000000 fpga_mgr_free -EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x00000000 fpga_mgr_get -EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x00000000 fpga_mgr_load -EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x00000000 fpga_mgr_lock -EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x00000000 fpga_mgr_put -EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x00000000 fpga_mgr_register -EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x00000000 fpga_mgr_unlock -EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x00000000 fpga_mgr_unregister -EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x00000000 of_fpga_mgr_get -EXPORT_SYMBOL_GPL drivers/fpga/fpga-region 0x00000000 devm_fpga_region_create -EXPORT_SYMBOL_GPL drivers/fpga/fpga-region 0x00000000 fpga_region_class_find -EXPORT_SYMBOL_GPL drivers/fpga/fpga-region 0x00000000 fpga_region_create -EXPORT_SYMBOL_GPL drivers/fpga/fpga-region 0x00000000 fpga_region_free -EXPORT_SYMBOL_GPL drivers/fpga/fpga-region 0x00000000 fpga_region_program_fpga -EXPORT_SYMBOL_GPL drivers/fpga/fpga-region 0x00000000 fpga_region_register -EXPORT_SYMBOL_GPL drivers/fpga/fpga-region 0x00000000 fpga_region_unregister -EXPORT_SYMBOL_GPL drivers/gnss/gnss 0x00000000 gnss_allocate_device -EXPORT_SYMBOL_GPL drivers/gnss/gnss 0x00000000 gnss_deregister_device -EXPORT_SYMBOL_GPL drivers/gnss/gnss 0x00000000 gnss_insert_raw -EXPORT_SYMBOL_GPL drivers/gnss/gnss 0x00000000 gnss_put_device -EXPORT_SYMBOL_GPL drivers/gnss/gnss 0x00000000 gnss_register_device -EXPORT_SYMBOL_GPL drivers/gnss/gnss-serial 0x00000000 gnss_serial_allocate -EXPORT_SYMBOL_GPL drivers/gnss/gnss-serial 0x00000000 gnss_serial_deregister -EXPORT_SYMBOL_GPL drivers/gnss/gnss-serial 0x00000000 gnss_serial_free -EXPORT_SYMBOL_GPL drivers/gnss/gnss-serial 0x00000000 gnss_serial_pm_ops -EXPORT_SYMBOL_GPL drivers/gnss/gnss-serial 0x00000000 gnss_serial_register -EXPORT_SYMBOL_GPL drivers/gpio/gpio-generic 0x00000000 bgpio_init -EXPORT_SYMBOL_GPL drivers/gpio/gpio-max730x 0x00000000 __max730x_probe -EXPORT_SYMBOL_GPL drivers/gpio/gpio-max730x 0x00000000 __max730x_remove -EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0x00000000 analogix_dp_bind -EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0x00000000 analogix_dp_probe -EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0x00000000 analogix_dp_remove -EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0x00000000 analogix_dp_resume -EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0x00000000 analogix_dp_start_crc -EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0x00000000 analogix_dp_stop_crc -EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0x00000000 analogix_dp_suspend -EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0x00000000 analogix_dp_unbind -EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0x00000000 anx_dp_aux_transfer -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x00000000 drm_bus_flags_from_videomode -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x00000000 drm_class_device_register -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x00000000 drm_class_device_unregister -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x00000000 drm_crtc_add_crc_entry -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x00000000 drm_display_mode_from_videomode -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x00000000 drm_display_mode_to_videomode -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x00000000 drm_do_get_edid -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x00000000 drm_gem_cma_create -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x00000000 drm_gem_cma_dumb_create -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x00000000 drm_gem_cma_dumb_create_internal -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x00000000 drm_gem_cma_free_object -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x00000000 drm_gem_cma_mmap -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x00000000 drm_gem_cma_prime_get_sg_table -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x00000000 drm_gem_cma_prime_import_sg_table -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x00000000 drm_gem_cma_prime_mmap -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x00000000 drm_gem_cma_prime_vmap -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x00000000 drm_gem_cma_prime_vunmap -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x00000000 drm_gem_cma_vm_ops -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x00000000 drm_gem_dumb_map_offset -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x00000000 drm_gem_shmem_create -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x00000000 drm_gem_shmem_dumb_create -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x00000000 drm_gem_shmem_free_object -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x00000000 drm_gem_shmem_get_pages_sgt -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x00000000 drm_gem_shmem_get_sg_table -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x00000000 drm_gem_shmem_mmap -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x00000000 drm_gem_shmem_prime_import_sg_table -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x00000000 drm_hdcp_check_ksvs_revoked -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_cma_get_gem_addr -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_cma_get_gem_obj -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_gem_fb_create -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_gem_fb_create_with_dirty -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_gem_fb_create_with_funcs -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_gem_fb_get_obj -EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_gem_fb_prepare_fb -EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x00000000 i915_gpu_busy -EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x00000000 i915_gpu_lower -EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x00000000 i915_gpu_raise -EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x00000000 i915_gpu_turbo_disable -EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x00000000 i915_read_mch_val -EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x00000000 intel_gvt_register_hypervisor -EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x00000000 intel_gvt_unregister_hypervisor -EXPORT_SYMBOL_GPL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_dma_page_alloc_debugfs -EXPORT_SYMBOL_GPL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_dma_populate -EXPORT_SYMBOL_GPL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_dma_unpopulate -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 __tracepoint_gb_hd_add -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 __tracepoint_gb_hd_create -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 __tracepoint_gb_hd_del -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 __tracepoint_gb_hd_in -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 __tracepoint_gb_hd_release -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 __tracepoint_gb_message_submit -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 gb_connection_create -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 gb_connection_create_flags -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 gb_connection_create_offloaded -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 gb_connection_destroy -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 gb_connection_disable -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 gb_connection_disable_forced -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 gb_connection_disable_rx -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 gb_connection_enable -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 gb_connection_enable_tx -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 gb_connection_latency_tag_disable -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 gb_connection_latency_tag_enable -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 gb_debugfs_get -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 gb_hd_add -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 gb_hd_cport_release_reserved -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 gb_hd_cport_reserve -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 gb_hd_create -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 gb_hd_del -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 gb_hd_output -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 gb_hd_put -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 gb_hd_shutdown -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 gb_interface_request_mode_switch -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 gb_operation_cancel -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 gb_operation_create_flags -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 gb_operation_get -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 gb_operation_get_payload_size_max -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 gb_operation_put -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 gb_operation_request_send -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 gb_operation_request_send_sync_timeout -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 gb_operation_response_alloc -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 gb_operation_result -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 gb_operation_sync_timeout -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 gb_operation_unidirectional_timeout -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 gb_svc_intf_set_power_mode -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 greybus_data_rcvd -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 greybus_deregister_driver -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 greybus_disabled -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 greybus_message_sent -EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 greybus_register_driver -EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 __hid_register_driver -EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 __hid_request -EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_add_device -EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_alloc_report_buf -EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_allocate_device -EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_check_keys_pressed -EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_compare_device_paths -EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_connect -EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_debug -EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_debug_event -EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_destroy_device -EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_disconnect -EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_dump_device -EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_dump_field -EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_dump_input -EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_dump_report -EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_field_extract -EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_hw_close -EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_hw_open -EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_hw_start -EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_hw_stop -EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_ignore -EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_input_report -EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_lookup_quirk -EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_match_device -EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_open_report -EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_output_report -EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_parse_report -EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_quirks_exit -EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_quirks_init -EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_register_report -EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_report_raw_event -EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_resolv_usage -EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_set_field -EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_setup_resolution_multiplier -EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_snto32 -EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_unregister_driver -EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_validate_values -EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hidinput_calc_abs_res -EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hidinput_connect -EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hidinput_count_leds -EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hidinput_disconnect -EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hidinput_find_field -EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hidinput_get_led_field -EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hidinput_report_event -EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hidraw_connect -EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hidraw_disconnect -EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hidraw_report_event -EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x00000000 roccat_connect -EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x00000000 roccat_disconnect -EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x00000000 roccat_report_event -EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x00000000 roccat_common2_device_init_struct -EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x00000000 roccat_common2_receive -EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x00000000 roccat_common2_send -EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x00000000 roccat_common2_send_with_status -EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x00000000 roccat_common2_sysfs_read -EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x00000000 roccat_common2_sysfs_write -EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x00000000 hid_sensor_get_usage_index -EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x00000000 sensor_hub_device_close -EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x00000000 sensor_hub_device_open -EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x00000000 sensor_hub_get_feature -EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x00000000 sensor_hub_input_attr_get_raw_value -EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x00000000 sensor_hub_input_get_attribute_info -EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x00000000 sensor_hub_register_callback -EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x00000000 sensor_hub_remove_callback -EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x00000000 sensor_hub_set_feature -EXPORT_SYMBOL_GPL drivers/hid/i2c-hid/i2c-hid 0x00000000 i2c_hid_ll_driver -EXPORT_SYMBOL_GPL drivers/hid/uhid 0x00000000 uhid_hid_driver -EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x00000000 hiddev_hid_event -EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x00000000 usb_hid_driver -EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x00000000 hsi_alloc_controller -EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x00000000 hsi_alloc_msg -EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x00000000 hsi_async -EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x00000000 hsi_board_list -EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x00000000 hsi_claim_port -EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x00000000 hsi_event -EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x00000000 hsi_free_msg -EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x00000000 hsi_get_channel_id_by_name -EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x00000000 hsi_new_client -EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x00000000 hsi_port_unregister_clients -EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x00000000 hsi_put_controller -EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x00000000 hsi_register_client_driver -EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x00000000 hsi_register_controller -EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x00000000 hsi_register_port_event -EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x00000000 hsi_release_port -EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x00000000 hsi_remove_client -EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x00000000 hsi_unregister_controller -EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x00000000 hsi_unregister_port_event -EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x00000000 __hv_pkt_iter_next -EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x00000000 __vmbus_driver_register -EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x00000000 hv_pkt_iter_close -EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x00000000 hv_pkt_iter_first -EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x00000000 hv_ringbuffer_get_debuginfo -EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x00000000 vmbus_alloc_ring -EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x00000000 vmbus_allocate_mmio -EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x00000000 vmbus_are_subchannels_present -EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x00000000 vmbus_close -EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x00000000 vmbus_connect_ring -EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x00000000 vmbus_connection -EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x00000000 vmbus_disconnect_ring -EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x00000000 vmbus_driver_unregister -EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x00000000 vmbus_establish_gpadl -EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x00000000 vmbus_free_mmio -EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x00000000 vmbus_free_ring -EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x00000000 vmbus_hvsock_device_unregister -EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x00000000 vmbus_open -EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x00000000 vmbus_prep_negotiate_resp -EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x00000000 vmbus_proto_version -EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x00000000 vmbus_recvpacket_raw -EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x00000000 vmbus_send_tl_connect_request -EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x00000000 vmbus_sendpacket_mpb_desc -EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x00000000 vmbus_sendpacket_pagebuffer -EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x00000000 vmbus_set_chn_rescind_callback -EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x00000000 vmbus_set_event -EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x00000000 vmbus_set_sc_create_callback -EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x00000000 vmbus_setevent -EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x00000000 vmbus_teardown_gpadl -EXPORT_SYMBOL_GPL drivers/hwmon/adt7x10 0x00000000 adt7x10_dev_pm_ops -EXPORT_SYMBOL_GPL drivers/hwmon/adt7x10 0x00000000 adt7x10_probe -EXPORT_SYMBOL_GPL drivers/hwmon/adt7x10 0x00000000 adt7x10_remove -EXPORT_SYMBOL_GPL drivers/hwmon/ltc2947-core 0x00000000 ltc2947_core_probe -EXPORT_SYMBOL_GPL drivers/hwmon/ltc2947-core 0x00000000 ltc2947_of_match -EXPORT_SYMBOL_GPL drivers/hwmon/ltc2947-core 0x00000000 ltc2947_pm_ops -EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x00000000 pmbus_check_byte_register -EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x00000000 pmbus_check_word_register -EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x00000000 pmbus_clear_cache -EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x00000000 pmbus_clear_faults -EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x00000000 pmbus_do_probe -EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x00000000 pmbus_do_remove -EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x00000000 pmbus_get_debugfs_dir -EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x00000000 pmbus_get_driver_info -EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x00000000 pmbus_get_fan_rate_cached -EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x00000000 pmbus_get_fan_rate_device -EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x00000000 pmbus_read_byte_data -EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x00000000 pmbus_read_word_data -EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x00000000 pmbus_regulator_ops -EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x00000000 pmbus_set_page -EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x00000000 pmbus_update_byte_data -EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x00000000 pmbus_update_fan -EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x00000000 pmbus_write_byte -EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x00000000 pmbus_write_byte_data -EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x00000000 pmbus_write_word_data -EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x00000000 intel_th_alloc -EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x00000000 intel_th_driver_register -EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x00000000 intel_th_driver_unregister -EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x00000000 intel_th_free -EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x00000000 intel_th_output_enable -EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x00000000 intel_th_set_output -EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x00000000 intel_th_trace_disable -EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x00000000 intel_th_trace_enable -EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x00000000 intel_th_trace_switch -EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th_msu 0x00000000 intel_th_msc_window_unlock -EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th_msu 0x00000000 intel_th_msu_buffer_register -EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th_msu 0x00000000 intel_th_msu_buffer_unregister -EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x00000000 stm_data_write -EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x00000000 stm_register_device -EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x00000000 stm_register_protocol -EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x00000000 stm_source_register_device -EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x00000000 stm_source_unregister_device -EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x00000000 stm_source_write -EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x00000000 stm_unregister_device -EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x00000000 stm_unregister_protocol -EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x00000000 to_pdrv_policy_node -EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-amd-mp2-pci 0x00000000 amd_mp2_bus_enable_set -EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-amd-mp2-pci 0x00000000 amd_mp2_find_device -EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-amd-mp2-pci 0x00000000 amd_mp2_process_event -EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-amd-mp2-pci 0x00000000 amd_mp2_register_cb -EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-amd-mp2-pci 0x00000000 amd_mp2_rw -EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-amd-mp2-pci 0x00000000 amd_mp2_rw_timeout -EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-amd-mp2-pci 0x00000000 amd_mp2_unregister_cb -EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-nforce2 0x00000000 nforce2_smbus -EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x00000000 i2c_mux_add_adapter -EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x00000000 i2c_mux_alloc -EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x00000000 i2c_mux_del_adapters -EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x00000000 i2c_root_adapter -EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x00000000 i2c_handle_smbus_alert -EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x00000000 dev_to_i3cdev -EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x00000000 i3c_device_disable_ibi -EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x00000000 i3c_device_do_priv_xfers -EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x00000000 i3c_device_enable_ibi -EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x00000000 i3c_device_free_ibi -EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x00000000 i3c_device_get_info -EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x00000000 i3c_device_match_id -EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x00000000 i3c_device_request_ibi -EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x00000000 i3c_driver_register_with_owner -EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x00000000 i3c_driver_unregister -EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x00000000 i3c_generic_ibi_alloc_pool -EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x00000000 i3c_generic_ibi_free_pool -EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x00000000 i3c_generic_ibi_get_free_slot -EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x00000000 i3c_generic_ibi_recycle_slot -EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x00000000 i3c_master_add_i3c_dev_locked -EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x00000000 i3c_master_defslvs_locked -EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x00000000 i3c_master_disec_locked -EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x00000000 i3c_master_do_daa -EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x00000000 i3c_master_enec_locked -EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x00000000 i3c_master_entdaa_locked -EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x00000000 i3c_master_get_free_addr -EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x00000000 i3c_master_queue_ibi -EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x00000000 i3c_master_register -EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x00000000 i3c_master_set_info -EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x00000000 i3c_master_unregister -EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x00000000 i3cdev_to_dev -EXPORT_SYMBOL_GPL drivers/iio/accel/adxl372 0x00000000 adxl372_probe -EXPORT_SYMBOL_GPL drivers/iio/accel/adxl372 0x00000000 adxl372_readable_noinc_reg -EXPORT_SYMBOL_GPL drivers/iio/accel/bmc150-accel-core 0x00000000 bmc150_accel_core_probe -EXPORT_SYMBOL_GPL drivers/iio/accel/bmc150-accel-core 0x00000000 bmc150_accel_core_remove -EXPORT_SYMBOL_GPL drivers/iio/accel/bmc150-accel-core 0x00000000 bmc150_accel_pm_ops -EXPORT_SYMBOL_GPL drivers/iio/accel/bmc150-accel-core 0x00000000 bmc150_regmap_conf -EXPORT_SYMBOL_GPL drivers/iio/accel/mma7455_core 0x00000000 mma7455_core_probe -EXPORT_SYMBOL_GPL drivers/iio/accel/mma7455_core 0x00000000 mma7455_core_regmap -EXPORT_SYMBOL_GPL drivers/iio/accel/mma7455_core 0x00000000 mma7455_core_remove -EXPORT_SYMBOL_GPL drivers/iio/adc/ad7091r-base 0x00000000 ad7091r_probe -EXPORT_SYMBOL_GPL drivers/iio/adc/ad7091r-base 0x00000000 ad7091r_regmap_config -EXPORT_SYMBOL_GPL drivers/iio/adc/ad7606 0x00000000 ad7606_pm_ops -EXPORT_SYMBOL_GPL drivers/iio/adc/ad7606 0x00000000 ad7606_probe -EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x00000000 ad_sd_calibrate -EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x00000000 ad_sd_calibrate_all -EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x00000000 ad_sd_cleanup_buffer_and_trigger -EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x00000000 ad_sd_init -EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x00000000 ad_sd_read_reg -EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x00000000 ad_sd_reset -EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x00000000 ad_sd_set_comm -EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x00000000 ad_sd_setup_buffer_and_trigger -EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x00000000 ad_sd_validate_trigger -EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x00000000 ad_sd_write_reg -EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x00000000 ad_sigma_delta_single_conversion -EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-cb 0x00000000 iio_channel_cb_get_channels -EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-cb 0x00000000 iio_channel_cb_get_iio_dev -EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-cb 0x00000000 iio_channel_cb_set_buffer_watermark -EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-cb 0x00000000 iio_channel_get_all_cb -EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-cb 0x00000000 iio_channel_release_all_cb -EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-cb 0x00000000 iio_channel_start_all_cb -EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-cb 0x00000000 iio_channel_stop_all_cb -EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-hw-consumer 0x00000000 devm_iio_hw_consumer_alloc -EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-hw-consumer 0x00000000 devm_iio_hw_consumer_free -EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-hw-consumer 0x00000000 iio_hw_consumer_alloc -EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-hw-consumer 0x00000000 iio_hw_consumer_disable -EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-hw-consumer 0x00000000 iio_hw_consumer_enable -EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-hw-consumer 0x00000000 iio_hw_consumer_free -EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-triggered-buffer 0x00000000 devm_iio_triggered_buffer_cleanup -EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-triggered-buffer 0x00000000 devm_iio_triggered_buffer_setup -EXPORT_SYMBOL_GPL drivers/iio/chemical/bme680_core 0x00000000 bme680_core_probe -EXPORT_SYMBOL_GPL drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x00000000 cros_ec_motion_send_host_cmd -EXPORT_SYMBOL_GPL drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x00000000 cros_ec_sensors_capture -EXPORT_SYMBOL_GPL drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x00000000 cros_ec_sensors_core_init -EXPORT_SYMBOL_GPL drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x00000000 cros_ec_sensors_core_read -EXPORT_SYMBOL_GPL drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x00000000 cros_ec_sensors_core_read_avail -EXPORT_SYMBOL_GPL drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x00000000 cros_ec_sensors_core_write -EXPORT_SYMBOL_GPL drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x00000000 cros_ec_sensors_ext_info -EXPORT_SYMBOL_GPL drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x00000000 cros_ec_sensors_pm_ops -EXPORT_SYMBOL_GPL drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x00000000 cros_ec_sensors_read_cmd -EXPORT_SYMBOL_GPL drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x00000000 cros_ec_sensors_read_lpc -EXPORT_SYMBOL_GPL drivers/iio/dac/ad5592r-base 0x00000000 ad5592r_probe -EXPORT_SYMBOL_GPL drivers/iio/dac/ad5592r-base 0x00000000 ad5592r_remove -EXPORT_SYMBOL_GPL drivers/iio/dac/ad5686 0x00000000 ad5686_probe -EXPORT_SYMBOL_GPL drivers/iio/dac/ad5686 0x00000000 ad5686_remove -EXPORT_SYMBOL_GPL drivers/iio/gyro/bmg160_core 0x00000000 bmg160_core_probe -EXPORT_SYMBOL_GPL drivers/iio/gyro/bmg160_core 0x00000000 bmg160_core_remove -EXPORT_SYMBOL_GPL drivers/iio/gyro/bmg160_core 0x00000000 bmg160_pm_ops -EXPORT_SYMBOL_GPL drivers/iio/gyro/fxas21002c_core 0x00000000 fxas21002c_core_probe -EXPORT_SYMBOL_GPL drivers/iio/gyro/fxas21002c_core 0x00000000 fxas21002c_core_remove -EXPORT_SYMBOL_GPL drivers/iio/gyro/fxas21002c_core 0x00000000 fxas21002c_pm_ops -EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x00000000 __adis_check_status -EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x00000000 __adis_read_reg -EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x00000000 __adis_reset -EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x00000000 __adis_write_reg -EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x00000000 adis_cleanup_buffer_and_trigger -EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x00000000 adis_init -EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x00000000 adis_initial_startup -EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x00000000 adis_probe_trigger -EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x00000000 adis_remove_trigger -EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x00000000 adis_setup_buffer_and_trigger -EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x00000000 adis_single_conversion -EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x00000000 adis_update_scan_mode -EXPORT_SYMBOL_GPL drivers/iio/imu/bmi160/bmi160_core 0x00000000 bmi160_core_probe -EXPORT_SYMBOL_GPL drivers/iio/imu/fxos8700_core 0x00000000 fxos8700_core_probe -EXPORT_SYMBOL_GPL drivers/iio/imu/inv_mpu6050/inv-mpu6050 0x00000000 inv_mpu6050_set_power_itg -EXPORT_SYMBOL_GPL drivers/iio/imu/inv_mpu6050/inv-mpu6050 0x00000000 inv_mpu_core_probe -EXPORT_SYMBOL_GPL drivers/iio/imu/inv_mpu6050/inv-mpu6050 0x00000000 inv_mpu_pmops -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 __devm_iio_device_register -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 __devm_iio_trigger_register -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 devm_iio_channel_get -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 devm_iio_channel_get_all -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 devm_iio_channel_release -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 devm_iio_channel_release_all -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 devm_iio_device_alloc -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 devm_iio_device_free -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 devm_iio_device_match -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 devm_iio_device_unregister -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 devm_iio_trigger_alloc -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 devm_iio_trigger_free -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 devm_iio_trigger_unregister -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_alloc_pollfunc -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_buffer_get -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_buffer_put -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_buffer_set_attrs -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_channel_get -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_channel_get_all -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_channel_release -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_channel_release_all -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_convert_raw_to_processed -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_dealloc_pollfunc -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_device_attach_buffer -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_device_claim_direct_mode -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_device_release_direct_mode -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_enum_available_read -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_enum_read -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_enum_write -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_format_value -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_get_channel_ext_info_count -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_get_channel_type -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_map_array_register -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_map_array_unregister -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_push_to_buffers -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_read_avail_channel_attribute -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_read_avail_channel_raw -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_read_channel_attribute -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_read_channel_average_raw -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_read_channel_ext_info -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_read_channel_offset -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_read_channel_processed -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_read_channel_raw -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_read_channel_scale -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_read_max_channel_raw -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_show_mount_matrix -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_str_to_fixpoint -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_update_buffers -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_validate_scan_mask_onehot -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_write_channel_attribute -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_write_channel_ext_info -EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_write_channel_raw -EXPORT_SYMBOL_GPL drivers/iio/magnetometer/rm3100-core 0x00000000 rm3100_common_probe -EXPORT_SYMBOL_GPL drivers/iio/magnetometer/rm3100-core 0x00000000 rm3100_readable_table -EXPORT_SYMBOL_GPL drivers/iio/magnetometer/rm3100-core 0x00000000 rm3100_volatile_table -EXPORT_SYMBOL_GPL drivers/iio/magnetometer/rm3100-core 0x00000000 rm3100_writable_table -EXPORT_SYMBOL_GPL drivers/iio/pressure/mpl115 0x00000000 mpl115_probe -EXPORT_SYMBOL_GPL drivers/iio/pressure/zpa2326 0x00000000 zpa2326_isreg_precious -EXPORT_SYMBOL_GPL drivers/iio/pressure/zpa2326 0x00000000 zpa2326_isreg_readable -EXPORT_SYMBOL_GPL drivers/iio/pressure/zpa2326 0x00000000 zpa2326_isreg_writeable -EXPORT_SYMBOL_GPL drivers/iio/pressure/zpa2326 0x00000000 zpa2326_pm_ops -EXPORT_SYMBOL_GPL drivers/iio/pressure/zpa2326 0x00000000 zpa2326_probe -EXPORT_SYMBOL_GPL drivers/iio/pressure/zpa2326 0x00000000 zpa2326_remove -EXPORT_SYMBOL_GPL drivers/infiniband/core/ib_core 0x00000000 ib_wq -EXPORT_SYMBOL_GPL drivers/input/ff-memless 0x00000000 input_ff_create_memless -EXPORT_SYMBOL_GPL drivers/input/matrix-keymap 0x00000000 matrix_keypad_parse_properties -EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x00000000 adxl34x_probe -EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x00000000 adxl34x_remove -EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x00000000 adxl34x_resume -EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x00000000 adxl34x_suspend -EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x00000000 __rmi_register_function_handler -EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x00000000 rmi_2d_sensor_abs_process -EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x00000000 rmi_2d_sensor_abs_report -EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x00000000 rmi_2d_sensor_configure_input -EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x00000000 rmi_2d_sensor_of_probe -EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x00000000 rmi_2d_sensor_rel_report -EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x00000000 rmi_dbg -EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x00000000 rmi_driver_resume -EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x00000000 rmi_driver_suspend -EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x00000000 rmi_of_property_read_u32 -EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x00000000 rmi_register_transport_device -EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x00000000 rmi_set_attn_data -EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x00000000 rmi_unregister_function_handler -EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0x00000000 cyttsp4_pm_ops -EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0x00000000 cyttsp4_probe -EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0x00000000 cyttsp4_remove -EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_core 0x00000000 cyttsp_pm_ops -EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_core 0x00000000 cyttsp_probe -EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_i2c_common 0x00000000 cyttsp_i2c_read_block_data -EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_i2c_common 0x00000000 cyttsp_i2c_write_block_data -EXPORT_SYMBOL_GPL drivers/input/touchscreen/tsc200x-core 0x00000000 tsc200x_pm_ops -EXPORT_SYMBOL_GPL drivers/input/touchscreen/tsc200x-core 0x00000000 tsc200x_probe -EXPORT_SYMBOL_GPL drivers/input/touchscreen/tsc200x-core 0x00000000 tsc200x_regmap_config -EXPORT_SYMBOL_GPL drivers/input/touchscreen/tsc200x-core 0x00000000 tsc200x_remove -EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x00000000 wm9705_codec -EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x00000000 wm9712_codec -EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x00000000 wm9713_codec -EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x00000000 wm97xx_config_gpio -EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x00000000 wm97xx_get_gpio -EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x00000000 wm97xx_read_aux_adc -EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x00000000 wm97xx_reg_read -EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x00000000 wm97xx_reg_write -EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x00000000 wm97xx_register_mach_ops -EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x00000000 wm97xx_set_gpio -EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x00000000 wm97xx_set_suspend_mode -EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x00000000 wm97xx_unregister_mach_ops -EXPORT_SYMBOL_GPL drivers/interconnect/icc-core 0x00000000 icc_get -EXPORT_SYMBOL_GPL drivers/interconnect/icc-core 0x00000000 icc_link_create -EXPORT_SYMBOL_GPL drivers/interconnect/icc-core 0x00000000 icc_link_destroy -EXPORT_SYMBOL_GPL drivers/interconnect/icc-core 0x00000000 icc_node_add -EXPORT_SYMBOL_GPL drivers/interconnect/icc-core 0x00000000 icc_node_create -EXPORT_SYMBOL_GPL drivers/interconnect/icc-core 0x00000000 icc_node_del -EXPORT_SYMBOL_GPL drivers/interconnect/icc-core 0x00000000 icc_node_destroy -EXPORT_SYMBOL_GPL drivers/interconnect/icc-core 0x00000000 icc_nodes_remove -EXPORT_SYMBOL_GPL drivers/interconnect/icc-core 0x00000000 icc_provider_add -EXPORT_SYMBOL_GPL drivers/interconnect/icc-core 0x00000000 icc_provider_del -EXPORT_SYMBOL_GPL drivers/interconnect/icc-core 0x00000000 icc_put -EXPORT_SYMBOL_GPL drivers/interconnect/icc-core 0x00000000 icc_set_bw -EXPORT_SYMBOL_GPL drivers/interconnect/icc-core 0x00000000 icc_set_tag -EXPORT_SYMBOL_GPL drivers/interconnect/icc-core 0x00000000 icc_std_aggregate -EXPORT_SYMBOL_GPL drivers/interconnect/icc-core 0x00000000 of_icc_get -EXPORT_SYMBOL_GPL drivers/interconnect/icc-core 0x00000000 of_icc_xlate_onecell -EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x00000000 ipack_bus_register -EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x00000000 ipack_bus_unregister -EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x00000000 ipack_device_add -EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x00000000 ipack_device_del -EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x00000000 ipack_device_init -EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x00000000 ipack_driver_register -EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x00000000 ipack_driver_unregister -EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x00000000 ipack_get_device -EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x00000000 ipack_put_device -EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0x00000000 devm_led_classdev_flash_register_ext -EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0x00000000 devm_led_classdev_flash_unregister -EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0x00000000 led_classdev_flash_register_ext -EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0x00000000 led_classdev_flash_unregister -EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0x00000000 led_get_flash_fault -EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0x00000000 led_set_flash_brightness -EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0x00000000 led_set_flash_timeout -EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0x00000000 led_update_flash_brightness -EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x00000000 lp55xx_deinit_device -EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x00000000 lp55xx_init_device -EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x00000000 lp55xx_is_extclk_used -EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x00000000 lp55xx_of_populate_pdata -EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x00000000 lp55xx_read -EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x00000000 lp55xx_register_leds -EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x00000000 lp55xx_register_sysfs -EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x00000000 lp55xx_unregister_leds -EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x00000000 lp55xx_unregister_sysfs -EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x00000000 lp55xx_update_bits -EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x00000000 lp55xx_write -EXPORT_SYMBOL_GPL drivers/leds/trigger/ledtrig-audio 0x00000000 ledtrig_audio_get -EXPORT_SYMBOL_GPL drivers/leds/trigger/ledtrig-audio 0x00000000 ledtrig_audio_set -EXPORT_SYMBOL_GPL drivers/leds/trigger/ledtrig-camera 0x00000000 ledtrig_flash_ctrl -EXPORT_SYMBOL_GPL drivers/leds/trigger/ledtrig-camera 0x00000000 ledtrig_torch_ctrl -EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x00000000 __tracepoint_bcache_alloc_fail -EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x00000000 __tracepoint_bcache_btree_cache_cannibalize -EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x00000000 __tracepoint_bcache_btree_gc_coalesce -EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x00000000 __tracepoint_bcache_btree_insert_key -EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x00000000 __tracepoint_bcache_btree_node_alloc -EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x00000000 __tracepoint_bcache_btree_node_alloc_fail -EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x00000000 __tracepoint_bcache_btree_node_compact -EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x00000000 __tracepoint_bcache_btree_node_free -EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x00000000 __tracepoint_bcache_btree_node_split -EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x00000000 __tracepoint_bcache_btree_read -EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x00000000 __tracepoint_bcache_btree_set_root -EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x00000000 __tracepoint_bcache_btree_write -EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x00000000 __tracepoint_bcache_bypass_congested -EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x00000000 __tracepoint_bcache_bypass_sequential -EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x00000000 __tracepoint_bcache_cache_insert -EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x00000000 __tracepoint_bcache_gc_copy -EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x00000000 __tracepoint_bcache_gc_copy_collision -EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x00000000 __tracepoint_bcache_gc_end -EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x00000000 __tracepoint_bcache_gc_start -EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x00000000 __tracepoint_bcache_invalidate -EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x00000000 __tracepoint_bcache_journal_entry_full -EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x00000000 __tracepoint_bcache_journal_full -EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x00000000 __tracepoint_bcache_journal_replay_key -EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x00000000 __tracepoint_bcache_journal_write -EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x00000000 __tracepoint_bcache_read -EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x00000000 __tracepoint_bcache_read_retry -EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x00000000 __tracepoint_bcache_request_end -EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x00000000 __tracepoint_bcache_request_start -EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x00000000 __tracepoint_bcache_write -EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x00000000 __tracepoint_bcache_writeback -EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x00000000 __tracepoint_bcache_writeback_collision -EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x00000000 dm_bio_detain -EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x00000000 dm_bio_prison_alloc_cell -EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x00000000 dm_bio_prison_alloc_cell_v2 -EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x00000000 dm_bio_prison_create -EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x00000000 dm_bio_prison_create_v2 -EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x00000000 dm_bio_prison_destroy -EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x00000000 dm_bio_prison_destroy_v2 -EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x00000000 dm_bio_prison_free_cell -EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x00000000 dm_bio_prison_free_cell_v2 -EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x00000000 dm_cell_error -EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x00000000 dm_cell_get_v2 -EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x00000000 dm_cell_lock_promote_v2 -EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x00000000 dm_cell_lock_v2 -EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x00000000 dm_cell_promote_or_release -EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x00000000 dm_cell_put_v2 -EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x00000000 dm_cell_quiesce_v2 -EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x00000000 dm_cell_release -EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x00000000 dm_cell_release_no_holder -EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x00000000 dm_cell_unlock_v2 -EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x00000000 dm_cell_visit_release -EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x00000000 dm_deferred_entry_dec -EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x00000000 dm_deferred_entry_inc -EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x00000000 dm_deferred_set_add_work -EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x00000000 dm_deferred_set_create -EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x00000000 dm_deferred_set_destroy -EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x00000000 dm_get_cell -EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x00000000 dm_bufio_client_create -EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x00000000 dm_bufio_client_destroy -EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x00000000 dm_bufio_forget -EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x00000000 dm_bufio_get -EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x00000000 dm_bufio_get_aux_data -EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x00000000 dm_bufio_get_block_data -EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x00000000 dm_bufio_get_block_number -EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x00000000 dm_bufio_get_block_size -EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x00000000 dm_bufio_get_client -EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x00000000 dm_bufio_get_device_size -EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x00000000 dm_bufio_issue_flush -EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x00000000 dm_bufio_mark_buffer_dirty -EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x00000000 dm_bufio_mark_partial_buffer_dirty -EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x00000000 dm_bufio_new -EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x00000000 dm_bufio_prefetch -EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x00000000 dm_bufio_read -EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x00000000 dm_bufio_release -EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x00000000 dm_bufio_release_move -EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x00000000 dm_bufio_set_minimum_buffers -EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x00000000 dm_bufio_set_sector_offset -EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x00000000 dm_bufio_write_dirty_buffers -EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x00000000 dm_bufio_write_dirty_buffers_async -EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x00000000 btracker_complete -EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x00000000 btracker_create -EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x00000000 btracker_destroy -EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x00000000 btracker_issue -EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x00000000 btracker_nr_demotions_queued -EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x00000000 btracker_nr_writebacks_queued -EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x00000000 btracker_promotion_already_present -EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x00000000 btracker_queue -EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x00000000 dm_cache_policy_create -EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x00000000 dm_cache_policy_destroy -EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x00000000 dm_cache_policy_get_hint_size -EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x00000000 dm_cache_policy_get_name -EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x00000000 dm_cache_policy_get_version -EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x00000000 dm_cache_policy_register -EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x00000000 dm_cache_policy_unregister -EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x00000000 dm_register_path_selector -EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x00000000 dm_unregister_path_selector -EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x00000000 dm_region_hash_create -EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x00000000 dm_region_hash_destroy -EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x00000000 dm_rh_bio_to_region -EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x00000000 dm_rh_dec -EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x00000000 dm_rh_delay -EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x00000000 dm_rh_dirty_log -EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x00000000 dm_rh_flush -EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x00000000 dm_rh_get_region_key -EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x00000000 dm_rh_get_region_size -EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x00000000 dm_rh_get_state -EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x00000000 dm_rh_inc_pending -EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x00000000 dm_rh_mark_nosync -EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x00000000 dm_rh_recovery_end -EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x00000000 dm_rh_recovery_in_flight -EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x00000000 dm_rh_recovery_prepare -EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x00000000 dm_rh_recovery_start -EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x00000000 dm_rh_region_context -EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x00000000 dm_rh_region_to_sector -EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x00000000 dm_rh_start_recovery -EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x00000000 dm_rh_stop_recovery -EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x00000000 dm_rh_update_states -EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_array_cursor_begin -EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_array_cursor_end -EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_array_cursor_get_value -EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_array_cursor_next -EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_array_cursor_skip -EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_array_del -EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_array_empty -EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_array_get_value -EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_array_info_init -EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_array_new -EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_array_resize -EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_array_set_value -EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_array_walk -EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_bitset_clear_bit -EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_bitset_cursor_begin -EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_bitset_cursor_end -EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_bitset_cursor_get_value -EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_bitset_cursor_next -EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_bitset_cursor_skip -EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_bitset_del -EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_bitset_empty -EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_bitset_flush -EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_bitset_new -EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_bitset_resize -EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_bitset_set_bit -EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_bitset_test_bit -EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_block_data -EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_block_location -EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_block_manager_create -EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_block_manager_destroy -EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_bm_block_size -EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_bm_checksum -EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_bm_flush -EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_bm_is_read_only -EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_bm_read_lock -EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_bm_set_read_only -EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_bm_set_read_write -EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_bm_unlock -EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_bm_write_lock -EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_bm_write_lock_zero -EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_btree_cursor_begin -EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_btree_cursor_end -EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_btree_cursor_get_value -EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_btree_cursor_next -EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_btree_cursor_skip -EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_btree_del -EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_btree_empty -EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_btree_find_highest_key -EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_btree_find_lowest_key -EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_btree_insert -EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_btree_insert_notify -EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_btree_lookup -EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_btree_lookup_next -EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_btree_remove -EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_btree_remove_leaves -EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_btree_walk -EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_disk_bitset_init -EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_sm_disk_create -EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_sm_disk_open -EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_tm_commit -EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_tm_create_non_blocking_clone -EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_tm_create_with_sm -EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_tm_dec -EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_tm_destroy -EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_tm_inc -EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_tm_issue_prefetches -EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_tm_open_with_sm -EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_tm_pre_commit -EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_tm_read_lock -EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_tm_shadow_block -EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_tm_unlock -EXPORT_SYMBOL_GPL drivers/media/cec/cec 0x00000000 cec_allocate_adapter -EXPORT_SYMBOL_GPL drivers/media/cec/cec 0x00000000 cec_delete_adapter -EXPORT_SYMBOL_GPL drivers/media/cec/cec 0x00000000 cec_fill_conn_info_from_drm -EXPORT_SYMBOL_GPL drivers/media/cec/cec 0x00000000 cec_get_edid_phys_addr -EXPORT_SYMBOL_GPL drivers/media/cec/cec 0x00000000 cec_notifier_cec_adap_register -EXPORT_SYMBOL_GPL drivers/media/cec/cec 0x00000000 cec_notifier_cec_adap_unregister -EXPORT_SYMBOL_GPL drivers/media/cec/cec 0x00000000 cec_notifier_conn_register -EXPORT_SYMBOL_GPL drivers/media/cec/cec 0x00000000 cec_notifier_conn_unregister -EXPORT_SYMBOL_GPL drivers/media/cec/cec 0x00000000 cec_notifier_get_conn -EXPORT_SYMBOL_GPL drivers/media/cec/cec 0x00000000 cec_notifier_parse_hdmi_phandle -EXPORT_SYMBOL_GPL drivers/media/cec/cec 0x00000000 cec_notifier_set_phys_addr -EXPORT_SYMBOL_GPL drivers/media/cec/cec 0x00000000 cec_notifier_set_phys_addr_from_edid -EXPORT_SYMBOL_GPL drivers/media/cec/cec 0x00000000 cec_queue_pin_5v_event -EXPORT_SYMBOL_GPL drivers/media/cec/cec 0x00000000 cec_queue_pin_cec_event -EXPORT_SYMBOL_GPL drivers/media/cec/cec 0x00000000 cec_queue_pin_hpd_event -EXPORT_SYMBOL_GPL drivers/media/cec/cec 0x00000000 cec_received_msg_ts -EXPORT_SYMBOL_GPL drivers/media/cec/cec 0x00000000 cec_register_adapter -EXPORT_SYMBOL_GPL drivers/media/cec/cec 0x00000000 cec_s_conn_info -EXPORT_SYMBOL_GPL drivers/media/cec/cec 0x00000000 cec_s_log_addrs -EXPORT_SYMBOL_GPL drivers/media/cec/cec 0x00000000 cec_s_phys_addr -EXPORT_SYMBOL_GPL drivers/media/cec/cec 0x00000000 cec_s_phys_addr_from_edid -EXPORT_SYMBOL_GPL drivers/media/cec/cec 0x00000000 cec_transmit_attempt_done_ts -EXPORT_SYMBOL_GPL drivers/media/cec/cec 0x00000000 cec_transmit_done_ts -EXPORT_SYMBOL_GPL drivers/media/cec/cec 0x00000000 cec_transmit_msg -EXPORT_SYMBOL_GPL drivers/media/cec/cec 0x00000000 cec_unregister_adapter -EXPORT_SYMBOL_GPL drivers/media/common/b2c2/b2c2-flexcop 0x00000000 b2c2_flexcop_debug -EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x00000000 saa7146_debug -EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x00000000 saa7146_i2c_adapter_prepare -EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x00000000 saa7146_pgtable_alloc -EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x00000000 saa7146_pgtable_build_single -EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x00000000 saa7146_pgtable_free -EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x00000000 saa7146_register_extension -EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x00000000 saa7146_setgpio -EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x00000000 saa7146_unregister_extension -EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x00000000 saa7146_vfree_destroy_pgtable -EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x00000000 saa7146_vmalloc_build_pgtable -EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x00000000 saa7146_wait_for_debi_done -EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x00000000 saa7146_register_device -EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x00000000 saa7146_set_hps_source_and_sync -EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x00000000 saa7146_start_preview -EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x00000000 saa7146_stop_preview -EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x00000000 saa7146_unregister_device -EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x00000000 saa7146_vv_init -EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x00000000 saa7146_vv_release -EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x00000000 sms_board_event -EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x00000000 sms_board_led_feedback -EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x00000000 sms_board_lna_control -EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x00000000 sms_board_load_modules -EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x00000000 sms_board_power -EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x00000000 sms_board_setup -EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x00000000 sms_get_board -EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x00000000 smsclient_sendrequest -EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x00000000 smscore_get_board_id -EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x00000000 smscore_get_device_mode -EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x00000000 smscore_getbuffer -EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x00000000 smscore_onresponse -EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x00000000 smscore_putbuffer -EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x00000000 smscore_register_client -EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x00000000 smscore_register_device -EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x00000000 smscore_register_hotplug -EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x00000000 smscore_registry_getmode -EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x00000000 smscore_set_board_id -EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x00000000 smscore_start_device -EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x00000000 smscore_translate_msg -EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x00000000 smscore_unregister_client -EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x00000000 smscore_unregister_device -EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x00000000 smscore_unregister_hotplug -EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x00000000 smsendian_handle_message_header -EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x00000000 smsendian_handle_rx_message -EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x00000000 smsendian_handle_tx_message -EXPORT_SYMBOL_GPL drivers/media/common/v4l2-tpg/v4l2-tpg 0x00000000 tpg_alloc -EXPORT_SYMBOL_GPL drivers/media/common/v4l2-tpg/v4l2-tpg 0x00000000 tpg_aspect_strings -EXPORT_SYMBOL_GPL drivers/media/common/v4l2-tpg/v4l2-tpg 0x00000000 tpg_calc_text_basep -EXPORT_SYMBOL_GPL drivers/media/common/v4l2-tpg/v4l2-tpg 0x00000000 tpg_fill_plane_buffer -EXPORT_SYMBOL_GPL drivers/media/common/v4l2-tpg/v4l2-tpg 0x00000000 tpg_fillbuffer -EXPORT_SYMBOL_GPL drivers/media/common/v4l2-tpg/v4l2-tpg 0x00000000 tpg_free -EXPORT_SYMBOL_GPL drivers/media/common/v4l2-tpg/v4l2-tpg 0x00000000 tpg_g_interleaved_plane -EXPORT_SYMBOL_GPL drivers/media/common/v4l2-tpg/v4l2-tpg 0x00000000 tpg_gen_text -EXPORT_SYMBOL_GPL drivers/media/common/v4l2-tpg/v4l2-tpg 0x00000000 tpg_init -EXPORT_SYMBOL_GPL drivers/media/common/v4l2-tpg/v4l2-tpg 0x00000000 tpg_log_status -EXPORT_SYMBOL_GPL drivers/media/common/v4l2-tpg/v4l2-tpg 0x00000000 tpg_pattern_strings -EXPORT_SYMBOL_GPL drivers/media/common/v4l2-tpg/v4l2-tpg 0x00000000 tpg_reset_source -EXPORT_SYMBOL_GPL drivers/media/common/v4l2-tpg/v4l2-tpg 0x00000000 tpg_s_crop_compose -EXPORT_SYMBOL_GPL drivers/media/common/v4l2-tpg/v4l2-tpg 0x00000000 tpg_s_fourcc -EXPORT_SYMBOL_GPL drivers/media/common/v4l2-tpg/v4l2-tpg 0x00000000 tpg_set_font -EXPORT_SYMBOL_GPL drivers/media/common/v4l2-tpg/v4l2-tpg 0x00000000 tpg_update_mv_step -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x00000000 __tracepoint_vb2_buf_done -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x00000000 __tracepoint_vb2_buf_queue -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x00000000 __tracepoint_vb2_dqbuf -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x00000000 __tracepoint_vb2_qbuf -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x00000000 vb2_buffer_done -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x00000000 vb2_core_create_bufs -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x00000000 vb2_core_dqbuf -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x00000000 vb2_core_expbuf -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x00000000 vb2_core_poll -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x00000000 vb2_core_prepare_buf -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x00000000 vb2_core_qbuf -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x00000000 vb2_core_querybuf -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x00000000 vb2_core_queue_init -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x00000000 vb2_core_queue_release -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x00000000 vb2_core_reqbufs -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x00000000 vb2_core_streamoff -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x00000000 vb2_core_streamon -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x00000000 vb2_discard_done -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x00000000 vb2_mmap -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x00000000 vb2_plane_cookie -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x00000000 vb2_plane_vaddr -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x00000000 vb2_queue_error -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x00000000 vb2_read -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x00000000 vb2_request_buffer_cnt -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x00000000 vb2_request_object_is_buffer -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x00000000 vb2_thread_start -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x00000000 vb2_thread_stop -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x00000000 vb2_wait_for_all_buffers -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x00000000 vb2_write -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-dma-contig 0x00000000 vb2_dma_contig_memops -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-dma-contig 0x00000000 vb2_dma_contig_set_max_seg_size -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-dma-sg 0x00000000 vb2_dma_sg_memops -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-memops 0x00000000 vb2_common_vm_ops -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x00000000 _vb2_fop_release -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x00000000 vb2_create_bufs -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x00000000 vb2_dqbuf -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x00000000 vb2_expbuf -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x00000000 vb2_find_timestamp -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x00000000 vb2_fop_mmap -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x00000000 vb2_fop_poll -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x00000000 vb2_fop_read -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x00000000 vb2_fop_release -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x00000000 vb2_fop_write -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x00000000 vb2_ioctl_create_bufs -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x00000000 vb2_ioctl_dqbuf -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x00000000 vb2_ioctl_expbuf -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x00000000 vb2_ioctl_prepare_buf -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x00000000 vb2_ioctl_qbuf -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x00000000 vb2_ioctl_querybuf -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x00000000 vb2_ioctl_reqbufs -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x00000000 vb2_ioctl_streamoff -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x00000000 vb2_ioctl_streamon -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x00000000 vb2_ops_wait_finish -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x00000000 vb2_ops_wait_prepare -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x00000000 vb2_poll -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x00000000 vb2_prepare_buf -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x00000000 vb2_qbuf -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x00000000 vb2_queue_init -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x00000000 vb2_queue_release -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x00000000 vb2_reqbufs -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x00000000 vb2_request_queue -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x00000000 vb2_request_validate -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x00000000 vb2_streamoff -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x00000000 vb2_streamon -EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-vmalloc 0x00000000 vb2_vmalloc_memops -EXPORT_SYMBOL_GPL drivers/media/dvb-core/dvb-core 0x00000000 dvb_create_media_graph -EXPORT_SYMBOL_GPL drivers/media/dvb-core/dvb-core 0x00000000 dvb_module_probe -EXPORT_SYMBOL_GPL drivers/media/dvb-core/dvb-core 0x00000000 dvb_module_release -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/as102_fe 0x00000000 as102_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/cx24117 0x00000000 cx24117_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/gp8psk-fe 0x00000000 gp8psk_fe_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/mxl5xx 0x00000000 mxl5xx_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/stv0910 0x00000000 stv0910_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/stv6111 0x00000000 stv6111_attach -EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/tda18271c2dd 0x00000000 tda18271c2dd_attach -EXPORT_SYMBOL_GPL drivers/media/i2c/aptina-pll 0x00000000 aptina_pll_calculate -EXPORT_SYMBOL_GPL drivers/media/i2c/smiapp-pll 0x00000000 smiapp_pll_calculate -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 __media_device_register -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 __media_device_usb_init -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 __media_entity_enum_init -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 __media_entity_remove_links -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 __media_entity_setup_link -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 __media_pipeline_start -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 __media_pipeline_stop -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 __media_remove_intf_link -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 __media_remove_intf_links -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_create_intf_link -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_create_pad_link -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_create_pad_links -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_device_cleanup -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_device_delete -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_device_init -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_device_pci_init -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_device_register_entity -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_device_register_entity_notify -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_device_unregister -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_device_unregister_entity -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_device_unregister_entity_notify -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_device_usb_allocate -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_devnode_create -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_devnode_remove -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_entity_enum_cleanup -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_entity_find_link -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_entity_get_fwnode_pad -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_entity_pads_init -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_entity_remote_pad -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_entity_remove_links -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_entity_setup_link -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_get_pad_index -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_graph_walk_cleanup -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_graph_walk_init -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_graph_walk_next -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_graph_walk_start -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_pipeline_start -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_pipeline_stop -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_remove_intf_link -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_remove_intf_links -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_request_get_by_fd -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_request_object_bind -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_request_object_complete -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_request_object_find -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_request_object_init -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_request_object_put -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_request_object_unbind -EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_request_put -EXPORT_SYMBOL_GPL drivers/media/pci/cx88/cx88xx 0x00000000 cx88_setup_xc3028 -EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x00000000 mantis_ca_exit -EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x00000000 mantis_ca_init -EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x00000000 mantis_dma_exit -EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x00000000 mantis_dma_init -EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x00000000 mantis_dvb_exit -EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x00000000 mantis_dvb_init -EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x00000000 mantis_frontend_power -EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x00000000 mantis_frontend_soft_reset -EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x00000000 mantis_get_mac -EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x00000000 mantis_gpio_set_bits -EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x00000000 mantis_i2c_exit -EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x00000000 mantis_i2c_init -EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x00000000 mantis_input_exit -EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x00000000 mantis_input_init -EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x00000000 mantis_pci_exit -EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x00000000 mantis_pci_init -EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x00000000 mantis_stream_control -EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x00000000 mantis_uart_exit -EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x00000000 mantis_uart_init -EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x00000000 saa7134_enum_input -EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x00000000 saa7134_g_frequency -EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x00000000 saa7134_g_input -EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x00000000 saa7134_g_std -EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x00000000 saa7134_g_tuner -EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x00000000 saa7134_querycap -EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x00000000 saa7134_querystd -EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x00000000 saa7134_s_frequency -EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x00000000 saa7134_s_input -EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x00000000 saa7134_s_std -EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x00000000 saa7134_s_tuner -EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x00000000 saa7134_stop_streaming -EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x00000000 saa7134_ts_buffer_init -EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x00000000 saa7134_ts_buffer_prepare -EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x00000000 saa7134_ts_qops -EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x00000000 saa7134_ts_queue_setup -EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x00000000 saa7134_ts_start_streaming -EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x00000000 saa7134_ts_stop_streaming -EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x00000000 saa7134_vb2_buffer_queue -EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x00000000 budget_debug -EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x00000000 ttpci_budget_debiread -EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x00000000 ttpci_budget_debiwrite -EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x00000000 ttpci_budget_deinit -EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x00000000 ttpci_budget_init -EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x00000000 ttpci_budget_init_hooks -EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x00000000 ttpci_budget_irq10_handler -EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x00000000 ttpci_budget_set_video_port -EXPORT_SYMBOL_GPL drivers/media/platform/marvell-ccic/mcam-core 0x00000000 mccic_irq -EXPORT_SYMBOL_GPL drivers/media/platform/marvell-ccic/mcam-core 0x00000000 mccic_register -EXPORT_SYMBOL_GPL drivers/media/platform/marvell-ccic/mcam-core 0x00000000 mccic_resume -EXPORT_SYMBOL_GPL drivers/media/platform/marvell-ccic/mcam-core 0x00000000 mccic_shutdown -EXPORT_SYMBOL_GPL drivers/media/platform/marvell-ccic/mcam-core 0x00000000 mccic_suspend -EXPORT_SYMBOL_GPL drivers/media/radio/shark2 0x00000000 radio_tea5777_exit -EXPORT_SYMBOL_GPL drivers/media/radio/shark2 0x00000000 radio_tea5777_init -EXPORT_SYMBOL_GPL drivers/media/radio/si470x/radio-si470x-common 0x00000000 si470x_ctrl_ops -EXPORT_SYMBOL_GPL drivers/media/radio/si470x/radio-si470x-common 0x00000000 si470x_set_freq -EXPORT_SYMBOL_GPL drivers/media/radio/si470x/radio-si470x-common 0x00000000 si470x_start -EXPORT_SYMBOL_GPL drivers/media/radio/si470x/radio-si470x-common 0x00000000 si470x_stop -EXPORT_SYMBOL_GPL drivers/media/radio/si470x/radio-si470x-common 0x00000000 si470x_viddev_template -EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x00000000 devm_rc_allocate_device -EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x00000000 devm_rc_register_device -EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x00000000 ir_lirc_scancode_event -EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x00000000 ir_raw_event_handle -EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x00000000 ir_raw_event_set_idle -EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x00000000 ir_raw_event_store -EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x00000000 ir_raw_event_store_edge -EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x00000000 ir_raw_event_store_with_filter -EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x00000000 ir_raw_event_store_with_timeout -EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x00000000 rc_allocate_device -EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x00000000 rc_free_device -EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x00000000 rc_g_keycode_from_table -EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x00000000 rc_keydown -EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x00000000 rc_keydown_notimeout -EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x00000000 rc_keyup -EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x00000000 rc_map_get -EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x00000000 rc_map_register -EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x00000000 rc_map_unregister -EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x00000000 rc_register_device -EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x00000000 rc_repeat -EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x00000000 rc_unregister_device -EXPORT_SYMBOL_GPL drivers/media/tuners/mt2063 0x00000000 mt2063_attach -EXPORT_SYMBOL_GPL drivers/media/tuners/mt20xx 0x00000000 microtune_attach -EXPORT_SYMBOL_GPL drivers/media/tuners/mxl5007t 0x00000000 mxl5007t_attach -EXPORT_SYMBOL_GPL drivers/media/tuners/r820t 0x00000000 r820t_attach -EXPORT_SYMBOL_GPL drivers/media/tuners/tda18271 0x00000000 tda18271_attach -EXPORT_SYMBOL_GPL drivers/media/tuners/tda827x 0x00000000 tda827x_attach -EXPORT_SYMBOL_GPL drivers/media/tuners/tda8290 0x00000000 tda829x_attach -EXPORT_SYMBOL_GPL drivers/media/tuners/tda8290 0x00000000 tda829x_probe -EXPORT_SYMBOL_GPL drivers/media/tuners/tda9887 0x00000000 tda9887_attach -EXPORT_SYMBOL_GPL drivers/media/tuners/tea5761 0x00000000 tea5761_attach -EXPORT_SYMBOL_GPL drivers/media/tuners/tea5761 0x00000000 tea5761_autodetection -EXPORT_SYMBOL_GPL drivers/media/tuners/tea5767 0x00000000 tea5767_attach -EXPORT_SYMBOL_GPL drivers/media/tuners/tea5767 0x00000000 tea5767_autodetection -EXPORT_SYMBOL_GPL drivers/media/tuners/tuner-simple 0x00000000 simple_tuner_attach -EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x00000000 cx231xx_capture_start -EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x00000000 cx231xx_demod_reset -EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x00000000 cx231xx_dev_init -EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x00000000 cx231xx_dev_uninit -EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x00000000 cx231xx_disable656 -EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x00000000 cx231xx_enable656 -EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x00000000 cx231xx_enable_i2c_port_3 -EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x00000000 cx231xx_get_i2c_adap -EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x00000000 cx231xx_init_bulk -EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x00000000 cx231xx_init_isoc -EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x00000000 cx231xx_init_vbi_isoc -EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x00000000 cx231xx_send_gpio_cmd -EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x00000000 cx231xx_send_usb_command -EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x00000000 cx231xx_set_alt_setting -EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x00000000 cx231xx_set_mode -EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x00000000 cx231xx_tuner_callback -EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x00000000 cx231xx_uninit_bulk -EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x00000000 cx231xx_uninit_isoc -EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x00000000 cx231xx_uninit_vbi_isoc -EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x00000000 cx231xx_unmute_audio -EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x00000000 is_fw_load -EXPORT_SYMBOL_GPL drivers/media/usb/dvb-usb-v2/mxl111sf-demod 0x00000000 mxl111sf_demod_attach -EXPORT_SYMBOL_GPL drivers/media/usb/dvb-usb-v2/mxl111sf-tuner 0x00000000 mxl111sf_tuner_attach -EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x00000000 em28xx_alloc_urbs -EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x00000000 em28xx_audio_analog_set -EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x00000000 em28xx_audio_setup -EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x00000000 em28xx_boards -EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x00000000 em28xx_find_led -EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x00000000 em28xx_free_device -EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x00000000 em28xx_gpio_set -EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x00000000 em28xx_init_camera -EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x00000000 em28xx_init_usb_xfer -EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x00000000 em28xx_read_ac97 -EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x00000000 em28xx_read_reg -EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x00000000 em28xx_set_mode -EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x00000000 em28xx_setup_xc3028 -EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x00000000 em28xx_stop_urbs -EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x00000000 em28xx_toggle_reg_bits -EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x00000000 em28xx_tuner_callback -EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x00000000 em28xx_uninit_usb_xfer -EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x00000000 em28xx_write_ac97 -EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x00000000 em28xx_write_reg -EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x00000000 em28xx_write_reg_bits -EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x00000000 em28xx_write_regs -EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x00000000 tm6000_debug -EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x00000000 tm6000_get_reg -EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x00000000 tm6000_set_audio_bitrate -EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x00000000 tm6000_set_reg -EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x00000000 tm6000_set_reg_mask -EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x00000000 tm6000_tuner_callback -EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x00000000 tm6000_xc5000_callback -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x00000000 v4l2_calc_aspect_ratio -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x00000000 v4l2_calc_timeperframe -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x00000000 v4l2_detect_cvt -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x00000000 v4l2_detect_gtf -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x00000000 v4l2_dv_timings_aspect_ratio -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x00000000 v4l2_dv_timings_presets -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x00000000 v4l2_enum_dv_timings_cap -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x00000000 v4l2_find_dv_timings_cap -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x00000000 v4l2_find_dv_timings_cea861_vic -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x00000000 v4l2_get_edid_phys_addr -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x00000000 v4l2_hdmi_rx_colorimetry -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x00000000 v4l2_match_dv_timings -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x00000000 v4l2_phys_addr_for_input -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x00000000 v4l2_phys_addr_validate -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x00000000 v4l2_print_dv_timings -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x00000000 v4l2_set_edid_phys_addr -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x00000000 v4l2_valid_dv_timings -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-flash-led-class 0x00000000 v4l2_flash_indicator_init -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-flash-led-class 0x00000000 v4l2_flash_init -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-flash-led-class 0x00000000 v4l2_flash_release -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x00000000 v4l2_async_notifier_parse_fwnode_endpoints -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x00000000 v4l2_async_notifier_parse_fwnode_endpoints_by_port -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x00000000 v4l2_async_notifier_parse_fwnode_sensor_common -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x00000000 v4l2_async_register_fwnode_subdev -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x00000000 v4l2_async_register_subdev_sensor_common -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x00000000 v4l2_fwnode_endpoint_alloc_parse -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x00000000 v4l2_fwnode_endpoint_free -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x00000000 v4l2_fwnode_endpoint_parse -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x00000000 v4l2_fwnode_parse_link -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x00000000 v4l2_fwnode_put_link -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_buf_copy_metadata -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_buf_queue -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_buf_remove -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_buf_remove_by_buf -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_buf_remove_by_idx -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_create_bufs -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_ctx_init -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_ctx_release -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_dqbuf -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_expbuf -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_fop_mmap -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_fop_poll -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_init -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_ioctl_create_bufs -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_ioctl_dqbuf -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_ioctl_expbuf -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_ioctl_prepare_buf -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_ioctl_qbuf -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_ioctl_querybuf -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_ioctl_reqbufs -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_ioctl_stateless_decoder_cmd -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_ioctl_stateless_try_decoder_cmd -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_ioctl_streamoff -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_ioctl_streamon -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_ioctl_try_decoder_cmd -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_ioctl_try_encoder_cmd -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_last_buf -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_next_buf -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_poll -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_prepare_buf -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_qbuf -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_querybuf -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_register_media_controller -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_release -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_reqbufs -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_request_queue -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_streamoff -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_streamon -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_try_schedule -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_unregister_media_controller -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x00000000 __videobuf_mmap_setup -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x00000000 videobuf_alloc_vb -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x00000000 videobuf_dqbuf -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x00000000 videobuf_iolock -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x00000000 videobuf_mmap_free -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x00000000 videobuf_mmap_mapper -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x00000000 videobuf_mmap_setup -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x00000000 videobuf_next_field -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x00000000 videobuf_poll_stream -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x00000000 videobuf_qbuf -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x00000000 videobuf_querybuf -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x00000000 videobuf_queue_cancel -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x00000000 videobuf_queue_core_init -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x00000000 videobuf_queue_is_busy -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x00000000 videobuf_queue_to_vaddr -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x00000000 videobuf_read_one -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x00000000 videobuf_read_start -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x00000000 videobuf_read_stop -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x00000000 videobuf_read_stream -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x00000000 videobuf_reqbufs -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x00000000 videobuf_stop -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x00000000 videobuf_streamoff -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x00000000 videobuf_streamon -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x00000000 videobuf_waiton -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x00000000 videobuf_dma_free -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x00000000 videobuf_dma_unmap -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x00000000 videobuf_queue_sg_init -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x00000000 videobuf_sg_alloc -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x00000000 videobuf_to_dma -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-vmalloc 0x00000000 videobuf_queue_vmalloc_init -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-vmalloc 0x00000000 videobuf_to_vmalloc -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-vmalloc 0x00000000 videobuf_vmalloc_free -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 __tracepoint_vb2_v4l2_buf_done -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 __tracepoint_vb2_v4l2_buf_queue -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 __tracepoint_vb2_v4l2_dqbuf -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 __tracepoint_vb2_v4l2_qbuf -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 __v4l2_ctrl_handler_setup -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 __v4l2_find_nearest_size -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_apply_frmsize_constraints -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_async_notifier_add_devname_subdev -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_async_notifier_add_fwnode_remote_subdev -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_async_notifier_add_fwnode_subdev -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_async_notifier_add_i2c_subdev -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_async_notifier_add_subdev -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_async_notifier_cleanup -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_compat_ioctl32 -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_ctrl_request_hdl_ctrl_find -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_ctrl_request_hdl_find -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_device_disconnect -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_device_put -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_device_register -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_device_register_subdev -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_device_register_subdev_nodes -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_device_set_name -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_device_unregister -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_device_unregister_subdev -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_event_dequeue -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_event_pending -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_event_queue -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_event_queue_fh -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_event_subdev_unsubscribe -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_event_subscribe -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_event_unsubscribe -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_event_unsubscribe_all -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_fh_add -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_fh_del -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_fh_exit -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_fh_init -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_fh_is_singular -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_fh_open -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_fh_release -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_fill_pixfmt -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_fill_pixfmt_mp -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_g_parm_cap -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_i2c_new_subdev -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_i2c_new_subdev_board -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_i2c_subdev_addr -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_i2c_subdev_init -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_i2c_subdev_set_name -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_i2c_tuner_addrs -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_mc_create_media_graph -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_pipeline_link_notify -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_pipeline_pm_use -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_s_parm_cap -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_spi_new_subdev -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_spi_subdev_init -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_src_change_event_subdev_subscribe -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_src_change_event_subscribe -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_subdev_alloc_pad_config -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_subdev_free_pad_config -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_subdev_link_validate -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_subdev_link_validate_default -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_subdev_notify_event -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l_bound_align_image -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l_disable_media_source -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l_enable_media_source -EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l_vb2q_enable_media_source -EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0x00000000 pm80x_deinit -EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0x00000000 pm80x_init -EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0x00000000 pm80x_pm_ops -EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0x00000000 pm80x_regmap_config -EXPORT_SYMBOL_GPL drivers/mfd/da9150-core 0x00000000 da9150_bulk_read -EXPORT_SYMBOL_GPL drivers/mfd/da9150-core 0x00000000 da9150_bulk_write -EXPORT_SYMBOL_GPL drivers/mfd/da9150-core 0x00000000 da9150_read_qif -EXPORT_SYMBOL_GPL drivers/mfd/da9150-core 0x00000000 da9150_reg_read -EXPORT_SYMBOL_GPL drivers/mfd/da9150-core 0x00000000 da9150_reg_write -EXPORT_SYMBOL_GPL drivers/mfd/da9150-core 0x00000000 da9150_set_bits -EXPORT_SYMBOL_GPL drivers/mfd/da9150-core 0x00000000 da9150_write_qif -EXPORT_SYMBOL_GPL drivers/mfd/intel-lpss 0x00000000 intel_lpss_prepare -EXPORT_SYMBOL_GPL drivers/mfd/intel-lpss 0x00000000 intel_lpss_probe -EXPORT_SYMBOL_GPL drivers/mfd/intel-lpss 0x00000000 intel_lpss_remove -EXPORT_SYMBOL_GPL drivers/mfd/intel-lpss 0x00000000 intel_lpss_resume -EXPORT_SYMBOL_GPL drivers/mfd/intel-lpss 0x00000000 intel_lpss_suspend -EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x00000000 kempld_get_mutex -EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x00000000 kempld_read16 -EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x00000000 kempld_read32 -EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x00000000 kempld_read8 -EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x00000000 kempld_release_mutex -EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x00000000 kempld_write16 -EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x00000000 kempld_write32 -EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x00000000 kempld_write8 -EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0x00000000 lm3533_read -EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0x00000000 lm3533_update -EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0x00000000 lm3533_write -EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x00000000 lm3533_ctrlbank_disable -EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x00000000 lm3533_ctrlbank_enable -EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x00000000 lm3533_ctrlbank_get_brightness -EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x00000000 lm3533_ctrlbank_get_pwm -EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x00000000 lm3533_ctrlbank_set_brightness -EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x00000000 lm3533_ctrlbank_set_max_current -EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x00000000 lm3533_ctrlbank_set_pwm -EXPORT_SYMBOL_GPL drivers/mfd/lp3943 0x00000000 lp3943_read_byte -EXPORT_SYMBOL_GPL drivers/mfd/lp3943 0x00000000 lp3943_update_bits -EXPORT_SYMBOL_GPL drivers/mfd/lp3943 0x00000000 lp3943_write_byte -EXPORT_SYMBOL_GPL drivers/mfd/madera 0x00000000 cs47l15_16bit_i2c_regmap -EXPORT_SYMBOL_GPL drivers/mfd/madera 0x00000000 cs47l15_16bit_spi_regmap -EXPORT_SYMBOL_GPL drivers/mfd/madera 0x00000000 cs47l15_32bit_i2c_regmap -EXPORT_SYMBOL_GPL drivers/mfd/madera 0x00000000 cs47l15_32bit_spi_regmap -EXPORT_SYMBOL_GPL drivers/mfd/madera 0x00000000 cs47l15_patch -EXPORT_SYMBOL_GPL drivers/mfd/madera 0x00000000 cs47l35_16bit_i2c_regmap -EXPORT_SYMBOL_GPL drivers/mfd/madera 0x00000000 cs47l35_16bit_spi_regmap -EXPORT_SYMBOL_GPL drivers/mfd/madera 0x00000000 cs47l35_32bit_i2c_regmap -EXPORT_SYMBOL_GPL drivers/mfd/madera 0x00000000 cs47l35_32bit_spi_regmap -EXPORT_SYMBOL_GPL drivers/mfd/madera 0x00000000 cs47l35_patch -EXPORT_SYMBOL_GPL drivers/mfd/madera 0x00000000 cs47l85_16bit_i2c_regmap -EXPORT_SYMBOL_GPL drivers/mfd/madera 0x00000000 cs47l85_16bit_spi_regmap -EXPORT_SYMBOL_GPL drivers/mfd/madera 0x00000000 cs47l85_32bit_i2c_regmap -EXPORT_SYMBOL_GPL drivers/mfd/madera 0x00000000 cs47l85_32bit_spi_regmap -EXPORT_SYMBOL_GPL drivers/mfd/madera 0x00000000 cs47l85_patch -EXPORT_SYMBOL_GPL drivers/mfd/madera 0x00000000 cs47l90_16bit_i2c_regmap -EXPORT_SYMBOL_GPL drivers/mfd/madera 0x00000000 cs47l90_16bit_spi_regmap -EXPORT_SYMBOL_GPL drivers/mfd/madera 0x00000000 cs47l90_32bit_i2c_regmap -EXPORT_SYMBOL_GPL drivers/mfd/madera 0x00000000 cs47l90_32bit_spi_regmap -EXPORT_SYMBOL_GPL drivers/mfd/madera 0x00000000 cs47l90_patch -EXPORT_SYMBOL_GPL drivers/mfd/madera 0x00000000 cs47l92_16bit_i2c_regmap -EXPORT_SYMBOL_GPL drivers/mfd/madera 0x00000000 cs47l92_16bit_spi_regmap -EXPORT_SYMBOL_GPL drivers/mfd/madera 0x00000000 cs47l92_32bit_i2c_regmap -EXPORT_SYMBOL_GPL drivers/mfd/madera 0x00000000 cs47l92_32bit_spi_regmap -EXPORT_SYMBOL_GPL drivers/mfd/madera 0x00000000 cs47l92_patch -EXPORT_SYMBOL_GPL drivers/mfd/madera 0x00000000 madera_dev_exit -EXPORT_SYMBOL_GPL drivers/mfd/madera 0x00000000 madera_dev_init -EXPORT_SYMBOL_GPL drivers/mfd/madera 0x00000000 madera_name_from_type -EXPORT_SYMBOL_GPL drivers/mfd/madera 0x00000000 madera_of_match -EXPORT_SYMBOL_GPL drivers/mfd/madera 0x00000000 madera_pm_ops -EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x00000000 mc13xxx_adc_do_conversion -EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x00000000 mc13xxx_common_exit -EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x00000000 mc13xxx_common_init -EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x00000000 mc13xxx_variant_mc13783 -EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x00000000 mc13xxx_variant_mc13892 -EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x00000000 mc13xxx_variant_mc34708 -EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x00000000 pcf50633_free_irq -EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x00000000 pcf50633_irq_mask -EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x00000000 pcf50633_irq_mask_get -EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x00000000 pcf50633_irq_unmask -EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x00000000 pcf50633_read_block -EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x00000000 pcf50633_reg_clear_bits -EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x00000000 pcf50633_reg_read -EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x00000000 pcf50633_reg_set_bit_mask -EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x00000000 pcf50633_reg_write -EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x00000000 pcf50633_register_irq -EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x00000000 pcf50633_write_block -EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x00000000 pcf50633_adc_async_read -EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x00000000 pcf50633_adc_sync_read -EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x00000000 pcf50633_gpio_get -EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x00000000 pcf50633_gpio_invert_get -EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x00000000 pcf50633_gpio_invert_set -EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x00000000 pcf50633_gpio_power_supply_set -EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x00000000 pcf50633_gpio_set -EXPORT_SYMBOL_GPL drivers/mfd/rave-sp 0x00000000 devm_rave_sp_register_event_notifier -EXPORT_SYMBOL_GPL drivers/mfd/rave-sp 0x00000000 rave_sp_exec -EXPORT_SYMBOL_GPL drivers/mfd/retu-mfd 0x00000000 retu_read -EXPORT_SYMBOL_GPL drivers/mfd/retu-mfd 0x00000000 retu_write -EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x00000000 devm_regmap_init_si476x -EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x00000000 si476x_core_cmd_agc_status -EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x00000000 si476x_core_cmd_am_acf_status -EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x00000000 si476x_core_cmd_am_rsq_status -EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x00000000 si476x_core_cmd_am_seek_start -EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x00000000 si476x_core_cmd_am_tune_freq -EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x00000000 si476x_core_cmd_ana_audio_pin_cfg -EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x00000000 si476x_core_cmd_dig_audio_pin_cfg -EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x00000000 si476x_core_cmd_fm_acf_status -EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x00000000 si476x_core_cmd_fm_phase_div_status -EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x00000000 si476x_core_cmd_fm_phase_diversity -EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x00000000 si476x_core_cmd_fm_rds_blockcount -EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x00000000 si476x_core_cmd_fm_rds_status -EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x00000000 si476x_core_cmd_fm_rsq_status -EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x00000000 si476x_core_cmd_fm_seek_start -EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x00000000 si476x_core_cmd_fm_tune_freq -EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x00000000 si476x_core_cmd_func_info -EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x00000000 si476x_core_cmd_get_property -EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x00000000 si476x_core_cmd_ic_link_gpo_ctl_pin_cfg -EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x00000000 si476x_core_cmd_intb_pin_cfg -EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x00000000 si476x_core_cmd_power_down -EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x00000000 si476x_core_cmd_power_up -EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x00000000 si476x_core_cmd_set_property -EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x00000000 si476x_core_cmd_zif_pin_cfg -EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x00000000 si476x_core_has_am -EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x00000000 si476x_core_has_diversity -EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x00000000 si476x_core_i2c_xfer -EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x00000000 si476x_core_is_a_primary_tuner -EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x00000000 si476x_core_is_a_secondary_tuner -EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x00000000 si476x_core_is_in_am_receiver_mode -EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x00000000 si476x_core_is_powered_up -EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x00000000 si476x_core_set_power_state -EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x00000000 si476x_core_start -EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x00000000 si476x_core_stop -EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x00000000 sm501_find_clock -EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x00000000 sm501_misc_control -EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x00000000 sm501_modify_reg -EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x00000000 sm501_set_clock -EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x00000000 sm501_unit_power -EXPORT_SYMBOL_GPL drivers/mfd/ti_am335x_tscadc 0x00000000 am335x_tsc_se_adc_done -EXPORT_SYMBOL_GPL drivers/mfd/ti_am335x_tscadc 0x00000000 am335x_tsc_se_clr -EXPORT_SYMBOL_GPL drivers/mfd/ti_am335x_tscadc 0x00000000 am335x_tsc_se_set_cache -EXPORT_SYMBOL_GPL drivers/mfd/ti_am335x_tscadc 0x00000000 am335x_tsc_se_set_once -EXPORT_SYMBOL_GPL drivers/mfd/ucb1400_core 0x00000000 ucb1400_adc_read -EXPORT_SYMBOL_GPL drivers/misc/cardreader/alcor_pci 0x00000000 alcor_read32 -EXPORT_SYMBOL_GPL drivers/misc/cardreader/alcor_pci 0x00000000 alcor_read32be -EXPORT_SYMBOL_GPL drivers/misc/cardreader/alcor_pci 0x00000000 alcor_read8 -EXPORT_SYMBOL_GPL drivers/misc/cardreader/alcor_pci 0x00000000 alcor_write16 -EXPORT_SYMBOL_GPL drivers/misc/cardreader/alcor_pci 0x00000000 alcor_write32 -EXPORT_SYMBOL_GPL drivers/misc/cardreader/alcor_pci 0x00000000 alcor_write32be -EXPORT_SYMBOL_GPL drivers/misc/cardreader/alcor_pci 0x00000000 alcor_write8 -EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x00000000 rtsx_pci_add_cmd -EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x00000000 rtsx_pci_card_exclusive_check -EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x00000000 rtsx_pci_card_exist -EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x00000000 rtsx_pci_card_power_off -EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x00000000 rtsx_pci_card_power_on -EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x00000000 rtsx_pci_card_pull_ctl_disable -EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x00000000 rtsx_pci_card_pull_ctl_enable -EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x00000000 rtsx_pci_complete_unfinished_transfer -EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x00000000 rtsx_pci_dma_map_sg -EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x00000000 rtsx_pci_dma_transfer -EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x00000000 rtsx_pci_dma_unmap_sg -EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x00000000 rtsx_pci_read_phy_register -EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x00000000 rtsx_pci_read_ppbuf -EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x00000000 rtsx_pci_read_register -EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x00000000 rtsx_pci_send_cmd -EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x00000000 rtsx_pci_send_cmd_no_wait -EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x00000000 rtsx_pci_start_run -EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x00000000 rtsx_pci_stop_cmd -EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x00000000 rtsx_pci_switch_clock -EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x00000000 rtsx_pci_switch_output_voltage -EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x00000000 rtsx_pci_transfer_data -EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x00000000 rtsx_pci_write_phy_register -EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x00000000 rtsx_pci_write_ppbuf -EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x00000000 rtsx_pci_write_register -EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x00000000 rtsx_usb_add_cmd -EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x00000000 rtsx_usb_card_exclusive_check -EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x00000000 rtsx_usb_ep0_read_register -EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x00000000 rtsx_usb_ep0_write_register -EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x00000000 rtsx_usb_get_card_status -EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x00000000 rtsx_usb_get_rsp -EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x00000000 rtsx_usb_read_ppbuf -EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x00000000 rtsx_usb_read_register -EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x00000000 rtsx_usb_send_cmd -EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x00000000 rtsx_usb_switch_clock -EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x00000000 rtsx_usb_transfer_data -EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x00000000 rtsx_usb_write_ppbuf -EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x00000000 rtsx_usb_write_register -EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x00000000 cb710_pci_update_config_reg -EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x00000000 cb710_set_irq_handler -EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x00000000 cb710_sg_dwiter_read_next_block -EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x00000000 cb710_sg_dwiter_write_next_block -EXPORT_SYMBOL_GPL drivers/misc/echo/echo 0x00000000 oslec_adaption_mode -EXPORT_SYMBOL_GPL drivers/misc/echo/echo 0x00000000 oslec_create -EXPORT_SYMBOL_GPL drivers/misc/echo/echo 0x00000000 oslec_flush -EXPORT_SYMBOL_GPL drivers/misc/echo/echo 0x00000000 oslec_free -EXPORT_SYMBOL_GPL drivers/misc/echo/echo 0x00000000 oslec_hpf_tx -EXPORT_SYMBOL_GPL drivers/misc/echo/echo 0x00000000 oslec_snapshot -EXPORT_SYMBOL_GPL drivers/misc/echo/echo 0x00000000 oslec_update -EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x00000000 eeprom_93cx6_multiread -EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x00000000 eeprom_93cx6_multireadb -EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x00000000 eeprom_93cx6_read -EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x00000000 eeprom_93cx6_readb -EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x00000000 eeprom_93cx6_wren -EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x00000000 eeprom_93cx6_write -EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x00000000 enclosure_add_device -EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x00000000 enclosure_component_alloc -EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x00000000 enclosure_component_register -EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x00000000 enclosure_find -EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x00000000 enclosure_for_each_device -EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x00000000 enclosure_register -EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x00000000 enclosure_remove_device -EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x00000000 enclosure_unregister -EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x00000000 lis3_dev -EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x00000000 lis3lv02d_init_device -EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x00000000 lis3lv02d_init_dt -EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x00000000 lis3lv02d_joystick_disable -EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x00000000 lis3lv02d_joystick_enable -EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x00000000 lis3lv02d_poweroff -EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x00000000 lis3lv02d_poweron -EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x00000000 lis3lv02d_remove_fs -EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x00000000 __mei_cldev_driver_register -EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x00000000 mei_cancel_work -EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x00000000 mei_cldev_disable -EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x00000000 mei_cldev_driver_unregister -EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x00000000 mei_cldev_enable -EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x00000000 mei_cldev_enabled -EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x00000000 mei_cldev_get_drvdata -EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x00000000 mei_cldev_recv -EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x00000000 mei_cldev_recv_nonblock -EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x00000000 mei_cldev_register_notif_cb -EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x00000000 mei_cldev_register_rx_cb -EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x00000000 mei_cldev_send -EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x00000000 mei_cldev_set_drvdata -EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x00000000 mei_cldev_uuid -EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x00000000 mei_cldev_ver -EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x00000000 mei_deregister -EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x00000000 mei_device_init -EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x00000000 mei_fw_status2str -EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x00000000 mei_hbm_pg -EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x00000000 mei_hbm_pg_resume -EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x00000000 mei_irq_compl_handler -EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x00000000 mei_irq_read_handler -EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x00000000 mei_irq_write_handler -EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x00000000 mei_register -EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x00000000 mei_reset -EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x00000000 mei_restart -EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x00000000 mei_start -EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x00000000 mei_stop -EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x00000000 mei_write_is_idle -EXPORT_SYMBOL_GPL drivers/misc/mic/bus/cosm_bus 0x00000000 cosm_find_cdev_by_id -EXPORT_SYMBOL_GPL drivers/misc/mic/bus/cosm_bus 0x00000000 cosm_register_device -EXPORT_SYMBOL_GPL drivers/misc/mic/bus/cosm_bus 0x00000000 cosm_register_driver -EXPORT_SYMBOL_GPL drivers/misc/mic/bus/cosm_bus 0x00000000 cosm_unregister_device -EXPORT_SYMBOL_GPL drivers/misc/mic/bus/cosm_bus 0x00000000 cosm_unregister_driver -EXPORT_SYMBOL_GPL drivers/misc/mic/bus/mic_bus 0x00000000 mbus_register_device -EXPORT_SYMBOL_GPL drivers/misc/mic/bus/mic_bus 0x00000000 mbus_register_driver -EXPORT_SYMBOL_GPL drivers/misc/mic/bus/mic_bus 0x00000000 mbus_unregister_device -EXPORT_SYMBOL_GPL drivers/misc/mic/bus/mic_bus 0x00000000 mbus_unregister_driver -EXPORT_SYMBOL_GPL drivers/misc/mic/bus/scif_bus 0x00000000 scif_register_device -EXPORT_SYMBOL_GPL drivers/misc/mic/bus/scif_bus 0x00000000 scif_register_driver -EXPORT_SYMBOL_GPL drivers/misc/mic/bus/scif_bus 0x00000000 scif_unregister_device -EXPORT_SYMBOL_GPL drivers/misc/mic/bus/scif_bus 0x00000000 scif_unregister_driver -EXPORT_SYMBOL_GPL drivers/misc/mic/bus/vop_bus 0x00000000 vop_register_device -EXPORT_SYMBOL_GPL drivers/misc/mic/bus/vop_bus 0x00000000 vop_register_driver -EXPORT_SYMBOL_GPL drivers/misc/mic/bus/vop_bus 0x00000000 vop_unregister_device -EXPORT_SYMBOL_GPL drivers/misc/mic/bus/vop_bus 0x00000000 vop_unregister_driver -EXPORT_SYMBOL_GPL drivers/misc/mic/scif/scif 0x00000000 scif_accept -EXPORT_SYMBOL_GPL drivers/misc/mic/scif/scif 0x00000000 scif_bind -EXPORT_SYMBOL_GPL drivers/misc/mic/scif/scif 0x00000000 scif_client_register -EXPORT_SYMBOL_GPL drivers/misc/mic/scif/scif 0x00000000 scif_client_unregister -EXPORT_SYMBOL_GPL drivers/misc/mic/scif/scif 0x00000000 scif_close -EXPORT_SYMBOL_GPL drivers/misc/mic/scif/scif 0x00000000 scif_connect -EXPORT_SYMBOL_GPL drivers/misc/mic/scif/scif 0x00000000 scif_fence_mark -EXPORT_SYMBOL_GPL drivers/misc/mic/scif/scif 0x00000000 scif_fence_signal -EXPORT_SYMBOL_GPL drivers/misc/mic/scif/scif 0x00000000 scif_fence_wait -EXPORT_SYMBOL_GPL drivers/misc/mic/scif/scif 0x00000000 scif_get_node_ids -EXPORT_SYMBOL_GPL drivers/misc/mic/scif/scif 0x00000000 scif_get_pages -EXPORT_SYMBOL_GPL drivers/misc/mic/scif/scif 0x00000000 scif_listen -EXPORT_SYMBOL_GPL drivers/misc/mic/scif/scif 0x00000000 scif_open -EXPORT_SYMBOL_GPL drivers/misc/mic/scif/scif 0x00000000 scif_pin_pages -EXPORT_SYMBOL_GPL drivers/misc/mic/scif/scif 0x00000000 scif_poll -EXPORT_SYMBOL_GPL drivers/misc/mic/scif/scif 0x00000000 scif_put_pages -EXPORT_SYMBOL_GPL drivers/misc/mic/scif/scif 0x00000000 scif_readfrom -EXPORT_SYMBOL_GPL drivers/misc/mic/scif/scif 0x00000000 scif_recv -EXPORT_SYMBOL_GPL drivers/misc/mic/scif/scif 0x00000000 scif_register -EXPORT_SYMBOL_GPL drivers/misc/mic/scif/scif 0x00000000 scif_register_pinned_pages -EXPORT_SYMBOL_GPL drivers/misc/mic/scif/scif 0x00000000 scif_send -EXPORT_SYMBOL_GPL drivers/misc/mic/scif/scif 0x00000000 scif_unpin_pages -EXPORT_SYMBOL_GPL drivers/misc/mic/scif/scif 0x00000000 scif_unregister -EXPORT_SYMBOL_GPL drivers/misc/mic/scif/scif 0x00000000 scif_vreadfrom -EXPORT_SYMBOL_GPL drivers/misc/mic/scif/scif 0x00000000 scif_vwriteto -EXPORT_SYMBOL_GPL drivers/misc/mic/scif/scif 0x00000000 scif_writeto -EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0x00000000 st_register -EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0x00000000 st_unregister -EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x00000000 vmci_context_get_priv_flags -EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x00000000 vmci_datagram_create_handle -EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x00000000 vmci_datagram_create_handle_priv -EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x00000000 vmci_datagram_destroy_handle -EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x00000000 vmci_datagram_send -EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x00000000 vmci_doorbell_create -EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x00000000 vmci_doorbell_destroy -EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x00000000 vmci_doorbell_notify -EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x00000000 vmci_event_subscribe -EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x00000000 vmci_event_unsubscribe -EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x00000000 vmci_get_context_id -EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x00000000 vmci_is_context_owner -EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x00000000 vmci_qpair_alloc -EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x00000000 vmci_qpair_consume_buf_ready -EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x00000000 vmci_qpair_consume_free_space -EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x00000000 vmci_qpair_dequeue -EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x00000000 vmci_qpair_dequev -EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x00000000 vmci_qpair_detach -EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x00000000 vmci_qpair_enqueue -EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x00000000 vmci_qpair_enquev -EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x00000000 vmci_qpair_get_consume_indexes -EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x00000000 vmci_qpair_get_produce_indexes -EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x00000000 vmci_qpair_peek -EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x00000000 vmci_qpair_peekv -EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x00000000 vmci_qpair_produce_buf_ready -EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x00000000 vmci_qpair_produce_free_space -EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x00000000 vmci_register_vsock_callback -EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x00000000 vmci_send_datagram -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 __sdhci_add_host -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 __sdhci_read_caps -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 __sdhci_set_timeout -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 sdhci_abort_tuning -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 sdhci_add_host -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 sdhci_adma_write_desc -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 sdhci_alloc_host -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 sdhci_calc_clk -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 sdhci_cleanup_host -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 sdhci_cqe_disable -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 sdhci_cqe_enable -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 sdhci_cqe_irq -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 sdhci_dumpregs -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 sdhci_enable_clk -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 sdhci_enable_sdio_irq -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 sdhci_enable_v4_mode -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 sdhci_end_tuning -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 sdhci_execute_tuning -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 sdhci_free_host -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 sdhci_remove_host -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 sdhci_request -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 sdhci_reset -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 sdhci_reset_tuning -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 sdhci_resume_host -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 sdhci_runtime_resume_host -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 sdhci_runtime_suspend_host -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 sdhci_send_command -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 sdhci_send_tuning -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 sdhci_set_bus_width -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 sdhci_set_clock -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 sdhci_set_data_timeout_irq -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 sdhci_set_ios -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 sdhci_set_power -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 sdhci_set_power_noreg -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 sdhci_set_uhs_signaling -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 sdhci_setup_host -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 sdhci_start_signal_voltage_switch -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 sdhci_start_tuning -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 sdhci_suspend_host -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 sdhci_switch_external_dma -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x00000000 sdhci_get_property -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x00000000 sdhci_pltfm_clk_get_max_clock -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x00000000 sdhci_pltfm_free -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x00000000 sdhci_pltfm_init -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x00000000 sdhci_pltfm_pmops -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x00000000 sdhci_pltfm_register -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x00000000 sdhci_pltfm_resume -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x00000000 sdhci_pltfm_suspend -EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x00000000 sdhci_pltfm_unregister -EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x00000000 cfi_cmdset_0001 -EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x00000000 cfi_cmdset_0003 -EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x00000000 cfi_cmdset_0200 -EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x00000000 cfi_cmdset_0002 -EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x00000000 cfi_cmdset_0006 -EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x00000000 cfi_cmdset_0701 -EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0x00000000 cfi_cmdset_0020 -EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x00000000 cfi_qry_mode_off -EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x00000000 cfi_qry_mode_on -EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x00000000 cfi_qry_present -EXPORT_SYMBOL_GPL drivers/mtd/hyperbus/hyperbus-core 0x00000000 hyperbus_register_device -EXPORT_SYMBOL_GPL drivers/mtd/hyperbus/hyperbus-core 0x00000000 hyperbus_unregister_device -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 __get_mtd_device -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 __mtd_next_device -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 __put_mtd_device -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 __register_mtd_parser -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 deregister_mtd_parser -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 get_mtd_device -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 get_mtd_device_nm -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 get_tree_mtd -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 kill_mtd_super -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_add_partition -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_block_isbad -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_block_isreserved -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_block_markbad -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_del_partition -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_device_parse_register -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_device_unregister -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_erase -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_get_device_size -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_get_fact_prot_info -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_get_unmapped_area -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_get_user_prot_info -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_is_locked -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_is_partition -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_kmalloc_up_to -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_lock -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_lock_user_prot_reg -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_ooblayout_count_eccbytes -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_ooblayout_count_freebytes -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_ooblayout_ecc -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_ooblayout_find_eccregion -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_ooblayout_free -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_ooblayout_get_databytes -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_ooblayout_get_eccbytes -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_ooblayout_set_databytes -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_ooblayout_set_eccbytes -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_pairing_groups -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_pairing_info_to_wunit -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_panic_write -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_point -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_read -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_read_fact_prot_reg -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_read_oob -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_read_user_prot_reg -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_table_mutex -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_unlock -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_unpoint -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_write -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_write_oob -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_write_user_prot_reg -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_writev -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_wunit_to_pairing_info -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 put_mtd_device -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 register_mtd_user -EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 unregister_mtd_user -EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x00000000 add_mtd_blktrans_dev -EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x00000000 del_mtd_blktrans_dev -EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x00000000 deregister_mtd_blktrans -EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x00000000 mtd_blktrans_cease_background -EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x00000000 register_mtd_blktrans -EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x00000000 nanddev_bbt_cleanup -EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x00000000 nanddev_bbt_get_block_status -EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x00000000 nanddev_bbt_init -EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x00000000 nanddev_bbt_set_block_status -EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x00000000 nanddev_bbt_update -EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x00000000 nanddev_cleanup -EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x00000000 nanddev_erase -EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x00000000 nanddev_init -EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x00000000 nanddev_isbad -EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x00000000 nanddev_isreserved -EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x00000000 nanddev_markbad -EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x00000000 nanddev_mtd_erase -EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x00000000 nanddev_mtd_max_bad_blocks -EXPORT_SYMBOL_GPL drivers/mtd/nand/onenand/onenand 0x00000000 onenand_release -EXPORT_SYMBOL_GPL drivers/mtd/nand/onenand/onenand 0x00000000 onenand_scan -EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/denali 0x00000000 denali_chip_init -EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x00000000 nand_change_read_column_op -EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x00000000 nand_change_write_column_op -EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x00000000 nand_cleanup -EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x00000000 nand_decode_ext_id -EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x00000000 nand_deselect_target -EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x00000000 nand_ecc_choose_conf -EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x00000000 nand_erase_op -EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x00000000 nand_gpio_waitrdy -EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x00000000 nand_ooblayout_lp_ops -EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x00000000 nand_ooblayout_sp_ops -EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x00000000 nand_op_parser_exec_op -EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x00000000 nand_prog_page_begin_op -EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x00000000 nand_prog_page_end_op -EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x00000000 nand_prog_page_op -EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x00000000 nand_read_data_op -EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x00000000 nand_read_oob_op -EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x00000000 nand_read_page_op -EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x00000000 nand_readid_op -EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x00000000 nand_release -EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x00000000 nand_reset -EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x00000000 nand_reset_op -EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x00000000 nand_select_target -EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x00000000 nand_soft_waitrdy -EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x00000000 nand_status_op -EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x00000000 nand_subop_get_addr_start_off -EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x00000000 nand_subop_get_data_len -EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x00000000 nand_subop_get_data_start_off -EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x00000000 nand_subop_get_num_addr_cyc -EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x00000000 nand_wait_ready -EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x00000000 nand_write_data_op -EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/sm_common 0x00000000 sm_register_device -EXPORT_SYMBOL_GPL drivers/mtd/spi-nor/spi-nor 0x00000000 spi_nor_restore -EXPORT_SYMBOL_GPL drivers/mtd/spi-nor/spi-nor 0x00000000 spi_nor_scan -EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x00000000 ubi_close_volume -EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x00000000 ubi_do_get_device_info -EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x00000000 ubi_flush -EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x00000000 ubi_get_device_info -EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x00000000 ubi_get_volume_info -EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x00000000 ubi_is_mapped -EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x00000000 ubi_leb_change -EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x00000000 ubi_leb_erase -EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x00000000 ubi_leb_map -EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x00000000 ubi_leb_read -EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x00000000 ubi_leb_read_sg -EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x00000000 ubi_leb_unmap -EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x00000000 ubi_leb_write -EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x00000000 ubi_open_volume -EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x00000000 ubi_open_volume_nm -EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x00000000 ubi_open_volume_path -EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x00000000 ubi_register_volume_notifier -EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x00000000 ubi_sync -EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x00000000 ubi_unregister_volume_notifier -EXPORT_SYMBOL_GPL drivers/net/arcnet/arcnet 0x00000000 arcnet_led_event -EXPORT_SYMBOL_GPL drivers/net/arcnet/arcnet 0x00000000 devm_arcnet_led_init -EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x00000000 alloc_c_can_dev -EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x00000000 c_can_power_down -EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x00000000 c_can_power_up -EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x00000000 free_c_can_dev -EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x00000000 register_c_can_dev -EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x00000000 unregister_c_can_dev -EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x00000000 alloc_can_err_skb -EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x00000000 alloc_can_skb -EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x00000000 alloc_candev_mqs -EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x00000000 alloc_canfd_skb -EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x00000000 can_bus_off -EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x00000000 can_change_mtu -EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x00000000 can_change_state -EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x00000000 can_dlc2len -EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x00000000 can_free_echo_skb -EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x00000000 can_get_echo_skb -EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x00000000 can_len2dlc -EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x00000000 can_put_echo_skb -EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x00000000 can_rx_offload_add_fifo -EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x00000000 can_rx_offload_add_timestamp -EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x00000000 can_rx_offload_del -EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x00000000 can_rx_offload_enable -EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x00000000 can_rx_offload_get_echo_skb -EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x00000000 can_rx_offload_irq_offload_fifo -EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x00000000 can_rx_offload_irq_offload_timestamp -EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x00000000 can_rx_offload_queue_sorted -EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x00000000 can_rx_offload_queue_tail -EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x00000000 close_candev -EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x00000000 free_candev -EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x00000000 open_candev -EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x00000000 register_candev -EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x00000000 safe_candev_priv -EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x00000000 unregister_candev -EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0x00000000 alloc_cc770dev -EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0x00000000 free_cc770dev -EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0x00000000 register_cc770dev -EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0x00000000 unregister_cc770dev -EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0x00000000 m_can_class_allocate_dev -EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0x00000000 m_can_class_get_clocks -EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0x00000000 m_can_class_register -EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0x00000000 m_can_class_resume -EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0x00000000 m_can_class_suspend -EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0x00000000 m_can_class_unregister -EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0x00000000 m_can_init_ram -EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x00000000 alloc_sja1000dev -EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x00000000 free_sja1000dev -EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x00000000 register_sja1000dev -EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x00000000 sja1000_interrupt -EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x00000000 unregister_sja1000dev -EXPORT_SYMBOL_GPL drivers/net/dsa/lan9303-core 0x00000000 lan9303_indirect_phy_ops -EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x00000000 ksz_adjust_link -EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x00000000 ksz_disable_port -EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x00000000 ksz_enable_port -EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x00000000 ksz_get_ethtool_stats -EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x00000000 ksz_init_mib_timer -EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x00000000 ksz_phy_read16 -EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x00000000 ksz_phy_write16 -EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x00000000 ksz_port_bridge_join -EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x00000000 ksz_port_bridge_leave -EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x00000000 ksz_port_fast_age -EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x00000000 ksz_port_fdb_dump -EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x00000000 ksz_port_mdb_add -EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x00000000 ksz_port_mdb_del -EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x00000000 ksz_port_mdb_prepare -EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x00000000 ksz_port_vlan_prepare -EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x00000000 ksz_sset_count -EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x00000000 ksz_update_port_member -EXPORT_SYMBOL_GPL drivers/net/dsa/realtek-smi 0x00000000 realtek_smi_write_reg_noack -EXPORT_SYMBOL_GPL drivers/net/dsa/realtek-smi 0x00000000 rtl8366_enable_vlan -EXPORT_SYMBOL_GPL drivers/net/dsa/realtek-smi 0x00000000 rtl8366_enable_vlan4k -EXPORT_SYMBOL_GPL drivers/net/dsa/realtek-smi 0x00000000 rtl8366_get_ethtool_stats -EXPORT_SYMBOL_GPL drivers/net/dsa/realtek-smi 0x00000000 rtl8366_get_pvid -EXPORT_SYMBOL_GPL drivers/net/dsa/realtek-smi 0x00000000 rtl8366_get_sset_count -EXPORT_SYMBOL_GPL drivers/net/dsa/realtek-smi 0x00000000 rtl8366_get_strings -EXPORT_SYMBOL_GPL drivers/net/dsa/realtek-smi 0x00000000 rtl8366_init_vlan -EXPORT_SYMBOL_GPL drivers/net/dsa/realtek-smi 0x00000000 rtl8366_mc_is_used -EXPORT_SYMBOL_GPL drivers/net/dsa/realtek-smi 0x00000000 rtl8366_reset_vlan -EXPORT_SYMBOL_GPL drivers/net/dsa/realtek-smi 0x00000000 rtl8366_set_pvid -EXPORT_SYMBOL_GPL drivers/net/dsa/realtek-smi 0x00000000 rtl8366_set_vlan -EXPORT_SYMBOL_GPL drivers/net/dsa/realtek-smi 0x00000000 rtl8366_vlan_add -EXPORT_SYMBOL_GPL drivers/net/dsa/realtek-smi 0x00000000 rtl8366_vlan_del -EXPORT_SYMBOL_GPL drivers/net/dsa/realtek-smi 0x00000000 rtl8366_vlan_filtering -EXPORT_SYMBOL_GPL drivers/net/dsa/realtek-smi 0x00000000 rtl8366_vlan_prepare -EXPORT_SYMBOL_GPL drivers/net/dsa/realtek-smi 0x00000000 rtl8366rb_variant -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 __mlx4_cmd -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 __mlx4_register_mac -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 __mlx4_replace_mac -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 __mlx4_unregister_mac -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_ACCESS_PTYS_REG -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_CLOSE_PORT -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_FLOW_STEERING_IB_UC_QP_RANGE -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_INIT_PORT -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_SYNC_TPT -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_alloc_cmd_mailbox -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_alloc_hwq_res -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_bf_alloc -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_bf_free -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_bond -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_buf_alloc -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_buf_free -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_buf_write_mtt -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_config_dev_retrieval -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_config_roce_v2_port -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_config_vxlan_port -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_counter_alloc -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_counter_free -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_cq_alloc -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_cq_free -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_cq_modify -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_cq_resize -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_db_alloc -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_db_free -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_find_cached_mac -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_find_cached_vlan -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_flow_attach -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_flow_detach -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_flow_steer_promisc_add -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_flow_steer_promisc_remove -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_fmr_alloc -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_fmr_enable -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_fmr_free -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_fmr_unmap -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_free_cmd_mailbox -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_free_hwq_res -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_get_active_ports -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_get_admin_guid -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_get_base_gid_ix -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_get_base_qpn -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_get_counter_stats -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_get_default_counter_index -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_get_devlink_port -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_get_internal_clock_params -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_get_protocol_dev -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_get_slave_default_vlan -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_get_vf_config -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_get_vf_stats -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_hw_rule_sz -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_map_phys_fmr -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_map_sw_to_hw_steering_id -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_map_sw_to_hw_steering_mode -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_mr_alloc -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_mr_enable -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_mr_free -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_mr_hw_change_access -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_mr_hw_change_pd -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_mr_hw_get_mpt -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_mr_hw_put_mpt -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_mr_hw_write_mpt -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_mr_rereg_mem_cleanup -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_mr_rereg_mem_write -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_mtt_addr -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_mtt_cleanup -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_mtt_init -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_multicast_attach -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_multicast_detach -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_multicast_promisc_add -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_multicast_promisc_remove -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_mw_alloc -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_mw_enable -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_mw_free -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_pd_alloc -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_pd_free -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_phys_to_slave_port -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_phys_to_slaves_pport -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_phys_to_slaves_pport_actv -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_port_map_set -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_qp_alloc -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_qp_free -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_qp_modify -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_qp_query -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_qp_release_range -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_qp_remove -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_qp_reserve_range -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_qp_to_ready -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_read_clock -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_register_interface -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_register_mac -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_register_vlan -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_replace_zero_macs -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_set_admin_guid -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_set_vf_link_state -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_set_vf_mac -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_set_vf_rate -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_set_vf_spoofchk -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_set_vf_vlan -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_slave_convert_port -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_srq_alloc -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_srq_arm -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_srq_free -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_srq_lookup -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_srq_query -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_uar_alloc -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_uar_free -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_unbond -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_unicast_attach -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_unicast_detach -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_unicast_promisc_add -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_unicast_promisc_remove -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_unregister_interface -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_unregister_mac -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_unregister_vlan -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_update_qp -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_vf_get_enable_smi_admin -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_vf_set_enable_smi_admin -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_vf_smi_enabled -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_wol_read -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_wol_write -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_write_mtt -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_xrcd_alloc -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_xrcd_free -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_accel_esp_create_xfrm -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_accel_esp_destroy_xfrm -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_accel_esp_modify_xfrm -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_accel_ipsec_device_caps -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_buf_free -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_access_reg -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_alloc_q_counter -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_create_dct -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_create_qp -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_dct_query -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_dealloc_q_counter -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_destroy_dct -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_destroy_qp -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_modify_hca_vport_context -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_qp_modify -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_qp_query -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_query_ib_ppcnt -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_query_q_counter -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_query_sq_state -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_query_vport_counter -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_res_hold -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_res_put -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_reserved_gids_count -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_set_delay_drop -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_xrcd_alloc -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_xrcd_dealloc -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_db_alloc -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_db_alloc_node -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_db_free -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_dm_sw_icm_alloc -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_dm_sw_icm_dealloc -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_eswitch_mode -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_fill_page_array -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_fill_page_frag_array -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_frag_buf_alloc_node -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_frag_buf_free -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_modify_nic_vport_mac_address -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_modify_nic_vport_mac_list -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_modify_nic_vport_mtu -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_modify_nic_vport_promisc -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_modify_nic_vport_vlans -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_modify_port_ets_rate_limit -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_nic_vport_affiliate_multiport -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_nic_vport_disable_roce -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_nic_vport_enable_roce -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_nic_vport_query_local_lb -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_nic_vport_unaffiliate_multiport -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_nic_vport_update_local_lb -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_query_hca_vport_context -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_query_hca_vport_gid -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_query_hca_vport_node_guid -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_query_hca_vport_pkey -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_query_hca_vport_system_image_guid -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_query_mac_address -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_query_min_inline -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_query_module_eeprom -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_query_nic_system_image_guid -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_query_nic_vport_mac_address -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_query_nic_vport_mac_list -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_query_nic_vport_min_inline -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_query_nic_vport_mtu -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_query_nic_vport_node_guid -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_query_nic_vport_promisc -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_query_nic_vport_qkey_viol_cntr -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_query_nic_vport_system_image_guid -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_query_port_admin_status -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_query_port_ets_rate_limit -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_query_port_link_width_oper -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_query_port_max_mtu -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_query_port_oper_mtu -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_query_port_pause -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_query_port_pfc -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_query_port_prio_tc -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_query_port_ptys -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_query_port_tc_bw_alloc -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_query_port_tc_group -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_query_port_vl_hw_cap -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_query_port_wol -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_set_port_admin_status -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_set_port_caps -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_set_port_mtu -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_set_port_pause -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_set_port_pfc -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_set_port_prio_tc -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_set_port_tc_bw_alloc -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_set_port_tc_group -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_set_port_wol -EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_toggle_port_link -EXPORT_SYMBOL_GPL drivers/net/ethernet/microchip/encx24j600-regmap 0x00000000 devm_regmap_init_encx24j600 -EXPORT_SYMBOL_GPL drivers/net/ethernet/microchip/encx24j600-regmap 0x00000000 regmap_encx24j600_spi_read -EXPORT_SYMBOL_GPL drivers/net/ethernet/microchip/encx24j600-regmap 0x00000000 regmap_encx24j600_spi_write -EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac 0x00000000 stmmac_dvr_probe -EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac 0x00000000 stmmac_dvr_remove -EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac 0x00000000 stmmac_get_mac_addr -EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac 0x00000000 stmmac_resume -EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac 0x00000000 stmmac_set_mac_addr -EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac 0x00000000 stmmac_suspend -EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x00000000 stmmac_get_platform_resources -EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x00000000 stmmac_pltfr_pm_ops -EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x00000000 stmmac_pltfr_remove -EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x00000000 stmmac_probe_config_dt -EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x00000000 stmmac_remove_config_dt -EXPORT_SYMBOL_GPL drivers/net/ethernet/wiznet/w5100 0x00000000 w5100_ops_priv -EXPORT_SYMBOL_GPL drivers/net/ethernet/wiznet/w5100 0x00000000 w5100_pm_ops -EXPORT_SYMBOL_GPL drivers/net/ethernet/wiznet/w5100 0x00000000 w5100_probe -EXPORT_SYMBOL_GPL drivers/net/ethernet/wiznet/w5100 0x00000000 w5100_remove -EXPORT_SYMBOL_GPL drivers/net/geneve 0x00000000 geneve_dev_create_fb -EXPORT_SYMBOL_GPL drivers/net/ipvlan/ipvlan 0x00000000 ipvlan_count_rx -EXPORT_SYMBOL_GPL drivers/net/ipvlan/ipvlan 0x00000000 ipvlan_link_delete -EXPORT_SYMBOL_GPL drivers/net/ipvlan/ipvlan 0x00000000 ipvlan_link_new -EXPORT_SYMBOL_GPL drivers/net/ipvlan/ipvlan 0x00000000 ipvlan_link_register -EXPORT_SYMBOL_GPL drivers/net/ipvlan/ipvlan 0x00000000 ipvlan_link_setup -EXPORT_SYMBOL_GPL drivers/net/macsec 0x00000000 macsec_pn_wrapped -EXPORT_SYMBOL_GPL drivers/net/macvlan 0x00000000 macvlan_common_newlink -EXPORT_SYMBOL_GPL drivers/net/macvlan 0x00000000 macvlan_common_setup -EXPORT_SYMBOL_GPL drivers/net/macvlan 0x00000000 macvlan_dellink -EXPORT_SYMBOL_GPL drivers/net/macvlan 0x00000000 macvlan_link_register -EXPORT_SYMBOL_GPL drivers/net/net_failover 0x00000000 net_failover_create -EXPORT_SYMBOL_GPL drivers/net/net_failover 0x00000000 net_failover_destroy -EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x00000000 bcm54xx_auxctl_read -EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x00000000 bcm_phy_28nm_a0b0_afe_config_init -EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x00000000 bcm_phy_ack_intr -EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x00000000 bcm_phy_config_intr -EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x00000000 bcm_phy_downshift_get -EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x00000000 bcm_phy_downshift_set -EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x00000000 bcm_phy_enable_apd -EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x00000000 bcm_phy_get_sset_count -EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x00000000 bcm_phy_get_stats -EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x00000000 bcm_phy_get_strings -EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x00000000 bcm_phy_r_rc_cal_reset -EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x00000000 bcm_phy_read_exp -EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x00000000 bcm_phy_read_misc -EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x00000000 bcm_phy_read_shadow -EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x00000000 bcm_phy_set_eee -EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x00000000 bcm_phy_write_exp -EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x00000000 bcm_phy_write_misc -EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x00000000 bcm_phy_write_shadow -EXPORT_SYMBOL_GPL drivers/net/phy/mdio-i2c 0x00000000 mdio_i2c_alloc -EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x00000000 phylink_connect_phy -EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x00000000 phylink_create -EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x00000000 phylink_destroy -EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x00000000 phylink_disconnect_phy -EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x00000000 phylink_ethtool_get_eee -EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x00000000 phylink_ethtool_get_pauseparam -EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x00000000 phylink_ethtool_get_wol -EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x00000000 phylink_ethtool_ksettings_get -EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x00000000 phylink_ethtool_ksettings_set -EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x00000000 phylink_ethtool_nway_reset -EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x00000000 phylink_ethtool_set_eee -EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x00000000 phylink_ethtool_set_pauseparam -EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x00000000 phylink_ethtool_set_wol -EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x00000000 phylink_fixed_state_cb -EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x00000000 phylink_get_eee_err -EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x00000000 phylink_helper_basex_speed -EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x00000000 phylink_init_eee -EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x00000000 phylink_mac_change -EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x00000000 phylink_mii_ioctl -EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x00000000 phylink_of_phy_connect -EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x00000000 phylink_set_port_modes -EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x00000000 phylink_start -EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x00000000 phylink_stop -EXPORT_SYMBOL_GPL drivers/net/tap 0x00000000 tap_create_cdev -EXPORT_SYMBOL_GPL drivers/net/tap 0x00000000 tap_del_queues -EXPORT_SYMBOL_GPL drivers/net/tap 0x00000000 tap_destroy_cdev -EXPORT_SYMBOL_GPL drivers/net/tap 0x00000000 tap_free_minor -EXPORT_SYMBOL_GPL drivers/net/tap 0x00000000 tap_get_minor -EXPORT_SYMBOL_GPL drivers/net/tap 0x00000000 tap_get_ptr_ring -EXPORT_SYMBOL_GPL drivers/net/tap 0x00000000 tap_get_socket -EXPORT_SYMBOL_GPL drivers/net/tap 0x00000000 tap_handle_frame -EXPORT_SYMBOL_GPL drivers/net/tap 0x00000000 tap_queue_resize -EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x00000000 usbnet_cdc_bind -EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x00000000 usbnet_cdc_status -EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x00000000 usbnet_cdc_unbind -EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x00000000 usbnet_ether_cdc_bind -EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x00000000 usbnet_generic_cdc_bind -EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x00000000 cdc_ncm_bind_common -EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x00000000 cdc_ncm_change_mtu -EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x00000000 cdc_ncm_fill_tx_frame -EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x00000000 cdc_ncm_rx_fixup -EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x00000000 cdc_ncm_rx_verify_ndp16 -EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x00000000 cdc_ncm_rx_verify_nth16 -EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x00000000 cdc_ncm_select_altsetting -EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x00000000 cdc_ncm_tx_fixup -EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x00000000 cdc_ncm_unbind -EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x00000000 generic_rndis_bind -EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x00000000 rndis_command -EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x00000000 rndis_rx_fixup -EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x00000000 rndis_status -EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x00000000 rndis_tx_fixup -EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x00000000 rndis_unbind -EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_change_mtu -EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_defer_kevent -EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_disconnect -EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_get_drvinfo -EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_get_endpoints -EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_get_ethernet_addr -EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_get_link -EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_get_link_ksettings -EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_get_msglevel -EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_get_stats64 -EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_nway_reset -EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_open -EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_pause_rx -EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_probe -EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_purge_paused_rxq -EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_read_cmd -EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_read_cmd_nopm -EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_resume -EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_resume_rx -EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_set_link_ksettings -EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_set_msglevel -EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_skb_return -EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_start_xmit -EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_status_start -EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_status_stop -EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_stop -EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_suspend -EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_tx_timeout -EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_unlink_rx_urbs -EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_update_max_qlen -EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_write_cmd -EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_write_cmd_async -EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_write_cmd_nopm -EXPORT_SYMBOL_GPL drivers/net/vxlan 0x00000000 vxlan_dev_create -EXPORT_SYMBOL_GPL drivers/net/vxlan 0x00000000 vxlan_fdb_clear_offload -EXPORT_SYMBOL_GPL drivers/net/vxlan 0x00000000 vxlan_fdb_find_uc -EXPORT_SYMBOL_GPL drivers/net/vxlan 0x00000000 vxlan_fdb_replay -EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x00000000 i2400m_bm_cmd_prepare -EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x00000000 i2400m_cmd_enter_powersave -EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x00000000 i2400m_dev_bootstrap -EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x00000000 i2400m_dev_reset_handle -EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x00000000 i2400m_error_recovery -EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x00000000 i2400m_init -EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x00000000 i2400m_is_boot_barker -EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x00000000 i2400m_netdev_setup -EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x00000000 i2400m_post_reset -EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x00000000 i2400m_pre_reset -EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x00000000 i2400m_release -EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x00000000 i2400m_reset -EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x00000000 i2400m_rx -EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x00000000 i2400m_setup -EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x00000000 i2400m_tx -EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x00000000 i2400m_tx_msg_get -EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x00000000 i2400m_tx_msg_sent -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/ipw2x00/libipw 0x00000000 libipw_rx_any -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 _il_grab_nic_access -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_dealloc_bcast_stations -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_mac_tx_last_beacon -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_prep_station -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_remove_station -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 __iwl_crit -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 __iwl_dbg -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 __iwl_err -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 __iwl_info -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 __iwl_warn -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_abort_notification_waits -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_acpi_get_eckv -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_acpi_get_mcc -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_acpi_get_object -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_acpi_get_pwr_limit -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_acpi_get_wifi_pkg -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_clear_bits_prph -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_cmd_groups_verify_sorted -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_dbg_tlv_del_timers -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_dbg_tlv_time_point -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_dump_desc_assert -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_finish_nic_init -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_force_nmi -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_free_fw_paging -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_fw_dbg_collect -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_fw_dbg_collect_desc -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_fw_dbg_collect_trig -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_fw_dbg_error_collect -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_fw_dbg_read_d3_debug_data -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_fw_dbg_stop_restart_recording -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_fw_dbg_stop_sync -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_fw_error_print_fseq_regs -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_fw_runtime_init -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_fw_runtime_resume -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_fw_runtime_suspend -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_fw_start_dbg_conf -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_get_cmd_string -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_get_nvm -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_get_shared_mem_conf -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_init_notification_wait -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_init_paging -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_notification_wait -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_notification_wait_init -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_nvm_fixups -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_opmode_deregister -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_opmode_register -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_parse_eeprom_data -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_parse_nvm_data -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_parse_nvm_mcc_info -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_phy_db_free -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_phy_db_init -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_phy_db_set_section -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_poll_bit -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_poll_direct_bit -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_read32 -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_read_direct32 -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_read_eeprom -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_read_external_nvm -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_read_prph -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_read_prph_no_grab -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_remove_notification -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_sar_geo_init -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_sar_geo_support -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_sar_get_ewrd_table -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_sar_get_wgds_table -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_sar_get_wrds_table -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_sar_select_profile -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_sar_set_profile -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_send_phy_db_data -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_set_bits_mask_prph -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_set_bits_prph -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_trans_send_cmd -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_validate_sar_geo_profile -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_wait_notification -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_write32 -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_write64 -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_write8 -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_write_direct32 -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_write_direct64 -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_write_prph -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_write_prph64_no_grab -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_write_prph_no_grab -EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwlwifi_mod_params -EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0x00000000 p54_free_common -EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0x00000000 p54_free_skb -EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0x00000000 p54_init_common -EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0x00000000 p54_parse_eeprom -EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0x00000000 p54_parse_firmware -EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0x00000000 p54_read_eeprom -EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0x00000000 p54_register_common -EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0x00000000 p54_rx -EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0x00000000 p54_unregister_common -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x00000000 __lbs_cmd -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x00000000 lbs_add_card -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x00000000 lbs_cmd_copyback -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x00000000 lbs_debug -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x00000000 lbs_disablemesh -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x00000000 lbs_get_firmware -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x00000000 lbs_get_firmware_async -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x00000000 lbs_host_sleep_cfg -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x00000000 lbs_host_to_card_done -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x00000000 lbs_notify_command_response -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x00000000 lbs_process_rxed_packet -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x00000000 lbs_queue_event -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x00000000 lbs_remove_card -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x00000000 lbs_resume -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x00000000 lbs_send_tx_feedback -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x00000000 lbs_start_card -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x00000000 lbs_stop_card -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x00000000 lbs_suspend -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x00000000 __lbtf_cmd -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x00000000 lbtf_add_card -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x00000000 lbtf_bcn_sent -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x00000000 lbtf_cmd_copyback -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x00000000 lbtf_cmd_response_rx -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x00000000 lbtf_debug -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x00000000 lbtf_remove_card -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x00000000 lbtf_rx -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x00000000 lbtf_send_tx_feedback -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x00000000 _mwifiex_dbg -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x00000000 mwifiex_add_card -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x00000000 mwifiex_add_virtual_intf -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x00000000 mwifiex_alloc_dma_align_buf -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x00000000 mwifiex_cancel_hs -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x00000000 mwifiex_deauthenticate_all -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x00000000 mwifiex_del_virtual_intf -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x00000000 mwifiex_disable_auto_ds -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x00000000 mwifiex_dnld_fw -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x00000000 mwifiex_drv_info_dump -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x00000000 mwifiex_enable_hs -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x00000000 mwifiex_fw_dump_event -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x00000000 mwifiex_handle_rx_packet -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x00000000 mwifiex_init_shutdown_fw -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x00000000 mwifiex_main_process -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x00000000 mwifiex_multi_chan_resync -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x00000000 mwifiex_prepare_fw_dump_info -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x00000000 mwifiex_process_hs_config -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x00000000 mwifiex_process_sleep_confirm_resp -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x00000000 mwifiex_queue_main_work -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x00000000 mwifiex_reinit_sw -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x00000000 mwifiex_remove_card -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x00000000 mwifiex_shutdown_sw -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x00000000 mwifiex_upload_device_dump -EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x00000000 mwifiex_write_data_complete -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 __mt76_poll -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 __mt76_poll_msec -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 __mt76_sta_remove -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_ac_to_hwq -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_alloc_device -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_calc_tx_airtime -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_csa_check -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_csa_finish -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_dma_attach -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_dma_cleanup -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_eeprom_init -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_eeprom_override -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_free_device -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_get_antenna -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_get_min_avg_rssi -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_get_rate -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_get_survey -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_get_txpower -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_has_tx_pending -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_insert_ccmp_hdr -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_mcu_get_response -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_mcu_msg_alloc -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_mcu_rx_event -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_mmio_init -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_pci_disable_aspm -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_put_txwi -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_queues_read -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_register_debugfs -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_register_device -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_release_buffered_frames -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_rx -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_rx_aggr_start -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_rx_aggr_stop -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_rx_poll_complete -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_seq_puts_array -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_set_channel -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_set_irq_mask -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_set_stream_caps -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_set_tim -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_sta_state -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_stop_tx_queues -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_sw_scan -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_sw_scan_complete -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_tx -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_tx_complete_skb -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_tx_status_check -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_tx_status_lock -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_tx_status_skb_add -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_tx_status_skb_done -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_tx_status_skb_get -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_tx_status_unlock -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_txq_init -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_txq_remove -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_txq_schedule -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_txq_schedule_all -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_unregister_device -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_update_survey -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_wake_tx_queue -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_wcid_alloc -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x00000000 mt76u_alloc_queues -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x00000000 mt76u_deinit -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x00000000 mt76u_init -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x00000000 mt76u_queues_deinit -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x00000000 mt76u_resume_rx -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x00000000 mt76u_single_wr -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x00000000 mt76u_stop_rx -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x00000000 mt76u_stop_tx -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x00000000 mt76u_vendor_request -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x00000000 mt76x0_chip_onoff -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x00000000 mt76x0_config -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x00000000 mt76x0_init_hardware -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x00000000 mt76x0_mac_stop -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x00000000 mt76x0_phy_calibrate -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x00000000 mt76x0_register_device -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_add_interface -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_add_rate_power_offset -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_ampdu_action -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_bss_info_changed -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_conf_tx -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_config_mac_addr_list -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_configure_filter -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_dfs_init_params -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_dma_cleanup -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_dma_disable -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_dma_init -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_edcca_init -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_eeprom_copy -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_eeprom_parse_hw_cap -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_enqueue_buffered_bc -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_ext_pa_enabled -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_get_efuse_data -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_get_lna_gain -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_get_max_rate_power -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_get_rx_gain -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_init_agc_gain -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_init_beacon_config -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_init_debugfs -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_init_device -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_irq_handler -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_limit_rate_power -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_mac_cc_reset -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_mac_reset_counters -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_mac_set_beacon -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_mac_setaddr -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_mac_shared_key_setup -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_mac_start -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_mac_wcid_setup -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_mac_write_txwi -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_mcu_calibrate -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_mcu_cleanup -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_mcu_function_select -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_mcu_msg_send -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_mcu_set_radio_state -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_phy_adjust_vga_gain -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_phy_dfs_adjust_agc -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_phy_set_band -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_phy_set_bw -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_phy_set_rxpath -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_phy_set_txdac -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_phy_set_txpower -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_queue_rx_skb -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_rates -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_remove_hdr_pad -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_remove_interface -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_resync_beacon_timer -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_rx_poll_complete -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_set_coverage_class -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_set_ethtool_fwver -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_set_key -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_set_rts_threshold -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_set_tx_ackto -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_sta_add -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_sta_ps -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_sta_rate_tbl_update -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_sta_remove -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_sw_scan_complete -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_tx -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_tx_complete_skb -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_tx_prepare_skb -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_tx_set_txpwr_auto -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_tx_status_data -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_update_beacon_iter -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_update_channel -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02e_init_beacon_config -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x00000000 mt76x02u_exit_beacon_config -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x00000000 mt76x02u_init_beacon_config -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x00000000 mt76x02u_init_mcu -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x00000000 mt76x02u_mac_start -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x00000000 mt76x02u_mcu_fw_reset -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x00000000 mt76x02u_mcu_fw_send_data -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x00000000 mt76x02u_tx_complete_skb -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x00000000 mt76x02u_tx_prepare_skb -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x00000000 mt76_write_mac_initvals -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x00000000 mt76x2_apply_gain_adj -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x00000000 mt76x2_configure_tx_delay -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x00000000 mt76x2_eeprom_init -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x00000000 mt76x2_get_power_info -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x00000000 mt76x2_get_rate_power -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x00000000 mt76x2_get_temp_comp -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x00000000 mt76x2_init_txpower -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x00000000 mt76x2_mac_stop -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x00000000 mt76x2_mcu_init_gain -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x00000000 mt76x2_mcu_load_cr -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x00000000 mt76x2_mcu_set_channel -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x00000000 mt76x2_mcu_tssi_comp -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x00000000 mt76x2_phy_set_txpower -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x00000000 mt76x2_phy_set_txpower_regs -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x00000000 mt76x2_phy_tssi_compensate -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x00000000 mt76x2_phy_update_channel_gain -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x00000000 mt76x2_read_rx_gain -EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x00000000 mt76x2_reset_wlan -EXPORT_SYMBOL_GPL drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x00000000 qtnf_chipid_to_string -EXPORT_SYMBOL_GPL drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x00000000 qtnf_classify_skb -EXPORT_SYMBOL_GPL drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x00000000 qtnf_core_attach -EXPORT_SYMBOL_GPL drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x00000000 qtnf_core_detach -EXPORT_SYMBOL_GPL drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x00000000 qtnf_get_debugfs_dir -EXPORT_SYMBOL_GPL drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x00000000 qtnf_trans_handle_rx_ctl_packet -EXPORT_SYMBOL_GPL drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x00000000 qtnf_update_rx_stats -EXPORT_SYMBOL_GPL drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x00000000 qtnf_update_tx_stats -EXPORT_SYMBOL_GPL drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x00000000 qtnf_wake_all_queues -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_ampdu_action -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_check_firmware -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_clear_beacon -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_conf_tx -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_config -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_config_ant -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_config_erp -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_config_filter -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_config_intf -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_config_pairwise_key -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_config_shared_key -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_disable_radio -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_disable_wpdma -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_efuse_detect -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_enable_radio -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_gain_calibration -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_get_key_seq -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_get_survey -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_get_tsf -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_get_txwi_rxwi_size -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_link_stats -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_link_tuner -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_load_firmware -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_mcu_request -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_pre_reset_hw -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_probe_hw -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_process_rxwi -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_read_eeprom_efuse -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_reset_tuner -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_rfkill_poll -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_set_rts_threshold -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_sta_add -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_sta_remove -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_txdone -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_txdone_entry -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_txdone_nostatus -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_txstatus_pending -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_txstatus_timeout -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_vco_calibration -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_wait_csr_ready -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_wait_wpdma_ready -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_watchdog -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_write_beacon -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_write_tx_data -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x00000000 rt2800mmio_autowake_tasklet -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x00000000 rt2800mmio_clear_entry -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x00000000 rt2800mmio_enable_radio -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x00000000 rt2800mmio_fill_rxdone -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x00000000 rt2800mmio_flush_queue -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x00000000 rt2800mmio_get_dma_done -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x00000000 rt2800mmio_get_entry_state -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x00000000 rt2800mmio_get_txwi -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x00000000 rt2800mmio_init_queues -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x00000000 rt2800mmio_init_registers -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x00000000 rt2800mmio_interrupt -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x00000000 rt2800mmio_kick_queue -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x00000000 rt2800mmio_pretbtt_tasklet -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x00000000 rt2800mmio_probe_hw -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x00000000 rt2800mmio_queue_init -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x00000000 rt2800mmio_rxdone_tasklet -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x00000000 rt2800mmio_start_queue -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x00000000 rt2800mmio_stop_queue -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x00000000 rt2800mmio_tbtt_tasklet -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x00000000 rt2800mmio_toggle_irq -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x00000000 rt2800mmio_txstatus_tasklet -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x00000000 rt2800mmio_write_tx_desc -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00lib_beacondone -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00lib_dmadone -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00lib_dmastart -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00lib_get_bssidx -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00lib_pretbtt -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00lib_probe_dev -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00lib_remove_dev -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00lib_resume -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00lib_rxdone -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00lib_set_mac_address -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00lib_suspend -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00lib_txdone -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00lib_txdone_noinfo -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00lib_txdone_nomatch -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00mac_add_interface -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00mac_bss_info_changed -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00mac_conf_tx -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00mac_config -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00mac_configure_filter -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00mac_flush -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00mac_get_antenna -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00mac_get_ringparam -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00mac_get_stats -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00mac_reconfig_complete -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00mac_remove_interface -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00mac_rfkill_poll -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00mac_set_antenna -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00mac_set_key -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00mac_set_tim -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00mac_start -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00mac_stop -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00mac_sw_scan_complete -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00mac_sw_scan_start -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00mac_tx -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00mac_tx_frames_pending -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00queue_flush_queue -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00queue_flush_queues -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00queue_for_each_entry -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00queue_get_entry -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00queue_map_txskb -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00queue_pause_queue -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00queue_start_queue -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00queue_start_queues -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00queue_stop_queue -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00queue_stop_queues -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00queue_unmap_skb -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00queue_unpause_queue -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x00000000 rt2x00mmio_flush_queue -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x00000000 rt2x00mmio_initialize -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x00000000 rt2x00mmio_regbusy_read -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x00000000 rt2x00mmio_rxdone -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x00000000 rt2x00mmio_uninitialize -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00pci 0x00000000 rt2x00pci_probe -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00pci 0x00000000 rt2x00pci_remove -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00pci 0x00000000 rt2x00pci_resume -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00pci 0x00000000 rt2x00pci_suspend -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x00000000 rt2x00usb_clear_entry -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x00000000 rt2x00usb_disable_radio -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x00000000 rt2x00usb_disconnect -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x00000000 rt2x00usb_flush_queue -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x00000000 rt2x00usb_initialize -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x00000000 rt2x00usb_kick_queue -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x00000000 rt2x00usb_probe -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x00000000 rt2x00usb_regbusy_read -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x00000000 rt2x00usb_register_read_async -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x00000000 rt2x00usb_resume -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x00000000 rt2x00usb_suspend -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x00000000 rt2x00usb_uninitialize -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x00000000 rt2x00usb_vendor_req_buff_lock -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x00000000 rt2x00usb_vendor_request -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x00000000 rt2x00usb_vendor_request_buff -EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x00000000 rt2x00usb_watchdog -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 dm_restorepowerindex -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 dm_savepowerindex -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 dm_writepowerindex -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 rtl92c_set_p2p_ps_offload_cmd -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x00000000 rtl8723_cmd_send_packet -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x00000000 rtl8723_dm_init_dynamic_bb_powersaving -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x00000000 rtl8723_dm_init_dynamic_txpower -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x00000000 rtl8723_dm_init_edca_turbo -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x00000000 rtl8723_download_fw -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x00000000 rtl8723_enable_fw_download -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x00000000 rtl8723_fw_free_to_go -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x00000000 rtl8723_phy_calculate_bit_shift -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x00000000 rtl8723_phy_init_bb_rf_reg_def -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x00000000 rtl8723_phy_mac_setting_calibration -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x00000000 rtl8723_phy_path_a_fill_iqk_matrix -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x00000000 rtl8723_phy_path_a_standby -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x00000000 rtl8723_phy_path_adda_on -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x00000000 rtl8723_phy_pi_mode_switch -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x00000000 rtl8723_phy_query_bb_reg -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x00000000 rtl8723_phy_reload_adda_registers -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x00000000 rtl8723_phy_reload_mac_registers -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x00000000 rtl8723_phy_rf_serial_read -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x00000000 rtl8723_phy_rf_serial_write -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x00000000 rtl8723_phy_save_mac_registers -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x00000000 rtl8723_phy_set_bb_reg -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x00000000 rtl8723_phy_set_sw_chnl_cmdarray -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x00000000 rtl8723_phy_txpwr_idx_to_dbm -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x00000000 rtl8723_save_adda_registers -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x00000000 rtl8723_write_fw -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x00000000 rtl8723ae_firmware_selfreset -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x00000000 rtl8723be_firmware_selfreset -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 read_efuse_byte -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_action_proc -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_beacon_statistic -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_btc_status_false -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_deinit_core -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_deinit_deferred_work -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_deinit_rfkill -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_efuse_ops_init -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_fill_dummy -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_fw_block_write -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_fw_page_write -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_get_hal_edca_param -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_get_hwinfo -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_global_var -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_init_core -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_init_rx_config -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_ips_nic_on -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_is_special_data -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_lps_change_work_callback -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_lps_enter -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_lps_leave -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_ops -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_p2p_info -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_recognize_peer -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_set_tx_report -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_swlps_beacon -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_tid_to_ac -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_tx_ackqueue -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_tx_mgmt_proc -EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_tx_report_handler -EXPORT_SYMBOL_GPL drivers/net/wireless/rsi/rsi_91x 0x00000000 rsi_91x_deinit -EXPORT_SYMBOL_GPL drivers/net/wireless/rsi/rsi_91x 0x00000000 rsi_91x_init -EXPORT_SYMBOL_GPL drivers/net/wireless/rsi/rsi_91x 0x00000000 rsi_dbg -EXPORT_SYMBOL_GPL drivers/net/wireless/rsi/rsi_91x 0x00000000 rsi_hal_device_init -EXPORT_SYMBOL_GPL drivers/net/wireless/rsi/rsi_91x 0x00000000 rsi_mac80211_detach -EXPORT_SYMBOL_GPL drivers/net/wireless/rsi/rsi_91x 0x00000000 rsi_read_pkt -EXPORT_SYMBOL_GPL drivers/net/wireless/rsi/rsi_91x 0x00000000 rsi_zone_enabled -EXPORT_SYMBOL_GPL drivers/net/wireless/st/cw1200/cw1200_core 0x00000000 cw1200_can_suspend -EXPORT_SYMBOL_GPL drivers/net/wireless/st/cw1200/cw1200_core 0x00000000 cw1200_core_probe -EXPORT_SYMBOL_GPL drivers/net/wireless/st/cw1200/cw1200_core 0x00000000 cw1200_core_release -EXPORT_SYMBOL_GPL drivers/net/wireless/st/cw1200/cw1200_core 0x00000000 cw1200_irq_handler -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0x00000000 wl1251_alloc_hw -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0x00000000 wl1251_free_hw -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0x00000000 wl1251_init_ieee80211 -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wl1271_acx_init_mem_config -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wl1271_acx_pm_config -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wl1271_acx_set_ht_capabilities -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wl1271_acx_sleep_auth -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wl1271_cmd_configure -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wl1271_cmd_data_path -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wl1271_cmd_send -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wl1271_cmd_test -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wl1271_debugfs_update_stats -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wl1271_format_buffer -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wl1271_tx_flush -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wl1271_tx_min_rate_get -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wl12xx_acx_mem_cfg -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wl12xx_cmd_build_probe_req -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wl12xx_debug_level -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wlcore_alloc_hw -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wlcore_boot_run_firmware -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wlcore_boot_upload_firmware -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wlcore_boot_upload_nvs -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wlcore_cmd_generic_cfg -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wlcore_cmd_wait_for_event_or_timeout -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wlcore_disable_interrupts -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wlcore_disable_interrupts_nosync -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wlcore_enable_interrupts -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wlcore_event_ba_rx_constraint -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wlcore_event_beacon_loss -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wlcore_event_channel_switch -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wlcore_event_dummy_packet -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wlcore_event_fw_logger -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wlcore_event_inactive_sta -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wlcore_event_max_tx_failure -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wlcore_event_roc_complete -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wlcore_event_rssi_trigger -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wlcore_event_sched_scan_completed -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wlcore_event_soft_gemini_sense -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wlcore_free_hw -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wlcore_get_native_channel_type -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wlcore_probe -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wlcore_remove -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wlcore_scan_sched_scan_results -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wlcore_scan_sched_scan_ssid_list -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wlcore_set_key -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wlcore_set_partition -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wlcore_set_scan_chan_params -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wlcore_synchronize_interrupts -EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wlcore_translate_addr -EXPORT_SYMBOL_GPL drivers/nfc/mei_phy 0x00000000 mei_phy_ops -EXPORT_SYMBOL_GPL drivers/nfc/mei_phy 0x00000000 nfc_mei_phy_alloc -EXPORT_SYMBOL_GPL drivers/nfc/mei_phy 0x00000000 nfc_mei_phy_free -EXPORT_SYMBOL_GPL drivers/nfc/nfcmrvl/nfcmrvl 0x00000000 nfcmrvl_nci_recv_frame -EXPORT_SYMBOL_GPL drivers/nfc/nfcmrvl/nfcmrvl 0x00000000 nfcmrvl_nci_register_dev -EXPORT_SYMBOL_GPL drivers/nfc/nfcmrvl/nfcmrvl 0x00000000 nfcmrvl_nci_unregister_dev -EXPORT_SYMBOL_GPL drivers/nfc/nfcmrvl/nfcmrvl 0x00000000 nfcmrvl_parse_dt -EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0x00000000 pn532_i2c_nfc_alloc -EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0x00000000 pn533_finalize_setup -EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0x00000000 pn533_rx_frame_is_ack -EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0x00000000 pn533_rx_frame_is_cmd_response -EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0x00000000 pn53x_common_clean -EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0x00000000 pn53x_common_init -EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0x00000000 pn53x_register_nfc -EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0x00000000 pn53x_unregister_nfc -EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0x00000000 st_nci_disable_se -EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0x00000000 st_nci_discover_se -EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0x00000000 st_nci_enable_se -EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0x00000000 st_nci_hci_cmd_received -EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0x00000000 st_nci_hci_event_received -EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0x00000000 st_nci_hci_load_session -EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0x00000000 st_nci_probe -EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0x00000000 st_nci_remove -EXPORT_SYMBOL_GPL drivers/nfc/st95hf/st95hf 0x00000000 st95hf_spi_recv_echo_res -EXPORT_SYMBOL_GPL drivers/nfc/st95hf/st95hf 0x00000000 st95hf_spi_recv_response -EXPORT_SYMBOL_GPL drivers/nfc/st95hf/st95hf 0x00000000 st95hf_spi_send -EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0x00000000 ntb_transport_create_queue -EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0x00000000 ntb_transport_free_queue -EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0x00000000 ntb_transport_link_down -EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0x00000000 ntb_transport_link_query -EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0x00000000 ntb_transport_link_up -EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0x00000000 ntb_transport_max_size -EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0x00000000 ntb_transport_qp_num -EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0x00000000 ntb_transport_register_client -EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0x00000000 ntb_transport_register_client_dev -EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0x00000000 ntb_transport_rx_enqueue -EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0x00000000 ntb_transport_rx_remove -EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0x00000000 ntb_transport_tx_enqueue -EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0x00000000 ntb_transport_tx_free_entry -EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0x00000000 ntb_transport_unregister_client -EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0x00000000 ntb_transport_unregister_client_dev -EXPORT_SYMBOL_GPL drivers/nvdimm/nd_virtio 0x00000000 async_pmem_flush -EXPORT_SYMBOL_GPL drivers/nvdimm/nd_virtio 0x00000000 virtio_pmem_host_ack -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 __nvme_submit_sync_cmd -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 __tracepoint_nvme_sq -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 admin_timeout -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_alloc_request -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_cancel_request -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_change_ctrl_state -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_cleanup_cmd -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_complete_async_event -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_complete_rq -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_delete_ctrl -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_delete_wq -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_disable_ctrl -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_enable_ctrl -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_get_features -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_init_ctrl -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_init_identify -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_io_timeout -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_kill_queues -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_remove_namespaces -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_reset_ctrl -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_reset_ctrl_sync -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_reset_wq -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_sec_submit -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_set_features -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_set_queue_count -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_setup_cmd -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_shutdown_ctrl -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_start_ctrl -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_start_freeze -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_start_queues -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_stop_ctrl -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_stop_keep_alive -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_stop_queues -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_submit_sync_cmd -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_sync_queues -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_try_sched_reset -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_unfreeze -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_uninit_ctrl -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_wait_freeze -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_wait_freeze_timeout -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_wait_reset -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_wq -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x00000000 __nvmf_check_ready -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x00000000 nvmf_connect_admin_queue -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x00000000 nvmf_connect_io_queue -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x00000000 nvmf_fail_nonready_command -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x00000000 nvmf_free_options -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x00000000 nvmf_get_address -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x00000000 nvmf_ip_options_match -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x00000000 nvmf_reg_read32 -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x00000000 nvmf_reg_read64 -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x00000000 nvmf_reg_write32 -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x00000000 nvmf_register_transport -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x00000000 nvmf_should_reconnect -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x00000000 nvmf_unregister_transport -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fc 0x00000000 nvme_fc_register_localport -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fc 0x00000000 nvme_fc_register_remoteport -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fc 0x00000000 nvme_fc_rescan_remoteport -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fc 0x00000000 nvme_fc_set_remoteport_devloss -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fc 0x00000000 nvme_fc_unregister_localport -EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fc 0x00000000 nvme_fc_unregister_remoteport -EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x00000000 nvmet_check_data_len -EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x00000000 nvmet_ctrl_fatal_error -EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x00000000 nvmet_register_transport -EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x00000000 nvmet_req_alloc_sgl -EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x00000000 nvmet_req_complete -EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x00000000 nvmet_req_free_sgl -EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x00000000 nvmet_req_init -EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x00000000 nvmet_req_uninit -EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x00000000 nvmet_sq_destroy -EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x00000000 nvmet_sq_init -EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x00000000 nvmet_unregister_transport -EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet-fc 0x00000000 nvmet_fc_rcv_fcp_abort -EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet-fc 0x00000000 nvmet_fc_rcv_fcp_req -EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet-fc 0x00000000 nvmet_fc_rcv_ls_req -EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet-fc 0x00000000 nvmet_fc_register_targetport -EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet-fc 0x00000000 nvmet_fc_unregister_targetport -EXPORT_SYMBOL_GPL drivers/pci/controller/pci-hyperv-intf 0x00000000 hvpci_block_ops -EXPORT_SYMBOL_GPL drivers/pci/controller/pci-hyperv-intf 0x00000000 hyperv_read_cfg_blk -EXPORT_SYMBOL_GPL drivers/pci/controller/pci-hyperv-intf 0x00000000 hyperv_reg_block_invalidate -EXPORT_SYMBOL_GPL drivers/pci/controller/pci-hyperv-intf 0x00000000 hyperv_write_cfg_blk -EXPORT_SYMBOL_GPL drivers/pci/switch/switchtec 0x00000000 switchtec_class -EXPORT_SYMBOL_GPL drivers/pinctrl/intel/pinctrl-intel 0x00000000 intel_pinctrl_probe_by_hid -EXPORT_SYMBOL_GPL drivers/pinctrl/intel/pinctrl-intel 0x00000000 intel_pinctrl_probe_by_uid -EXPORT_SYMBOL_GPL drivers/pinctrl/intel/pinctrl-intel 0x00000000 intel_pinctrl_resume_noirq -EXPORT_SYMBOL_GPL drivers/pinctrl/intel/pinctrl-intel 0x00000000 intel_pinctrl_suspend_noirq -EXPORT_SYMBOL_GPL drivers/platform/chrome/wilco_ec/wilco_ec 0x00000000 wilco_ec_get_byte_property -EXPORT_SYMBOL_GPL drivers/platform/chrome/wilco_ec/wilco_ec 0x00000000 wilco_ec_get_property -EXPORT_SYMBOL_GPL drivers/platform/chrome/wilco_ec/wilco_ec 0x00000000 wilco_ec_mailbox -EXPORT_SYMBOL_GPL drivers/platform/chrome/wilco_ec/wilco_ec 0x00000000 wilco_ec_set_byte_property -EXPORT_SYMBOL_GPL drivers/platform/chrome/wilco_ec/wilco_ec 0x00000000 wilco_ec_set_property -EXPORT_SYMBOL_GPL drivers/platform/x86/asus-wmi 0x00000000 asus_wmi_evaluate_method -EXPORT_SYMBOL_GPL drivers/platform/x86/asus-wmi 0x00000000 asus_wmi_register_driver -EXPORT_SYMBOL_GPL drivers/platform/x86/asus-wmi 0x00000000 asus_wmi_unregister_driver -EXPORT_SYMBOL_GPL drivers/platform/x86/dell-rbtn 0x00000000 dell_rbtn_notifier_register -EXPORT_SYMBOL_GPL drivers/platform/x86/dell-rbtn 0x00000000 dell_rbtn_notifier_unregister -EXPORT_SYMBOL_GPL drivers/platform/x86/dell-smbios 0x00000000 dell_laptop_call_notifier -EXPORT_SYMBOL_GPL drivers/platform/x86/dell-smbios 0x00000000 dell_laptop_register_notifier -EXPORT_SYMBOL_GPL drivers/platform/x86/dell-smbios 0x00000000 dell_laptop_unregister_notifier -EXPORT_SYMBOL_GPL drivers/platform/x86/dell-smbios 0x00000000 dell_smbios_call -EXPORT_SYMBOL_GPL drivers/platform/x86/dell-smbios 0x00000000 dell_smbios_call_filter -EXPORT_SYMBOL_GPL drivers/platform/x86/dell-smbios 0x00000000 dell_smbios_error -EXPORT_SYMBOL_GPL drivers/platform/x86/dell-smbios 0x00000000 dell_smbios_find_token -EXPORT_SYMBOL_GPL drivers/platform/x86/dell-smbios 0x00000000 dell_smbios_register_device -EXPORT_SYMBOL_GPL drivers/platform/x86/dell-smbios 0x00000000 dell_smbios_unregister_device -EXPORT_SYMBOL_GPL drivers/platform/x86/dell-wmi-descriptor 0x00000000 dell_wmi_get_descriptor_valid -EXPORT_SYMBOL_GPL drivers/platform/x86/dell-wmi-descriptor 0x00000000 dell_wmi_get_hotfix -EXPORT_SYMBOL_GPL drivers/platform/x86/dell-wmi-descriptor 0x00000000 dell_wmi_get_interface_version -EXPORT_SYMBOL_GPL drivers/platform/x86/dell-wmi-descriptor 0x00000000 dell_wmi_get_size -EXPORT_SYMBOL_GPL drivers/platform/x86/intel_ips 0x00000000 ips_link_to_i915_driver -EXPORT_SYMBOL_GPL drivers/platform/x86/intel_pmc_ipc 0x00000000 intel_pmc_gcr_read64 -EXPORT_SYMBOL_GPL drivers/platform/x86/intel_pmc_ipc 0x00000000 intel_pmc_ipc_command -EXPORT_SYMBOL_GPL drivers/platform/x86/intel_pmc_ipc 0x00000000 intel_pmc_s0ix_counter_read -EXPORT_SYMBOL_GPL drivers/platform/x86/intel_punit_ipc 0x00000000 intel_punit_ipc_command -EXPORT_SYMBOL_GPL drivers/platform/x86/intel_speed_select_if/isst_if_common 0x00000000 isst_if_cdev_register -EXPORT_SYMBOL_GPL drivers/platform/x86/intel_speed_select_if/isst_if_common 0x00000000 isst_if_cdev_unregister -EXPORT_SYMBOL_GPL drivers/platform/x86/intel_speed_select_if/isst_if_common 0x00000000 isst_if_get_pci_dev -EXPORT_SYMBOL_GPL drivers/platform/x86/intel_speed_select_if/isst_if_common 0x00000000 isst_if_mbox_cmd_invalid -EXPORT_SYMBOL_GPL drivers/platform/x86/intel_speed_select_if/isst_if_common 0x00000000 isst_if_mbox_cmd_set_req -EXPORT_SYMBOL_GPL drivers/platform/x86/intel_speed_select_if/isst_if_common 0x00000000 isst_resume_common -EXPORT_SYMBOL_GPL drivers/platform/x86/intel_speed_select_if/isst_if_common 0x00000000 isst_store_cmd -EXPORT_SYMBOL_GPL drivers/platform/x86/intel_telemetry_core 0x00000000 telemetry_add_events -EXPORT_SYMBOL_GPL drivers/platform/x86/intel_telemetry_core 0x00000000 telemetry_clear_pltdata -EXPORT_SYMBOL_GPL drivers/platform/x86/intel_telemetry_core 0x00000000 telemetry_get_eventconfig -EXPORT_SYMBOL_GPL drivers/platform/x86/intel_telemetry_core 0x00000000 telemetry_get_evtname -EXPORT_SYMBOL_GPL drivers/platform/x86/intel_telemetry_core 0x00000000 telemetry_get_sampling_period -EXPORT_SYMBOL_GPL drivers/platform/x86/intel_telemetry_core 0x00000000 telemetry_get_trace_verbosity -EXPORT_SYMBOL_GPL drivers/platform/x86/intel_telemetry_core 0x00000000 telemetry_pltconfig_valid -EXPORT_SYMBOL_GPL drivers/platform/x86/intel_telemetry_core 0x00000000 telemetry_raw_read_eventlog -EXPORT_SYMBOL_GPL drivers/platform/x86/intel_telemetry_core 0x00000000 telemetry_raw_read_events -EXPORT_SYMBOL_GPL drivers/platform/x86/intel_telemetry_core 0x00000000 telemetry_read_eventlog -EXPORT_SYMBOL_GPL drivers/platform/x86/intel_telemetry_core 0x00000000 telemetry_read_events -EXPORT_SYMBOL_GPL drivers/platform/x86/intel_telemetry_core 0x00000000 telemetry_reset_events -EXPORT_SYMBOL_GPL drivers/platform/x86/intel_telemetry_core 0x00000000 telemetry_set_pltdata -EXPORT_SYMBOL_GPL drivers/platform/x86/intel_telemetry_core 0x00000000 telemetry_set_sampling_period -EXPORT_SYMBOL_GPL drivers/platform/x86/intel_telemetry_core 0x00000000 telemetry_set_trace_verbosity -EXPORT_SYMBOL_GPL drivers/platform/x86/intel_telemetry_core 0x00000000 telemetry_update_events -EXPORT_SYMBOL_GPL drivers/platform/x86/mxm-wmi 0x00000000 mxm_wmi_call_mxds -EXPORT_SYMBOL_GPL drivers/platform/x86/mxm-wmi 0x00000000 mxm_wmi_call_mxmx -EXPORT_SYMBOL_GPL drivers/platform/x86/mxm-wmi 0x00000000 mxm_wmi_supported -EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0x00000000 set_required_buffer_size -EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0x00000000 wmi_evaluate_method -EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0x00000000 wmi_get_acpi_device_uid -EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0x00000000 wmi_get_event_data -EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0x00000000 wmi_has_guid -EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0x00000000 wmi_install_notify_handler -EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0x00000000 wmi_query_block -EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0x00000000 wmi_remove_notify_handler -EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0x00000000 wmi_set_block -EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0x00000000 wmidev_block_query -EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0x00000000 wmidev_evaluate_method -EXPORT_SYMBOL_GPL drivers/power/supply/bq27xxx_battery 0x00000000 bq27xxx_battery_setup -EXPORT_SYMBOL_GPL drivers/power/supply/bq27xxx_battery 0x00000000 bq27xxx_battery_teardown -EXPORT_SYMBOL_GPL drivers/power/supply/bq27xxx_battery 0x00000000 bq27xxx_battery_update -EXPORT_SYMBOL_GPL drivers/power/supply/pcf50633-charger 0x00000000 pcf50633_mbc_get_status -EXPORT_SYMBOL_GPL drivers/power/supply/pcf50633-charger 0x00000000 pcf50633_mbc_get_usb_online_status -EXPORT_SYMBOL_GPL drivers/power/supply/pcf50633-charger 0x00000000 pcf50633_mbc_usb_curlim_set -EXPORT_SYMBOL_GPL drivers/powercap/intel_rapl_common 0x00000000 rapl_add_package -EXPORT_SYMBOL_GPL drivers/powercap/intel_rapl_common 0x00000000 rapl_add_platform_domain -EXPORT_SYMBOL_GPL drivers/powercap/intel_rapl_common 0x00000000 rapl_find_package_domain -EXPORT_SYMBOL_GPL drivers/powercap/intel_rapl_common 0x00000000 rapl_remove_package -EXPORT_SYMBOL_GPL drivers/powercap/intel_rapl_common 0x00000000 rapl_remove_platform_domain -EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x00000000 mc13xxx_fixed_regulator_ops -EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x00000000 mc13xxx_fixed_regulator_set_voltage -EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x00000000 mc13xxx_regulator_ops -EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x00000000 wm8350_dcdc25_set_mode -EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x00000000 wm8350_dcdc_set_slot -EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x00000000 wm8350_isink_set_flash -EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x00000000 wm8350_ldo_set_slot -EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x00000000 wm8350_register_led -EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x00000000 wm8350_register_regulator -EXPORT_SYMBOL_GPL drivers/regulator/wm8400-regulator 0x00000000 wm8400_register_regulator -EXPORT_SYMBOL_GPL drivers/rpmsg/qcom_glink_native 0x00000000 qcom_glink_native_probe -EXPORT_SYMBOL_GPL drivers/rpmsg/qcom_glink_native 0x00000000 qcom_glink_native_remove -EXPORT_SYMBOL_GPL drivers/rpmsg/qcom_glink_native 0x00000000 qcom_glink_native_unregister -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_attr_is_visible -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_bind_conn -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_cleanup_task -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_conn_alloc_pdu -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_conn_init_pdu -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_conn_pdu_ready -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_conn_tx_open -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_conn_xmit_pdu -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_create_conn -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_create_session -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_ddp_ppm_setup -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_ddp_set_one_ppod -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_destroy_session -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_device_find_by_lldev -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_device_find_by_netdev -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_device_find_by_netdev_rcu -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_device_portmap_cleanup -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_device_portmap_create -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_device_register -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_device_unregister -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_device_unregister_all -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_ep_connect -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_ep_disconnect -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_ep_poll -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_get_conn_stats -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_get_ep_param -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_get_host_param -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_hbas_add -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_hbas_remove -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_iscsi_cleanup -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_iscsi_init -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_parse_pdu_itt -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_set_conn_param -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_set_host_param -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_sock_act_open_req_arp_failure -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_sock_check_wr_invariants -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_sock_closed -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_sock_established -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_sock_fail_act_open -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_sock_free_cpl_skbs -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_sock_purge_wr_queue -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_sock_rcv_abort_rpl -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_sock_rcv_close_conn_rpl -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_sock_rcv_peer_close -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_sock_rcv_wr_ack -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_sock_select_mss -EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_sock_skb_entail -EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x00000000 __fcoe_get_lesb -EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_check_wait_queue -EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_clean_pending_queue -EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_ctlr_device_add -EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_ctlr_device_delete -EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_ctlr_get_lesb -EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_fc_crc -EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_fcf_device_add -EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_fcf_device_delete -EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_get_lesb -EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_get_paged_crc_eof -EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_get_wwn -EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_libfc_config -EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_link_speed_update -EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_queue_timer -EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_start_io -EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_validate_vport_create -EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_wwn_from_mac -EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_wwn_to_str -EXPORT_SYMBOL_GPL drivers/scsi/fdomain 0x00000000 fdomain_create -EXPORT_SYMBOL_GPL drivers/scsi/fdomain 0x00000000 fdomain_destroy -EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x00000000 iscsi_boot_create_acpitbl -EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x00000000 iscsi_boot_create_ethernet -EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x00000000 iscsi_boot_create_host_kset -EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x00000000 iscsi_boot_create_initiator -EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x00000000 iscsi_boot_create_kset -EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x00000000 iscsi_boot_create_target -EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x00000000 iscsi_boot_destroy_kset -EXPORT_SYMBOL_GPL drivers/scsi/libfc/libfc 0x00000000 fc_seq_els_rsp_send -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 __iscsi_complete_pdu -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 __iscsi_get_task -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 __iscsi_put_task -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_complete_pdu -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_complete_scsi_task -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_conn_bind -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_conn_failure -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_conn_get_addr_param -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_conn_get_param -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_conn_queue_work -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_conn_send_pdu -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_conn_setup -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_conn_start -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_conn_stop -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_conn_teardown -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_eh_abort -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_eh_cmd_timed_out -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_eh_device_reset -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_eh_recover_target -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_eh_session_reset -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_host_add -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_host_alloc -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_host_free -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_host_get_param -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_host_remove -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_host_set_param -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_itt_to_ctask -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_itt_to_task -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_pool_free -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_pool_init -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_prep_data_out_pdu -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_put_task -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_queuecommand -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_requeue_task -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_session_failure -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_session_get_param -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_session_recovery_timedout -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_session_setup -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_session_teardown -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_set_param -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_suspend_queue -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_suspend_tx -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_switch_str_param -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_target_alloc -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_update_cmdsn -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_verify_itt -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x00000000 iscsi_segment_init_linear -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x00000000 iscsi_segment_seek_sg -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x00000000 iscsi_tcp_cleanup_task -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x00000000 iscsi_tcp_conn_get_stats -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x00000000 iscsi_tcp_conn_setup -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x00000000 iscsi_tcp_conn_teardown -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x00000000 iscsi_tcp_dgst_header -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x00000000 iscsi_tcp_hdr_recv_prep -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x00000000 iscsi_tcp_r2tpool_alloc -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x00000000 iscsi_tcp_r2tpool_free -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x00000000 iscsi_tcp_recv_segment_is_hdr -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x00000000 iscsi_tcp_recv_skb -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x00000000 iscsi_tcp_segment_done -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x00000000 iscsi_tcp_segment_unmap -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x00000000 iscsi_tcp_set_max_r2t -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x00000000 iscsi_tcp_task_init -EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x00000000 iscsi_tcp_task_xmit -EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00000000 dev_attr_phy_event_threshold -EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00000000 sas_alloc_slow_task -EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00000000 sas_alloc_task -EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00000000 sas_ata_schedule_reset -EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00000000 sas_bios_param -EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00000000 sas_change_queue_depth -EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00000000 sas_domain_attach_transport -EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00000000 sas_drain_work -EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00000000 sas_eh_abort_handler -EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00000000 sas_eh_device_reset_handler -EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00000000 sas_eh_target_reset_handler -EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00000000 sas_free_task -EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00000000 sas_get_local_phy -EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00000000 sas_ioctl -EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00000000 sas_phy_reset -EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00000000 sas_queuecommand -EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00000000 sas_register_ha -EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00000000 sas_request_addr -EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00000000 sas_slave_configure -EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00000000 sas_ssp_task_response -EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00000000 sas_target_alloc -EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00000000 sas_target_destroy -EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00000000 sas_task_abort -EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00000000 sas_unregister_ha -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 __tracepoint_iscsi_dbg_conn -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 __tracepoint_iscsi_dbg_eh -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 __tracepoint_iscsi_dbg_session -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 __tracepoint_iscsi_dbg_sw_tcp -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 __tracepoint_iscsi_dbg_tcp -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_add_session -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_alloc_session -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_block_scsi_eh -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_block_session -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_conn_error_event -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_conn_login_event -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_create_conn -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_create_endpoint -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_create_flashnode_conn -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_create_flashnode_sess -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_create_iface -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_create_session -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_dbg_trace -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_destroy_all_flashnode -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_destroy_conn -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_destroy_endpoint -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_destroy_flashnode_sess -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_destroy_iface -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_find_flashnode_conn -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_find_flashnode_sess -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_flashnode_bus_match -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_free_session -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_get_discovery_parent_name -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_get_ipaddress_state_name -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_get_port_speed_name -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_get_port_state_name -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_get_router_state_name -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_host_for_each_session -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_is_session_dev -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_is_session_online -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_lookup_endpoint -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_offload_mesg -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_ping_comp_event -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_post_host_event -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_recv_pdu -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_register_transport -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_remove_session -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_scan_finished -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_session_chkready -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_session_event -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_unblock_session -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_unregister_transport -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x00000000 sas_disable_tlr -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x00000000 sas_enable_tlr -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x00000000 sas_is_tlr_enabled -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x00000000 sas_tlr_supported -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0x00000000 spi_populate_ppr_msg -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0x00000000 spi_populate_sync_msg -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0x00000000 spi_populate_tag_msg -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0x00000000 spi_populate_width_msg -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x00000000 srp_attach_transport -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x00000000 srp_release_transport -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x00000000 srp_remove_host -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x00000000 srp_rport_add -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x00000000 srp_rport_del -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x00000000 srp_stop_rport_timers -EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x00000000 srp_tmo_valid -EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd-core 0x00000000 ufshcd_auto_hibern8_update -EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd-core 0x00000000 ufshcd_config_pwr_mode -EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd-core 0x00000000 ufshcd_dealloc_host -EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd-core 0x00000000 ufshcd_dme_get_attr -EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd-core 0x00000000 ufshcd_dme_set_attr -EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd-core 0x00000000 ufshcd_dump_regs -EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd-core 0x00000000 ufshcd_hba_enable -EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd-core 0x00000000 ufshcd_hold -EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd-core 0x00000000 ufshcd_init -EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd-core 0x00000000 ufshcd_make_hba_operational -EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd-core 0x00000000 ufshcd_release -EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd-core 0x00000000 ufshcd_remove -EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd-core 0x00000000 ufshcd_uic_hibern8_exit -EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd-core 0x00000000 ufshcd_update_reg_hist -EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd-pltfrm 0x00000000 ufshcd_get_pwr_dev_param -EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd-pltfrm 0x00000000 ufshcd_pltfrm_init -EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd-pltfrm 0x00000000 ufshcd_pltfrm_resume -EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd-pltfrm 0x00000000 ufshcd_pltfrm_runtime_idle -EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd-pltfrm 0x00000000 ufshcd_pltfrm_runtime_resume -EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd-pltfrm 0x00000000 ufshcd_pltfrm_runtime_suspend -EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd-pltfrm 0x00000000 ufshcd_pltfrm_shutdown -EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd-pltfrm 0x00000000 ufshcd_pltfrm_suspend -EXPORT_SYMBOL_GPL drivers/siox/siox-core 0x00000000 __siox_driver_register -EXPORT_SYMBOL_GPL drivers/siox/siox-core 0x00000000 siox_device_connected -EXPORT_SYMBOL_GPL drivers/siox/siox-core 0x00000000 siox_device_synced -EXPORT_SYMBOL_GPL drivers/siox/siox-core 0x00000000 siox_master_alloc -EXPORT_SYMBOL_GPL drivers/siox/siox-core 0x00000000 siox_master_register -EXPORT_SYMBOL_GPL drivers/siox/siox-core 0x00000000 siox_master_unregister -EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x00000000 __slim_driver_register -EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x00000000 of_slim_get_device -EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x00000000 slim_alloc_txn_tid -EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x00000000 slim_ctrl_clk_pause -EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x00000000 slim_device_report_present -EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x00000000 slim_do_transfer -EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x00000000 slim_driver_unregister -EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x00000000 slim_free_txn_tid -EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x00000000 slim_get_device -EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x00000000 slim_get_logical_addr -EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x00000000 slim_msg_response -EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x00000000 slim_read -EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x00000000 slim_readb -EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x00000000 slim_register_controller -EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x00000000 slim_report_absent -EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x00000000 slim_stream_allocate -EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x00000000 slim_stream_disable -EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x00000000 slim_stream_enable -EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x00000000 slim_stream_free -EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x00000000 slim_stream_prepare -EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x00000000 slim_stream_unprepare -EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x00000000 slim_unregister_controller -EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x00000000 slim_write -EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x00000000 slim_writeb -EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x00000000 slim_xfer_msg -EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x00000000 slimbus_bus -EXPORT_SYMBOL_GPL drivers/soundwire/soundwire-bus 0x00000000 __sdw_register_driver -EXPORT_SYMBOL_GPL drivers/soundwire/soundwire-bus 0x00000000 __sdw_register_master_driver -EXPORT_SYMBOL_GPL drivers/soundwire/soundwire-bus 0x00000000 sdw_bus_type -EXPORT_SYMBOL_GPL drivers/soundwire/soundwire-bus 0x00000000 sdw_master_device_add -EXPORT_SYMBOL_GPL drivers/soundwire/soundwire-bus 0x00000000 sdw_master_device_process_wake_event -EXPORT_SYMBOL_GPL drivers/soundwire/soundwire-bus 0x00000000 sdw_master_device_startup -EXPORT_SYMBOL_GPL drivers/soundwire/soundwire-bus 0x00000000 sdw_unregister_driver -EXPORT_SYMBOL_GPL drivers/soundwire/soundwire-bus 0x00000000 sdw_unregister_master_driver -EXPORT_SYMBOL_GPL drivers/soundwire/soundwire-cadence 0x00000000 sdw_cdns_debugfs_init -EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x00000000 spi_bitbang_cleanup -EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x00000000 spi_bitbang_init -EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x00000000 spi_bitbang_setup -EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x00000000 spi_bitbang_setup_transfer -EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x00000000 spi_bitbang_start -EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x00000000 spi_bitbang_stop -EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0x00000000 dw_spi_add_host -EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0x00000000 dw_spi_remove_host -EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0x00000000 dw_spi_resume_host -EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0x00000000 dw_spi_set_cs -EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0x00000000 dw_spi_suspend_host -EXPORT_SYMBOL_GPL drivers/spi/spi-loopback-test 0x00000000 spi_test_execute_msg -EXPORT_SYMBOL_GPL drivers/spi/spi-loopback-test 0x00000000 spi_test_run_test -EXPORT_SYMBOL_GPL drivers/spi/spi-loopback-test 0x00000000 spi_test_run_tests -EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x00000000 __spmi_driver_register -EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x00000000 spmi_command_reset -EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x00000000 spmi_command_shutdown -EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x00000000 spmi_command_sleep -EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x00000000 spmi_command_wakeup -EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x00000000 spmi_controller_add -EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x00000000 spmi_controller_alloc -EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x00000000 spmi_controller_remove -EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x00000000 spmi_device_add -EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x00000000 spmi_device_alloc -EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x00000000 spmi_device_remove -EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x00000000 spmi_ext_register_read -EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x00000000 spmi_ext_register_readl -EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x00000000 spmi_ext_register_write -EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x00000000 spmi_ext_register_writel -EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x00000000 spmi_register_read -EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x00000000 spmi_register_write -EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x00000000 spmi_register_zero_write -EXPORT_SYMBOL_GPL drivers/ssb/ssb 0x00000000 ssb_pmu_spuravoid_pllupdate -EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 __comedi_request_region -EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 comedi_alloc_devpriv -EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 comedi_alloc_spriv -EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 comedi_alloc_subdev_readback -EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 comedi_alloc_subdevices -EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 comedi_auto_config -EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 comedi_auto_unconfig -EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 comedi_buf_read_alloc -EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 comedi_buf_read_free -EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 comedi_buf_read_n_available -EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 comedi_buf_read_samples -EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 comedi_buf_write_alloc -EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 comedi_buf_write_free -EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 comedi_buf_write_samples -EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 comedi_bytes_per_scan -EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 comedi_bytes_per_scan_cmd -EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 comedi_check_chanlist -EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 comedi_dev_get_from_minor -EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 comedi_dev_put -EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 comedi_dio_insn_config -EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 comedi_dio_update_state -EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 comedi_driver_register -EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 comedi_driver_unregister -EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 comedi_event -EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 comedi_handle_events -EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 comedi_inc_scan_progress -EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 comedi_is_subdevice_running -EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 comedi_legacy_detach -EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 comedi_load_firmware -EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 comedi_nsamples_left -EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 comedi_nscans_left -EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 comedi_readback_insn_read -EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 comedi_request_region -EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 comedi_set_hw_dev -EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 comedi_set_spriv_auto_free -EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 comedi_timeout -EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 range_0_20mA -EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 range_0_32mA -EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 range_4_20mA -EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 range_bipolar10 -EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 range_bipolar2_5 -EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 range_bipolar5 -EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 range_unipolar10 -EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 range_unipolar2_5 -EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 range_unipolar5 -EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 range_unknown -EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi_pci 0x00000000 comedi_pci_auto_config -EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi_pci 0x00000000 comedi_pci_auto_unconfig -EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi_pci 0x00000000 comedi_pci_detach -EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi_pci 0x00000000 comedi_pci_disable -EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi_pci 0x00000000 comedi_pci_driver_register -EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi_pci 0x00000000 comedi_pci_driver_unregister -EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi_pci 0x00000000 comedi_pci_enable -EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi_pci 0x00000000 comedi_to_pci_dev -EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi_pcmcia 0x00000000 comedi_pcmcia_auto_config -EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi_pcmcia 0x00000000 comedi_pcmcia_auto_unconfig -EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi_pcmcia 0x00000000 comedi_pcmcia_disable -EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi_pcmcia 0x00000000 comedi_pcmcia_driver_register -EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi_pcmcia 0x00000000 comedi_pcmcia_driver_unregister -EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi_pcmcia 0x00000000 comedi_pcmcia_enable -EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi_pcmcia 0x00000000 comedi_to_pcmcia_dev -EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi_usb 0x00000000 comedi_to_usb_dev -EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi_usb 0x00000000 comedi_to_usb_interface -EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi_usb 0x00000000 comedi_usb_auto_config -EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi_usb 0x00000000 comedi_usb_auto_unconfig -EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi_usb 0x00000000 comedi_usb_driver_register -EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi_usb 0x00000000 comedi_usb_driver_unregister -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/addi_watchdog 0x00000000 addi_watchdog_init -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/addi_watchdog 0x00000000 addi_watchdog_reset -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/amplc_dio200_common 0x00000000 amplc_dio200_common_attach -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/amplc_dio200_common 0x00000000 amplc_dio200_set_enhance -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/amplc_pc236_common 0x00000000 amplc_pc236_common_attach -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_8254 0x00000000 comedi_8254_cascade_ns_to_timer -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_8254 0x00000000 comedi_8254_init -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_8254 0x00000000 comedi_8254_load -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_8254 0x00000000 comedi_8254_mm_init -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_8254 0x00000000 comedi_8254_ns_to_timer -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_8254 0x00000000 comedi_8254_pacer_enable -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_8254 0x00000000 comedi_8254_read -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_8254 0x00000000 comedi_8254_set_busy -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_8254 0x00000000 comedi_8254_set_mode -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_8254 0x00000000 comedi_8254_status -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_8254 0x00000000 comedi_8254_subdevice_init -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_8254 0x00000000 comedi_8254_update_divisors -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_8254 0x00000000 comedi_8254_write -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_8255 0x00000000 subdev_8255_init -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_8255 0x00000000 subdev_8255_mm_init -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_8255 0x00000000 subdev_8255_regbase -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_isadma 0x00000000 comedi_isadma_alloc -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_isadma 0x00000000 comedi_isadma_disable -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_isadma 0x00000000 comedi_isadma_disable_on_sample -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_isadma 0x00000000 comedi_isadma_free -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_isadma 0x00000000 comedi_isadma_poll -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_isadma 0x00000000 comedi_isadma_program -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_isadma 0x00000000 comedi_isadma_set_mode -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0x00000000 das08_common_attach -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x00000000 mite_ack_linkc -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x00000000 mite_alloc_ring -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x00000000 mite_attach -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x00000000 mite_buf_change -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x00000000 mite_bytes_in_transit -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x00000000 mite_detach -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x00000000 mite_dma_arm -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x00000000 mite_dma_disarm -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x00000000 mite_done -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x00000000 mite_free_ring -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x00000000 mite_init_ring_descriptors -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x00000000 mite_prep_dma -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x00000000 mite_release_channel -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x00000000 mite_request_channel -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x00000000 mite_request_channel_in_range -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x00000000 mite_sync_dma -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc_common 0x00000000 labpc_common_attach -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc_common 0x00000000 labpc_common_detach -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc_isadma 0x00000000 labpc_drain_dma -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc_isadma 0x00000000 labpc_free_dma_chan -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc_isadma 0x00000000 labpc_handle_dma_status -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc_isadma 0x00000000 labpc_init_dma_chan -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc_isadma 0x00000000 labpc_setup_dma -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_routing 0x00000000 ni_assign_device_routes -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_routing 0x00000000 ni_count_valid_routes -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_routing 0x00000000 ni_find_route_set -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_routing 0x00000000 ni_find_route_source -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_routing 0x00000000 ni_get_valid_routes -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_routing 0x00000000 ni_is_cmd_dest -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_routing 0x00000000 ni_lookup_route_register -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_routing 0x00000000 ni_route_set_has_source -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_routing 0x00000000 ni_route_to_register -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_routing 0x00000000 ni_sort_device_routes -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x00000000 ni_gpct_device_construct -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x00000000 ni_gpct_device_destroy -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x00000000 ni_tio_arm -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x00000000 ni_tio_get_routing -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x00000000 ni_tio_get_soft_copy -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x00000000 ni_tio_init_counter -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x00000000 ni_tio_insn_config -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x00000000 ni_tio_insn_read -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x00000000 ni_tio_insn_write -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x00000000 ni_tio_read -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x00000000 ni_tio_set_bits -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x00000000 ni_tio_set_gate_src -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x00000000 ni_tio_set_gate_src_raw -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x00000000 ni_tio_set_routing -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x00000000 ni_tio_unset_routing -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x00000000 ni_tio_write -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x00000000 ni_tio_acknowledge -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x00000000 ni_tio_cancel -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x00000000 ni_tio_cmd -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x00000000 ni_tio_cmdtest -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x00000000 ni_tio_handle_interrupt -EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x00000000 ni_tio_set_mite_channel -EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x00000000 comedi_close -EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x00000000 comedi_dio_bitfield2 -EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x00000000 comedi_dio_config -EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x00000000 comedi_dio_get_config -EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x00000000 comedi_find_subdevice_by_type -EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x00000000 comedi_get_n_channels -EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x00000000 comedi_open -EXPORT_SYMBOL_GPL drivers/staging/fieldbus/fieldbus_dev 0x00000000 fieldbus_dev_area_updated -EXPORT_SYMBOL_GPL drivers/staging/fieldbus/fieldbus_dev 0x00000000 fieldbus_dev_online_changed -EXPORT_SYMBOL_GPL drivers/staging/fieldbus/fieldbus_dev 0x00000000 fieldbus_dev_register -EXPORT_SYMBOL_GPL drivers/staging/fieldbus/fieldbus_dev 0x00000000 fieldbus_dev_unregister -EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x00000000 gb_audio_apbridgea_prepare_rx -EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x00000000 gb_audio_apbridgea_prepare_tx -EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x00000000 gb_audio_apbridgea_register_cport -EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x00000000 gb_audio_apbridgea_set_config -EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x00000000 gb_audio_apbridgea_set_rx_data_size -EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x00000000 gb_audio_apbridgea_set_tx_data_size -EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x00000000 gb_audio_apbridgea_shutdown_rx -EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x00000000 gb_audio_apbridgea_shutdown_tx -EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x00000000 gb_audio_apbridgea_start_rx -EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x00000000 gb_audio_apbridgea_start_tx -EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x00000000 gb_audio_apbridgea_stop_rx -EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x00000000 gb_audio_apbridgea_stop_tx -EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x00000000 gb_audio_apbridgea_unregister_cport -EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x00000000 gb_audio_gb_activate_rx -EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x00000000 gb_audio_gb_activate_tx -EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x00000000 gb_audio_gb_deactivate_rx -EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x00000000 gb_audio_gb_deactivate_tx -EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x00000000 gb_audio_gb_disable_widget -EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x00000000 gb_audio_gb_enable_widget -EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x00000000 gb_audio_gb_get_control -EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x00000000 gb_audio_gb_get_pcm -EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x00000000 gb_audio_gb_get_topology -EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x00000000 gb_audio_gb_set_control -EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x00000000 gb_audio_gb_set_pcm -EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x00000000 gb_audio_gb_set_rx_data_size -EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x00000000 gb_audio_gb_set_tx_data_size -EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-manager 0x00000000 gb_audio_manager_add -EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-manager 0x00000000 gb_audio_manager_dump_all -EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-manager 0x00000000 gb_audio_manager_dump_module -EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-manager 0x00000000 gb_audio_manager_get_module -EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-manager 0x00000000 gb_audio_manager_put_module -EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-manager 0x00000000 gb_audio_manager_remove -EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-manager 0x00000000 gb_audio_manager_remove_all -EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-gbphy 0x00000000 gb_gbphy_deregister_driver -EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-gbphy 0x00000000 gb_gbphy_register_driver -EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-spilib 0x00000000 gb_spilib_master_exit -EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-spilib 0x00000000 gb_spilib_master_init -EXPORT_SYMBOL_GPL drivers/staging/iio/addac/adt7316 0x00000000 adt7316_pm_ops -EXPORT_SYMBOL_GPL drivers/staging/most/most_core 0x00000000 channel_has_mbo -EXPORT_SYMBOL_GPL drivers/staging/most/most_core 0x00000000 most_deregister_component -EXPORT_SYMBOL_GPL drivers/staging/most/most_core 0x00000000 most_deregister_configfs_subsys -EXPORT_SYMBOL_GPL drivers/staging/most/most_core 0x00000000 most_deregister_interface -EXPORT_SYMBOL_GPL drivers/staging/most/most_core 0x00000000 most_get_mbo -EXPORT_SYMBOL_GPL drivers/staging/most/most_core 0x00000000 most_put_mbo -EXPORT_SYMBOL_GPL drivers/staging/most/most_core 0x00000000 most_register_component -EXPORT_SYMBOL_GPL drivers/staging/most/most_core 0x00000000 most_register_configfs_subsys -EXPORT_SYMBOL_GPL drivers/staging/most/most_core 0x00000000 most_register_interface -EXPORT_SYMBOL_GPL drivers/staging/most/most_core 0x00000000 most_resume_enqueue -EXPORT_SYMBOL_GPL drivers/staging/most/most_core 0x00000000 most_start_channel -EXPORT_SYMBOL_GPL drivers/staging/most/most_core 0x00000000 most_stop_channel -EXPORT_SYMBOL_GPL drivers/staging/most/most_core 0x00000000 most_stop_enqueue -EXPORT_SYMBOL_GPL drivers/staging/most/most_core 0x00000000 most_submit_mbo -EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 speakup_event -EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 speakup_info -EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 speakup_start_ttys -EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 spk_do_catch_up -EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 spk_do_catch_up_unicode -EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 spk_get_var -EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 spk_serial_io_ops -EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 spk_serial_release -EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 spk_serial_synth_immediate -EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 spk_serial_synth_probe -EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 spk_stop_serial_interrupt -EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 spk_synth_flush -EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 spk_synth_get_index -EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 spk_synth_is_alive_nop -EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 spk_synth_is_alive_restart -EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 spk_ttyio_ops -EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 spk_ttyio_release -EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 spk_ttyio_synth_immediate -EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 spk_ttyio_synth_probe -EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 spk_var_show -EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 spk_var_store -EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 synth_add -EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 synth_buffer_clear -EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 synth_buffer_empty -EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 synth_buffer_getc -EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 synth_buffer_peek -EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 synth_buffer_skip_nonlatin1 -EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 synth_current -EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 synth_printf -EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 synth_putwc -EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 synth_putwc_s -EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 synth_putws -EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 synth_putws_s -EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 synth_release_region -EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 synth_remove -EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 synth_request_region -EXPORT_SYMBOL_GPL drivers/staging/uwb/i1480/dfu/i1480-dfu-usb 0x00000000 i1480_cmd -EXPORT_SYMBOL_GPL drivers/staging/uwb/i1480/dfu/i1480-dfu-usb 0x00000000 i1480_fw_upload -EXPORT_SYMBOL_GPL drivers/staging/uwb/i1480/dfu/i1480-dfu-usb 0x00000000 i1480_rceb_check -EXPORT_SYMBOL_GPL drivers/staging/uwb/umc 0x00000000 __umc_driver_register -EXPORT_SYMBOL_GPL drivers/staging/uwb/umc 0x00000000 umc_bus_type -EXPORT_SYMBOL_GPL drivers/staging/uwb/umc 0x00000000 umc_controller_reset -EXPORT_SYMBOL_GPL drivers/staging/uwb/umc 0x00000000 umc_device_create -EXPORT_SYMBOL_GPL drivers/staging/uwb/umc 0x00000000 umc_device_register -EXPORT_SYMBOL_GPL drivers/staging/uwb/umc 0x00000000 umc_device_unregister -EXPORT_SYMBOL_GPL drivers/staging/uwb/umc 0x00000000 umc_driver_unregister -EXPORT_SYMBOL_GPL drivers/staging/uwb/umc 0x00000000 umc_match_pci_id -EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 __uwb_addr_print -EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 __uwb_rc_try_get -EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_dev_for_each -EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_dev_try_get -EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_est_find_size -EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_est_register -EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_est_unregister -EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_ie_next -EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_notifs_deregister -EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_notifs_register -EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_pal_init -EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_pal_register -EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_pal_unregister -EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_radio_start -EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_radio_stop -EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_rc_add -EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_rc_alloc -EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_rc_cmd -EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_rc_cmd_async -EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_rc_dev_addr_get -EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_rc_get_by_dev -EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_rc_get_by_grandpa -EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_rc_ie_add -EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_rc_ie_rm -EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_rc_init -EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_rc_mac_addr_get -EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_rc_neh_error -EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_rc_neh_grok -EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_rc_post_reset -EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_rc_pre_reset -EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_rc_put -EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_rc_reset_all -EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_rc_rm -EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_rc_vcmd -EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_rsv_accept -EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_rsv_create -EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_rsv_destroy -EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_rsv_establish -EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_rsv_get_usable_mas -EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_rsv_modify -EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_rsv_state_str -EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_rsv_terminate -EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_rsv_type_str -EXPORT_SYMBOL_GPL drivers/staging/uwb/whci 0x00000000 whci_wait_for -EXPORT_SYMBOL_GPL drivers/staging/wilc1000/wilc1000 0x00000000 chip_allow_sleep -EXPORT_SYMBOL_GPL drivers/staging/wilc1000/wilc1000 0x00000000 chip_wakeup -EXPORT_SYMBOL_GPL drivers/staging/wilc1000/wilc1000 0x00000000 host_sleep_notify -EXPORT_SYMBOL_GPL drivers/staging/wilc1000/wilc1000 0x00000000 host_wakeup_notify -EXPORT_SYMBOL_GPL drivers/staging/wilc1000/wilc1000 0x00000000 wilc_cfg80211_init -EXPORT_SYMBOL_GPL drivers/staging/wilc1000/wilc1000 0x00000000 wilc_handle_isr -EXPORT_SYMBOL_GPL drivers/staging/wilc1000/wilc1000 0x00000000 wilc_netdev_cleanup -EXPORT_SYMBOL_GPL drivers/staging/wusbcore/wusb-wa 0x00000000 __wa_destroy -EXPORT_SYMBOL_GPL drivers/staging/wusbcore/wusb-wa 0x00000000 rpipe_clear_feature_stalled -EXPORT_SYMBOL_GPL drivers/staging/wusbcore/wusb-wa 0x00000000 rpipe_destroy -EXPORT_SYMBOL_GPL drivers/staging/wusbcore/wusb-wa 0x00000000 rpipe_ep_disable -EXPORT_SYMBOL_GPL drivers/staging/wusbcore/wusb-wa 0x00000000 wa_create -EXPORT_SYMBOL_GPL drivers/staging/wusbcore/wusb-wa 0x00000000 wa_dti_start -EXPORT_SYMBOL_GPL drivers/staging/wusbcore/wusb-wa 0x00000000 wa_process_errored_transfers_run -EXPORT_SYMBOL_GPL drivers/staging/wusbcore/wusb-wa 0x00000000 wa_urb_dequeue -EXPORT_SYMBOL_GPL drivers/staging/wusbcore/wusb-wa 0x00000000 wa_urb_enqueue -EXPORT_SYMBOL_GPL drivers/staging/wusbcore/wusb-wa 0x00000000 wa_urb_enqueue_run -EXPORT_SYMBOL_GPL drivers/staging/wusbcore/wusbcore 0x00000000 __wusb_dev_get_by_usb_dev -EXPORT_SYMBOL_GPL drivers/staging/wusbcore/wusbcore 0x00000000 wusb_cluster_id_get -EXPORT_SYMBOL_GPL drivers/staging/wusbcore/wusbcore 0x00000000 wusb_cluster_id_put -EXPORT_SYMBOL_GPL drivers/staging/wusbcore/wusbcore 0x00000000 wusb_dev_destroy -EXPORT_SYMBOL_GPL drivers/staging/wusbcore/wusbcore 0x00000000 wusb_et_name -EXPORT_SYMBOL_GPL drivers/staging/wusbcore/wusbcore 0x00000000 wusbd -EXPORT_SYMBOL_GPL drivers/staging/wusbcore/wusbcore 0x00000000 wusbhc_b_create -EXPORT_SYMBOL_GPL drivers/staging/wusbcore/wusbcore 0x00000000 wusbhc_b_destroy -EXPORT_SYMBOL_GPL drivers/staging/wusbcore/wusbcore 0x00000000 wusbhc_chid_set -EXPORT_SYMBOL_GPL drivers/staging/wusbcore/wusbcore 0x00000000 wusbhc_create -EXPORT_SYMBOL_GPL drivers/staging/wusbcore/wusbcore 0x00000000 wusbhc_destroy -EXPORT_SYMBOL_GPL drivers/staging/wusbcore/wusbcore 0x00000000 wusbhc_giveback_urb -EXPORT_SYMBOL_GPL drivers/staging/wusbcore/wusbcore 0x00000000 wusbhc_handle_dn -EXPORT_SYMBOL_GPL drivers/staging/wusbcore/wusbcore 0x00000000 wusbhc_mmcie_rm -EXPORT_SYMBOL_GPL drivers/staging/wusbcore/wusbcore 0x00000000 wusbhc_mmcie_set -EXPORT_SYMBOL_GPL drivers/staging/wusbcore/wusbcore 0x00000000 wusbhc_reset_all -EXPORT_SYMBOL_GPL drivers/staging/wusbcore/wusbcore 0x00000000 wusbhc_rh_control -EXPORT_SYMBOL_GPL drivers/staging/wusbcore/wusbcore 0x00000000 wusbhc_rh_start_port_reset -EXPORT_SYMBOL_GPL drivers/staging/wusbcore/wusbcore 0x00000000 wusbhc_rh_status_data -EXPORT_SYMBOL_GPL drivers/tee/tee 0x00000000 tee_bus_type -EXPORT_SYMBOL_GPL drivers/tee/tee 0x00000000 tee_client_close_context -EXPORT_SYMBOL_GPL drivers/tee/tee 0x00000000 tee_client_close_session -EXPORT_SYMBOL_GPL drivers/tee/tee 0x00000000 tee_client_get_version -EXPORT_SYMBOL_GPL drivers/tee/tee 0x00000000 tee_client_invoke_func -EXPORT_SYMBOL_GPL drivers/tee/tee 0x00000000 tee_client_open_context -EXPORT_SYMBOL_GPL drivers/tee/tee 0x00000000 tee_client_open_session -EXPORT_SYMBOL_GPL drivers/tee/tee 0x00000000 tee_device_alloc -EXPORT_SYMBOL_GPL drivers/tee/tee 0x00000000 tee_device_register -EXPORT_SYMBOL_GPL drivers/tee/tee 0x00000000 tee_device_unregister -EXPORT_SYMBOL_GPL drivers/tee/tee 0x00000000 tee_get_drvdata -EXPORT_SYMBOL_GPL drivers/tee/tee 0x00000000 tee_shm_alloc -EXPORT_SYMBOL_GPL drivers/tee/tee 0x00000000 tee_shm_free -EXPORT_SYMBOL_GPL drivers/tee/tee 0x00000000 tee_shm_get_from_id -EXPORT_SYMBOL_GPL drivers/tee/tee 0x00000000 tee_shm_get_pa -EXPORT_SYMBOL_GPL drivers/tee/tee 0x00000000 tee_shm_get_va -EXPORT_SYMBOL_GPL drivers/tee/tee 0x00000000 tee_shm_pa2va -EXPORT_SYMBOL_GPL drivers/tee/tee 0x00000000 tee_shm_pool_alloc -EXPORT_SYMBOL_GPL drivers/tee/tee 0x00000000 tee_shm_pool_alloc_res_mem -EXPORT_SYMBOL_GPL drivers/tee/tee 0x00000000 tee_shm_pool_free -EXPORT_SYMBOL_GPL drivers/tee/tee 0x00000000 tee_shm_pool_mgr_alloc_res_mem -EXPORT_SYMBOL_GPL drivers/tee/tee 0x00000000 tee_shm_priv_alloc -EXPORT_SYMBOL_GPL drivers/tee/tee 0x00000000 tee_shm_put -EXPORT_SYMBOL_GPL drivers/tee/tee 0x00000000 tee_shm_register -EXPORT_SYMBOL_GPL drivers/tee/tee 0x00000000 tee_shm_va2pa -EXPORT_SYMBOL_GPL drivers/thermal/intel/int340x_thermal/int340x_thermal_zone 0x00000000 int340x_thermal_read_trips -EXPORT_SYMBOL_GPL drivers/thermal/intel/int340x_thermal/int340x_thermal_zone 0x00000000 int340x_thermal_zone_add -EXPORT_SYMBOL_GPL drivers/thermal/intel/int340x_thermal/int340x_thermal_zone 0x00000000 int340x_thermal_zone_remove -EXPORT_SYMBOL_GPL drivers/thermal/intel/intel_soc_dts_iosf 0x00000000 intel_soc_dts_iosf_add_read_only_critical_trip -EXPORT_SYMBOL_GPL drivers/thermal/intel/intel_soc_dts_iosf 0x00000000 intel_soc_dts_iosf_exit -EXPORT_SYMBOL_GPL drivers/thermal/intel/intel_soc_dts_iosf 0x00000000 intel_soc_dts_iosf_init -EXPORT_SYMBOL_GPL drivers/thermal/intel/intel_soc_dts_iosf 0x00000000 intel_soc_dts_iosf_interrupt_handler -EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x00000000 __tb_ring_enqueue -EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x00000000 tb_property_add_data -EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x00000000 tb_property_add_dir -EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x00000000 tb_property_add_immediate -EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x00000000 tb_property_add_text -EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x00000000 tb_property_create_dir -EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x00000000 tb_property_find -EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x00000000 tb_property_free_dir -EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x00000000 tb_property_get_next -EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x00000000 tb_property_remove -EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x00000000 tb_register_property_dir -EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x00000000 tb_register_protocol_handler -EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x00000000 tb_register_service_driver -EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x00000000 tb_ring_alloc_rx -EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x00000000 tb_ring_alloc_tx -EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x00000000 tb_ring_free -EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x00000000 tb_ring_poll -EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x00000000 tb_ring_poll_complete -EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x00000000 tb_ring_start -EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x00000000 tb_ring_stop -EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x00000000 tb_service_type -EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x00000000 tb_unregister_property_dir -EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x00000000 tb_unregister_protocol_handler -EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x00000000 tb_unregister_service_driver -EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x00000000 tb_xdomain_disable_paths -EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x00000000 tb_xdomain_enable_paths -EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x00000000 tb_xdomain_find_by_route -EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x00000000 tb_xdomain_find_by_uuid -EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x00000000 tb_xdomain_request -EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x00000000 tb_xdomain_response -EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x00000000 tb_xdomain_type -EXPORT_SYMBOL_GPL drivers/tty/n_tracesink 0x00000000 n_tracesink_datadrain -EXPORT_SYMBOL_GPL drivers/uio/uio 0x00000000 __uio_register_device -EXPORT_SYMBOL_GPL drivers/uio/uio 0x00000000 uio_event_notify -EXPORT_SYMBOL_GPL drivers/uio/uio 0x00000000 uio_unregister_device -EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x00000000 usbatm_usb_disconnect -EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x00000000 usbatm_usb_probe -EXPORT_SYMBOL_GPL drivers/usb/chipidea/ci_hdrc 0x00000000 ci_hdrc_add_device -EXPORT_SYMBOL_GPL drivers/usb/chipidea/ci_hdrc 0x00000000 ci_hdrc_remove_device -EXPORT_SYMBOL_GPL drivers/usb/chipidea/ci_hdrc 0x00000000 hw_phymode_configure -EXPORT_SYMBOL_GPL drivers/usb/common/ulpi 0x00000000 __ulpi_register_driver -EXPORT_SYMBOL_GPL drivers/usb/common/ulpi 0x00000000 ulpi_read -EXPORT_SYMBOL_GPL drivers/usb/common/ulpi 0x00000000 ulpi_register_interface -EXPORT_SYMBOL_GPL drivers/usb/common/ulpi 0x00000000 ulpi_unregister_driver -EXPORT_SYMBOL_GPL drivers/usb/common/ulpi 0x00000000 ulpi_unregister_interface -EXPORT_SYMBOL_GPL drivers/usb/common/ulpi 0x00000000 ulpi_write -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x00000000 g_audio_cleanup -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x00000000 g_audio_setup -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x00000000 u_audio_start_capture -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x00000000 u_audio_start_playback -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x00000000 u_audio_stop_capture -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x00000000 u_audio_stop_playback -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x00000000 gether_cleanup -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x00000000 gether_connect -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x00000000 gether_disconnect -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x00000000 gether_get_dev_addr -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x00000000 gether_get_host_addr -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x00000000 gether_get_host_addr_cdc -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x00000000 gether_get_host_addr_u8 -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x00000000 gether_get_ifname -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x00000000 gether_get_qmult -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x00000000 gether_register_netdev -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x00000000 gether_set_dev_addr -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x00000000 gether_set_gadget -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x00000000 gether_set_host_addr -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x00000000 gether_set_qmult -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x00000000 gether_setup_name -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x00000000 gether_setup_name_default -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0x00000000 gs_alloc_req -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0x00000000 gs_free_req -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0x00000000 gserial_alloc_line -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0x00000000 gserial_alloc_line_no_console -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0x00000000 gserial_connect -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0x00000000 gserial_disconnect -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0x00000000 gserial_free_line -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0x00000000 gserial_get_console -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0x00000000 gserial_set_console -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_fs 0x00000000 ffs_lock -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_fs 0x00000000 ffs_name_dev -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_fs 0x00000000 ffs_single_dev -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x00000000 fsg_common_create_lun -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x00000000 fsg_common_create_luns -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x00000000 fsg_common_free_buffers -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x00000000 fsg_common_remove_lun -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x00000000 fsg_common_remove_luns -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x00000000 fsg_common_set_cdev -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x00000000 fsg_common_set_inquiry_string -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x00000000 fsg_common_set_num_buffers -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x00000000 fsg_common_set_sysfs -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x00000000 fsg_config_from_params -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x00000000 fsg_fs_bulk_in_desc -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x00000000 fsg_fs_bulk_out_desc -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x00000000 fsg_fs_function -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x00000000 fsg_hs_bulk_in_desc -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x00000000 fsg_hs_bulk_out_desc -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x00000000 fsg_hs_function -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x00000000 fsg_intf_desc -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x00000000 fsg_lun_close -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x00000000 fsg_lun_fsync_sub -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x00000000 fsg_lun_open -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x00000000 fsg_show_cdrom -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x00000000 fsg_show_file -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x00000000 fsg_show_inquiry_string -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x00000000 fsg_show_nofua -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x00000000 fsg_show_removable -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x00000000 fsg_show_ro -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x00000000 fsg_ss_bulk_in_comp_desc -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x00000000 fsg_ss_bulk_in_desc -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x00000000 fsg_ss_bulk_out_comp_desc -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x00000000 fsg_ss_bulk_out_desc -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x00000000 fsg_ss_function -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x00000000 fsg_store_cdrom -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x00000000 fsg_store_file -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x00000000 fsg_store_inquiry_string -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x00000000 fsg_store_nofua -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x00000000 fsg_store_removable -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x00000000 fsg_store_ro -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x00000000 store_cdrom_address -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x00000000 rndis_add_hdr -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x00000000 rndis_borrow_net -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x00000000 rndis_deregister -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x00000000 rndis_free_response -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x00000000 rndis_get_next_response -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x00000000 rndis_msg_parser -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x00000000 rndis_register -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x00000000 rndis_rm_hdr -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x00000000 rndis_set_host_mac -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x00000000 rndis_set_param_dev -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x00000000 rndis_set_param_medium -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x00000000 rndis_set_param_vendor -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x00000000 rndis_signal_connect -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x00000000 rndis_signal_disconnect -EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x00000000 rndis_uninit -EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x00000000 alloc_ep_req -EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x00000000 config_ep_by_speed -EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x00000000 unregister_gadget_item -EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x00000000 usb_add_config -EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x00000000 usb_add_config_only -EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x00000000 usb_add_function -EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x00000000 usb_assign_descriptors -EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x00000000 usb_composite_overwrite_options -EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x00000000 usb_composite_probe -EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x00000000 usb_composite_setup_continue -EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x00000000 usb_composite_unregister -EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x00000000 usb_copy_descriptors -EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x00000000 usb_descriptor_fillbuf -EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x00000000 usb_ep_autoconfig -EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x00000000 usb_ep_autoconfig_release -EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x00000000 usb_ep_autoconfig_reset -EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x00000000 usb_ep_autoconfig_ss -EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x00000000 usb_free_all_descriptors -EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x00000000 usb_function_activate -EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x00000000 usb_function_deactivate -EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x00000000 usb_function_register -EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x00000000 usb_function_unregister -EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x00000000 usb_gadget_config_buf -EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x00000000 usb_gadget_get_string -EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x00000000 usb_get_function -EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x00000000 usb_get_function_instance -EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x00000000 usb_gstrings_attach -EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x00000000 usb_interface_id -EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x00000000 usb_otg_descriptor_alloc -EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x00000000 usb_otg_descriptor_init -EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x00000000 usb_put_function -EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x00000000 usb_put_function_instance -EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x00000000 usb_remove_function -EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x00000000 usb_string_id -EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x00000000 usb_string_ids_n -EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x00000000 usb_string_ids_tab -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0x00000000 empty_req_queue -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0x00000000 free_dma_pools -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0x00000000 gadget_release -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0x00000000 init_dma_pools -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0x00000000 udc_basic_init -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0x00000000 udc_enable_dev_setup_interrupts -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0x00000000 udc_irq -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0x00000000 udc_mask_unused_interrupts -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0x00000000 udc_probe -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0x00000000 udc_remove -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 gadget_find_ep_by_name -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 usb_add_gadget_udc -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 usb_add_gadget_udc_release -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 usb_del_gadget_udc -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 usb_ep_alloc_request -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 usb_ep_clear_halt -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 usb_ep_dequeue -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 usb_ep_disable -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 usb_ep_enable -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 usb_ep_fifo_flush -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 usb_ep_fifo_status -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 usb_ep_free_request -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 usb_ep_queue -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 usb_ep_set_halt -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 usb_ep_set_maxpacket_limit -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 usb_ep_set_wedge -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 usb_gadget_activate -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 usb_gadget_clear_selfpowered -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 usb_gadget_connect -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 usb_gadget_deactivate -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 usb_gadget_disconnect -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 usb_gadget_ep_match_desc -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 usb_gadget_frame_number -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 usb_gadget_giveback_request -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 usb_gadget_map_request -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 usb_gadget_map_request_by_dev -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 usb_gadget_probe_driver -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 usb_gadget_set_selfpowered -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 usb_gadget_set_state -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 usb_gadget_udc_reset -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 usb_gadget_unmap_request -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 usb_gadget_unmap_request_by_dev -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 usb_gadget_unregister_driver -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 usb_gadget_vbus_connect -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 usb_gadget_vbus_disconnect -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 usb_gadget_vbus_draw -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 usb_gadget_wakeup -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 usb_get_gadget_udc_name -EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 usb_udc_vbus_handler -EXPORT_SYMBOL_GPL drivers/usb/misc/ezusb 0x00000000 ezusb_fx1_ihex_firmware_download -EXPORT_SYMBOL_GPL drivers/usb/misc/ezusb 0x00000000 ezusb_fx1_set_reset -EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x00000000 ftdi_elan_gone_away -EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x00000000 usb_ftdi_elan_edset_empty -EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x00000000 usb_ftdi_elan_edset_flush -EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x00000000 usb_ftdi_elan_edset_input -EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x00000000 usb_ftdi_elan_edset_output -EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x00000000 usb_ftdi_elan_edset_setup -EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x00000000 usb_ftdi_elan_edset_single -EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x00000000 usb_ftdi_elan_read_pcimem -EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x00000000 usb_ftdi_elan_write_pcimem -EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x00000000 musb_clearb -EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x00000000 musb_clearw -EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x00000000 musb_get_mode -EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x00000000 musb_interrupt -EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x00000000 musb_mailbox -EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x00000000 musb_queue_resume_work -EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x00000000 musb_readb -EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x00000000 musb_readl -EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x00000000 musb_readw -EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x00000000 musb_root_disconnect -EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x00000000 musb_set_host -EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x00000000 musb_set_peripheral -EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x00000000 musb_writeb -EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x00000000 musb_writel -EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x00000000 musb_writew -EXPORT_SYMBOL_GPL drivers/usb/phy/phy-generic 0x00000000 usb_gen_phy_init -EXPORT_SYMBOL_GPL drivers/usb/phy/phy-generic 0x00000000 usb_gen_phy_shutdown -EXPORT_SYMBOL_GPL drivers/usb/phy/phy-generic 0x00000000 usb_phy_gen_create_phy -EXPORT_SYMBOL_GPL drivers/usb/phy/phy-generic 0x00000000 usb_phy_generic_register -EXPORT_SYMBOL_GPL drivers/usb/phy/phy-generic 0x00000000 usb_phy_generic_unregister -EXPORT_SYMBOL_GPL drivers/usb/phy/phy-isp1301 0x00000000 isp1301_get_client -EXPORT_SYMBOL_GPL drivers/usb/roles/roles 0x00000000 fwnode_usb_role_switch_get -EXPORT_SYMBOL_GPL drivers/usb/roles/roles 0x00000000 usb_role_switch_find_by_fwnode -EXPORT_SYMBOL_GPL drivers/usb/roles/roles 0x00000000 usb_role_switch_get -EXPORT_SYMBOL_GPL drivers/usb/roles/roles 0x00000000 usb_role_switch_get_role -EXPORT_SYMBOL_GPL drivers/usb/roles/roles 0x00000000 usb_role_switch_put -EXPORT_SYMBOL_GPL drivers/usb/roles/roles 0x00000000 usb_role_switch_register -EXPORT_SYMBOL_GPL drivers/usb/roles/roles 0x00000000 usb_role_switch_set_role -EXPORT_SYMBOL_GPL drivers/usb/roles/roles 0x00000000 usb_role_switch_unregister -EXPORT_SYMBOL_GPL drivers/usb/serial/usb_wwan 0x00000000 usb_wwan_port_probe -EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x00000000 usb_serial_deregister_drivers -EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x00000000 usb_serial_generic_chars_in_buffer -EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x00000000 usb_serial_generic_close -EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x00000000 usb_serial_generic_get_icount -EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x00000000 usb_serial_generic_open -EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x00000000 usb_serial_generic_process_read_urb -EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x00000000 usb_serial_generic_read_bulk_callback -EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x00000000 usb_serial_generic_resume -EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x00000000 usb_serial_generic_submit_read_urbs -EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x00000000 usb_serial_generic_throttle -EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x00000000 usb_serial_generic_tiocmiwait -EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x00000000 usb_serial_generic_unthrottle -EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x00000000 usb_serial_generic_wait_until_sent -EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x00000000 usb_serial_generic_write -EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x00000000 usb_serial_generic_write_bulk_callback -EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x00000000 usb_serial_generic_write_start -EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x00000000 usb_serial_handle_break -EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x00000000 usb_serial_handle_dcd_change -EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x00000000 usb_serial_handle_sysrq_char -EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x00000000 usb_serial_port_softint -EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x00000000 usb_serial_register_drivers -EXPORT_SYMBOL_GPL drivers/usb/typec/altmodes/typec_displayport 0x00000000 dp_altmode_probe -EXPORT_SYMBOL_GPL drivers/usb/typec/altmodes/typec_displayport 0x00000000 dp_altmode_remove -EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpci 0x00000000 tcpci_irq -EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpci 0x00000000 tcpci_register_port -EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpci 0x00000000 tcpci_unregister_port -EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpm 0x00000000 tcpm_cc_change -EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpm 0x00000000 tcpm_pd_hard_reset -EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpm 0x00000000 tcpm_pd_receive -EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpm 0x00000000 tcpm_pd_transmit_complete -EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpm 0x00000000 tcpm_register_port -EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpm 0x00000000 tcpm_tcpc_reset -EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpm 0x00000000 tcpm_unregister_port -EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpm 0x00000000 tcpm_vbus_change -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 __typec_altmode_register_driver -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_altmode2port -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_altmode_attention -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_altmode_enter -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_altmode_exit -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_altmode_get_partner -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_altmode_get_plug -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_altmode_notify -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_altmode_put_plug -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_altmode_register_notifier -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_altmode_unregister_driver -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_altmode_unregister_notifier -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_altmode_update_active -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_altmode_vdm -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_cable_get -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_cable_is_active -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_cable_put -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_cable_set_identity -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_find_port_data_role -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_find_port_power_role -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_find_power_role -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_get_drvdata -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_get_orientation -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_match_altmode -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_mux_get -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_mux_get_drvdata -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_mux_put -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_mux_register -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_mux_set_drvdata -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_mux_unregister -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_partner_register_altmode -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_partner_set_identity -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_plug_register_altmode -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_port_register_altmode -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_register_cable -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_register_partner -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_register_plug -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_register_port -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_set_data_role -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_set_mode -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_set_orientation -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_set_pwr_opmode -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_set_pwr_role -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_set_vconn_role -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_switch_get -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_switch_get_drvdata -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_switch_put -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_switch_register -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_switch_set_drvdata -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_switch_unregister -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_unregister_altmode -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_unregister_cable -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_unregister_partner -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_unregister_plug -EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_unregister_port -EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x00000000 ucsi_connector_change -EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x00000000 ucsi_create -EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x00000000 ucsi_destroy -EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x00000000 ucsi_get_drvdata -EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x00000000 ucsi_init -EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x00000000 ucsi_register -EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x00000000 ucsi_resume -EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x00000000 ucsi_send_command -EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x00000000 ucsi_set_drvdata -EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x00000000 ucsi_unregister -EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x00000000 dev_attr_usbip_debug -EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x00000000 usbip_alloc_iso_desc_pdu -EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x00000000 usbip_debug_flag -EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x00000000 usbip_dump_header -EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x00000000 usbip_dump_urb -EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x00000000 usbip_event_add -EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x00000000 usbip_event_happened -EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x00000000 usbip_header_correct_endian -EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x00000000 usbip_in_eh -EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x00000000 usbip_pack_pdu -EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x00000000 usbip_pad_iso -EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x00000000 usbip_recv -EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x00000000 usbip_recv_iso -EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x00000000 usbip_recv_xbuff -EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x00000000 usbip_start_eh -EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x00000000 usbip_stop_eh -EXPORT_SYMBOL_GPL drivers/vfio/mdev/mdev 0x00000000 mdev_bus_type -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_add_used -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_add_used_and_signal -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_add_used_and_signal_n -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_add_used_n -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_chr_read_iter -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_dequeue_msg -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_dev_check_owner -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_dev_cleanup -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_dev_has_owner -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_dev_init -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_dev_ioctl -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_dev_reset_owner -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_dev_reset_owner_prepare -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_dev_set_owner -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_dev_stop -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_disable_notify -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_discard_vq_desc -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_enable_notify -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_enqueue_msg -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_exceeds_weight -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_get_vq_desc -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_has_work -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_init_device_iotlb -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_log_access_ok -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_log_write -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_new_msg -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_poll_flush -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_poll_init -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_poll_queue -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_poll_start -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_poll_stop -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_signal -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_vq_access_ok -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_vq_avail_empty -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_vq_init_access -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_vring_ioctl -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_work_flush -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_work_init -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_work_queue -EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vq_meta_prefetch -EXPORT_SYMBOL_GPL drivers/video/backlight/apple_bl 0x00000000 apple_bl_register -EXPORT_SYMBOL_GPL drivers/video/backlight/apple_bl 0x00000000 apple_bl_unregister -EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x00000000 ili9320_probe_spi -EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x00000000 ili9320_remove -EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x00000000 ili9320_resume -EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x00000000 ili9320_shutdown -EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x00000000 ili9320_suspend -EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x00000000 ili9320_write -EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x00000000 ili9320_write_regs -EXPORT_SYMBOL_GPL drivers/video/fbdev/core/fb_ddc 0x00000000 fb_ddc_read -EXPORT_SYMBOL_GPL drivers/video/fbdev/core/fb_sys_fops 0x00000000 fb_sys_read -EXPORT_SYMBOL_GPL drivers/video/fbdev/core/fb_sys_fops 0x00000000 fb_sys_write -EXPORT_SYMBOL_GPL drivers/video/fbdev/sis/sisfb 0x00000000 sis_free_new -EXPORT_SYMBOL_GPL drivers/video/fbdev/sis/sisfb 0x00000000 sis_malloc_new -EXPORT_SYMBOL_GPL drivers/video/fbdev/vermilion/vmlfb 0x00000000 vmlfb_register_subsys -EXPORT_SYMBOL_GPL drivers/video/fbdev/vermilion/vmlfb 0x00000000 vmlfb_unregister_subsys -EXPORT_SYMBOL_GPL drivers/video/fbdev/via/viafb 0x00000000 viafb_dma_copy_out_sg -EXPORT_SYMBOL_GPL drivers/video/fbdev/via/viafb 0x00000000 viafb_find_i2c_adapter -EXPORT_SYMBOL_GPL drivers/video/fbdev/via/viafb 0x00000000 viafb_gpio_lookup -EXPORT_SYMBOL_GPL drivers/video/fbdev/via/viafb 0x00000000 viafb_irq_disable -EXPORT_SYMBOL_GPL drivers/video/fbdev/via/viafb 0x00000000 viafb_irq_enable -EXPORT_SYMBOL_GPL drivers/video/fbdev/via/viafb 0x00000000 viafb_pm_register -EXPORT_SYMBOL_GPL drivers/video/fbdev/via/viafb 0x00000000 viafb_pm_unregister -EXPORT_SYMBOL_GPL drivers/video/fbdev/via/viafb 0x00000000 viafb_release_dma -EXPORT_SYMBOL_GPL drivers/video/fbdev/via/viafb 0x00000000 viafb_request_dma -EXPORT_SYMBOL_GPL drivers/visorbus/visorbus 0x00000000 visorbus_disable_channel_interrupts -EXPORT_SYMBOL_GPL drivers/visorbus/visorbus 0x00000000 visorbus_enable_channel_interrupts -EXPORT_SYMBOL_GPL drivers/visorbus/visorbus 0x00000000 visorbus_read_channel -EXPORT_SYMBOL_GPL drivers/visorbus/visorbus 0x00000000 visorbus_register_visor_driver -EXPORT_SYMBOL_GPL drivers/visorbus/visorbus 0x00000000 visorbus_unregister_visor_driver -EXPORT_SYMBOL_GPL drivers/visorbus/visorbus 0x00000000 visorbus_write_channel -EXPORT_SYMBOL_GPL drivers/visorbus/visorbus 0x00000000 visorchannel_get_guid -EXPORT_SYMBOL_GPL drivers/visorbus/visorbus 0x00000000 visorchannel_signalempty -EXPORT_SYMBOL_GPL drivers/visorbus/visorbus 0x00000000 visorchannel_signalinsert -EXPORT_SYMBOL_GPL drivers/visorbus/visorbus 0x00000000 visorchannel_signalremove -EXPORT_SYMBOL_GPL drivers/w1/wire 0x00000000 w1_calc_crc8 -EXPORT_SYMBOL_GPL drivers/w1/wire 0x00000000 w1_next_pullup -EXPORT_SYMBOL_GPL drivers/w1/wire 0x00000000 w1_read_8 -EXPORT_SYMBOL_GPL drivers/w1/wire 0x00000000 w1_read_block -EXPORT_SYMBOL_GPL drivers/w1/wire 0x00000000 w1_reset_bus -EXPORT_SYMBOL_GPL drivers/w1/wire 0x00000000 w1_reset_resume_command -EXPORT_SYMBOL_GPL drivers/w1/wire 0x00000000 w1_reset_select_slave -EXPORT_SYMBOL_GPL drivers/w1/wire 0x00000000 w1_touch_bit -EXPORT_SYMBOL_GPL drivers/w1/wire 0x00000000 w1_touch_block -EXPORT_SYMBOL_GPL drivers/w1/wire 0x00000000 w1_triplet -EXPORT_SYMBOL_GPL drivers/w1/wire 0x00000000 w1_write_8 -EXPORT_SYMBOL_GPL drivers/w1/wire 0x00000000 w1_write_block -EXPORT_SYMBOL_GPL drivers/xen/xen-front-pgdir-shbuf 0x00000000 xen_front_pgdir_shbuf_alloc -EXPORT_SYMBOL_GPL drivers/xen/xen-front-pgdir-shbuf 0x00000000 xen_front_pgdir_shbuf_free -EXPORT_SYMBOL_GPL drivers/xen/xen-front-pgdir-shbuf 0x00000000 xen_front_pgdir_shbuf_get_dir_start -EXPORT_SYMBOL_GPL drivers/xen/xen-front-pgdir-shbuf 0x00000000 xen_front_pgdir_shbuf_map -EXPORT_SYMBOL_GPL drivers/xen/xen-front-pgdir-shbuf 0x00000000 xen_front_pgdir_shbuf_unmap -EXPORT_SYMBOL_GPL drivers/xen/xen-privcmd 0x00000000 xen_privcmd_fops -EXPORT_SYMBOL_GPL drivers/xen/xen-privcmd 0x00000000 xen_privcmdbuf_fops -EXPORT_SYMBOL_GPL fs/dlm/dlm 0x00000000 dlm_lock -EXPORT_SYMBOL_GPL fs/dlm/dlm 0x00000000 dlm_new_lockspace -EXPORT_SYMBOL_GPL fs/dlm/dlm 0x00000000 dlm_posix_get -EXPORT_SYMBOL_GPL fs/dlm/dlm 0x00000000 dlm_posix_lock -EXPORT_SYMBOL_GPL fs/dlm/dlm 0x00000000 dlm_posix_unlock -EXPORT_SYMBOL_GPL fs/dlm/dlm 0x00000000 dlm_release_lockspace -EXPORT_SYMBOL_GPL fs/dlm/dlm 0x00000000 dlm_unlock -EXPORT_SYMBOL_GPL fs/fscache/fscache 0x00000000 fscache_object_sleep_till_congested -EXPORT_SYMBOL_GPL fs/lockd/lockd 0x00000000 lockd_down -EXPORT_SYMBOL_GPL fs/lockd/lockd 0x00000000 lockd_up -EXPORT_SYMBOL_GPL fs/lockd/lockd 0x00000000 nlmclnt_done -EXPORT_SYMBOL_GPL fs/lockd/lockd 0x00000000 nlmclnt_init -EXPORT_SYMBOL_GPL fs/lockd/lockd 0x00000000 nlmclnt_proc -EXPORT_SYMBOL_GPL fs/lockd/lockd 0x00000000 nlmsvc_ops -EXPORT_SYMBOL_GPL fs/lockd/lockd 0x00000000 nlmsvc_unlock_all_by_ip -EXPORT_SYMBOL_GPL fs/lockd/lockd 0x00000000 nlmsvc_unlock_all_by_sb -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 __tracepoint_nfs_fsync_enter -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 __tracepoint_nfs_fsync_exit -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 __tracepoint_nfs_xdr_status -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 _nfs_display_fhandle -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 _nfs_display_fhandle_hash -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 alloc_nfs_open_context -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 get_nfs_open_context -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 max_session_cb_slots -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 max_session_slots -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs4_client_id_uniquifier -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs4_dentry_operations -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs4_disable_idmapping -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs4_fs_type -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs4_label_alloc -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_access_add_cache -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_access_set_mask -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_access_zap_cache -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_add_or_obtain -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_alloc_client -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_alloc_fattr -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_alloc_fhandle -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_alloc_inode -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_alloc_server -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_async_iocounter_wait -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_atomic_open -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_auth_info_match -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_callback_nr_threads -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_callback_set_tcpport -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_check_flags -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_clear_inode -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_clear_verifier_delegated -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_client_init_is_complete -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_client_init_status -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_clone_server -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_close_context -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_commit_free -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_commit_inode -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_commitdata_alloc -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_commitdata_release -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_create -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_create_rpc_client -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_create_server -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_dentry_operations -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_do_submount -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_dreq_bytes_left -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_drop_inode -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_fattr_init -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_fhget -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_file_fsync -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_file_llseek -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_file_mmap -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_file_operations -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_file_read -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_file_release -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_file_set_open_context -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_file_write -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_filemap_write_and_wait_range -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_flock -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_force_lookup_revalidate -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_free_client -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_free_inode -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_free_server -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_fs_type -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_fscache_open_file -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_generic_pg_test -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_generic_pgio -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_get_client -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_get_lock_context -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_getattr -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_idmap_cache_timeout -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_inc_attr_generation_counter -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_init_cinfo -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_init_client -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_init_commit -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_init_server_rpcclient -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_init_timeout_values -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_initiate_commit -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_initiate_pgio -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_inode_attach_open_context -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_instantiate -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_invalidate_atime -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_kill_super -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_link -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_lock -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_lookup -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_mark_client_ready -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_may_open -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_mkdir -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_mknod -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_net_id -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_open -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_pageio_init_read -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_pageio_init_write -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_pageio_resend -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_pageio_reset_read_mds -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_pageio_reset_write_mds -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_path -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_permission -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_pgheader_init -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_pgio_current_mirror -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_pgio_header_alloc -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_pgio_header_free -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_post_op_update_inode -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_post_op_update_inode_force_wcc -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_probe_fsinfo -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_put_client -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_put_lock_context -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_reconfigure -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_refresh_inode -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_release_request -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_rename -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_request_add_commit_list -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_request_add_commit_list_locked -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_request_remove_commit_list -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_retry_commit -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_revalidate_inode -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_rmdir -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_sb_active -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_sb_deactive -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_scan_commit_list -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_server_copy_userdata -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_server_insert_lists -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_server_remove_lists -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_set_verifier -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_setattr -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_setattr_update_inode -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_setsecurity -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_show_devname -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_show_options -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_show_path -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_show_stats -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_sops -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_statfs -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_submount -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_symlink -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_sync_inode -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_try_get_tree -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_umount_begin -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_unlink -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_wait_bit_killable -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_wait_client_init_complete -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_wait_on_request -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_wb_all -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_write_inode -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_writeback_update_inode -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_zap_acl_cache -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfsiod_workqueue -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 put_nfs_open_context -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 recover_lost_locks -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 register_nfs_version -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 send_implementation_id -EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 unregister_nfs_version -EXPORT_SYMBOL_GPL fs/nfs/nfsv3 0x00000000 nfs3_set_ds_client -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 __tracepoint_ff_layout_commit_error -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 __tracepoint_ff_layout_read_error -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 __tracepoint_ff_layout_write_error -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 __tracepoint_nfs4_pnfs_commit_ds -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 __tracepoint_nfs4_pnfs_read -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 __tracepoint_nfs4_pnfs_write -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 __tracepoint_pnfs_mds_fallback_pg_get_mirror_count -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 __tracepoint_pnfs_mds_fallback_pg_init_read -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 __tracepoint_pnfs_mds_fallback_pg_init_write -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 __tracepoint_pnfs_mds_fallback_read_done -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 __tracepoint_pnfs_mds_fallback_read_pagelist -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 __tracepoint_pnfs_mds_fallback_write_done -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 __tracepoint_pnfs_mds_fallback_write_pagelist -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 layoutstats_timer -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 nfs41_maxgetdevinfo_overhead -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 nfs41_sequence_done -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 nfs42_proc_layouterror -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 nfs42_ssc_close -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 nfs42_ssc_open -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 nfs4_decode_mp_ds_addr -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 nfs4_delete_deviceid -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 nfs4_find_get_deviceid -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 nfs4_find_or_create_ds_client -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 nfs4_init_deviceid_node -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 nfs4_init_ds_session -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 nfs4_mark_deviceid_available -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 nfs4_mark_deviceid_unavailable -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 nfs4_pnfs_ds_add -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 nfs4_pnfs_ds_connect -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 nfs4_pnfs_ds_put -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 nfs4_print_deviceid -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 nfs4_proc_getdeviceinfo -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 nfs4_put_deviceid_node -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 nfs4_schedule_lease_moved_recovery -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 nfs4_schedule_lease_recovery -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 nfs4_schedule_migration_recovery -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 nfs4_schedule_session_recovery -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 nfs4_schedule_stateid_recovery -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 nfs4_sequence_done -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 nfs4_set_ds_client -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 nfs4_set_rw_stateid -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 nfs4_setup_sequence -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 nfs4_test_deviceid_unavailable -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 nfs4_test_session_trunk -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 nfs_map_string_to_numeric -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 nfs_remove_bad_delegation -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 pnfs_destroy_layout -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 pnfs_error_mark_layout_for_return -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 pnfs_generic_clear_request_commit -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 pnfs_generic_commit_pagelist -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 pnfs_generic_commit_release -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 pnfs_generic_layout_insert_lseg -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 pnfs_generic_pg_check_layout -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 pnfs_generic_pg_cleanup -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 pnfs_generic_pg_init_read -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 pnfs_generic_pg_init_write -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 pnfs_generic_pg_readpages -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 pnfs_generic_pg_test -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 pnfs_generic_pg_writepages -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 pnfs_generic_prepare_to_resend_writes -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 pnfs_generic_recover_commit_reqs -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 pnfs_generic_rw_release -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 pnfs_generic_scan_commit_lists -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 pnfs_generic_sync -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 pnfs_generic_write_commit_done -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 pnfs_layout_mark_request_commit -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 pnfs_layoutcommit_inode -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 pnfs_ld_read_done -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 pnfs_ld_write_done -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 pnfs_nfs_generic_sync -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 pnfs_put_lseg -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 pnfs_read_done_resend_to_mds -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 pnfs_read_resend_pnfs -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 pnfs_register_layoutdriver -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 pnfs_report_layoutstat -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 pnfs_set_layoutcommit -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 pnfs_set_lo_fail -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 pnfs_unregister_layoutdriver -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 pnfs_update_layout -EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 pnfs_write_done_resend_to_mds -EXPORT_SYMBOL_GPL fs/nfs_common/grace 0x00000000 locks_end_grace -EXPORT_SYMBOL_GPL fs/nfs_common/grace 0x00000000 locks_in_grace -EXPORT_SYMBOL_GPL fs/nfs_common/grace 0x00000000 locks_start_grace -EXPORT_SYMBOL_GPL fs/nfs_common/grace 0x00000000 opens_in_grace -EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x00000000 nfsacl_decode -EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x00000000 nfsacl_encode -EXPORT_SYMBOL_GPL fs/nfsd/nfsd 0x00000000 inter_copy_offload_enable -EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x00000000 __mlog_printk -EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x00000000 mlog_and_bits -EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x00000000 mlog_not_bits -EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x00000000 o2hb_check_node_heartbeating_from_callback -EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x00000000 o2hb_check_node_heartbeating_no_sem -EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x00000000 o2hb_fill_node_map -EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x00000000 o2hb_get_all_regions -EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x00000000 o2hb_register_callback -EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x00000000 o2hb_setup_callback -EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x00000000 o2hb_stop_all_regions -EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x00000000 o2hb_unregister_callback -EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x00000000 o2net_fill_node_map -EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x00000000 o2net_register_handler -EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x00000000 o2net_send_message -EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x00000000 o2net_send_message_vec -EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x00000000 o2net_unregister_handler_list -EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x00000000 o2nm_configured_node_map -EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x00000000 o2nm_get_node_by_ip -EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x00000000 o2nm_get_node_by_num -EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x00000000 o2nm_node_get -EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x00000000 o2nm_node_put -EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x00000000 o2nm_this_node -EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x00000000 dlm_errmsg -EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x00000000 dlm_errname -EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x00000000 dlm_print_one_lock -EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x00000000 dlm_register_domain -EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x00000000 dlm_register_eviction_cb -EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x00000000 dlm_setup_eviction_cb -EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x00000000 dlm_unregister_domain -EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x00000000 dlm_unregister_eviction_cb -EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x00000000 dlmlock -EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x00000000 dlmunlock -EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x00000000 ocfs2_cluster_connect -EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x00000000 ocfs2_cluster_connect_agnostic -EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x00000000 ocfs2_cluster_disconnect -EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x00000000 ocfs2_cluster_hangup -EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x00000000 ocfs2_cluster_this_node -EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x00000000 ocfs2_dlm_dump_lksb -EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x00000000 ocfs2_dlm_lock -EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x00000000 ocfs2_dlm_lock_status -EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x00000000 ocfs2_dlm_lvb -EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x00000000 ocfs2_dlm_lvb_valid -EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x00000000 ocfs2_dlm_unlock -EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x00000000 ocfs2_kset -EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x00000000 ocfs2_plock -EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x00000000 ocfs2_stack_glue_register -EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x00000000 ocfs2_stack_glue_set_max_proto_version -EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x00000000 ocfs2_stack_glue_unregister -EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x00000000 ocfs2_stack_supports_plocks -EXPORT_SYMBOL_GPL kernel/torture 0x00000000 _torture_create_kthread -EXPORT_SYMBOL_GPL kernel/torture 0x00000000 _torture_stop_kthread -EXPORT_SYMBOL_GPL kernel/torture 0x00000000 stutter_wait -EXPORT_SYMBOL_GPL kernel/torture 0x00000000 torture_cleanup_begin -EXPORT_SYMBOL_GPL kernel/torture 0x00000000 torture_cleanup_end -EXPORT_SYMBOL_GPL kernel/torture 0x00000000 torture_init_begin -EXPORT_SYMBOL_GPL kernel/torture 0x00000000 torture_init_end -EXPORT_SYMBOL_GPL kernel/torture 0x00000000 torture_kthread_stopping -EXPORT_SYMBOL_GPL kernel/torture 0x00000000 torture_must_stop -EXPORT_SYMBOL_GPL kernel/torture 0x00000000 torture_must_stop_irq -EXPORT_SYMBOL_GPL kernel/torture 0x00000000 torture_offline -EXPORT_SYMBOL_GPL kernel/torture 0x00000000 torture_online -EXPORT_SYMBOL_GPL kernel/torture 0x00000000 torture_onoff_failures -EXPORT_SYMBOL_GPL kernel/torture 0x00000000 torture_onoff_init -EXPORT_SYMBOL_GPL kernel/torture 0x00000000 torture_onoff_stats -EXPORT_SYMBOL_GPL kernel/torture 0x00000000 torture_random -EXPORT_SYMBOL_GPL kernel/torture 0x00000000 torture_shuffle_init -EXPORT_SYMBOL_GPL kernel/torture 0x00000000 torture_shuffle_task_register -EXPORT_SYMBOL_GPL kernel/torture 0x00000000 torture_shutdown_absorb -EXPORT_SYMBOL_GPL kernel/torture 0x00000000 torture_shutdown_init -EXPORT_SYMBOL_GPL kernel/torture 0x00000000 torture_stutter_init -EXPORT_SYMBOL_GPL lib/842/842_compress 0x00000000 sw842_compress -EXPORT_SYMBOL_GPL lib/842/842_decompress 0x00000000 sw842_decompress -EXPORT_SYMBOL_GPL lib/bch 0x00000000 decode_bch -EXPORT_SYMBOL_GPL lib/bch 0x00000000 encode_bch -EXPORT_SYMBOL_GPL lib/bch 0x00000000 free_bch -EXPORT_SYMBOL_GPL lib/bch 0x00000000 init_bch -EXPORT_SYMBOL_GPL lib/crc4 0x00000000 crc4 -EXPORT_SYMBOL_GPL lib/crc64 0x00000000 crc64_be -EXPORT_SYMBOL_GPL lib/crypto/libdes 0x00000000 des3_ede_decrypt -EXPORT_SYMBOL_GPL lib/crypto/libdes 0x00000000 des3_ede_encrypt -EXPORT_SYMBOL_GPL lib/crypto/libdes 0x00000000 des3_ede_expand_key -EXPORT_SYMBOL_GPL lib/crypto/libdes 0x00000000 des_decrypt -EXPORT_SYMBOL_GPL lib/crypto/libdes 0x00000000 des_encrypt -EXPORT_SYMBOL_GPL lib/crypto/libdes 0x00000000 des_expand_key -EXPORT_SYMBOL_GPL lib/crypto/libpoly1305 0x00000000 poly1305_final_generic -EXPORT_SYMBOL_GPL lib/crypto/libpoly1305 0x00000000 poly1305_init_generic -EXPORT_SYMBOL_GPL lib/crypto/libpoly1305 0x00000000 poly1305_update_generic -EXPORT_SYMBOL_GPL lib/notifier-error-inject 0x00000000 notifier_err_inject_dir -EXPORT_SYMBOL_GPL lib/notifier-error-inject 0x00000000 notifier_err_inject_init -EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x00000000 raid6_2data_recov -EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x00000000 raid6_call -EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x00000000 raid6_datap_recov -EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x00000000 decode_rs16 -EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x00000000 decode_rs8 -EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x00000000 encode_rs8 -EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x00000000 free_rs -EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x00000000 init_rs_gfp -EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x00000000 init_rs_non_canonical -EXPORT_SYMBOL_GPL net/6lowpan/6lowpan 0x00000000 lowpan_header_compress -EXPORT_SYMBOL_GPL net/6lowpan/6lowpan 0x00000000 lowpan_header_decompress -EXPORT_SYMBOL_GPL net/802/garp 0x00000000 garp_init_applicant -EXPORT_SYMBOL_GPL net/802/garp 0x00000000 garp_register_application -EXPORT_SYMBOL_GPL net/802/garp 0x00000000 garp_request_join -EXPORT_SYMBOL_GPL net/802/garp 0x00000000 garp_request_leave -EXPORT_SYMBOL_GPL net/802/garp 0x00000000 garp_uninit_applicant -EXPORT_SYMBOL_GPL net/802/garp 0x00000000 garp_unregister_application -EXPORT_SYMBOL_GPL net/802/mrp 0x00000000 mrp_init_applicant -EXPORT_SYMBOL_GPL net/802/mrp 0x00000000 mrp_register_application -EXPORT_SYMBOL_GPL net/802/mrp 0x00000000 mrp_request_join -EXPORT_SYMBOL_GPL net/802/mrp 0x00000000 mrp_request_leave -EXPORT_SYMBOL_GPL net/802/mrp 0x00000000 mrp_uninit_applicant -EXPORT_SYMBOL_GPL net/802/mrp 0x00000000 mrp_unregister_application -EXPORT_SYMBOL_GPL net/802/stp 0x00000000 stp_proto_register -EXPORT_SYMBOL_GPL net/802/stp 0x00000000 stp_proto_unregister -EXPORT_SYMBOL_GPL net/9p/9pnet 0x00000000 p9_client_xattrcreate -EXPORT_SYMBOL_GPL net/9p/9pnet 0x00000000 p9_client_xattrwalk -EXPORT_SYMBOL_GPL net/atm/atm 0x00000000 register_atmdevice_notifier -EXPORT_SYMBOL_GPL net/atm/atm 0x00000000 unregister_atmdevice_notifier -EXPORT_SYMBOL_GPL net/ax25/ax25 0x00000000 ax25_bcast -EXPORT_SYMBOL_GPL net/ax25/ax25 0x00000000 ax25_defaddr -EXPORT_SYMBOL_GPL net/ax25/ax25 0x00000000 ax25_register_pid -EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x00000000 bt_debugfs -EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x00000000 l2cap_add_psm -EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x00000000 l2cap_chan_connect -EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x00000000 l2cap_chan_create -EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x00000000 l2cap_chan_del -EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x00000000 l2cap_chan_put -EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x00000000 l2cap_chan_send -EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x00000000 l2cap_chan_set_defaults -EXPORT_SYMBOL_GPL net/bluetooth/hidp/hidp 0x00000000 hidp_hid_driver -EXPORT_SYMBOL_GPL net/bridge/bridge 0x00000000 br_dev_queue_push_xmit -EXPORT_SYMBOL_GPL net/bridge/bridge 0x00000000 br_fdb_clear_offload -EXPORT_SYMBOL_GPL net/bridge/bridge 0x00000000 br_fdb_find_port -EXPORT_SYMBOL_GPL net/bridge/bridge 0x00000000 br_forward -EXPORT_SYMBOL_GPL net/bridge/bridge 0x00000000 br_forward_finish -EXPORT_SYMBOL_GPL net/bridge/bridge 0x00000000 br_handle_frame_finish -EXPORT_SYMBOL_GPL net/bridge/bridge 0x00000000 br_multicast_enabled -EXPORT_SYMBOL_GPL net/bridge/bridge 0x00000000 br_multicast_has_querier_adjacent -EXPORT_SYMBOL_GPL net/bridge/bridge 0x00000000 br_multicast_has_querier_anywhere -EXPORT_SYMBOL_GPL net/bridge/bridge 0x00000000 br_multicast_list_adjacent -EXPORT_SYMBOL_GPL net/bridge/bridge 0x00000000 br_multicast_router -EXPORT_SYMBOL_GPL net/bridge/bridge 0x00000000 br_port_flag_is_set -EXPORT_SYMBOL_GPL net/bridge/bridge 0x00000000 br_vlan_enabled -EXPORT_SYMBOL_GPL net/bridge/bridge 0x00000000 br_vlan_get_info -EXPORT_SYMBOL_GPL net/bridge/bridge 0x00000000 br_vlan_get_proto -EXPORT_SYMBOL_GPL net/bridge/bridge 0x00000000 br_vlan_get_pvid -EXPORT_SYMBOL_GPL net/bridge/bridge 0x00000000 br_vlan_get_pvid_rcu -EXPORT_SYMBOL_GPL net/bridge/bridge 0x00000000 nf_br_ops -EXPORT_SYMBOL_GPL net/core/failover 0x00000000 failover_register -EXPORT_SYMBOL_GPL net/core/failover 0x00000000 failover_slave_unregister -EXPORT_SYMBOL_GPL net/core/failover 0x00000000 failover_unregister -EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 compat_dccp_getsockopt -EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 compat_dccp_setsockopt -EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_ackvec_parsed_add -EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_ackvec_parsed_cleanup -EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_check_req -EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_child_process -EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_close -EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_connect -EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_create_openreq_child -EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_ctl_make_reset -EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_death_row -EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_destroy_sock -EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_disconnect -EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_done -EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_feat_list_purge -EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_feat_nn_get -EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_feat_signal_nn_change -EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_getsockopt -EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_hashinfo -EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_init_sock -EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_insert_option -EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_ioctl -EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_make_response -EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_orphan_count -EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_packet_name -EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_parse_options -EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_poll -EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_rcv_established -EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_rcv_state_process -EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_recvmsg -EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_reqsk_init -EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_reqsk_send_ack -EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_send_ack -EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_send_sync -EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_sendmsg -EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_set_state -EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_setsockopt -EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_shutdown -EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_statistics -EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_sync_mss -EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_timestamp -EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 inet_dccp_listen -EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x00000000 dccp_invalid_packet -EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x00000000 dccp_v4_conn_request -EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x00000000 dccp_v4_connect -EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x00000000 dccp_v4_do_rcv -EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x00000000 dccp_v4_request_recv_sock -EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x00000000 dccp_v4_send_check -EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x00000000 call_dsa_notifiers -EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x00000000 dsa_dev_to_net_device -EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x00000000 dsa_devlink_param_get -EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x00000000 dsa_devlink_param_set -EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x00000000 dsa_devlink_params_register -EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x00000000 dsa_devlink_params_unregister -EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x00000000 dsa_devlink_resource_occ_get_register -EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x00000000 dsa_devlink_resource_occ_get_unregister -EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x00000000 dsa_devlink_resource_register -EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x00000000 dsa_devlink_resources_unregister -EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x00000000 dsa_enqueue_skb -EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x00000000 dsa_port_get_ethtool_phy_stats -EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x00000000 dsa_port_get_phy_sset_count -EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x00000000 dsa_port_get_phy_strings -EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x00000000 dsa_port_phylink_mac_change -EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x00000000 dsa_register_switch -EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x00000000 dsa_switch_resume -EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x00000000 dsa_switch_suspend -EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x00000000 dsa_tag_drivers_register -EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x00000000 dsa_tag_drivers_unregister -EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x00000000 dsa_unregister_switch -EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x00000000 register_dsa_notifier -EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x00000000 unregister_dsa_notifier -EXPORT_SYMBOL_GPL net/dsa/tag_8021q 0x00000000 dsa_8021q_rx_source_port -EXPORT_SYMBOL_GPL net/dsa/tag_8021q 0x00000000 dsa_8021q_rx_switch_id -EXPORT_SYMBOL_GPL net/dsa/tag_8021q 0x00000000 dsa_8021q_rx_vid -EXPORT_SYMBOL_GPL net/dsa/tag_8021q 0x00000000 dsa_8021q_tx_vid -EXPORT_SYMBOL_GPL net/dsa/tag_8021q 0x00000000 dsa_8021q_xmit -EXPORT_SYMBOL_GPL net/dsa/tag_8021q 0x00000000 dsa_port_setup_8021q_tagging -EXPORT_SYMBOL_GPL net/ieee802154/ieee802154 0x00000000 ieee802154_hdr_peek -EXPORT_SYMBOL_GPL net/ieee802154/ieee802154 0x00000000 ieee802154_hdr_peek_addrs -EXPORT_SYMBOL_GPL net/ieee802154/ieee802154 0x00000000 ieee802154_hdr_pull -EXPORT_SYMBOL_GPL net/ieee802154/ieee802154 0x00000000 ieee802154_hdr_push -EXPORT_SYMBOL_GPL net/ieee802154/ieee802154 0x00000000 ieee802154_max_payload -EXPORT_SYMBOL_GPL net/ife/ife 0x00000000 ife_decode -EXPORT_SYMBOL_GPL net/ife/ife 0x00000000 ife_encode -EXPORT_SYMBOL_GPL net/ife/ife 0x00000000 ife_tlv_meta_decode -EXPORT_SYMBOL_GPL net/ife/ife 0x00000000 ife_tlv_meta_encode -EXPORT_SYMBOL_GPL net/ife/ife 0x00000000 ife_tlv_meta_next -EXPORT_SYMBOL_GPL net/ipv4/esp4 0x00000000 esp_input_done2 -EXPORT_SYMBOL_GPL net/ipv4/esp4 0x00000000 esp_output_head -EXPORT_SYMBOL_GPL net/ipv4/esp4 0x00000000 esp_output_tail -EXPORT_SYMBOL_GPL net/ipv4/gre 0x00000000 gre_add_protocol -EXPORT_SYMBOL_GPL net/ipv4/gre 0x00000000 gre_del_protocol -EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x00000000 inet_diag_bc_sk -EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x00000000 inet_diag_dump_icsk -EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x00000000 inet_diag_dump_one_icsk -EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x00000000 inet_diag_find_one_icsk -EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x00000000 inet_diag_msg_attrs_fill -EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x00000000 inet_diag_msg_common_fill -EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x00000000 inet_diag_register -EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x00000000 inet_diag_unregister -EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x00000000 inet_sk_diag_fill -EXPORT_SYMBOL_GPL net/ipv4/ip_gre 0x00000000 gretap_fb_dev_create -EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x00000000 __ip_tunnel_change_mtu -EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x00000000 ip_md_tunnel_xmit -EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x00000000 ip_tunnel_change_mtu -EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x00000000 ip_tunnel_changelink -EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x00000000 ip_tunnel_delete_nets -EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x00000000 ip_tunnel_dellink -EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x00000000 ip_tunnel_encap_setup -EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x00000000 ip_tunnel_init -EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x00000000 ip_tunnel_init_net -EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x00000000 ip_tunnel_ioctl -EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x00000000 ip_tunnel_lookup -EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x00000000 ip_tunnel_newlink -EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x00000000 ip_tunnel_rcv -EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x00000000 ip_tunnel_setup -EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x00000000 ip_tunnel_uninit -EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x00000000 ip_tunnel_xmit -EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0x00000000 arpt_alloc_initial_table -EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0x00000000 ipt_alloc_initial_table -EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_defrag_ipv4 0x00000000 nf_defrag_ipv4_enable -EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_dup_ipv4 0x00000000 nf_dup_ipv4 -EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_reject_ipv4 0x00000000 nf_reject_ip_tcphdr_get -EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_reject_ipv4 0x00000000 nf_reject_ip_tcphdr_put -EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_reject_ipv4 0x00000000 nf_reject_iphdr_put -EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_reject_ipv4 0x00000000 nf_send_reset -EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_reject_ipv4 0x00000000 nf_send_unreach -EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_socket_ipv4 0x00000000 nf_sk_lookup_slow_v4 -EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_tproxy_ipv4 0x00000000 nf_tproxy_get_sock_v4 -EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_tproxy_ipv4 0x00000000 nf_tproxy_handle_time_wait4 -EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_tproxy_ipv4 0x00000000 nf_tproxy_laddr4 -EXPORT_SYMBOL_GPL net/ipv4/netfilter/nft_fib_ipv4 0x00000000 nft_fib4_eval -EXPORT_SYMBOL_GPL net/ipv4/netfilter/nft_fib_ipv4 0x00000000 nft_fib4_eval_type -EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x00000000 tcp_vegas_cwnd_event -EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x00000000 tcp_vegas_get_info -EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x00000000 tcp_vegas_init -EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x00000000 tcp_vegas_pkts_acked -EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x00000000 tcp_vegas_state -EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0x00000000 setup_udp_tunnel_sock -EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0x00000000 udp_tun_rx_dst -EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0x00000000 udp_tunnel_drop_rx_port -EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0x00000000 udp_tunnel_notify_add_rx_port -EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0x00000000 udp_tunnel_notify_del_rx_port -EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0x00000000 udp_tunnel_push_rx_port -EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0x00000000 udp_tunnel_sock_release -EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0x00000000 udp_tunnel_xmit_skb -EXPORT_SYMBOL_GPL net/ipv6/esp6 0x00000000 esp6_input_done2 -EXPORT_SYMBOL_GPL net/ipv6/esp6 0x00000000 esp6_output_head -EXPORT_SYMBOL_GPL net/ipv6/esp6 0x00000000 esp6_output_tail -EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x00000000 ip6_tnl_encap_setup -EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x00000000 ip6_tnl_rcv_ctl -EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x00000000 ip6_tnl_xmit_ctl -EXPORT_SYMBOL_GPL net/ipv6/ip6_udp_tunnel 0x00000000 udp_sock_create6 -EXPORT_SYMBOL_GPL net/ipv6/ip6_udp_tunnel 0x00000000 udp_tunnel6_xmit_skb -EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0x00000000 ip6t_alloc_initial_table -EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_defrag_ipv6 0x00000000 nf_ct_frag6_gather -EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_defrag_ipv6 0x00000000 nf_defrag_ipv6_enable -EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_dup_ipv6 0x00000000 nf_dup_ipv6 -EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_reject_ipv6 0x00000000 nf_reject_ip6_tcphdr_get -EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_reject_ipv6 0x00000000 nf_reject_ip6_tcphdr_put -EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_reject_ipv6 0x00000000 nf_reject_ip6hdr_put -EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_reject_ipv6 0x00000000 nf_send_reset6 -EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_reject_ipv6 0x00000000 nf_send_unreach6 -EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_socket_ipv6 0x00000000 nf_sk_lookup_slow_v6 -EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_tproxy_ipv6 0x00000000 nf_tproxy_get_sock_v6 -EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_tproxy_ipv6 0x00000000 nf_tproxy_handle_time_wait6 -EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_tproxy_ipv6 0x00000000 nf_tproxy_laddr6 -EXPORT_SYMBOL_GPL net/ipv6/netfilter/nft_fib_ipv6 0x00000000 nft_fib6_eval -EXPORT_SYMBOL_GPL net/ipv6/netfilter/nft_fib_ipv6 0x00000000 nft_fib6_eval_type -EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x00000000 __l2tp_session_unhash -EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x00000000 l2tp_session_create -EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x00000000 l2tp_session_delete -EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x00000000 l2tp_session_free -EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x00000000 l2tp_session_get -EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x00000000 l2tp_session_get_by_ifname -EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x00000000 l2tp_session_get_nth -EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x00000000 l2tp_session_register -EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x00000000 l2tp_session_set_header_len -EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x00000000 l2tp_tunnel_create -EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x00000000 l2tp_tunnel_delete -EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x00000000 l2tp_tunnel_get -EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x00000000 l2tp_tunnel_get_nth -EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x00000000 l2tp_tunnel_get_session -EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x00000000 l2tp_tunnel_register -EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x00000000 l2tp_udp_encap_recv -EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x00000000 l2tp_xmit_skb -EXPORT_SYMBOL_GPL net/l2tp/l2tp_netlink 0x00000000 l2tp_nl_register_ops -EXPORT_SYMBOL_GPL net/l2tp/l2tp_netlink 0x00000000 l2tp_nl_unregister_ops -EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x00000000 ieee80211_ave_rssi -EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x00000000 ieee80211_calc_rx_airtime -EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x00000000 ieee80211_calc_tx_airtime -EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x00000000 ieee80211_find_sta_by_ifaddr -EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x00000000 ieee80211_gtk_rekey_add -EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x00000000 ieee80211_gtk_rekey_notify -EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x00000000 ieee80211_iter_chan_contexts_atomic -EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x00000000 ieee80211_iterate_active_interfaces_atomic -EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x00000000 ieee80211_iterate_active_interfaces_rtnl -EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x00000000 ieee80211_iterate_interfaces -EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x00000000 ieee80211_iterate_stations_atomic -EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x00000000 ieee80211_ready_on_channel -EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x00000000 ieee80211_remain_on_channel_expired -EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x00000000 ieee80211_remove_key -EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x00000000 ieee80211_request_smps -EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x00000000 ieee80211_resume_disconnect -EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x00000000 ieee80211_set_key_rx_seq -EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x00000000 ieee80211_tkip_add_iv -EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x00000000 ieee80211_update_mu_groups -EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x00000000 ieee80211_vif_to_wdev -EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x00000000 wdev_to_ieee80211_vif -EXPORT_SYMBOL_GPL net/mpls/mpls_router 0x00000000 mpls_dev_mtu -EXPORT_SYMBOL_GPL net/mpls/mpls_router 0x00000000 mpls_output_possible -EXPORT_SYMBOL_GPL net/mpls/mpls_router 0x00000000 mpls_pkt_too_big -EXPORT_SYMBOL_GPL net/mpls/mpls_router 0x00000000 mpls_stats_inc_outucastpkts -EXPORT_SYMBOL_GPL net/mpls/mpls_router 0x00000000 nla_get_labels -EXPORT_SYMBOL_GPL net/mpls/mpls_router 0x00000000 nla_put_labels -EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x00000000 ip_set_add -EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x00000000 ip_set_alloc -EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x00000000 ip_set_del -EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x00000000 ip_set_elem_len -EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x00000000 ip_set_extensions -EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x00000000 ip_set_free -EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x00000000 ip_set_get_byname -EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x00000000 ip_set_get_extensions -EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x00000000 ip_set_get_ip4_port -EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x00000000 ip_set_get_ip6_port -EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x00000000 ip_set_get_ipaddr4 -EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x00000000 ip_set_get_ipaddr6 -EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x00000000 ip_set_hostmask_map -EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x00000000 ip_set_init_comment -EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x00000000 ip_set_match_extensions -EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x00000000 ip_set_name_byindex -EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x00000000 ip_set_netmask_map -EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x00000000 ip_set_nfnl_get_byindex -EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x00000000 ip_set_nfnl_put -EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x00000000 ip_set_put_byindex -EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x00000000 ip_set_put_extensions -EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x00000000 ip_set_put_flags -EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x00000000 ip_set_range_to_cidr -EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x00000000 ip_set_test -EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x00000000 ip_set_type_register -EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x00000000 ip_set_type_unregister -EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x00000000 ip_vs_conn_in_get_proto -EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x00000000 ip_vs_conn_out_get_proto -EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x00000000 register_ip_vs_pe -EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x00000000 unregister_ip_vs_pe -EXPORT_SYMBOL_GPL net/netfilter/nf_conncount 0x00000000 nf_conncount_add -EXPORT_SYMBOL_GPL net/netfilter/nf_conncount 0x00000000 nf_conncount_cache_free -EXPORT_SYMBOL_GPL net/netfilter/nf_conncount 0x00000000 nf_conncount_count -EXPORT_SYMBOL_GPL net/netfilter/nf_conncount 0x00000000 nf_conncount_destroy -EXPORT_SYMBOL_GPL net/netfilter/nf_conncount 0x00000000 nf_conncount_gc_list -EXPORT_SYMBOL_GPL net/netfilter/nf_conncount 0x00000000 nf_conncount_init -EXPORT_SYMBOL_GPL net/netfilter/nf_conncount 0x00000000 nf_conncount_list_init -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 __nf_conntrack_confirm -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 __nf_conntrack_helper_find -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 __nf_ct_expect_find -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 __nf_ct_refresh_acct -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 __nf_ct_try_assign_helper -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_confirm -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_connlabels_get -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_connlabels_put -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_connlabels_replace -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_conntrack_alloc -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_conntrack_alter_reply -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_conntrack_eventmask_report -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_conntrack_expect_lock -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_conntrack_find_get -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_conntrack_free -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_conntrack_hash -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_conntrack_hash_check_insert -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_conntrack_helper_put -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_conntrack_helper_register -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_conntrack_helper_try_module_get -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_conntrack_helper_unregister -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_conntrack_helpers_register -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_conntrack_helpers_unregister -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_conntrack_htable_size -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_conntrack_in -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_conntrack_lock -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_conntrack_locks -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_conntrack_max -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_conntrack_register_notifier -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_conntrack_tuple_taken -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_conntrack_unregister_notifier -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_alloc_hashtable -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_bridge_register -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_bridge_unregister -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_delete -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_deliver_cached_events -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_destroy_timeout -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_expect_alloc -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_expect_find_get -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_expect_hash -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_expect_hsize -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_expect_init -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_expect_iterate_destroy -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_expect_iterate_net -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_expect_put -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_expect_register_notifier -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_expect_related_report -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_expect_unregister_notifier -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_extend_register -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_extend_unregister -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_get_id -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_get_tuplepr -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_gre_keymap_add -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_gre_keymap_destroy -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_helper_expectfn_find_by_name -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_helper_expectfn_find_by_symbol -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_helper_expectfn_register -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_helper_expectfn_unregister -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_helper_ext_add -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_helper_hash -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_helper_hsize -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_helper_init -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_helper_log -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_invert_tuple -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_iterate_cleanup_net -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_iterate_destroy -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_kill_acct -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_l4proto_find -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_l4proto_log_invalid -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_netns_get -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_netns_put -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_port_nla_policy -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_port_nlattr_to_tuple -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_port_nlattr_tuple_size -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_port_tuple_to_nlattr -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_remove_expect -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_remove_expectations -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_seq_adjust -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_seq_offset -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_seqadj_init -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_seqadj_set -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_set_timeout -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_tcp_seqadj_set -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_timeout_find_get_hook -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_timeout_put_hook -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_tmpl_alloc -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_tmpl_free -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_unconfirmed_destroy -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_unexpect_related -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_unlink_expect_report -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_untimeout -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_l4proto_log_invalid -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_nat_helper_put -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_nat_helper_register -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_nat_helper_try_module_get -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_nat_helper_unregister -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0x00000000 nf_nat_amanda_hook -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_broadcast 0x00000000 nf_conntrack_broadcast_help -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0x00000000 nf_nat_ftp_hook -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x00000000 get_h225_addr -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x00000000 nat_callforwarding_hook -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x00000000 nat_h245_hook -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x00000000 nat_q931_hook -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x00000000 nat_rtp_rtcp_hook -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x00000000 nat_t120_hook -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x00000000 set_h225_addr_hook -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x00000000 set_h245_addr_hook -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x00000000 set_ras_addr_hook -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x00000000 set_sig_addr_hook -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0x00000000 nf_nat_irc_hook -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x00000000 nf_nat_pptp_hook_exp_gre -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x00000000 nf_nat_pptp_hook_expectfn -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x00000000 nf_nat_pptp_hook_inbound -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x00000000 nf_nat_pptp_hook_outbound -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x00000000 ct_sip_get_header -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x00000000 ct_sip_get_sdp_header -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x00000000 ct_sip_parse_address_param -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x00000000 ct_sip_parse_header_uri -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x00000000 ct_sip_parse_numerical_param -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x00000000 ct_sip_parse_request -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x00000000 nf_nat_sip_hooks -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_snmp 0x00000000 nf_nat_snmp_hook -EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0x00000000 nf_nat_tftp_hook -EXPORT_SYMBOL_GPL net/netfilter/nf_dup_netdev 0x00000000 nf_dup_netdev_egress -EXPORT_SYMBOL_GPL net/netfilter/nf_dup_netdev 0x00000000 nf_fwd_netdev_egress -EXPORT_SYMBOL_GPL net/netfilter/nf_dup_netdev 0x00000000 nft_fwd_dup_netdev_offload -EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x00000000 flow_offload_add -EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x00000000 flow_offload_alloc -EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x00000000 flow_offload_free -EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x00000000 flow_offload_lookup -EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x00000000 flow_offload_route_init -EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x00000000 flow_offload_teardown -EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x00000000 nf_flow_dnat_port -EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x00000000 nf_flow_offload_ip_hook -EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x00000000 nf_flow_offload_ipv6_hook -EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x00000000 nf_flow_rule_route_ipv4 -EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x00000000 nf_flow_rule_route_ipv6 -EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x00000000 nf_flow_snat_port -EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x00000000 nf_flow_table_cleanup -EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x00000000 nf_flow_table_free -EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x00000000 nf_flow_table_init -EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x00000000 nf_flow_table_offload_setup -EXPORT_SYMBOL_GPL net/netfilter/nf_log_common 0x00000000 nf_log_dump_packet_common -EXPORT_SYMBOL_GPL net/netfilter/nf_log_common 0x00000000 nf_log_dump_sk_uid_gid -EXPORT_SYMBOL_GPL net/netfilter/nf_log_common 0x00000000 nf_log_dump_tcp_header -EXPORT_SYMBOL_GPL net/netfilter/nf_log_common 0x00000000 nf_log_dump_udp_header -EXPORT_SYMBOL_GPL net/netfilter/nf_log_common 0x00000000 nf_log_l2packet -EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x00000000 nf_ct_nat_ext_add -EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x00000000 nf_nat_alloc_null_binding -EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x00000000 nf_nat_icmp_reply_translation -EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x00000000 nf_nat_icmpv6_reply_translation -EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x00000000 nf_nat_inet_fn -EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x00000000 nf_nat_inet_register_fn -EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x00000000 nf_nat_inet_unregister_fn -EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x00000000 nf_nat_ipv4_register_fn -EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x00000000 nf_nat_ipv4_unregister_fn -EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x00000000 nf_nat_ipv6_register_fn -EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x00000000 nf_nat_ipv6_unregister_fn -EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x00000000 nf_nat_masquerade_inet_register_notifiers -EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x00000000 nf_nat_masquerade_inet_unregister_notifiers -EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x00000000 nf_nat_masquerade_ipv4 -EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x00000000 nf_nat_masquerade_ipv6 -EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x00000000 nf_nat_packet -EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x00000000 nf_nat_redirect_ipv4 -EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x00000000 nf_nat_redirect_ipv6 -EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x00000000 ipv4_synproxy_hook -EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x00000000 ipv6_synproxy_hook -EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x00000000 nf_synproxy_ipv4_fini -EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x00000000 nf_synproxy_ipv4_init -EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x00000000 nf_synproxy_ipv6_fini -EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x00000000 nf_synproxy_ipv6_init -EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x00000000 synproxy_init_timestamp_cookie -EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x00000000 synproxy_net_id -EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x00000000 synproxy_parse_options -EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x00000000 synproxy_recv_client_ack -EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x00000000 synproxy_recv_client_ack_ipv6 -EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x00000000 synproxy_send_client_synack -EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x00000000 synproxy_send_client_synack_ipv6 -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 __nft_release_basechain -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nf_tables_bind_set -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nf_tables_deactivate_flowtable -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nf_tables_deactivate_set -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nf_tables_destroy_set -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_chain_validate -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_chain_validate_dependency -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_chain_validate_hooks -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_data_dump -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_data_init -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_data_release -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_do_chain -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_dump_register -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_flowtable_lookup -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_meta_get_dump -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_meta_get_eval -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_meta_get_init -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_meta_policy -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_meta_set_destroy -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_meta_set_dump -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_meta_set_eval -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_meta_set_init -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_meta_set_validate -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_obj_lookup -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_obj_notify -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_parse_register -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_parse_u32_check -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_register_chain_type -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_register_expr -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_register_flowtable_type -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_register_obj -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_register_set -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_set_elem_destroy -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_set_ext_types -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_set_gc_batch_alloc -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_set_gc_batch_release -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_set_lookup_global -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_trace_enabled -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_unregister_chain_type -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_unregister_expr -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_unregister_flowtable_type -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_unregister_obj -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_unregister_set -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_validate_register_load -EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_validate_register_store -EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x00000000 nfnetlink_has_listeners -EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x00000000 nfnetlink_send -EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x00000000 nfnetlink_set_err -EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x00000000 nfnetlink_subsys_register -EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x00000000 nfnetlink_subsys_unregister -EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x00000000 nfnetlink_unicast -EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x00000000 nfnl_lock -EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x00000000 nfnl_unlock -EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0x00000000 nfnl_acct_find_get -EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0x00000000 nfnl_acct_overquota -EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0x00000000 nfnl_acct_put -EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0x00000000 nfnl_acct_update -EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_osf 0x00000000 nf_osf_find -EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_osf 0x00000000 nf_osf_fingers -EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_osf 0x00000000 nf_osf_match -EXPORT_SYMBOL_GPL net/netfilter/nft_fib 0x00000000 nft_fib_dump -EXPORT_SYMBOL_GPL net/netfilter/nft_fib 0x00000000 nft_fib_init -EXPORT_SYMBOL_GPL net/netfilter/nft_fib 0x00000000 nft_fib_store_result -EXPORT_SYMBOL_GPL net/netfilter/nft_fib 0x00000000 nft_fib_validate -EXPORT_SYMBOL_GPL net/netfilter/nft_reject 0x00000000 nft_reject_dump -EXPORT_SYMBOL_GPL net/netfilter/nft_reject 0x00000000 nft_reject_icmp_code -EXPORT_SYMBOL_GPL net/netfilter/nft_reject 0x00000000 nft_reject_icmpv6_code -EXPORT_SYMBOL_GPL net/netfilter/nft_reject 0x00000000 nft_reject_init -EXPORT_SYMBOL_GPL net/netfilter/nft_reject 0x00000000 nft_reject_policy -EXPORT_SYMBOL_GPL net/netfilter/nft_reject 0x00000000 nft_reject_validate -EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_check_match -EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_check_target -EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_compat_add_offset -EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_compat_calc_jump -EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_compat_flush_offsets -EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_compat_lock -EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_compat_match_from_user -EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_compat_match_offset -EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_compat_match_to_user -EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_compat_target_from_user -EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_compat_target_offset -EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_compat_target_to_user -EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_compat_unlock -EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_copy_counters_from_user -EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_data_to_user -EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_find_revision -EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_find_table_lock -EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_hook_ops_alloc -EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_match_to_user -EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_percpu_counter_alloc -EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_percpu_counter_free -EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_proto_fini -EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_proto_init -EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_recseq -EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_register_table -EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_replace_table -EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_request_find_match -EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_request_find_table_lock -EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_request_find_target -EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_table_unlock -EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_target_to_user -EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_tee_enabled -EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_unregister_table -EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x00000000 xt_rateest_lookup -EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x00000000 xt_rateest_put -EXPORT_SYMBOL_GPL net/nfc/nci/nci_spi 0x00000000 nci_spi_allocate_spi -EXPORT_SYMBOL_GPL net/nfc/nci/nci_spi 0x00000000 nci_spi_read -EXPORT_SYMBOL_GPL net/nfc/nci/nci_spi 0x00000000 nci_spi_send -EXPORT_SYMBOL_GPL net/nfc/nci/nci_uart 0x00000000 nci_uart_register -EXPORT_SYMBOL_GPL net/nfc/nci/nci_uart 0x00000000 nci_uart_set_config -EXPORT_SYMBOL_GPL net/nfc/nci/nci_uart 0x00000000 nci_uart_unregister -EXPORT_SYMBOL_GPL net/nsh/nsh 0x00000000 nsh_pop -EXPORT_SYMBOL_GPL net/nsh/nsh 0x00000000 nsh_push -EXPORT_SYMBOL_GPL net/openvswitch/openvswitch 0x00000000 __ovs_vport_ops_register -EXPORT_SYMBOL_GPL net/openvswitch/openvswitch 0x00000000 ovs_netdev_link -EXPORT_SYMBOL_GPL net/openvswitch/openvswitch 0x00000000 ovs_netdev_tunnel_destroy -EXPORT_SYMBOL_GPL net/openvswitch/openvswitch 0x00000000 ovs_vport_alloc -EXPORT_SYMBOL_GPL net/openvswitch/openvswitch 0x00000000 ovs_vport_free -EXPORT_SYMBOL_GPL net/openvswitch/openvswitch 0x00000000 ovs_vport_ops_unregister -EXPORT_SYMBOL_GPL net/psample/psample 0x00000000 psample_group_get -EXPORT_SYMBOL_GPL net/psample/psample 0x00000000 psample_group_put -EXPORT_SYMBOL_GPL net/psample/psample 0x00000000 psample_group_take -EXPORT_SYMBOL_GPL net/psample/psample 0x00000000 psample_sample_packet -EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_addr_cmp -EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_atomic_send_complete -EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_cong_map_updated -EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_conn_connect_if_down -EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_conn_create -EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_conn_create_outgoing -EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_conn_destroy -EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_conn_drop -EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_conn_path_connect_if_down -EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_conn_path_drop -EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_connect_complete -EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_connect_path_complete -EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_for_each_conn_info -EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_inc_init -EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_inc_path_init -EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_inc_put -EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_info_copy -EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_info_deregister_func -EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_info_register_func -EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_message_add_extension -EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_message_add_rdma_dest_extension -EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_message_addref -EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_message_populate_header -EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_message_put -EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_message_unmapped -EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_page_remainder_alloc -EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_rdma_send_complete -EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_recv_incoming -EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_send_drop_acked -EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_send_path_drop_acked -EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_send_path_reset -EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_send_ping -EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_send_xmit -EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_stats -EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_stats_info_copy -EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_trans_register -EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_trans_unregister -EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_wq -EXPORT_SYMBOL_GPL net/sched/sch_pie 0x00000000 pie_calculate_probability -EXPORT_SYMBOL_GPL net/sched/sch_pie 0x00000000 pie_drop_early -EXPORT_SYMBOL_GPL net/sched/sch_pie 0x00000000 pie_process_dequeue -EXPORT_SYMBOL_GPL net/sched/sch_taprio 0x00000000 taprio_offload_free -EXPORT_SYMBOL_GPL net/sched/sch_taprio 0x00000000 taprio_offload_get -EXPORT_SYMBOL_GPL net/sctp/sctp 0x00000000 sctp_for_each_endpoint -EXPORT_SYMBOL_GPL net/sctp/sctp 0x00000000 sctp_for_each_transport -EXPORT_SYMBOL_GPL net/sctp/sctp 0x00000000 sctp_get_sctp_info -EXPORT_SYMBOL_GPL net/sctp/sctp 0x00000000 sctp_transport_lookup_process -EXPORT_SYMBOL_GPL net/smc/smc 0x00000000 smc_hash_sk -EXPORT_SYMBOL_GPL net/smc/smc 0x00000000 smc_proto -EXPORT_SYMBOL_GPL net/smc/smc 0x00000000 smc_proto6 -EXPORT_SYMBOL_GPL net/smc/smc 0x00000000 smc_unhash_sk -EXPORT_SYMBOL_GPL net/smc/smc 0x00000000 smcd_alloc_dev -EXPORT_SYMBOL_GPL net/smc/smc 0x00000000 smcd_free_dev -EXPORT_SYMBOL_GPL net/smc/smc 0x00000000 smcd_handle_event -EXPORT_SYMBOL_GPL net/smc/smc 0x00000000 smcd_handle_irq -EXPORT_SYMBOL_GPL net/smc/smc 0x00000000 smcd_register_dev -EXPORT_SYMBOL_GPL net/smc/smc 0x00000000 smcd_unregister_dev -EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00000000 g_make_token_header -EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00000000 g_token_size -EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00000000 g_verify_token_header -EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00000000 gss_mech_register -EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00000000 gss_mech_unregister -EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00000000 svcauth_gss_flavor -EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00000000 svcauth_gss_register_pseudoflavor -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 __rpc_wait_for_completion_task -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 _copy_from_pages -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 auth_domain_find -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 auth_domain_lookup -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 auth_domain_put -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 bc_svc_process -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 cache_check -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 cache_create_net -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 cache_destroy_net -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 cache_flush -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 cache_purge -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 cache_register_net -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 cache_seq_next_rcu -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 cache_seq_start_rcu -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 cache_seq_stop_rcu -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 cache_unregister_net -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 csum_partial_copy_to_xdr -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 gssd_running -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 nfs_debug -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 nfsd_debug -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 nlm_debug -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 put_rpccred -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 qword_add -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 qword_addhex -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 qword_get -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 read_bytes_from_xdr_buf -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_add_pipe_dir_object -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_alloc_iostats -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_bind_new_program -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_calc_rto -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_call_async -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_call_null -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_call_start -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_call_sync -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_clnt_add_xprt -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_clnt_iterate_for_each_xprt -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_clnt_setup_test_and_add_xprt -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_clnt_show_stats -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_clnt_swap_activate -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_clnt_swap_deactivate -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_clnt_test_and_add_xprt -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_clnt_xprt_switch_add_xprt -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_clnt_xprt_switch_has_addr -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_clnt_xprt_switch_put -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_clone_client -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_clone_client_set_auth -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_count_iostats -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_count_iostats_metrics -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_create -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_d_lookup_sb -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_debug -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_delay -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_destroy_pipe_data -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_destroy_wait_queue -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_exit -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_find_or_alloc_pipe_dir_object -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_force_rebind -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_free -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_free_iostats -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_get_sb_net -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_init_pipe_dir_head -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_init_pipe_dir_object -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_init_priority_wait_queue -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_init_rtt -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_init_wait_queue -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_killall_tasks -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_localaddr -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_machine_cred -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_malloc -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_max_bc_payload -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_max_payload -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_mkpipe_data -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_mkpipe_dentry -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_net_ns -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_ntop -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_num_bc_slots -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_peeraddr -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_peeraddr2str -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_pipe_generic_upcall -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_pipefs_notifier_register -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_pipefs_notifier_unregister -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_prepare_reply_pages -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_proc_register -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_proc_unregister -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_pton -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_put_sb_net -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_put_task -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_put_task_async -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_queue_upcall -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_release_client -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_remove_pipe_dir_object -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_restart_call -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_restart_call_prepare -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_run_task -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_set_connect_timeout -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_setbufsize -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_shutdown_client -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_sleep_on -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_sleep_on_priority -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_sleep_on_priority_timeout -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_sleep_on_timeout -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_switch_client_transport -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_task_release_transport -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_task_timeout -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_uaddr2sockaddr -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_unlink -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_update_rtt -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_wake_up -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_wake_up_first -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_wake_up_next -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_wake_up_queued_task -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_wake_up_status -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpcauth_create -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpcauth_destroy_credcache -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpcauth_get_gssinfo -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpcauth_get_pseudoflavor -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpcauth_init_cred -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpcauth_init_credcache -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpcauth_lookup_credcache -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpcauth_lookupcred -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpcauth_register -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpcauth_stringify_acceptor -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpcauth_unregister -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpcauth_unwrap_resp_decode -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpcauth_wrap_req_encode -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpcb_getport_async -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 sunrpc_cache_lookup_rcu -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 sunrpc_cache_pipe_upcall -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 sunrpc_cache_register_pipefs -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 sunrpc_cache_unhash -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 sunrpc_cache_unregister_pipefs -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 sunrpc_cache_update -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 sunrpc_destroy_cache_detail -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 sunrpc_init_cache_detail -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 sunrpc_net_id -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_addsock -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_age_temp_xprts_now -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_alien_sock -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_auth_register -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_auth_unregister -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_authenticate -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_bind -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_close_xprt -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_create -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_create_pooled -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_create_xprt -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_destroy -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_drop -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_exit_thread -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_fill_symlink_pathname -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_fill_write_vector -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_find_xprt -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_generic_init_request -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_generic_rpcbind_set -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_max_payload -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_pool_map -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_pool_map_get -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_pool_map_put -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_prepare_thread -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_print_addr -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_proc_register -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_proc_unregister -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_process -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_recv -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_reg_xprt_class -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_reserve -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_return_autherr -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_rpcb_cleanup -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_rpcb_setup -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_rpcbind_set_version -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_rqst_alloc -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_rqst_free -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_seq_show -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_set_client -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_set_num_threads -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_set_num_threads_sync -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_shutdown_net -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_sock_update_bufs -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_unreg_xprt_class -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_wake_up -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_xprt_copy_addrs -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_xprt_do_enqueue -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_xprt_enqueue -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_xprt_init -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_xprt_names -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_xprt_put -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svcauth_unix_purge -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svcauth_unix_set_client -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 unix_domain_find -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 write_bytes_to_xdr_buf -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_buf_from_iov -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_buf_read_mic -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_buf_subsegment -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_buf_trim -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_commit_encode -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_decode_array2 -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_decode_netobj -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_decode_string_inplace -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_decode_word -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_encode_array2 -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_encode_netobj -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_encode_opaque -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_encode_opaque_fixed -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_encode_string -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_encode_word -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_enter_page -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_init_decode -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_init_decode_pages -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_init_encode -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_inline_decode -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_inline_pages -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_process_buf -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_read_pages -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_reserve_space -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_set_scratch_buffer -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_shift_buf -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_stream_decode_opaque -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_stream_decode_opaque_dup -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_stream_decode_string -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_stream_decode_string_dup -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_stream_pos -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_terminate_string -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_write_pages -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_adjust_cwnd -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_alloc -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_alloc_slot -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_complete_rqst -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_destroy_backchannel -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_disconnect_done -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_force_disconnect -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_free -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_free_slot -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_get -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_load_transport -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_lookup_rqst -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_pin_rqst -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_put -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_reconnect_backoff -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_reconnect_delay -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_register_transport -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_release_rqst_cong -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_release_xprt -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_release_xprt_cong -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_request_get_cong -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_reserve_xprt -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_reserve_xprt_cong -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_setup_backchannel -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_unpin_rqst -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_unregister_transport -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_update_rtt -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_wait_for_buffer_space -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_wait_for_reply_request_def -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_wait_for_reply_request_rtt -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_wake_pending_tasks -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_write_space -EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprtiod_workqueue -EXPORT_SYMBOL_GPL net/tls/tls 0x00000000 tls_device_sk_destruct -EXPORT_SYMBOL_GPL net/tls/tls 0x00000000 tls_encrypt_skb -EXPORT_SYMBOL_GPL net/tls/tls 0x00000000 tls_offload_tx_resync_request -EXPORT_SYMBOL_GPL net/tls/tls 0x00000000 tls_validate_xmit_skb -EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x00000000 virtio_transport_connect -EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x00000000 virtio_transport_deliver_tap_pkt -EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x00000000 virtio_transport_destruct -EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x00000000 virtio_transport_dgram_allow -EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x00000000 virtio_transport_dgram_bind -EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x00000000 virtio_transport_dgram_dequeue -EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x00000000 virtio_transport_dgram_enqueue -EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x00000000 virtio_transport_do_socket_init -EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x00000000 virtio_transport_free_pkt -EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x00000000 virtio_transport_get_credit -EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x00000000 virtio_transport_inc_tx_pkt -EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x00000000 virtio_transport_notify_buffer_size -EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x00000000 virtio_transport_notify_poll_in -EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x00000000 virtio_transport_notify_poll_out -EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x00000000 virtio_transport_notify_recv_init -EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x00000000 virtio_transport_notify_recv_post_dequeue -EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x00000000 virtio_transport_notify_recv_pre_block -EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x00000000 virtio_transport_notify_recv_pre_dequeue -EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x00000000 virtio_transport_notify_send_init -EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x00000000 virtio_transport_notify_send_post_enqueue -EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x00000000 virtio_transport_notify_send_pre_block -EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x00000000 virtio_transport_notify_send_pre_enqueue -EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x00000000 virtio_transport_put_credit -EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x00000000 virtio_transport_recv_pkt -EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x00000000 virtio_transport_release -EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x00000000 virtio_transport_shutdown -EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x00000000 virtio_transport_stream_allow -EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x00000000 virtio_transport_stream_dequeue -EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x00000000 virtio_transport_stream_enqueue -EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x00000000 virtio_transport_stream_has_data -EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x00000000 virtio_transport_stream_has_space -EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x00000000 virtio_transport_stream_is_active -EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x00000000 virtio_transport_stream_rcvhiwat -EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x00000000 vsock_add_pending -EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x00000000 vsock_add_tap -EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x00000000 vsock_addr_bound -EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x00000000 vsock_addr_cast -EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x00000000 vsock_addr_equals_addr -EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x00000000 vsock_addr_init -EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x00000000 vsock_addr_unbind -EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x00000000 vsock_addr_validate -EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x00000000 vsock_assign_transport -EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x00000000 vsock_bind_table -EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x00000000 vsock_connected_table -EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x00000000 vsock_core_get_transport -EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x00000000 vsock_core_register -EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x00000000 vsock_core_unregister -EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x00000000 vsock_create_connected -EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x00000000 vsock_deliver_tap -EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x00000000 vsock_enqueue_accept -EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x00000000 vsock_find_bound_socket -EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x00000000 vsock_find_cid -EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x00000000 vsock_find_connected_socket -EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x00000000 vsock_for_each_connected_socket -EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x00000000 vsock_insert_connected -EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x00000000 vsock_remove_bound -EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x00000000 vsock_remove_connected -EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x00000000 vsock_remove_pending -EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x00000000 vsock_remove_sock -EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x00000000 vsock_remove_tap -EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x00000000 vsock_stream_has_data -EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x00000000 vsock_stream_has_space -EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x00000000 vsock_table_lock -EXPORT_SYMBOL_GPL net/wimax/wimax 0x00000000 wimax_dev_add -EXPORT_SYMBOL_GPL net/wimax/wimax 0x00000000 wimax_dev_init -EXPORT_SYMBOL_GPL net/wimax/wimax 0x00000000 wimax_dev_rm -EXPORT_SYMBOL_GPL net/wimax/wimax 0x00000000 wimax_msg -EXPORT_SYMBOL_GPL net/wimax/wimax 0x00000000 wimax_msg_alloc -EXPORT_SYMBOL_GPL net/wimax/wimax 0x00000000 wimax_msg_data -EXPORT_SYMBOL_GPL net/wimax/wimax 0x00000000 wimax_msg_data_len -EXPORT_SYMBOL_GPL net/wimax/wimax 0x00000000 wimax_msg_len -EXPORT_SYMBOL_GPL net/wimax/wimax 0x00000000 wimax_msg_send -EXPORT_SYMBOL_GPL net/wimax/wimax 0x00000000 wimax_report_rfkill_hw -EXPORT_SYMBOL_GPL net/wimax/wimax 0x00000000 wimax_report_rfkill_sw -EXPORT_SYMBOL_GPL net/wimax/wimax 0x00000000 wimax_state_change -EXPORT_SYMBOL_GPL net/wimax/wimax 0x00000000 wimax_state_get -EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x00000000 cfg80211_pmsr_complete -EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x00000000 cfg80211_pmsr_report -EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x00000000 cfg80211_shutdown_all_interfaces -EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x00000000 cfg80211_vendor_cmd_get_sender -EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x00000000 cfg80211_vendor_cmd_reply -EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x00000000 cfg80211_wext_giwfrag -EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x00000000 cfg80211_wext_giwmode -EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x00000000 cfg80211_wext_giwname -EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x00000000 cfg80211_wext_giwrange -EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x00000000 cfg80211_wext_giwretry -EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x00000000 cfg80211_wext_giwrts -EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x00000000 cfg80211_wext_giwscan -EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x00000000 cfg80211_wext_siwfrag -EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x00000000 cfg80211_wext_siwmode -EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x00000000 cfg80211_wext_siwrts -EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x00000000 cfg80211_wext_siwscan -EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x00000000 xfrm_aalg_get_byid -EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x00000000 xfrm_aalg_get_byidx -EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x00000000 xfrm_aalg_get_byname -EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x00000000 xfrm_aead_get_byname -EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x00000000 xfrm_calg_get_byid -EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x00000000 xfrm_calg_get_byname -EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x00000000 xfrm_count_pfkey_auth_supported -EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x00000000 xfrm_count_pfkey_enc_supported -EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x00000000 xfrm_ealg_get_byid -EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x00000000 xfrm_ealg_get_byidx -EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x00000000 xfrm_ealg_get_byname -EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x00000000 xfrm_probe_algs -EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x00000000 ipcomp_destroy -EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x00000000 ipcomp_init_state -EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x00000000 ipcomp_input -EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x00000000 ipcomp_output -EXPORT_SYMBOL_GPL sound/ac97_bus 0x00000000 snd_ac97_reset -EXPORT_SYMBOL_GPL sound/core/seq/snd-seq 0x00000000 snd_seq_client_ioctl_lock -EXPORT_SYMBOL_GPL sound/core/seq/snd-seq 0x00000000 snd_seq_client_ioctl_unlock -EXPORT_SYMBOL_GPL sound/core/snd 0x00000000 snd_card_add_dev_attr -EXPORT_SYMBOL_GPL sound/core/snd 0x00000000 snd_card_disconnect_sync -EXPORT_SYMBOL_GPL sound/core/snd 0x00000000 snd_card_ref -EXPORT_SYMBOL_GPL sound/core/snd 0x00000000 snd_card_rw_proc_new -EXPORT_SYMBOL_GPL sound/core/snd 0x00000000 snd_ctl_activate_id -EXPORT_SYMBOL_GPL sound/core/snd 0x00000000 snd_ctl_add_vmaster_hook -EXPORT_SYMBOL_GPL sound/core/snd 0x00000000 snd_ctl_apply_vmaster_slaves -EXPORT_SYMBOL_GPL sound/core/snd 0x00000000 snd_ctl_get_preferred_subdevice -EXPORT_SYMBOL_GPL sound/core/snd 0x00000000 snd_ctl_sync_vmaster -EXPORT_SYMBOL_GPL sound/core/snd 0x00000000 snd_device_disconnect -EXPORT_SYMBOL_GPL sound/core/snd 0x00000000 snd_device_initialize -EXPORT_SYMBOL_GPL sound/core/snd-compress 0x00000000 snd_compr_stop_error -EXPORT_SYMBOL_GPL sound/core/snd-compress 0x00000000 snd_compress_deregister -EXPORT_SYMBOL_GPL sound/core/snd-compress 0x00000000 snd_compress_new -EXPORT_SYMBOL_GPL sound/core/snd-compress 0x00000000 snd_compress_register -EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x00000000 _snd_pcm_stream_lock_irqsave -EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x00000000 snd_pcm_add_chmap_ctls -EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x00000000 snd_pcm_alt_chmaps -EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x00000000 snd_pcm_format_name -EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x00000000 snd_pcm_hw_constraint_eld -EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x00000000 snd_pcm_lib_default_mmap -EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x00000000 snd_pcm_rate_mask_intersect -EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x00000000 snd_pcm_rate_range_to_bits -EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x00000000 snd_pcm_std_chmaps -EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x00000000 snd_pcm_stop_xrun -EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x00000000 snd_pcm_stream_lock -EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x00000000 snd_pcm_stream_lock_irq -EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x00000000 snd_pcm_stream_unlock -EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x00000000 snd_pcm_stream_unlock_irq -EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x00000000 snd_pcm_stream_unlock_irqrestore -EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0x00000000 snd_dmaengine_pcm_close -EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0x00000000 snd_dmaengine_pcm_close_release_chan -EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0x00000000 snd_dmaengine_pcm_get_chan -EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0x00000000 snd_dmaengine_pcm_open -EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0x00000000 snd_dmaengine_pcm_open_request_chan -EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0x00000000 snd_dmaengine_pcm_pointer -EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0x00000000 snd_dmaengine_pcm_pointer_no_residue -EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0x00000000 snd_dmaengine_pcm_refine_runtime_hwparams -EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0x00000000 snd_dmaengine_pcm_request_channel -EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0x00000000 snd_dmaengine_pcm_set_config_from_dai_data -EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0x00000000 snd_dmaengine_pcm_trigger -EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0x00000000 snd_hwparams_to_dma_slave_config -EXPORT_SYMBOL_GPL sound/core/snd-seq-device 0x00000000 __snd_seq_driver_register -EXPORT_SYMBOL_GPL sound/core/snd-seq-device 0x00000000 snd_seq_driver_unregister -EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x00000000 amdtp_am824_add_pcm_hw_constraints -EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x00000000 amdtp_am824_init -EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x00000000 amdtp_am824_midi_trigger -EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x00000000 amdtp_am824_set_midi_position -EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x00000000 amdtp_am824_set_parameters -EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x00000000 amdtp_am824_set_pcm_position -EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x00000000 amdtp_domain_add_stream -EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x00000000 amdtp_domain_destroy -EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x00000000 amdtp_domain_init -EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x00000000 amdtp_domain_start -EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x00000000 amdtp_domain_stop -EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x00000000 amdtp_domain_stream_pcm_ack -EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x00000000 amdtp_domain_stream_pcm_pointer -EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x00000000 snd_hda_ext_driver_register -EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x00000000 snd_hda_ext_driver_unregister -EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x00000000 snd_hdac_ext_bus_device_exit -EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x00000000 snd_hdac_ext_bus_device_init -EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x00000000 snd_hdac_ext_bus_device_remove -EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x00000000 snd_hdac_ext_bus_exit -EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x00000000 snd_hdac_ext_bus_get_link -EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x00000000 snd_hdac_ext_bus_get_ml_capabilities -EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x00000000 snd_hdac_ext_bus_init -EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x00000000 snd_hdac_ext_bus_link_get -EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x00000000 snd_hdac_ext_bus_link_power_down -EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x00000000 snd_hdac_ext_bus_link_power_down_all -EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x00000000 snd_hdac_ext_bus_link_power_up -EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x00000000 snd_hdac_ext_bus_link_power_up_all -EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x00000000 snd_hdac_ext_bus_link_put -EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x00000000 snd_hdac_ext_bus_ppcap_enable -EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x00000000 snd_hdac_ext_bus_ppcap_int_enable -EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x00000000 snd_hdac_ext_link_clear_stream_id -EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x00000000 snd_hdac_ext_link_set_stream_id -EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x00000000 snd_hdac_ext_link_stream_clear -EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x00000000 snd_hdac_ext_link_stream_reset -EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x00000000 snd_hdac_ext_link_stream_setup -EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x00000000 snd_hdac_ext_link_stream_start -EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x00000000 snd_hdac_ext_stop_streams -EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x00000000 snd_hdac_ext_stream_assign -EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x00000000 snd_hdac_ext_stream_decouple -EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x00000000 snd_hdac_ext_stream_drsm_enable -EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x00000000 snd_hdac_ext_stream_get_spbmaxfifo -EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x00000000 snd_hdac_ext_stream_init -EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x00000000 snd_hdac_ext_stream_init_all -EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x00000000 snd_hdac_ext_stream_release -EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x00000000 snd_hdac_ext_stream_set_dpibr -EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x00000000 snd_hdac_ext_stream_set_lpib -EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x00000000 snd_hdac_ext_stream_set_spib -EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x00000000 snd_hdac_ext_stream_spbcap_enable -EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x00000000 snd_hdac_link_free_all -EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x00000000 snd_hdac_stream_free_all -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 _snd_hdac_read_parm -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 hdac_get_device_id -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_array_free -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_array_new -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hda_bus_type -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_acomp_exit -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_acomp_get_eld -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_acomp_init -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_acomp_register_notifier -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_add_chmap_ctls -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_bus_alloc_stream_pages -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_bus_enter_link_reset -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_bus_exec_verb -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_bus_exec_verb_unlocked -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_bus_exit -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_bus_exit_link_reset -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_bus_free_stream_pages -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_bus_get_response -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_bus_handle_stream_irq -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_bus_init -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_bus_init_chip -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_bus_init_cmd_io -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_bus_parse_capabilities -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_bus_queue_event -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_bus_reset_link -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_bus_send_cmd -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_bus_stop_chip -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_bus_stop_cmd_io -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_bus_update_rirb -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_calc_stream_format -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_channel_allocation -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_check_power_state -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_chmap_to_spk_mask -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_codec_modalias -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_codec_read -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_codec_write -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_device_exit -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_device_init -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_device_register -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_device_set_chip_name -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_device_unregister -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_display_power -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_dsp_cleanup -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_dsp_prepare -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_dsp_trigger -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_get_active_channels -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_get_ch_alloc_from_ca -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_get_connections -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_get_stream -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_get_stream_stripe_ctl -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_get_sub_nodes -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_i915_init -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_i915_set_bclk -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_is_supported_format -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_override_parm -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_power_down -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_power_down_pm -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_power_up -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_power_up_pm -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_print_channel_allocation -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_query_supported_pcm -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_read -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_read_parm_uncached -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_refresh_widgets -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_register_chmap_ops -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_regmap_add_vendor_verb -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_regmap_exit -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_regmap_init -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_regmap_read_raw -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_regmap_sync -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_regmap_update_raw -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_regmap_update_raw_once -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_regmap_write_raw -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_set_codec_wakeup -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_setup_channel_mapping -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_spk_to_chmap -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_stream_assign -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_stream_cleanup -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_stream_clear -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_stream_init -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_stream_release -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_stream_reset -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_stream_set_params -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_stream_setup -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_stream_setup_periods -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_stream_start -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_stream_stop -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_stream_sync -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_stream_sync_trigger -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_stream_timecounter_init -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_sync_audio_rate -EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_sync_power_state -EXPORT_SYMBOL_GPL sound/hda/snd-intel-dspcfg 0x00000000 intel_nhlt_free -EXPORT_SYMBOL_GPL sound/hda/snd-intel-dspcfg 0x00000000 intel_nhlt_get_dmic_geo -EXPORT_SYMBOL_GPL sound/hda/snd-intel-dspcfg 0x00000000 intel_nhlt_init -EXPORT_SYMBOL_GPL sound/hda/snd-intel-dspcfg 0x00000000 snd_intel_dsp_driver_probe -EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x00000000 snd_ak4113_build -EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x00000000 snd_ak4113_check_rate_and_errors -EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x00000000 snd_ak4113_create -EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x00000000 snd_ak4113_external_rate -EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x00000000 snd_ak4113_reg_write -EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x00000000 snd_ak4113_reinit -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 __hda_codec_driver_register -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 __snd_hda_add_vmaster -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 __snd_hda_codec_cleanup_stream -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 _snd_hda_set_pin_ctl -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 azx_bus_init -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 azx_codec_configure -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 azx_free_streams -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 azx_get_pos_lpib -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 azx_get_pos_posbuf -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 azx_get_position -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 azx_init_chip -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 azx_init_streams -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 azx_interrupt -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 azx_probe_codecs -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 azx_stop_all_streams -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 azx_stop_chip -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 hda_codec_driver_unregister -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 hda_get_autocfg_input_label -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 is_jack_detectable -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 query_amp_caps -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_add_imux_item -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_add_new_ctls -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_add_nid -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_add_verbs -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_add_vmaster_hook -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_apply_fixup -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_apply_pincfgs -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_apply_verbs -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_attach_beep_device -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_check_amp_caps -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_check_amp_list_power -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_codec_amp_init -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_codec_amp_init_stereo -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_codec_amp_stereo -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_codec_amp_update -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_codec_build_controls -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_codec_cleanup -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_codec_configure -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_codec_device_new -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_codec_eapd_power_filter -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_codec_get_pin_target -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_codec_get_pincfg -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_codec_load_dsp_cleanup -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_codec_load_dsp_prepare -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_codec_load_dsp_trigger -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_codec_new -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_codec_parse_pcms -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_codec_pcm_new -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_codec_pcm_put -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_codec_prepare -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_codec_set_name -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_codec_set_pin_target -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_codec_set_pincfg -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_codec_set_power_to_all -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_codec_setup_stream -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_codec_update_widgets -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_correct_pin_ctl -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_create_dig_out_ctls -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_create_spdif_in_ctls -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_create_spdif_share_sw -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_ctl_add -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_detach_beep_device -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_enable_beep_device -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_enum_helper_info -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_find_mixer_ctl -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_get_bool_hint -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_get_conn_index -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_get_conn_list -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_get_connections -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_get_default_vref -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_get_dev_select -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_get_hint -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_get_input_pin_attr -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_get_int_hint -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_get_num_devices -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_get_pin_label -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_input_mux_info -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_input_mux_put -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_jack_add_kctl_mst -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_jack_add_kctls -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_jack_detect_enable -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_jack_detect_enable_callback_mst -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_jack_detect_state_mst -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_jack_pin_sense -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_jack_poll_all -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_jack_report_sync -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_jack_set_dirty_all -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_jack_set_gating_jack -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_jack_tbl_get_from_tag -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_jack_tbl_get_mst -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_jack_unsol_event -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_load_patch -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_lock_devices -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_mixer_amp_switch_get -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_mixer_amp_switch_get_beep -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_mixer_amp_switch_info -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_mixer_amp_switch_put -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_mixer_amp_switch_put_beep -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_mixer_amp_tlv -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_mixer_amp_volume_get -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_mixer_amp_volume_info -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_mixer_amp_volume_put -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_multi_out_analog_cleanup -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_multi_out_analog_open -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_multi_out_analog_prepare -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_multi_out_dig_cleanup -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_multi_out_dig_close -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_multi_out_dig_open -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_multi_out_dig_prepare -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_override_amp_caps -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_override_conn_list -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_parse_pin_defcfg -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_pick_fixup -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_pick_pin_fixup -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_sequence_write -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_set_dev_select -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_set_power_save -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_set_vmaster_tlv -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_shutup_pins -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_spdif_ctls_assign -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_spdif_ctls_unassign -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_spdif_out_of_nid -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_sync_vmaster_hook -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_unlock_devices -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_pcm_2_1_chmaps -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_print_pcm_bits -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x00000000 hda_extra_out_badness -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x00000000 hda_main_out_badness -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x00000000 snd_hda_activate_path -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x00000000 snd_hda_add_new_path -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x00000000 snd_hda_gen_add_kctl -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x00000000 snd_hda_gen_add_micmute_led_cdev -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x00000000 snd_hda_gen_add_mute_led_cdev -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x00000000 snd_hda_gen_build_controls -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x00000000 snd_hda_gen_build_pcms -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x00000000 snd_hda_gen_check_power_status -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x00000000 snd_hda_gen_fix_pin_power -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x00000000 snd_hda_gen_free -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x00000000 snd_hda_gen_hp_automute -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x00000000 snd_hda_gen_init -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x00000000 snd_hda_gen_line_automute -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x00000000 snd_hda_gen_mic_autoswitch -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x00000000 snd_hda_gen_parse_auto_config -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x00000000 snd_hda_gen_path_power_filter -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x00000000 snd_hda_gen_reboot_notify -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x00000000 snd_hda_gen_spec_init -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x00000000 snd_hda_gen_stream_pm -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x00000000 snd_hda_gen_update_outputs -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x00000000 snd_hda_get_path_from_idx -EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x00000000 snd_hda_get_path_idx -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau-utils 0x00000000 adau_calc_pll_cfg -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau1761 0x00000000 adau1761_probe -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau1761 0x00000000 adau1761_regmap_config -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x00000000 adau17x1_add_routes -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x00000000 adau17x1_add_widgets -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x00000000 adau17x1_dai_ops -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x00000000 adau17x1_precious_register -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x00000000 adau17x1_probe -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x00000000 adau17x1_readable_register -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x00000000 adau17x1_remove -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x00000000 adau17x1_resume -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x00000000 adau17x1_set_micbias_voltage -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x00000000 adau17x1_volatile_register -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau7118 0x00000000 adau7118_probe -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs4271 0x00000000 cs4271_probe -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs4271 0x00000000 cs4271_regmap_config -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42l51 0x00000000 cs42l51_of_match -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42l51 0x00000000 cs42l51_probe -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42l51 0x00000000 cs42l51_regmap -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42l51 0x00000000 cs42l51_remove -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42l51 0x00000000 cs42l51_resume -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42l51 0x00000000 cs42l51_suspend -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42xx8 0x00000000 cs42448_data -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42xx8 0x00000000 cs42888_data -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42xx8 0x00000000 cs42xx8_of_match -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42xx8 0x00000000 cs42xx8_pm -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42xx8 0x00000000 cs42xx8_probe -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42xx8 0x00000000 cs42xx8_regmap_config -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7219 0x00000000 da7219_aad_exit -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7219 0x00000000 da7219_aad_init -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7219 0x00000000 da7219_aad_jack_det -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-es8328 0x00000000 es8328_probe -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-es8328 0x00000000 es8328_regmap_config -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-hdac-hda 0x00000000 snd_soc_hdac_hda_get_ops -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-hdac-hdmi 0x00000000 hdac_hdmi_jack_init -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-hdac-hdmi 0x00000000 hdac_hdmi_jack_port_init -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-hdmi-codec 0x00000000 hdmi_codec_set_jack_detect -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max98090 0x00000000 max98090_mic_detect -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-nau8824 0x00000000 nau8824_enable_jack_detect -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-nau8825 0x00000000 nau8825_enable_jack_detect -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm1789-codec 0x00000000 pcm1789_common_exit -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm1789-codec 0x00000000 pcm1789_common_init -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm1789-codec 0x00000000 pcm1789_regmap_config -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm179x-codec 0x00000000 pcm179x_common_init -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm179x-codec 0x00000000 pcm179x_regmap_config -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm186x 0x00000000 pcm186x_probe -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm186x 0x00000000 pcm186x_regmap -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3168a 0x00000000 pcm3168a_pm_ops -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3168a 0x00000000 pcm3168a_probe -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3168a 0x00000000 pcm3168a_regmap -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3168a 0x00000000 pcm3168a_remove -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm512x 0x00000000 pcm512x_pm_ops -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm512x 0x00000000 pcm512x_probe -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm512x 0x00000000 pcm512x_regmap -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm512x 0x00000000 pcm512x_remove -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rl6231 0x00000000 rl6231_calc_dmic_clk -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rl6231 0x00000000 rl6231_get_clk_info -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rl6231 0x00000000 rl6231_get_pre_div -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rl6231 0x00000000 rl6231_pll_calc -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rl6347a 0x00000000 rl6347a_hw_read -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rl6347a 0x00000000 rl6347a_hw_write -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt286 0x00000000 rt286_mic_detect -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt298 0x00000000 rt298_mic_detect -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5514-spi 0x00000000 rt5514_spi_burst_read -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5514-spi 0x00000000 rt5514_spi_burst_write -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5640 0x00000000 rt5640_dmic_enable -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5640 0x00000000 rt5640_sel_asrc_clk_src -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5645 0x00000000 rt5645_sel_asrc_clk_src -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5645 0x00000000 rt5645_set_jack_detect -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5663 0x00000000 rt5663_sel_asrc_clk_src -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5670 0x00000000 rt5670_jack_resume -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5670 0x00000000 rt5670_jack_suspend -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5670 0x00000000 rt5670_sel_asrc_clk_src -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5670 0x00000000 rt5670_set_jack_detect -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5677 0x00000000 rt5677_sel_asrc_clk_src -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5677-spi 0x00000000 rt5677_spi_hotword_detected -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5677-spi 0x00000000 rt5677_spi_read -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5677-spi 0x00000000 rt5677_spi_write -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5677-spi 0x00000000 rt5677_spi_write_firmware -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x00000000 rt5682_sel_asrc_clk_src -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-sigmadsp 0x00000000 devm_sigmadsp_init -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-sigmadsp 0x00000000 sigmadsp_attach -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-sigmadsp 0x00000000 sigmadsp_reset -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-sigmadsp 0x00000000 sigmadsp_restrict_params -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-sigmadsp 0x00000000 sigmadsp_setup -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-sigmadsp-i2c 0x00000000 devm_sigmadsp_init_i2c -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-sigmadsp-regmap 0x00000000 devm_sigmadsp_init_regmap -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ssm2602 0x00000000 ssm2602_probe -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ssm2602 0x00000000 ssm2602_regmap_config -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic32x4 0x00000000 aic32x4_register_clocks -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ts3a227e 0x00000000 ts3a227e_enable_jack_detect -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8804 0x00000000 wm8804_pm -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8804 0x00000000 wm8804_probe -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8804 0x00000000 wm8804_regmap_config -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8804 0x00000000 wm8804_remove -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0x00000000 wm8903_mic_detect -EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8962 0x00000000 wm8962_mic_detect -EXPORT_SYMBOL_GPL sound/soc/fsl/snd-soc-fsl-asrc 0x00000000 fsl_asrc_component -EXPORT_SYMBOL_GPL sound/soc/fsl/snd-soc-fsl-asrc 0x00000000 fsl_asrc_get_dma_channel -EXPORT_SYMBOL_GPL sound/soc/fsl/snd-soc-imx-audmux 0x00000000 imx_audmux_v1_configure_port -EXPORT_SYMBOL_GPL sound/soc/fsl/snd-soc-imx-audmux 0x00000000 imx_audmux_v2_configure_port -EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x00000000 asoc_simple_be_hw_params_fixup -EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x00000000 asoc_simple_canonicalize_cpu -EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x00000000 asoc_simple_canonicalize_platform -EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x00000000 asoc_simple_clean_reference -EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x00000000 asoc_simple_convert_fixup -EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x00000000 asoc_simple_dai_init -EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x00000000 asoc_simple_hw_params -EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x00000000 asoc_simple_init_jack -EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x00000000 asoc_simple_init_priv -EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x00000000 asoc_simple_parse_card_name -EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x00000000 asoc_simple_parse_clk -EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x00000000 asoc_simple_parse_convert -EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x00000000 asoc_simple_parse_daifmt -EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x00000000 asoc_simple_parse_pin_switches -EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x00000000 asoc_simple_parse_routing -EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x00000000 asoc_simple_parse_widgets -EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x00000000 asoc_simple_set_dailink_name -EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x00000000 asoc_simple_shutdown -EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x00000000 asoc_simple_startup -EXPORT_SYMBOL_GPL sound/soc/intel/atom/snd-soc-sst-atom-hifi2-platform 0x00000000 sst_register_dsp -EXPORT_SYMBOL_GPL sound/soc/intel/atom/snd-soc-sst-atom-hifi2-platform 0x00000000 sst_unregister_dsp -EXPORT_SYMBOL_GPL sound/soc/intel/atom/sst/snd-intel-sst-core 0x00000000 intel_sst_pm -EXPORT_SYMBOL_GPL sound/soc/intel/atom/sst/snd-intel-sst-core 0x00000000 relocate_imr_addr_mrfld -EXPORT_SYMBOL_GPL sound/soc/intel/atom/sst/snd-intel-sst-core 0x00000000 sst_alloc_drv_context -EXPORT_SYMBOL_GPL sound/soc/intel/atom/sst/snd-intel-sst-core 0x00000000 sst_configure_runtime_pm -EXPORT_SYMBOL_GPL sound/soc/intel/atom/sst/snd-intel-sst-core 0x00000000 sst_context_cleanup -EXPORT_SYMBOL_GPL sound/soc/intel/atom/sst/snd-intel-sst-core 0x00000000 sst_context_init -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-acpi-intel-match 0x00000000 snd_soc_acpi_intel_baytrail_legacy_machines -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-acpi-intel-match 0x00000000 snd_soc_acpi_intel_baytrail_machines -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-acpi-intel-match 0x00000000 snd_soc_acpi_intel_broadwell_machines -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-acpi-intel-match 0x00000000 snd_soc_acpi_intel_bxt_machines -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-acpi-intel-match 0x00000000 snd_soc_acpi_intel_cfl_machines -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-acpi-intel-match 0x00000000 snd_soc_acpi_intel_cfl_sdw_machines -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-acpi-intel-match 0x00000000 snd_soc_acpi_intel_cherrytrail_machines -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-acpi-intel-match 0x00000000 snd_soc_acpi_intel_cml_machines -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-acpi-intel-match 0x00000000 snd_soc_acpi_intel_cml_sdw_machines -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-acpi-intel-match 0x00000000 snd_soc_acpi_intel_cnl_machines -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-acpi-intel-match 0x00000000 snd_soc_acpi_intel_cnl_sdw_machines -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-acpi-intel-match 0x00000000 snd_soc_acpi_intel_ehl_machines -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-acpi-intel-match 0x00000000 snd_soc_acpi_intel_glk_machines -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-acpi-intel-match 0x00000000 snd_soc_acpi_intel_haswell_machines -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-acpi-intel-match 0x00000000 snd_soc_acpi_intel_hda_machines -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-acpi-intel-match 0x00000000 snd_soc_acpi_intel_icl_machines -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-acpi-intel-match 0x00000000 snd_soc_acpi_intel_icl_sdw_machines -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-acpi-intel-match 0x00000000 snd_soc_acpi_intel_jsl_machines -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-acpi-intel-match 0x00000000 snd_soc_acpi_intel_kbl_machines -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-acpi-intel-match 0x00000000 snd_soc_acpi_intel_skl_machines -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-acpi-intel-match 0x00000000 snd_soc_acpi_intel_tgl_machines -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-acpi-intel-match 0x00000000 snd_soc_acpi_intel_tgl_sdw_machines -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0x00000000 sst_dsp_boot -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0x00000000 sst_dsp_dump -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0x00000000 sst_dsp_inbox_read -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0x00000000 sst_dsp_inbox_write -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0x00000000 sst_dsp_ipc_msg_rx -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0x00000000 sst_dsp_ipc_msg_tx -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0x00000000 sst_dsp_mailbox_init -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0x00000000 sst_dsp_outbox_read -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0x00000000 sst_dsp_outbox_write -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0x00000000 sst_dsp_register_poll -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0x00000000 sst_dsp_reset -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0x00000000 sst_dsp_shim_read -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0x00000000 sst_dsp_shim_read64 -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0x00000000 sst_dsp_shim_read64_unlocked -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0x00000000 sst_dsp_shim_read_unlocked -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0x00000000 sst_dsp_shim_update_bits -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0x00000000 sst_dsp_shim_update_bits64 -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0x00000000 sst_dsp_shim_update_bits64_unlocked -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0x00000000 sst_dsp_shim_update_bits_forced -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0x00000000 sst_dsp_shim_update_bits_forced_unlocked -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0x00000000 sst_dsp_shim_update_bits_unlocked -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0x00000000 sst_dsp_shim_write -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0x00000000 sst_dsp_shim_write64 -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0x00000000 sst_dsp_shim_write64_unlocked -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0x00000000 sst_dsp_shim_write_unlocked -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0x00000000 sst_dsp_sleep -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0x00000000 sst_dsp_stall -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0x00000000 sst_dsp_wake -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0x00000000 sst_memcpy_fromio_32 -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0x00000000 sst_memcpy_toio_32 -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0x00000000 sst_shim32_read -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0x00000000 sst_shim32_read64 -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0x00000000 sst_shim32_write -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0x00000000 sst_shim32_write64 -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-firmware 0x00000000 sst_alloc_blocks -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-firmware 0x00000000 sst_block_alloc_scratch -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-firmware 0x00000000 sst_block_free_scratch -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-firmware 0x00000000 sst_dsp_dma_copyfrom -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-firmware 0x00000000 sst_dsp_dma_copyto -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-firmware 0x00000000 sst_dsp_dma_get_channel -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-firmware 0x00000000 sst_dsp_dma_put_channel -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-firmware 0x00000000 sst_dsp_free -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-firmware 0x00000000 sst_dsp_get_offset -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-firmware 0x00000000 sst_dsp_new -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-firmware 0x00000000 sst_free_blocks -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-firmware 0x00000000 sst_fw_free -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-firmware 0x00000000 sst_fw_free_all -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-firmware 0x00000000 sst_fw_new -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-firmware 0x00000000 sst_fw_reload -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-firmware 0x00000000 sst_fw_unload -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-firmware 0x00000000 sst_mem_block_register -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-firmware 0x00000000 sst_mem_block_unregister_all -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-firmware 0x00000000 sst_module_alloc_blocks -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-firmware 0x00000000 sst_module_free -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-firmware 0x00000000 sst_module_free_blocks -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-firmware 0x00000000 sst_module_get_from_id -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-firmware 0x00000000 sst_module_new -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-firmware 0x00000000 sst_module_runtime_alloc_blocks -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-firmware 0x00000000 sst_module_runtime_free -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-firmware 0x00000000 sst_module_runtime_free_blocks -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-firmware 0x00000000 sst_module_runtime_get_from_id -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-firmware 0x00000000 sst_module_runtime_new -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-firmware 0x00000000 sst_module_runtime_restore -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-firmware 0x00000000 sst_module_runtime_save -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-ipc 0x00000000 sst_ipc_drop_all -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-ipc 0x00000000 sst_ipc_fini -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-ipc 0x00000000 sst_ipc_init -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-ipc 0x00000000 sst_ipc_reply_find_msg -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-ipc 0x00000000 sst_ipc_tx_message_nopm -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-ipc 0x00000000 sst_ipc_tx_message_nowait -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-ipc 0x00000000 sst_ipc_tx_message_wait -EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-ipc 0x00000000 sst_ipc_tx_msg_reply_complete -EXPORT_SYMBOL_GPL sound/soc/intel/haswell/snd-soc-sst-haswell-pcm 0x00000000 sst_hsw_device_set_config -EXPORT_SYMBOL_GPL sound/soc/intel/haswell/snd-soc-sst-haswell-pcm 0x00000000 sst_hsw_dsp_free -EXPORT_SYMBOL_GPL sound/soc/intel/haswell/snd-soc-sst-haswell-pcm 0x00000000 sst_hsw_dsp_init -EXPORT_SYMBOL_GPL sound/soc/snd-soc-acpi 0x00000000 snd_soc_acpi_codec_list -EXPORT_SYMBOL_GPL sound/soc/snd-soc-acpi 0x00000000 snd_soc_acpi_find_machine -EXPORT_SYMBOL_GPL sound/soc/snd-soc-acpi 0x00000000 snd_soc_acpi_find_package_from_hid -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 dapm_clock_event -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 dapm_kcontrol_get_value -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 dapm_mark_endpoints_dirty -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 dapm_pinctrl_event -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 dapm_regulator_event -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 devm_snd_dmaengine_pcm_register -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 devm_snd_soc_register_card -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 devm_snd_soc_register_component -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 dpcm_be_dai_trigger -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 null_dailink_component -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_dmaengine_pcm_prepare_slave_config -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_dmaengine_pcm_register -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_dmaengine_pcm_unregister -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_add_card_controls -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_add_component -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_add_component_controls -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_add_dai_controls -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_add_pcm_runtime -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_bytes_get -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_bytes_info -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_bytes_info_ext -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_bytes_put -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_bytes_tlv_callback -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_calc_bclk -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_calc_frame_size -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_card_get_kcontrol -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_card_jack_new -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_close_delayed_work -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_cnew -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_component_async_complete -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_component_disable_pin -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_component_disable_pin_unlocked -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_component_enable_pin -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_component_enable_pin_unlocked -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_component_exit_regmap -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_component_force_enable_pin -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_component_force_enable_pin_unlocked -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_component_get_pin_status -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_component_init_regmap -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_component_nc_pin -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_component_nc_pin_unlocked -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_component_read -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_component_read32 -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_component_set_jack -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_component_set_pll -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_component_set_sysclk -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_component_test_bits -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_component_update_bits -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_component_update_bits_async -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_component_write -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dai_digital_mute -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dai_get_channel_map -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dai_set_bclk_ratio -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dai_set_channel_map -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dai_set_clkdiv -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dai_set_fmt -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dai_set_pll -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dai_set_sysclk -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dai_set_tdm_slot -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dai_set_tristate -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_add_routes -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_del_routes -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_disable_pin -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_disable_pin_unlocked -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_enable_pin -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_enable_pin_unlocked -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_force_bias_level -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_force_enable_pin -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_force_enable_pin_unlocked -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_free -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_get_enum_double -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_get_pin_status -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_get_pin_switch -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_get_volsw -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_ignore_suspend -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_info_pin_switch -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_init -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_kcontrol_dapm -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_kcontrol_widget -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_mixer_update_power -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_mux_update_power -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_nc_pin -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_nc_pin_unlocked -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_new_control -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_new_controls -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_new_widgets -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_put_enum_double -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_put_pin_switch -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_put_volsw -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_stream_stop -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_sync -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_sync_unlocked -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_update_dai -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_weak_routes -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_debugfs_root -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dpcm_be_can_update -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dpcm_can_be_free_stop -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dpcm_can_be_params -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dpcm_fe_can_update -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dpcm_get_substream -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dpcm_runtime_update -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_find_dai -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_free_ac97_component -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_get_dai_id -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_get_dai_name -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_get_enum_double -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_get_pcm_runtime -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_get_strobe -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_get_volsw -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_get_volsw_range -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_get_volsw_sx -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_get_xr_sx -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_info_enum_double -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_info_volsw -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_info_volsw_range -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_info_volsw_sx -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_info_xr_sx -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_jack_add_gpiods -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_jack_add_gpios -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_jack_add_pins -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_jack_add_zones -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_jack_free_gpios -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_jack_get_type -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_jack_notifier_register -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_jack_notifier_unregister -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_jack_report -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_limit_volume -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_lookup_component -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_new_ac97_component -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_new_compress -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_of_get_dai_link_codecs -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_of_get_dai_name -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_of_get_slot_mask -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_of_parse_audio_routing -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_of_parse_audio_simple_widgets -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_of_parse_card_name -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_of_parse_daifmt -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_of_parse_node_prefix -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_of_parse_tdm_slot -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_of_put_dai_link_codecs -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_params_to_bclk -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_params_to_frame_size -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_pm_ops -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_poweroff -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_put_enum_double -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_put_strobe -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_put_volsw -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_put_volsw_range -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_put_volsw_sx -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_put_xr_sx -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_register_card -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_register_component -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_remove_pcm_runtime -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_resume -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_rtdcom_lookup -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_runtime_activate -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_runtime_calc_hw -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_runtime_deactivate -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_runtime_set_dai_fmt -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_set_ac97_ops -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_set_ac97_ops_of_reset -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_set_dmi_name -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_set_runtime_hwparams -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_suspend -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_tplg_component_load -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_tplg_component_remove -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_tplg_widget_bind_event -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_tplg_widget_remove -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_tplg_widget_remove_all -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_unregister_card -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_unregister_component -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_unregister_dai -EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 soc_ac97_ops -EXPORT_SYMBOL_GPL sound/soc/sof/snd-sof 0x00000000 snd_sof_dbg_init -EXPORT_SYMBOL_GPL sound/soc/sof/snd-sof 0x00000000 snd_sof_debugfs_buf_item -EXPORT_SYMBOL_GPL sound/soc/sof/snd-sof 0x00000000 snd_sof_debugfs_io_item -EXPORT_SYMBOL_GPL sound/soc/sof/snd-sof 0x00000000 snd_sof_free_debug -EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x00000000 line6_alloc_sysex_buffer -EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x00000000 line6_disconnect -EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x00000000 line6_init_midi -EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x00000000 line6_init_pcm -EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x00000000 line6_midi_id -EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x00000000 line6_pcm_acquire -EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x00000000 line6_pcm_release -EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x00000000 line6_probe -EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x00000000 line6_read_data -EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x00000000 line6_read_serial_number -EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x00000000 line6_resume -EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x00000000 line6_send_raw_message_async -EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x00000000 line6_send_sysex_message -EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x00000000 line6_suspend -EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x00000000 line6_version_request_async -EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x00000000 line6_write_data -EXPORT_SYMBOL_GPL vmlinux 0x00000000 PageHuge -EXPORT_SYMBOL_GPL vmlinux 0x00000000 TSS_authhmac -EXPORT_SYMBOL_GPL vmlinux 0x00000000 TSS_checkhmac1 -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __account_locked_vm -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __acpi_node_get_property_reference -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __alloc_percpu -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __alloc_percpu_gfp -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __apei_exec_run -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __ata_change_queue_depth -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __ata_ehi_push_desc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __atomic_notifier_call_chain -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __audit_inode_child -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __bdev_dax_supported -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __bio_add_page -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __bio_try_merge_page -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __blk_mq_debugfs_rq_show -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __blk_req_zone_write_lock -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __blk_req_zone_write_unlock -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __blkdev_driver_ioctl -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __blkg_prfill_rwstat -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __blkg_prfill_u64 -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __blocking_notifier_call_chain -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __bpf_call_base -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __class_create -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __class_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __clk_determine_rate -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __clk_get_flags -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __clk_get_hw -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __clk_get_name -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __clk_hw_register_divider -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __clk_hw_register_fixed_rate -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __clk_hw_register_gate -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __clk_hw_register_mux -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __clk_is_enabled -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __clk_mux_determine_rate -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __clk_mux_determine_rate_closest -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __clocksource_register_scale -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __clocksource_update_freq_scale -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __compat_only_sysfs_link_entry_to_kobj -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __cookie_v4_check -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __cookie_v4_init_sequence -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __cookie_v6_check -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __cookie_v6_init_sequence -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __cpufreq_driver_target -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __cpuhp_state_add_instance -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __cpuhp_state_remove_instance -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __crypto_alloc_tfm -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __crypto_xor -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __dax_driver_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __dax_synchronous -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __dax_zero_page_range -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __dev_forward_skb -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __device_reset -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __devm_alloc_percpu -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __devm_create_dev_dax -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __devm_irq_alloc_descs -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __devm_of_phy_provider_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __devm_pci_epc_create -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __devm_regmap_init -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __devm_regmap_init_i2c -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __devm_regmap_init_mmio_clk -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __devm_regmap_init_spi -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __devm_reset_control_get -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __dma_request_channel -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __efivar_entry_delete -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __efivar_entry_get -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __efivar_entry_iter -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __fat_fs_error -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __fib_lookup -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __fl6_sock_lookup -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __flow_indr_block_cb_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __flow_indr_block_cb_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __fput_sync -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __free_iova -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __fscrypt_encrypt_symlink -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __fscrypt_prepare_link -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __fscrypt_prepare_lookup -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __fscrypt_prepare_rename -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __fscrypt_prepare_symlink -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __fsnotify_inode_delete -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __fsnotify_parent -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __ftrace_vbprintk -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __ftrace_vprintk -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __generic_fsdax_supported -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __get_task_comm -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __get_user_pages_fast -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __get_vm_area -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __hrtimer_get_remaining -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __hvc_resize -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __hwspin_lock_timeout -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __hwspin_trylock -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __hwspin_unlock -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __i2c_board_list -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __i2c_board_lock -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __i2c_first_dynamic_bus_num -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __inet_inherit_port -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __inet_lookup_established -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __inet_lookup_listener -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __inet_twsk_schedule -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __inode_attach_wb -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __ioread32_copy -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __iowrite32_copy -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __iowrite64_copy -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __ip6_datagram_connect -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __ip6_local_out -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __iptunnel_pull_header -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __irq_alloc_descs -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __irq_alloc_domain_generic_chips -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __irq_domain_add -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __irq_domain_alloc_fwnode -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __irq_set_handler -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __kprobe_event_add_fields -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __kprobe_event_gen_cmd_start -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __kthread_init_worker -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __kthread_should_park -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __list_lru_init -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __lock_page_killable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __memcat_p -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __memcpy_flushcache -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __memcpy_mcsafe -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __mmc_send_status -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __mmdrop -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __mmu_notifier_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __mnt_drop_write -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __mnt_is_readonly -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __module_address -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __module_text_address -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __ndisc_fill_addr_option -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __netif_set_xps_queue -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __netpoll_cleanup -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __netpoll_free -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __netpoll_setup -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __nf_ip6_route -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __nvdimm_create -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __of_phy_provider_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __of_reset_control_get -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __page_file_index -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __page_file_mapping -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __page_mapcount -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __pci_epc_create -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __pci_epc_mem_init -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __pci_epf_register_driver -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __pci_hp_initialize -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __pci_hp_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __pci_reset_function_locked -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __percpu_down_read -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __percpu_init_rwsem -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __percpu_up_read -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __phy_modify -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __phy_modify_changed -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __phy_modify_mmd -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __phy_modify_mmd_changed -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __platform_create_bundle -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __platform_driver_probe -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __platform_driver_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __platform_register_drivers -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __pm_relax -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __pm_runtime_disable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __pm_runtime_idle -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __pm_runtime_resume -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __pm_runtime_set_status -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __pm_runtime_suspend -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __pm_runtime_use_autosuspend -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __pm_stay_awake -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __pneigh_lookup -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __put_net -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __put_task_struct -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __raw_notifier_call_chain -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __raw_v4_lookup -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __raw_v6_lookup -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __regmap_init -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __regmap_init_i2c -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __regmap_init_mmio_clk -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __regmap_init_spi -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __request_percpu_irq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __reset_control_get -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __rht_bucket_nested -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __ring_buffer_alloc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __rio_local_read_config_16 -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __rio_local_read_config_32 -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __rio_local_read_config_8 -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __rio_local_write_config_16 -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __rio_local_write_config_32 -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __rio_local_write_config_8 -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __root_device_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __round_jiffies -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __round_jiffies_relative -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __round_jiffies_up -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __round_jiffies_up_relative -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __rt_mutex_init -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __rtc_register_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __rtnl_link_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __rtnl_link_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __sbitmap_queue_get -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __sbitmap_queue_get_shallow -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __scsi_init_queue -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __serdev_device_driver_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __set_dax_synchronous -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __set_page_dirty -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __skb_get_hash_symmetric -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __skb_tstamp_tx -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __sock_recv_timestamp -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __sock_recv_ts_and_drops -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __sock_recv_wifi_status -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __spi_alloc_controller -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __spi_register_driver -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __srcu_notifier_call_chain -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __srcu_read_lock -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __srcu_read_unlock -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __static_key_deferred_flush -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __static_key_slow_dec_deferred -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __strp_unpause -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __supported_pte_mask -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __suspend_report_result -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __symbol_get -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __sync_filesystem -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __synth_event_gen_cmd_start -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tcp_bpf_recvmsg -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tcp_send_ack -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __trace_bprintk -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __trace_bputs -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __trace_note_message -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __trace_printk -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __trace_puts -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_add_device_to_group -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_arm_event -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_attach_device_to_domain -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_block_bio_complete -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_block_bio_remap -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_block_rq_remap -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_block_split -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_block_unplug -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_br_fdb_add -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_br_fdb_external_learn_add -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_br_fdb_update -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_cpu_frequency -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_cpu_idle -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_detach_device_from_domain -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_devlink_hwerr -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_devlink_hwmsg -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_extlog_mem_event -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_fdb_delete -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_fib6_table_lookup -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_io_page_fault -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_kfree_skb -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_map -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_mc_event -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_napi_poll -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_neigh_cleanup_and_release -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_neigh_event_send_dead -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_neigh_event_send_done -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_neigh_timer_handler -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_neigh_update -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_neigh_update_done -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_non_standard_event -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_pelt_cfs_tp -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_pelt_dl_tp -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_pelt_irq_tp -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_pelt_rt_tp -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_pelt_se_tp -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_powernv_throttle -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_remove_device_from_group -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_rpm_idle -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_rpm_resume -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_rpm_return_int -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_rpm_suspend -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_sched_overutilized_tp -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_suspend_resume -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_tcp_send_reset -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_unmap -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_wbc_writepage -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_xdp_bulk_tx -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_xdp_exception -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_xhci_dbg_quirks -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tss_limit_invalid -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __udp4_lib_lookup -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __udp6_lib_lookup -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __udp_enqueue_schedule_skb -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __udp_gso_segment -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __unwind_start -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __usb_create_hcd -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __usb_get_extra_descriptor -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __vfs_removexattr_noperm -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __vfs_setxattr_noperm -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __vring_new_virtqueue -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __wait_rcu_gp -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __wake_up_locked -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __wake_up_locked_key -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __wake_up_locked_key_bookmark -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __wake_up_locked_sync_key -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __wake_up_sync -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __wake_up_sync_key -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __xas_next -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __xas_prev -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __xdp_release_frame -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __xenbus_register_backend -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __xenbus_register_frontend -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __xenmem_reservation_va_mapping_reset -EXPORT_SYMBOL_GPL vmlinux 0x00000000 __xenmem_reservation_va_mapping_update -EXPORT_SYMBOL_GPL vmlinux 0x00000000 _copy_from_iter_flushcache -EXPORT_SYMBOL_GPL vmlinux 0x00000000 _copy_to_iter_mcsafe -EXPORT_SYMBOL_GPL vmlinux 0x00000000 access_process_vm -EXPORT_SYMBOL_GPL vmlinux 0x00000000 account_locked_vm -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ack_all_badblocks -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acomp_request_alloc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acomp_request_free -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_bind_one -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_bus_attach_private_data -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_bus_detach_private_data -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_bus_get_ejd -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_bus_get_private_data -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_bus_get_status_handle -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_bus_register_early_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_bus_trim -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_bus_update_power -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_cppc_processor_exit -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_cppc_processor_probe -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_create_platform_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_data_fwnode_ops -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_debugfs_dir -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_dev_add_driver_gpios -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_dev_filter_resource_type -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_dev_free_resource_list -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_dev_get_dma_resources -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_dev_get_irq_type -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_dev_get_property -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_dev_get_resources -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_dev_gpio_irq_get -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_dev_irq_flags -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_dev_pm_attach -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_dev_remove_driver_gpios -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_dev_resource_address_space -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_dev_resource_ext_address_space -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_dev_resource_interrupt -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_dev_resource_io -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_dev_resource_memory -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_dev_resume -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_dev_suspend -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_device_fix_up_power -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_device_fwnode_ops -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_device_get_match_data -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_device_modalias -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_device_uevent_modalias -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_device_update_power -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_dma_configure -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_dma_controller_free -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_dma_controller_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_dma_request_slave_chan_by_index -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_dma_request_slave_chan_by_name -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_dma_simple_xlate -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_driver_match_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_ec_add_query_handler -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_ec_mark_gpe_for_wake -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_ec_remove_query_handler -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_find_child_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_get_cpuid -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_get_pci_dev -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_get_phys_id -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_get_psd_map -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_gpio_get_irq_resource -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_gpiochip_free_interrupts -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_gpiochip_request_interrupts -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_gsi_to_irq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_has_watchdog -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_initialize_hp_context -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_is_pnp_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_is_root_bridge -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_kobj -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_lpat_free_conversion_table -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_lpat_get_conversion_table -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_lpat_raw_to_temp -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_lpat_temp_to_raw -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_match_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_os_get_iomem -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_os_map_iomem -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_os_map_memory -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_os_unmap_iomem -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_os_unmap_memory -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_pci_check_ejectable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_pci_detect_ejectable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_pci_find_root -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_pm_set_bridge_wakeup -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_pm_set_device_wakeup -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_pm_wakeup_event -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_processor_claim_cst_control -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_processor_evaluate_cst -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_processor_ffh_cstate_enter -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_processor_ffh_cstate_probe -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_processor_get_performance_info -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_register_gsi -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_register_wakeup_handler -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_release_memory -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_scan_lock_acquire -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_scan_lock_release -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_set_modalias -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_subsys_complete -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_subsys_freeze -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_subsys_poweroff -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_subsys_prepare -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_subsys_restore_early -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_subsys_runtime_resume -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_subsys_runtime_suspend -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_subsys_suspend -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_subsys_suspend_late -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_subsys_suspend_noirq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_target_system_state -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_unbind_one -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_unregister_gsi -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_unregister_wakeup_handler -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_walk_dep_device_list -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpiphp_register_attention -EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpiphp_unregister_attention -EXPORT_SYMBOL_GPL vmlinux 0x00000000 add_bootloader_randomness -EXPORT_SYMBOL_GPL vmlinux 0x00000000 add_disk_randomness -EXPORT_SYMBOL_GPL vmlinux 0x00000000 add_hwgenerator_randomness -EXPORT_SYMBOL_GPL vmlinux 0x00000000 add_input_randomness -EXPORT_SYMBOL_GPL vmlinux 0x00000000 add_interrupt_randomness -EXPORT_SYMBOL_GPL vmlinux 0x00000000 add_memory -EXPORT_SYMBOL_GPL vmlinux 0x00000000 add_page_wait_queue -EXPORT_SYMBOL_GPL vmlinux 0x00000000 add_swap_extent -EXPORT_SYMBOL_GPL vmlinux 0x00000000 add_timer_on -EXPORT_SYMBOL_GPL vmlinux 0x00000000 add_to_page_cache_lru -EXPORT_SYMBOL_GPL vmlinux 0x00000000 add_uevent_var -EXPORT_SYMBOL_GPL vmlinux 0x00000000 addrconf_add_linklocal -EXPORT_SYMBOL_GPL vmlinux 0x00000000 addrconf_prefix_rcv_add_addr -EXPORT_SYMBOL_GPL vmlinux 0x00000000 adp5520_clr_bits -EXPORT_SYMBOL_GPL vmlinux 0x00000000 adp5520_read -EXPORT_SYMBOL_GPL vmlinux 0x00000000 adp5520_register_notifier -EXPORT_SYMBOL_GPL vmlinux 0x00000000 adp5520_set_bits -EXPORT_SYMBOL_GPL vmlinux 0x00000000 adp5520_unregister_notifier -EXPORT_SYMBOL_GPL vmlinux 0x00000000 adp5520_write -EXPORT_SYMBOL_GPL vmlinux 0x00000000 adxl_decode -EXPORT_SYMBOL_GPL vmlinux 0x00000000 adxl_get_component_names -EXPORT_SYMBOL_GPL vmlinux 0x00000000 aead_exit_geniv -EXPORT_SYMBOL_GPL vmlinux 0x00000000 aead_geniv_alloc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 aead_init_geniv -EXPORT_SYMBOL_GPL vmlinux 0x00000000 aead_register_instance -EXPORT_SYMBOL_GPL vmlinux 0x00000000 aer_recover_queue -EXPORT_SYMBOL_GPL vmlinux 0x00000000 agp_add_bridge -EXPORT_SYMBOL_GPL vmlinux 0x00000000 agp_memory_reserved -EXPORT_SYMBOL_GPL vmlinux 0x00000000 agp_num_entries -EXPORT_SYMBOL_GPL vmlinux 0x00000000 agp_remove_bridge -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ahash_register_instance -EXPORT_SYMBOL_GPL vmlinux 0x00000000 akcipher_register_instance -EXPORT_SYMBOL_GPL vmlinux 0x00000000 alarm_cancel -EXPORT_SYMBOL_GPL vmlinux 0x00000000 alarm_expires_remaining -EXPORT_SYMBOL_GPL vmlinux 0x00000000 alarm_forward -EXPORT_SYMBOL_GPL vmlinux 0x00000000 alarm_forward_now -EXPORT_SYMBOL_GPL vmlinux 0x00000000 alarm_init -EXPORT_SYMBOL_GPL vmlinux 0x00000000 alarm_restart -EXPORT_SYMBOL_GPL vmlinux 0x00000000 alarm_start -EXPORT_SYMBOL_GPL vmlinux 0x00000000 alarm_start_relative -EXPORT_SYMBOL_GPL vmlinux 0x00000000 alarm_try_to_cancel -EXPORT_SYMBOL_GPL vmlinux 0x00000000 alarmtimer_get_rtcdev -EXPORT_SYMBOL_GPL vmlinux 0x00000000 alg_test -EXPORT_SYMBOL_GPL vmlinux 0x00000000 all_vm_events -EXPORT_SYMBOL_GPL vmlinux 0x00000000 alloc_dax -EXPORT_SYMBOL_GPL vmlinux 0x00000000 alloc_dax_region -EXPORT_SYMBOL_GPL vmlinux 0x00000000 alloc_empty_file -EXPORT_SYMBOL_GPL vmlinux 0x00000000 alloc_iova -EXPORT_SYMBOL_GPL vmlinux 0x00000000 alloc_iova_fast -EXPORT_SYMBOL_GPL vmlinux 0x00000000 alloc_page_buffers -EXPORT_SYMBOL_GPL vmlinux 0x00000000 alloc_skb_for_msg -EXPORT_SYMBOL_GPL vmlinux 0x00000000 alloc_vm_area -EXPORT_SYMBOL_GPL vmlinux 0x00000000 alloc_workqueue -EXPORT_SYMBOL_GPL vmlinux 0x00000000 alternatives_patched -EXPORT_SYMBOL_GPL vmlinux 0x00000000 amd_cache_northbridges -EXPORT_SYMBOL_GPL vmlinux 0x00000000 amd_df_indirect_read -EXPORT_SYMBOL_GPL vmlinux 0x00000000 amd_flush_garts -EXPORT_SYMBOL_GPL vmlinux 0x00000000 amd_get_nb_id -EXPORT_SYMBOL_GPL vmlinux 0x00000000 amd_get_nodes_per_socket -EXPORT_SYMBOL_GPL vmlinux 0x00000000 amd_nb_has_feature -EXPORT_SYMBOL_GPL vmlinux 0x00000000 amd_nb_misc_ids -EXPORT_SYMBOL_GPL vmlinux 0x00000000 amd_nb_num -EXPORT_SYMBOL_GPL vmlinux 0x00000000 amd_pmu_disable_virt -EXPORT_SYMBOL_GPL vmlinux 0x00000000 amd_pmu_enable_virt -EXPORT_SYMBOL_GPL vmlinux 0x00000000 amd_smn_read -EXPORT_SYMBOL_GPL vmlinux 0x00000000 amd_smn_write -EXPORT_SYMBOL_GPL vmlinux 0x00000000 anon_inode_getfd -EXPORT_SYMBOL_GPL vmlinux 0x00000000 anon_inode_getfile -EXPORT_SYMBOL_GPL vmlinux 0x00000000 anon_transport_class_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 anon_transport_class_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 aout_dump_debugregs -EXPORT_SYMBOL_GPL vmlinux 0x00000000 apei_exec_collect_resources -EXPORT_SYMBOL_GPL vmlinux 0x00000000 apei_exec_ctx_init -EXPORT_SYMBOL_GPL vmlinux 0x00000000 apei_exec_noop -EXPORT_SYMBOL_GPL vmlinux 0x00000000 apei_exec_post_unmap_gars -EXPORT_SYMBOL_GPL vmlinux 0x00000000 apei_exec_pre_map_gars -EXPORT_SYMBOL_GPL vmlinux 0x00000000 apei_exec_read_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 apei_exec_read_register_value -EXPORT_SYMBOL_GPL vmlinux 0x00000000 apei_exec_write_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 apei_exec_write_register_value -EXPORT_SYMBOL_GPL vmlinux 0x00000000 apei_get_debugfs_dir -EXPORT_SYMBOL_GPL vmlinux 0x00000000 apei_hest_parse -EXPORT_SYMBOL_GPL vmlinux 0x00000000 apei_map_generic_address -EXPORT_SYMBOL_GPL vmlinux 0x00000000 apei_mce_report_mem_error -EXPORT_SYMBOL_GPL vmlinux 0x00000000 apei_osc_setup -EXPORT_SYMBOL_GPL vmlinux 0x00000000 apei_read -EXPORT_SYMBOL_GPL vmlinux 0x00000000 apei_resources_add -EXPORT_SYMBOL_GPL vmlinux 0x00000000 apei_resources_fini -EXPORT_SYMBOL_GPL vmlinux 0x00000000 apei_resources_release -EXPORT_SYMBOL_GPL vmlinux 0x00000000 apei_resources_request -EXPORT_SYMBOL_GPL vmlinux 0x00000000 apei_resources_sub -EXPORT_SYMBOL_GPL vmlinux 0x00000000 apei_write -EXPORT_SYMBOL_GPL vmlinux 0x00000000 apic -EXPORT_SYMBOL_GPL vmlinux 0x00000000 apply_to_existing_page_range -EXPORT_SYMBOL_GPL vmlinux 0x00000000 apply_to_page_range -EXPORT_SYMBOL_GPL vmlinux 0x00000000 arbitrary_virt_to_machine -EXPORT_SYMBOL_GPL vmlinux 0x00000000 arch_apei_enable_cmcff -EXPORT_SYMBOL_GPL vmlinux 0x00000000 arch_apei_report_mem_error -EXPORT_SYMBOL_GPL vmlinux 0x00000000 arch_haltpoll_disable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 arch_haltpoll_enable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 arch_invalidate_pmem -EXPORT_SYMBOL_GPL vmlinux 0x00000000 arch_phys_wc_index -EXPORT_SYMBOL_GPL vmlinux 0x00000000 arch_set_freq_scale -EXPORT_SYMBOL_GPL vmlinux 0x00000000 arch_wb_cache_pmem -EXPORT_SYMBOL_GPL vmlinux 0x00000000 arizona_clk32k_disable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 arizona_clk32k_enable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 arizona_dev_exit -EXPORT_SYMBOL_GPL vmlinux 0x00000000 arizona_dev_init -EXPORT_SYMBOL_GPL vmlinux 0x00000000 arizona_free_irq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 arizona_pm_ops -EXPORT_SYMBOL_GPL vmlinux 0x00000000 arizona_request_irq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 arizona_set_irq_wake -EXPORT_SYMBOL_GPL vmlinux 0x00000000 asn1_ber_decoder -EXPORT_SYMBOL_GPL vmlinux 0x00000000 asymmetric_key_generate_id -EXPORT_SYMBOL_GPL vmlinux 0x00000000 asymmetric_key_id_partial -EXPORT_SYMBOL_GPL vmlinux 0x00000000 asymmetric_key_id_same -EXPORT_SYMBOL_GPL vmlinux 0x00000000 async_schedule_node -EXPORT_SYMBOL_GPL vmlinux 0x00000000 async_schedule_node_domain -EXPORT_SYMBOL_GPL vmlinux 0x00000000 async_synchronize_cookie -EXPORT_SYMBOL_GPL vmlinux 0x00000000 async_synchronize_cookie_domain -EXPORT_SYMBOL_GPL vmlinux 0x00000000 async_synchronize_full -EXPORT_SYMBOL_GPL vmlinux 0x00000000 async_synchronize_full_domain -EXPORT_SYMBOL_GPL vmlinux 0x00000000 async_unregister_domain -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_acpi_cbl_80wire -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_acpi_gtm -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_acpi_gtm_xfermask -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_acpi_stm -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_base_port_ops -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_bmdma32_port_ops -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_bmdma_dumb_qc_prep -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_bmdma_error_handler -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_bmdma_interrupt -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_bmdma_irq_clear -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_bmdma_port_intr -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_bmdma_port_ops -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_bmdma_port_start -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_bmdma_port_start32 -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_bmdma_post_internal_cmd -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_bmdma_qc_issue -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_bmdma_qc_prep -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_bmdma_setup -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_bmdma_start -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_bmdma_status -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_bmdma_stop -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_cable_40wire -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_cable_80wire -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_cable_ignore -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_cable_sata -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_cable_unknown -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_common_sdev_attrs -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_dev_classify -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_dev_disable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_dev_next -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_dev_pair -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_dev_set_feature -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_do_dev_read_id -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_do_eh -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_do_set_mode -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_dummy_port_info -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_dummy_port_ops -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_eh_analyze_ncq_error -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_eh_freeze_port -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_eh_qc_complete -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_eh_qc_retry -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_eh_thaw_port -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_ehi_clear_desc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_ehi_push_desc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_get_cmd_descript -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_host_activate -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_host_alloc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_host_alloc_pinfo -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_host_detach -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_host_get -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_host_init -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_host_put -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_host_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_host_resume -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_host_start -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_host_suspend -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_id_c_string -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_id_string -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_id_xfermask -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_link_abort -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_link_next -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_link_offline -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_link_online -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_mode_string -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_msleep -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_noop_qc_prep -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_pack_xfermask -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_pci_bmdma_clear_simplex -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_pci_bmdma_init -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_pci_bmdma_init_one -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_pci_bmdma_prepare_host -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_pci_device_do_resume -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_pci_device_do_suspend -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_pci_device_resume -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_pci_device_suspend -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_pci_remove_one -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_pci_sff_activate_host -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_pci_sff_init_host -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_pci_sff_init_one -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_pci_sff_prepare_host -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_pci_shutdown_one -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_pio_need_iordy -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_platform_remove_one -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_port_abort -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_port_desc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_port_freeze -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_port_pbar_desc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_port_schedule_eh -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_port_wait_eh -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_qc_complete -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_qc_complete_multiple -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_qc_get_active -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_ratelimit -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sas_async_probe -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sas_port_alloc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sas_port_destroy -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sas_port_init -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sas_port_resume -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sas_port_start -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sas_port_stop -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sas_port_suspend -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sas_queuecmd -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sas_scsi_ioctl -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sas_slave_configure -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sas_sync_probe -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sas_tport_add -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sas_tport_delete -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_scsi_change_queue_depth -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_scsi_ioctl -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_scsi_port_error_handler -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_scsi_queuecmd -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_scsi_simulate -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_scsi_slave_config -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_scsi_slave_destroy -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_scsi_unlock_native_capacity -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_busy_sleep -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_check_status -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_data_xfer -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_data_xfer32 -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_dev_classify -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_dev_select -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_dma_pause -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_drain_fifo -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_error_handler -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_exec_command -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_freeze -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_hsm_move -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_interrupt -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_irq_on -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_lost_interrupt -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_pause -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_port_intr -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_port_ops -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_postreset -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_prereset -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_qc_fill_rtf -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_qc_issue -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_queue_delayed_work -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_queue_pio_task -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_queue_work -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_softreset -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_std_ports -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_tf_load -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_tf_read -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_thaw -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_wait_after_reset -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_wait_ready -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sg_init -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_slave_link_init -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_std_bios_param -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_std_error_handler -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_std_postreset -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_std_prereset -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_std_qc_defer -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_std_sched_eh -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_tf_from_fis -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_tf_to_fis -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_timing_compute -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_timing_cycle2mode -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_timing_find_mode -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_timing_merge -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_unpack_xfermask -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_wait_after_reset -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_wait_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_xfer_mask2mode -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_xfer_mode2mask -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_xfer_mode2shift -EXPORT_SYMBOL_GPL vmlinux 0x00000000 atapi_cmd_type -EXPORT_SYMBOL_GPL vmlinux 0x00000000 atomic_notifier_call_chain -EXPORT_SYMBOL_GPL vmlinux 0x00000000 atomic_notifier_chain_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 atomic_notifier_chain_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 attribute_container_classdev_to_container -EXPORT_SYMBOL_GPL vmlinux 0x00000000 attribute_container_find_class_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 attribute_container_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 attribute_container_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 audit_enabled -EXPORT_SYMBOL_GPL vmlinux 0x00000000 badblocks_check -EXPORT_SYMBOL_GPL vmlinux 0x00000000 badblocks_clear -EXPORT_SYMBOL_GPL vmlinux 0x00000000 badblocks_exit -EXPORT_SYMBOL_GPL vmlinux 0x00000000 badblocks_init -EXPORT_SYMBOL_GPL vmlinux 0x00000000 badblocks_set -EXPORT_SYMBOL_GPL vmlinux 0x00000000 badblocks_show -EXPORT_SYMBOL_GPL vmlinux 0x00000000 badblocks_store -EXPORT_SYMBOL_GPL vmlinux 0x00000000 badrange_add -EXPORT_SYMBOL_GPL vmlinux 0x00000000 badrange_forget -EXPORT_SYMBOL_GPL vmlinux 0x00000000 badrange_init -EXPORT_SYMBOL_GPL vmlinux 0x00000000 balloon_aops -EXPORT_SYMBOL_GPL vmlinux 0x00000000 balloon_page_alloc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 balloon_page_dequeue -EXPORT_SYMBOL_GPL vmlinux 0x00000000 balloon_page_enqueue -EXPORT_SYMBOL_GPL vmlinux 0x00000000 balloon_page_list_dequeue -EXPORT_SYMBOL_GPL vmlinux 0x00000000 balloon_page_list_enqueue -EXPORT_SYMBOL_GPL vmlinux 0x00000000 balloon_set_new_target -EXPORT_SYMBOL_GPL vmlinux 0x00000000 balloon_stats -EXPORT_SYMBOL_GPL vmlinux 0x00000000 battery_hook_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 battery_hook_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bd_link_disk_holder -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bd_unlink_disk_holder -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bdev_disk_changed -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bdev_read_page -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bdev_write_page -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bdi_dev_name -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bind_evtchn_to_irq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bind_evtchn_to_irqhandler -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bind_interdomain_evtchn_to_irq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bind_interdomain_evtchn_to_irqhandler -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bind_virq_to_irqhandler -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bio_alloc_mddev -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bio_associate_blkg -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bio_associate_blkg_from_css -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bio_clone_blkg_association -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bio_disassociate_blkg -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bio_trim -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bit_wait_io_timeout -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bit_wait_timeout -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_abort_request -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_add_driver_data -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_clear_pm_only -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_execute_rq_nowait -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_fill_rwbs -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_freeze_queue_start -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_insert_cloned_request -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_lld_busy -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_mq_alloc_request_hctx -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_mq_bio_list_merge -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_mq_debugfs_rq_show -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_mq_flush_busy_ctxs -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_mq_free_request -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_mq_freeze_queue -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_mq_freeze_queue_wait -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_mq_freeze_queue_wait_timeout -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_mq_map_queues -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_mq_pci_map_queues -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_mq_queue_inflight -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_mq_quiesce_queue -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_mq_quiesce_queue_nowait -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_mq_rdma_map_queues -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_mq_sched_free_hctx_data -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_mq_sched_mark_restart_hctx -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_mq_sched_request_inserted -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_mq_sched_try_insert_merge -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_mq_sched_try_merge -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_mq_start_stopped_hw_queue -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_mq_unfreeze_queue -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_mq_unquiesce_queue -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_mq_update_nr_hw_queues -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_mq_virtio_map_queues -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_op_str -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_poll -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_queue_can_use_dma_map_merging -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_queue_dma_drain -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_queue_flag_test_and_set -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_queue_max_discard_segments -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_queue_required_elevator_features -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_queue_rq_timeout -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_queue_write_cache -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_register_queue -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_req_needs_zone_write_lock -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_revalidate_disk_zones -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_rq_err_bytes -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_rq_prep_clone -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_rq_unprep_clone -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_set_pm_only -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_set_queue_dying -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_stat_enable_accounting -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_status_to_errno -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_steal_bios -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_trace_remove -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_trace_setup -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_trace_startstop -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_update_request -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blkcg_activate_policy -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blkcg_deactivate_policy -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blkcg_policy_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blkcg_policy_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blkcg_print_blkgs -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blkcg_root -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blkcg_root_css -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blkdev_ioctl -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blkdev_nr_zones -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blkdev_read_iter -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blkdev_report_zones -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blkdev_write_iter -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blkdev_zone_mgmt -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blkg_conf_finish -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blkg_conf_prep -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blkg_lookup_slowpath -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blkg_prfill_rwstat -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blkg_rwstat_exit -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blkg_rwstat_init -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blkg_rwstat_recursive_sum -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blockdev_superblock -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blocking_notifier_call_chain -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blocking_notifier_chain_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 blocking_notifier_chain_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 boot_cpu_physical_apicid -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpf_event_output -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpf_map_inc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpf_map_inc_not_zero -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpf_map_inc_with_uref -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpf_map_put -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpf_offload_dev_create -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpf_offload_dev_destroy -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpf_offload_dev_match -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpf_offload_dev_netdev_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpf_offload_dev_netdev_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpf_offload_dev_priv -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpf_prog_add -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpf_prog_alloc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpf_prog_create -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpf_prog_create_from_user -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpf_prog_destroy -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpf_prog_free -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpf_prog_get_type_dev -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpf_prog_inc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpf_prog_inc_not_zero -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpf_prog_put -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpf_prog_select_runtime -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpf_prog_sub -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpf_redirect_info -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpf_trace_run1 -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpf_trace_run10 -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpf_trace_run11 -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpf_trace_run12 -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpf_trace_run2 -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpf_trace_run3 -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpf_trace_run4 -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpf_trace_run5 -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpf_trace_run6 -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpf_trace_run7 -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpf_trace_run8 -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpf_trace_run9 -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpf_verifier_log_write -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpf_warn_invalid_xdp_action -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpfilter_ops -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bprintf -EXPORT_SYMBOL_GPL vmlinux 0x00000000 br_fdb_test_addr_hook -EXPORT_SYMBOL_GPL vmlinux 0x00000000 br_ip6_fragment -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bsg_job_done -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bsg_job_get -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bsg_job_put -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bsg_remove_queue -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bsg_scsi_register_queue -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bsg_setup_queue -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bsg_unregister_queue -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bstr_printf -EXPORT_SYMBOL_GPL vmlinux 0x00000000 btree_alloc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 btree_destroy -EXPORT_SYMBOL_GPL vmlinux 0x00000000 btree_free -EXPORT_SYMBOL_GPL vmlinux 0x00000000 btree_geo128 -EXPORT_SYMBOL_GPL vmlinux 0x00000000 btree_geo32 -EXPORT_SYMBOL_GPL vmlinux 0x00000000 btree_geo64 -EXPORT_SYMBOL_GPL vmlinux 0x00000000 btree_get_prev -EXPORT_SYMBOL_GPL vmlinux 0x00000000 btree_grim_visitor -EXPORT_SYMBOL_GPL vmlinux 0x00000000 btree_init -EXPORT_SYMBOL_GPL vmlinux 0x00000000 btree_init_mempool -EXPORT_SYMBOL_GPL vmlinux 0x00000000 btree_insert -EXPORT_SYMBOL_GPL vmlinux 0x00000000 btree_last -EXPORT_SYMBOL_GPL vmlinux 0x00000000 btree_lookup -EXPORT_SYMBOL_GPL vmlinux 0x00000000 btree_merge -EXPORT_SYMBOL_GPL vmlinux 0x00000000 btree_remove -EXPORT_SYMBOL_GPL vmlinux 0x00000000 btree_update -EXPORT_SYMBOL_GPL vmlinux 0x00000000 btree_visitor -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bus_create_file -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bus_find_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bus_for_each_dev -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bus_for_each_drv -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bus_get_device_klist -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bus_get_kset -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bus_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bus_register_notifier -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bus_remove_file -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bus_rescan_devices -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bus_set_iommu -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bus_sort_breadthfirst -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bus_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 bus_unregister_notifier -EXPORT_SYMBOL_GPL vmlinux 0x00000000 byte_rev_table -EXPORT_SYMBOL_GPL vmlinux 0x00000000 call_netevent_notifiers -EXPORT_SYMBOL_GPL vmlinux 0x00000000 call_rcu -EXPORT_SYMBOL_GPL vmlinux 0x00000000 call_rcu_tasks -EXPORT_SYMBOL_GPL vmlinux 0x00000000 call_srcu -EXPORT_SYMBOL_GPL vmlinux 0x00000000 call_switchdev_blocking_notifiers -EXPORT_SYMBOL_GPL vmlinux 0x00000000 call_switchdev_notifiers -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cancel_work_sync -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cgroup_attach_task_all -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cgroup_get_from_fd -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cgroup_get_from_path -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cgroup_path_ns -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cgroup_rstat_updated -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cgrp_dfl_root -EXPORT_SYMBOL_GPL vmlinux 0x00000000 check_move_unevictable_pages -EXPORT_SYMBOL_GPL vmlinux 0x00000000 check_tsc_unstable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 class_compat_create_link -EXPORT_SYMBOL_GPL vmlinux 0x00000000 class_compat_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 class_compat_remove_link -EXPORT_SYMBOL_GPL vmlinux 0x00000000 class_compat_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 class_create_file_ns -EXPORT_SYMBOL_GPL vmlinux 0x00000000 class_destroy -EXPORT_SYMBOL_GPL vmlinux 0x00000000 class_dev_iter_exit -EXPORT_SYMBOL_GPL vmlinux 0x00000000 class_dev_iter_init -EXPORT_SYMBOL_GPL vmlinux 0x00000000 class_dev_iter_next -EXPORT_SYMBOL_GPL vmlinux 0x00000000 class_find_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 class_for_each_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 class_interface_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 class_interface_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 class_remove_file_ns -EXPORT_SYMBOL_GPL vmlinux 0x00000000 class_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clean_acked_data_disable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clean_acked_data_enable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clean_acked_data_flush -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clean_record_shared_mapping_range -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cleanup_srcu_struct -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clear_foreign_p2m_mapping -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clear_hv_tscchange_cb -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clear_page_erms -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clear_page_orig -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clear_page_rep -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clear_selection -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clflush_cache_range -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_bulk_disable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_bulk_enable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_bulk_get_optional -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_bulk_prepare -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_bulk_put -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_bulk_unprepare -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_disable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_divider_ops -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_divider_ro_ops -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_enable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_fixed_factor_ops -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_fixed_rate_ops -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_fractional_divider_ops -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_gate_is_enabled -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_gate_ops -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_gate_restore_context -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_get_accuracy -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_get_parent -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_get_phase -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_get_rate -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_get_scaled_duty_cycle -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_has_parent -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_hw_get_flags -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_hw_get_name -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_hw_get_num_parents -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_hw_get_parent -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_hw_get_parent_by_index -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_hw_get_parent_index -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_hw_get_rate -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_hw_is_enabled -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_hw_is_prepared -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_hw_rate_is_protected -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_hw_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_hw_register_fixed_factor -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_hw_register_fractional_divider -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_hw_round_rate -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_hw_set_parent -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_hw_set_rate_range -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_hw_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_hw_unregister_composite -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_hw_unregister_divider -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_hw_unregister_fixed_factor -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_hw_unregister_fixed_rate -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_hw_unregister_gate -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_hw_unregister_mux -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_is_match -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_multiplier_ops -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_mux_determine_rate_flags -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_mux_index_to_val -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_mux_ops -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_mux_ro_ops -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_mux_val_to_index -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_notifier_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_notifier_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_prepare -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_rate_exclusive_get -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_rate_exclusive_put -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_register_divider_table -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_register_fixed_factor -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_register_fixed_rate -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_register_fractional_divider -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_register_gate -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_register_mux_table -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_restore_context -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_round_rate -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_save_context -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_set_duty_cycle -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_set_max_rate -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_set_min_rate -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_set_parent -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_set_phase -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_set_rate -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_set_rate_exclusive -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_set_rate_range -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_unprepare -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_unregister_divider -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_unregister_fixed_factor -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_unregister_fixed_rate -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_unregister_gate -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_unregister_mux -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clkdev_create -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clkdev_hw_create -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clockevent_delta2ns -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clockevents_config_and_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clockevents_register_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clockevents_unbind_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clocks_calc_mult_shift -EXPORT_SYMBOL_GPL vmlinux 0x00000000 clone_private_mount -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cm_notify_event -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cn_add_callback -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cn_del_callback -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cn_netlink_send -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cn_netlink_send_mult -EXPORT_SYMBOL_GPL vmlinux 0x00000000 compat_alloc_user_space -EXPORT_SYMBOL_GPL vmlinux 0x00000000 component_add -EXPORT_SYMBOL_GPL vmlinux 0x00000000 component_add_typed -EXPORT_SYMBOL_GPL vmlinux 0x00000000 component_bind_all -EXPORT_SYMBOL_GPL vmlinux 0x00000000 component_del -EXPORT_SYMBOL_GPL vmlinux 0x00000000 component_master_add_with_match -EXPORT_SYMBOL_GPL vmlinux 0x00000000 component_master_del -EXPORT_SYMBOL_GPL vmlinux 0x00000000 component_unbind_all -EXPORT_SYMBOL_GPL vmlinux 0x00000000 con_debug_enter -EXPORT_SYMBOL_GPL vmlinux 0x00000000 con_debug_leave -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cond_synchronize_rcu -EXPORT_SYMBOL_GPL vmlinux 0x00000000 console_drivers -EXPORT_SYMBOL_GPL vmlinux 0x00000000 console_printk -EXPORT_SYMBOL_GPL vmlinux 0x00000000 copy_from_user_nmi -EXPORT_SYMBOL_GPL vmlinux 0x00000000 copy_reserved_iova -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpci_hp_register_bus -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpci_hp_register_controller -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpci_hp_start -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpci_hp_stop -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpci_hp_unregister_bus -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpci_hp_unregister_controller -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cper_estatus_check -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cper_estatus_check_header -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cper_estatus_print -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cper_mem_err_type_str -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cper_next_record_id -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cper_severity_str -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cper_severity_to_aer -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cppc_get_desired_perf -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cppc_get_perf_caps -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cppc_get_perf_ctrs -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cppc_get_transition_latency -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cppc_set_perf -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpu_bit_bitmap -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpu_cgrp_subsys_enabled_key -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpu_cgrp_subsys_on_dfl_key -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpu_device_create -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpu_has_xfeatures -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpu_hotplug_disable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpu_hotplug_enable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpu_is_hotpluggable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpu_mitigations_auto_nosmt -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpu_mitigations_off -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpu_smt_possible -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpu_subsys -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpu_up -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpuacct_cgrp_subsys_enabled_key -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpuacct_cgrp_subsys_on_dfl_key -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpufreq_add_update_util_hook -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpufreq_boost_enabled -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpufreq_cpu_get -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpufreq_cpu_get_raw -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpufreq_cpu_put -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpufreq_dbs_governor_exit -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpufreq_dbs_governor_init -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpufreq_dbs_governor_limits -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpufreq_dbs_governor_start -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpufreq_dbs_governor_stop -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpufreq_disable_fast_switch -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpufreq_driver_fast_switch -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpufreq_driver_resolve_freq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpufreq_driver_target -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpufreq_enable_boost_support -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpufreq_enable_fast_switch -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpufreq_freq_attr_scaling_available_freqs -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpufreq_freq_attr_scaling_boost_freqs -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpufreq_freq_transition_begin -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpufreq_freq_transition_end -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpufreq_frequency_table_get_index -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpufreq_frequency_table_verify -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpufreq_generic_attr -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpufreq_generic_frequency_table_verify -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpufreq_generic_get -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpufreq_generic_init -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpufreq_get_current_driver -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpufreq_get_driver_data -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpufreq_policy_transition_delay_us -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpufreq_register_driver -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpufreq_register_governor -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpufreq_remove_update_util_hook -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpufreq_show_cpus -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpufreq_table_index_unsorted -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpufreq_unregister_driver -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpufreq_unregister_governor -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpufreq_update_limits -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpuhp_tasks_frozen -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpuidle_disable_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpuidle_enable_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpuidle_get_cpu_driver -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpuidle_get_driver -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpuidle_pause_and_lock -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpuidle_poll_state_init -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpuidle_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpuidle_register_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpuidle_register_driver -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpuidle_resume_and_unlock -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpuidle_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpuidle_unregister_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpuidle_unregister_driver -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpus_read_lock -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpus_read_trylock -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpus_read_unlock -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpuset_cgrp_subsys_enabled_key -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpuset_cgrp_subsys_on_dfl_key -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpuset_mem_spread_node -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crash_vmclear_loaded_vmcss -EXPORT_SYMBOL_GPL vmlinux 0x00000000 create_signature -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cros_ec_check_features -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cros_ec_get_sensor_count -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_aead_decrypt -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_aead_encrypt -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_aead_setauthsize -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_aead_setkey -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_aes_set_key -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_ahash_digest -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_ahash_final -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_ahash_finup -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_ahash_setkey -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_ahash_walk_first -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_alg_extsize -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_alg_list -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_alg_mod_lookup -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_alg_sem -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_alg_tested -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_alloc_acomp -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_alloc_aead -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_alloc_ahash -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_alloc_akcipher -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_alloc_base -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_alloc_kpp -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_alloc_rng -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_alloc_shash -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_alloc_skcipher -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_alloc_sync_skcipher -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_alloc_tfm -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_attr_alg_name -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_attr_u32 -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_chain -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_check_attr_type -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_cipher_decrypt_one -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_cipher_encrypt_one -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_cipher_setkey -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_comp_compress -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_comp_decompress -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_create_tfm -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_default_rng -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_del_default_rng -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_dequeue_request -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_destroy_tfm -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_dh_decode_key -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_dh_encode_key -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_dh_key_len -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_drop_spawn -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_enqueue_request -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_find_alg -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_ft_tab -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_get_attr_type -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_get_default_null_skcipher -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_get_default_rng -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_grab_aead -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_grab_ahash -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_grab_akcipher -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_grab_shash -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_grab_skcipher -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_grab_spawn -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_has_ahash -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_has_alg -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_has_skcipher -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_hash_alg_has_setkey -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_hash_walk_done -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_hash_walk_first -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_inc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_init_queue -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_inst_setname -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_it_tab -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_larval_alloc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_larval_kill -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_lookup_template -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_mod_get -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_mod_put -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_probing_notify -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_put_default_null_skcipher -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_put_default_rng -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_register_acomp -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_register_acomps -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_register_aead -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_register_aeads -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_register_ahash -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_register_ahashes -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_register_akcipher -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_register_alg -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_register_algs -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_register_instance -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_register_kpp -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_register_notifier -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_register_rng -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_register_rngs -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_register_scomp -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_register_scomps -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_register_shash -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_register_shashes -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_register_skcipher -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_register_skciphers -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_register_template -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_register_templates -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_remove_final -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_remove_spawns -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_req_done -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_rng_reset -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_shash_digest -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_shash_final -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_shash_finup -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_shash_setkey -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_shash_update -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_shoot_alg -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_skcipher_decrypt -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_skcipher_encrypt -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_skcipher_setkey -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_spawn_tfm -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_spawn_tfm2 -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_stats_aead_decrypt -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_stats_aead_encrypt -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_stats_ahash_final -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_stats_ahash_update -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_stats_akcipher_decrypt -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_stats_akcipher_encrypt -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_stats_akcipher_sign -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_stats_akcipher_verify -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_stats_compress -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_stats_decompress -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_stats_get -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_stats_init -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_stats_kpp_compute_shared_secret -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_stats_kpp_generate_public_key -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_stats_kpp_set_secret -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_stats_rng_generate -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_stats_rng_seed -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_stats_skcipher_decrypt -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_stats_skcipher_encrypt -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_type_has_alg -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_unregister_acomp -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_unregister_acomps -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_unregister_aead -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_unregister_aeads -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_unregister_ahash -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_unregister_ahashes -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_unregister_akcipher -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_unregister_alg -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_unregister_algs -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_unregister_instance -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_unregister_kpp -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_unregister_notifier -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_unregister_rng -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_unregister_rngs -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_unregister_scomp -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_unregister_scomps -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_unregister_shash -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_unregister_shashes -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_unregister_skcipher -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_unregister_skciphers -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_unregister_template -EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_unregister_templates -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cs47l24_irq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cs47l24_patch -EXPORT_SYMBOL_GPL vmlinux 0x00000000 cs47l24_spi_regmap -EXPORT_SYMBOL_GPL vmlinux 0x00000000 css_next_descendant_pre -EXPORT_SYMBOL_GPL vmlinux 0x00000000 current_is_async -EXPORT_SYMBOL_GPL vmlinux 0x00000000 d_exchange -EXPORT_SYMBOL_GPL vmlinux 0x00000000 d_walk -EXPORT_SYMBOL_GPL vmlinux 0x00000000 da903x_clr_bits -EXPORT_SYMBOL_GPL vmlinux 0x00000000 da903x_read -EXPORT_SYMBOL_GPL vmlinux 0x00000000 da903x_reads -EXPORT_SYMBOL_GPL vmlinux 0x00000000 da903x_register_notifier -EXPORT_SYMBOL_GPL vmlinux 0x00000000 da903x_set_bits -EXPORT_SYMBOL_GPL vmlinux 0x00000000 da903x_unregister_notifier -EXPORT_SYMBOL_GPL vmlinux 0x00000000 da903x_update -EXPORT_SYMBOL_GPL vmlinux 0x00000000 da903x_write -EXPORT_SYMBOL_GPL vmlinux 0x00000000 da903x_writes -EXPORT_SYMBOL_GPL vmlinux 0x00000000 da9052_adc_manual_read -EXPORT_SYMBOL_GPL vmlinux 0x00000000 da9052_adc_read_temp -EXPORT_SYMBOL_GPL vmlinux 0x00000000 da9052_disable_irq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 da9052_disable_irq_nosync -EXPORT_SYMBOL_GPL vmlinux 0x00000000 da9052_enable_irq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 da9052_free_irq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 da9052_regmap_config -EXPORT_SYMBOL_GPL vmlinux 0x00000000 da9052_request_irq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 da9055_regmap_config -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dax_alive -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dax_attribute_group -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dax_copy_from_iter -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dax_copy_to_iter -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dax_direct_access -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dax_driver_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dax_finish_sync_fault -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dax_flush -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dax_get_by_host -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dax_get_private -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dax_inode -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dax_iomap_fault -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dax_iomap_rw -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dax_layout_busy_page -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dax_read_lock -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dax_read_unlock -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dax_region_put -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dax_write_cache -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dax_write_cache_enabled -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dax_writeback_mapping_range -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dbgp_external_startup -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dbgp_reset_prep -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dbs_update -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dcookie_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dcookie_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 debug_locks -EXPORT_SYMBOL_GPL vmlinux 0x00000000 debug_locks_off -EXPORT_SYMBOL_GPL vmlinux 0x00000000 debug_locks_silent -EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_attr_read -EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_attr_write -EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_create_atomic_t -EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_create_blob -EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_create_bool -EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_create_devm_seqfile -EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_create_dir -EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_create_file -EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_create_file_size -EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_create_file_unsafe -EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_create_regset32 -EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_create_size_t -EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_create_symlink -EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_create_u16 -EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_create_u32 -EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_create_u32_array -EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_create_u64 -EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_create_u8 -EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_create_ulong -EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_create_x16 -EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_create_x32 -EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_create_x64 -EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_create_x8 -EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_file_get -EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_file_put -EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_initialized -EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_lookup -EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_print_regs32 -EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_read_file_bool -EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_real_fops -EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_remove -EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_rename -EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_write_file_bool -EXPORT_SYMBOL_GPL vmlinux 0x00000000 decrypt_blob -EXPORT_SYMBOL_GPL vmlinux 0x00000000 default_cpu_present_to_apicid -EXPORT_SYMBOL_GPL vmlinux 0x00000000 delayacct_on -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dequeue_signal -EXPORT_SYMBOL_GPL vmlinux 0x00000000 desc_to_gpio -EXPORT_SYMBOL_GPL vmlinux 0x00000000 destroy_workqueue -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_attr_em_message -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_attr_em_message_type -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_attr_link_power_management_policy -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_attr_ncq_prio_enable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_attr_sw_activity -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_attr_unload_heads -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_change_net_namespace -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_coredumpm -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_coredumpsg -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_coredumpv -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_fill_metadata_dst -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_forward_skb -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_fwnode -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_get_regmap -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_nit_active -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_clear_wake_irq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_disable_wake_irq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_domain_attach -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_domain_attach_by_id -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_domain_attach_by_name -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_domain_detach -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_domain_set -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_domain_start -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_enable_wake_irq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_genpd_set_performance_state -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_get_subsys_data -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_add -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_attach_genpd -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_cpumask_remove_table -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_detach_genpd -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_disable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_enable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_find_freq_ceil -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_find_freq_ceil_by_volt -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_find_freq_exact -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_find_freq_floor -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_find_level_exact -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_free_cpufreq_table -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_get_freq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_get_level -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_get_max_clock_latency -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_get_max_transition_latency -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_get_max_volt_latency -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_get_opp_count -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_get_opp_table -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_get_sharing_cpus -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_get_suspend_opp_freq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_get_voltage -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_init_cpufreq_table -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_is_turbo -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_put -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_put_clkname -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_put_opp_table -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_put_prop_name -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_put_regulators -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_put_supported_hw -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_register_set_opp_helper -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_remove -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_remove_all_dynamic -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_remove_table -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_set_clkname -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_set_prop_name -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_set_rate -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_set_regulators -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_set_sharing_cpus -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_set_supported_hw -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_unregister_set_opp_helper -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_put_subsys_data -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_qos_add_ancestor_request -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_qos_add_notifier -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_qos_add_request -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_qos_expose_flags -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_qos_expose_latency_limit -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_qos_expose_latency_tolerance -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_qos_flags -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_qos_hide_flags -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_qos_hide_latency_limit -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_qos_hide_latency_tolerance -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_qos_remove_notifier -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_qos_remove_request -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_qos_update_request -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_qos_update_user_latency_tolerance -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_set_dedicated_wake_irq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_set_wake_irq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_queue_xmit_nit -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_set_name -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devfreq_cooling_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devfreq_cooling_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devfreq_event_add_edev -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devfreq_event_disable_edev -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devfreq_event_enable_edev -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devfreq_event_get_edev_by_phandle -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devfreq_event_get_edev_count -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devfreq_event_get_event -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devfreq_event_is_enabled -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devfreq_event_remove_edev -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devfreq_event_reset_event -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devfreq_event_set_event -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devfreq_get_devfreq_by_phandle -EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_add -EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_add_groups -EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_add_properties -EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_attach -EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_bind_driver -EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_change_owner -EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_connection_add -EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_connection_find -EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_connection_find_match -EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_connection_remove -EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_create -EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_create_bin_file -EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_create_file -EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_create_vargs -EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_create_with_groups -EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_del -EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_destroy -EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_dma_supported -EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_find_child -EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_find_child_by_name -EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_for_each_child -EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_for_each_child_reverse -EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_get_child_node_count -EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_get_dma_attr -EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_get_match_data -EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_get_named_child_node -EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_get_next_child_node -EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_get_phy_mode -EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_init_wakeup -EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_initialize -EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_link_add -EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_link_del -EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_link_remove -EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_match_any -EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_match_devt -EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_match_fwnode -EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_match_name -EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_match_of_node -EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_move -EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_node_to_regmap -EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_pm_wait_for_dev -EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_property_match_string -EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_property_present -EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_property_read_string -EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_property_read_string_array -EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_property_read_u16_array -EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_property_read_u32_array -EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_property_read_u64_array -EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_property_read_u8_array -EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_release_driver -EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_remove_bin_file -EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_remove_file -EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_remove_file_self -EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_remove_groups -EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_remove_properties -EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_rename -EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_reprobe -EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_set_of_node_from_dev -EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_set_wakeup_capable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_set_wakeup_enable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_show_bool -EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_show_int -EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_show_ulong -EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_store_bool -EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_store_int -EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_store_ulong -EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_wakeup_disable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_wakeup_enable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devices_cgrp_subsys_enabled_key -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devices_cgrp_subsys_on_dfl_key -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_alloc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_dpipe_action_put -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_dpipe_entry_ctx_append -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_dpipe_entry_ctx_close -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_dpipe_entry_ctx_prepare -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_dpipe_headers_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_dpipe_headers_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_dpipe_match_put -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_dpipe_table_counter_enabled -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_dpipe_table_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_dpipe_table_resource_set -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_dpipe_table_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_flash_update_begin_notify -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_flash_update_end_notify -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_flash_update_status_notify -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_fmsg_arr_pair_nest_end -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_fmsg_arr_pair_nest_start -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_fmsg_binary_pair_put -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_fmsg_bool_pair_put -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_fmsg_bool_put -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_fmsg_obj_nest_end -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_fmsg_obj_nest_start -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_fmsg_pair_nest_end -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_fmsg_pair_nest_start -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_fmsg_string_pair_put -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_fmsg_string_put -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_fmsg_u32_pair_put -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_fmsg_u32_put -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_fmsg_u64_pair_put -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_fmsg_u64_put -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_fmsg_u8_pair_put -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_fmsg_u8_put -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_free -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_health_report -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_health_reporter_create -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_health_reporter_destroy -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_health_reporter_priv -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_health_reporter_recovery_done -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_health_reporter_state_update -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_info_driver_name_put -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_info_serial_number_put -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_info_version_fixed_put -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_info_version_running_put -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_info_version_stored_put -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_is_reload_failed -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_net -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_net_set -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_param_driverinit_value_get -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_param_driverinit_value_set -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_param_value_changed -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_param_value_str_fill -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_params_publish -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_params_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_params_unpublish -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_params_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_port_attrs_pci_pf_set -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_port_attrs_pci_vf_set -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_port_attrs_set -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_port_param_driverinit_value_get -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_port_param_driverinit_value_set -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_port_param_value_changed -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_port_params_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_port_params_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_port_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_port_type_clear -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_port_type_eth_set -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_port_type_ib_set -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_port_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_region_create -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_region_destroy -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_region_snapshot_create -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_region_snapshot_id_get -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_reload_disable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_reload_enable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_resource_occ_get_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_resource_occ_get_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_resource_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_resource_size_get -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_resources_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_sb_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_sb_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_trap_ctx_priv -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_trap_report -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_traps_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_traps_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_acpi_dev_add_driver_gpios -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_acpi_dev_remove_driver_gpios -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_acpi_dma_controller_free -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_acpi_dma_controller_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_add_action -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_clk_bulk_get -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_clk_bulk_get_all -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_clk_bulk_get_optional -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_clk_hw_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_clk_hw_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_clk_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_clk_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_devfreq_event_add_edev -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_devfreq_event_remove_edev -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_device_add_group -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_device_add_groups -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_device_remove_group -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_device_remove_groups -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_extcon_dev_allocate -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_extcon_dev_free -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_extcon_dev_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_extcon_dev_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_free_pages -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_free_percpu -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_fwnode_gpiod_get_index -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_fwnode_pwm_get -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_get_free_pages -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_gpio_free -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_gpio_request -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_gpio_request_one -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_gpiochip_add_data -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_gpiod_get -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_gpiod_get_array -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_gpiod_get_array_optional -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_gpiod_get_from_of_node -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_gpiod_get_index -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_gpiod_get_index_optional -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_gpiod_get_optional -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_gpiod_put -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_gpiod_put_array -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_gpiod_unhinge -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_hwmon_device_register_with_groups -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_hwmon_device_register_with_info -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_hwmon_device_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_hwrng_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_hwrng_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_hwspin_lock_free -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_hwspin_lock_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_hwspin_lock_request -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_hwspin_lock_request_specific -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_hwspin_lock_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_i2c_new_dummy_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_init_badblocks -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_irq_alloc_generic_chip -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_irq_setup_generic_chip -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_kasprintf -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_kfree -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_kmalloc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_kmemdup -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_kstrdup -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_kstrdup_const -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_led_classdev_register_ext -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_led_classdev_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_led_trigger_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_mbox_controller_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_mbox_controller_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_mdiobus_alloc_size -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_mdiobus_free -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_memremap_pages -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_memunmap_pages -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_namespace_disable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_namespace_enable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_nvdimm_memremap -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_nvmem_cell_get -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_nvmem_device_get -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_nvmem_device_put -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_nvmem_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_of_led_get -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_of_phy_get -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_of_phy_get_by_index -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_of_phy_provider_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_of_pwm_get -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_pci_epc_destroy -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_phy_create -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_phy_destroy -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_phy_get -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_phy_optional_get -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_phy_put -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_pinctrl_get -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_pinctrl_put -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_pinctrl_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_pinctrl_register_and_init -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_pinctrl_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_platform_ioremap_resource -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_platform_ioremap_resource_byname -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_power_supply_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_power_supply_register_no_ws -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_pwm_get -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_pwm_put -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_regmap_add_irq_chip -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_regmap_del_irq_chip -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_regmap_field_alloc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_regmap_field_free -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_regulator_bulk_get -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_regulator_bulk_register_supply_alias -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_regulator_bulk_unregister_supply_alias -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_regulator_get -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_regulator_get_exclusive -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_regulator_get_optional -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_regulator_put -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_regulator_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_regulator_register_notifier -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_regulator_register_supply_alias -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_regulator_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_regulator_unregister_notifier -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_regulator_unregister_supply_alias -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_release_action -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_remove_action -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_request_free_mem_region -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_request_pci_bus_resources -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_reset_control_array_get -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_reset_controller_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_rtc_allocate_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_rtc_device_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_serdev_device_open -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_spi_mem_dirmap_create -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_spi_mem_dirmap_destroy -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_spi_register_controller -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_thermal_add_hwmon_sysfs -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_thermal_of_cooling_device_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_usb_get_phy -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_usb_get_phy_by_node -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_usb_get_phy_by_phandle -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_usb_put_phy -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_watchdog_register_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devprop_gpiochip_set_names -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devres_add -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devres_alloc_node -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devres_close_group -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devres_destroy -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devres_find -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devres_for_each_res -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devres_free -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devres_get -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devres_open_group -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devres_release -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devres_release_group -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devres_remove -EXPORT_SYMBOL_GPL vmlinux 0x00000000 devres_remove_group -EXPORT_SYMBOL_GPL vmlinux 0x00000000 digsig_verify -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dio_end_io -EXPORT_SYMBOL_GPL vmlinux 0x00000000 direct_make_request -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dirty_writeback_interval -EXPORT_SYMBOL_GPL vmlinux 0x00000000 disable_hardirq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 disable_kprobe -EXPORT_SYMBOL_GPL vmlinux 0x00000000 disable_percpu_irq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 disk_get_part -EXPORT_SYMBOL_GPL vmlinux 0x00000000 disk_has_partitions -EXPORT_SYMBOL_GPL vmlinux 0x00000000 disk_map_sector_rcu -EXPORT_SYMBOL_GPL vmlinux 0x00000000 disk_part_iter_exit -EXPORT_SYMBOL_GPL vmlinux 0x00000000 disk_part_iter_init -EXPORT_SYMBOL_GPL vmlinux 0x00000000 disk_part_iter_next -EXPORT_SYMBOL_GPL vmlinux 0x00000000 display_timings_release -EXPORT_SYMBOL_GPL vmlinux 0x00000000 divider_get_val -EXPORT_SYMBOL_GPL vmlinux 0x00000000 divider_recalc_rate -EXPORT_SYMBOL_GPL vmlinux 0x00000000 divider_ro_round_rate_parent -EXPORT_SYMBOL_GPL vmlinux 0x00000000 divider_round_rate_parent -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dm_accept_partial_bio -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dm_bio_from_per_bio_data -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dm_bio_get_target_bio_nr -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dm_device_name -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dm_disk -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dm_get_dev_t -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dm_get_md -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dm_get_queue_limits -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dm_get_reserved_bio_based_ios -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dm_get_reserved_rq_based_ios -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dm_get_table_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dm_hold -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dm_internal_resume -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dm_internal_resume_fast -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dm_internal_suspend_fast -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dm_internal_suspend_noflush -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dm_noflush_suspending -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dm_path_uevent -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dm_per_bio_data -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dm_put -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dm_report_zones_cb -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dm_send_uevents -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dm_set_target_max_io_len -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dm_suspended -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dm_table_add_target_callbacks -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dm_table_device_name -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dm_table_set_type -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dma_async_device_channel_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dma_async_device_channel_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dma_buf_attach -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dma_buf_begin_cpu_access -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dma_buf_detach -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dma_buf_dynamic_attach -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dma_buf_end_cpu_access -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dma_buf_export -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dma_buf_fd -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dma_buf_get -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dma_buf_map_attachment -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dma_buf_mmap -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dma_buf_put -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dma_buf_unmap_attachment -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dma_buf_vmap -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dma_buf_vunmap -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dma_can_mmap -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dma_get_any_slave_channel -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dma_get_merge_boundary -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dma_get_required_mask -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dma_get_slave_caps -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dma_get_slave_channel -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dma_max_mapping_size -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dma_release_channel -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dma_request_chan -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dma_request_chan_by_mask -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dma_request_slave_channel -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dma_resv_get_fences_rcu -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dma_resv_test_signaled_rcu -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dma_resv_wait_timeout_rcu -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dma_run_dependencies -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dma_wait_for_async_tx -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dmaengine_desc_attach_metadata -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dmaengine_desc_get_metadata_ptr -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dmaengine_desc_set_metadata_len -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dmaengine_unmap_put -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dmar_platform_optin -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dmi_kobj -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dmi_match -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dmi_memdev_handle -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dmi_memdev_name -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dmi_memdev_size -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dmi_memdev_type -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dmi_walk -EXPORT_SYMBOL_GPL vmlinux 0x00000000 do_exit -EXPORT_SYMBOL_GPL vmlinux 0x00000000 do_machine_check -EXPORT_SYMBOL_GPL vmlinux 0x00000000 do_splice_from -EXPORT_SYMBOL_GPL vmlinux 0x00000000 do_splice_to -EXPORT_SYMBOL_GPL vmlinux 0x00000000 do_take_over_console -EXPORT_SYMBOL_GPL vmlinux 0x00000000 do_tcp_sendpages -EXPORT_SYMBOL_GPL vmlinux 0x00000000 do_trace_rcu_torture_read -EXPORT_SYMBOL_GPL vmlinux 0x00000000 do_truncate -EXPORT_SYMBOL_GPL vmlinux 0x00000000 do_unbind_con_driver -EXPORT_SYMBOL_GPL vmlinux 0x00000000 do_unregister_con_driver -EXPORT_SYMBOL_GPL vmlinux 0x00000000 do_xdp_generic -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dpm_for_each_dev -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dpm_resume_end -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dpm_resume_start -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dpm_suspend_end -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dpm_suspend_start -EXPORT_SYMBOL_GPL vmlinux 0x00000000 drain_workqueue -EXPORT_SYMBOL_GPL vmlinux 0x00000000 driver_attach -EXPORT_SYMBOL_GPL vmlinux 0x00000000 driver_create_file -EXPORT_SYMBOL_GPL vmlinux 0x00000000 driver_find -EXPORT_SYMBOL_GPL vmlinux 0x00000000 driver_find_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 driver_for_each_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 driver_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 driver_remove_file -EXPORT_SYMBOL_GPL vmlinux 0x00000000 driver_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dst_cache_destroy -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dst_cache_get -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dst_cache_get_ip4 -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dst_cache_get_ip6 -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dst_cache_init -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dst_cache_set_ip4 -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dst_cache_set_ip6 -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dummy_con -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dummy_irq_chip -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dw8250_setup_port -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dw_pcie_find_capability -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dw_pcie_find_ext_capability -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dw_pcie_host_deinit -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dw_pcie_host_init -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dw_pcie_link_set_max_speed -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dw_pcie_link_set_n_fts -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dw_pcie_msi_init -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dw_pcie_read -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dw_pcie_read_dbi -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dw_pcie_setup_rc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dw_pcie_upconfig_setup -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dw_pcie_wait_for_link -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dw_pcie_write -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dw_pcie_write_dbi -EXPORT_SYMBOL_GPL vmlinux 0x00000000 dynevent_create -EXPORT_SYMBOL_GPL vmlinux 0x00000000 e820__mapped_any -EXPORT_SYMBOL_GPL vmlinux 0x00000000 e820__mapped_raw_any -EXPORT_SYMBOL_GPL vmlinux 0x00000000 each_symbol_section -EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_device_add_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_device_alloc_ctl_info -EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_device_alloc_index -EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_device_del_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_device_free_ctl_info -EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_device_handle_ce_count -EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_device_handle_ue_count -EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_get_owner -EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_get_report_status -EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_get_sysfs_subsys -EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_has_mcs -EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_layer_name -EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_mc_add_mc_with_groups -EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_mc_alloc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_mc_del_mc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_mc_find_csrow_by_page -EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_mc_free -EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_mc_handle_error -EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_mem_types -EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_mod_work -EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_op_state -EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_pci_add_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_pci_alloc_ctl_info -EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_pci_alloc_index -EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_pci_create_generic_ctl -EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_pci_del_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_pci_free_ctl_info -EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_pci_handle_npe -EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_pci_handle_pe -EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_pci_release_generic_ctl -EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_queue_work -EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_raw_mc_handle_error -EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_set_report_status -EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_stop_work -EXPORT_SYMBOL_GPL vmlinux 0x00000000 edid_info -EXPORT_SYMBOL_GPL vmlinux 0x00000000 efi_capsule_supported -EXPORT_SYMBOL_GPL vmlinux 0x00000000 efi_capsule_update -EXPORT_SYMBOL_GPL vmlinux 0x00000000 efi_mm -EXPORT_SYMBOL_GPL vmlinux 0x00000000 efi_query_variable_store -EXPORT_SYMBOL_GPL vmlinux 0x00000000 efivar_entry_add -EXPORT_SYMBOL_GPL vmlinux 0x00000000 efivar_entry_delete -EXPORT_SYMBOL_GPL vmlinux 0x00000000 efivar_entry_find -EXPORT_SYMBOL_GPL vmlinux 0x00000000 efivar_entry_get -EXPORT_SYMBOL_GPL vmlinux 0x00000000 efivar_entry_iter -EXPORT_SYMBOL_GPL vmlinux 0x00000000 efivar_entry_iter_begin -EXPORT_SYMBOL_GPL vmlinux 0x00000000 efivar_entry_iter_end -EXPORT_SYMBOL_GPL vmlinux 0x00000000 efivar_entry_remove -EXPORT_SYMBOL_GPL vmlinux 0x00000000 efivar_entry_set -EXPORT_SYMBOL_GPL vmlinux 0x00000000 efivar_entry_set_get_size -EXPORT_SYMBOL_GPL vmlinux 0x00000000 efivar_entry_set_safe -EXPORT_SYMBOL_GPL vmlinux 0x00000000 efivar_entry_size -EXPORT_SYMBOL_GPL vmlinux 0x00000000 efivar_init -EXPORT_SYMBOL_GPL vmlinux 0x00000000 efivar_run_worker -EXPORT_SYMBOL_GPL vmlinux 0x00000000 efivar_sysfs_list -EXPORT_SYMBOL_GPL vmlinux 0x00000000 efivar_validate -EXPORT_SYMBOL_GPL vmlinux 0x00000000 efivar_variable_is_removable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 efivar_work -EXPORT_SYMBOL_GPL vmlinux 0x00000000 efivars_kobject -EXPORT_SYMBOL_GPL vmlinux 0x00000000 efivars_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 efivars_sysfs_init -EXPORT_SYMBOL_GPL vmlinux 0x00000000 efivars_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ehci_adjust_port_wakeup_flags -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ehci_cf_port_reset_rwsem -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ehci_handshake -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ehci_hub_control -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ehci_init_driver -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ehci_reset -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ehci_resume -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ehci_setup -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ehci_suspend -EXPORT_SYMBOL_GPL vmlinux 0x00000000 elfcorehdr_addr -EXPORT_SYMBOL_GPL vmlinux 0x00000000 elv_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 elv_rqhash_add -EXPORT_SYMBOL_GPL vmlinux 0x00000000 elv_rqhash_del -EXPORT_SYMBOL_GPL vmlinux 0x00000000 elv_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 emergency_restart -EXPORT_SYMBOL_GPL vmlinux 0x00000000 enable_kprobe -EXPORT_SYMBOL_GPL vmlinux 0x00000000 enable_percpu_irq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 encrypt_blob -EXPORT_SYMBOL_GPL vmlinux 0x00000000 errata -EXPORT_SYMBOL_GPL vmlinux 0x00000000 errno_to_blk_status -EXPORT_SYMBOL_GPL vmlinux 0x00000000 erst_clear -EXPORT_SYMBOL_GPL vmlinux 0x00000000 erst_disable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 erst_get_record_count -EXPORT_SYMBOL_GPL vmlinux 0x00000000 erst_get_record_id_begin -EXPORT_SYMBOL_GPL vmlinux 0x00000000 erst_get_record_id_end -EXPORT_SYMBOL_GPL vmlinux 0x00000000 erst_get_record_id_next -EXPORT_SYMBOL_GPL vmlinux 0x00000000 erst_read -EXPORT_SYMBOL_GPL vmlinux 0x00000000 erst_write -EXPORT_SYMBOL_GPL vmlinux 0x00000000 espintcp_push_skb -EXPORT_SYMBOL_GPL vmlinux 0x00000000 espintcp_queue_out -EXPORT_SYMBOL_GPL vmlinux 0x00000000 event_triggers_call -EXPORT_SYMBOL_GPL vmlinux 0x00000000 event_triggers_post_call -EXPORT_SYMBOL_GPL vmlinux 0x00000000 eventfd_ctx_fdget -EXPORT_SYMBOL_GPL vmlinux 0x00000000 eventfd_ctx_fileget -EXPORT_SYMBOL_GPL vmlinux 0x00000000 eventfd_ctx_put -EXPORT_SYMBOL_GPL vmlinux 0x00000000 eventfd_ctx_remove_wait_queue -EXPORT_SYMBOL_GPL vmlinux 0x00000000 eventfd_fget -EXPORT_SYMBOL_GPL vmlinux 0x00000000 eventfd_signal -EXPORT_SYMBOL_GPL vmlinux 0x00000000 events_sysfs_show -EXPORT_SYMBOL_GPL vmlinux 0x00000000 evict_inodes -EXPORT_SYMBOL_GPL vmlinux 0x00000000 evm_inode_init_security -EXPORT_SYMBOL_GPL vmlinux 0x00000000 evm_set_key -EXPORT_SYMBOL_GPL vmlinux 0x00000000 evm_verifyxattr -EXPORT_SYMBOL_GPL vmlinux 0x00000000 evtchn_get -EXPORT_SYMBOL_GPL vmlinux 0x00000000 evtchn_make_refcounted -EXPORT_SYMBOL_GPL vmlinux 0x00000000 evtchn_put -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ex_handler_fault -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ex_handler_fprestore -EXPORT_SYMBOL_GPL vmlinux 0x00000000 execute_in_process_context -EXPORT_SYMBOL_GPL vmlinux 0x00000000 exportfs_decode_fh -EXPORT_SYMBOL_GPL vmlinux 0x00000000 exportfs_encode_fh -EXPORT_SYMBOL_GPL vmlinux 0x00000000 exportfs_encode_inode_fh -EXPORT_SYMBOL_GPL vmlinux 0x00000000 extcon_dev_free -EXPORT_SYMBOL_GPL vmlinux 0x00000000 extcon_dev_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 extcon_dev_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 extcon_find_edev_by_node -EXPORT_SYMBOL_GPL vmlinux 0x00000000 extcon_get_edev_by_phandle -EXPORT_SYMBOL_GPL vmlinux 0x00000000 extcon_get_extcon_dev -EXPORT_SYMBOL_GPL vmlinux 0x00000000 extcon_get_property -EXPORT_SYMBOL_GPL vmlinux 0x00000000 extcon_get_property_capability -EXPORT_SYMBOL_GPL vmlinux 0x00000000 extcon_get_state -EXPORT_SYMBOL_GPL vmlinux 0x00000000 extcon_register_notifier -EXPORT_SYMBOL_GPL vmlinux 0x00000000 extcon_register_notifier_all -EXPORT_SYMBOL_GPL vmlinux 0x00000000 extcon_set_property -EXPORT_SYMBOL_GPL vmlinux 0x00000000 extcon_set_property_capability -EXPORT_SYMBOL_GPL vmlinux 0x00000000 extcon_set_property_sync -EXPORT_SYMBOL_GPL vmlinux 0x00000000 extcon_set_state -EXPORT_SYMBOL_GPL vmlinux 0x00000000 extcon_set_state_sync -EXPORT_SYMBOL_GPL vmlinux 0x00000000 extcon_sync -EXPORT_SYMBOL_GPL vmlinux 0x00000000 extcon_unregister_notifier -EXPORT_SYMBOL_GPL vmlinux 0x00000000 extcon_unregister_notifier_all -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ezx_pcap_read -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ezx_pcap_set_bits -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ezx_pcap_write -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fanout_mutex -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fat_add_entries -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fat_alloc_new_dir -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fat_attach -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fat_build_inode -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fat_detach -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fat_dir_empty -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fat_fill_super -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fat_flush_inodes -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fat_free_clusters -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fat_get_dotdot_entry -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fat_getattr -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fat_remove_entries -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fat_scan -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fat_search_long -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fat_setattr -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fat_sync_inode -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fat_time_unix2fat -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fat_truncate_time -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fat_update_time -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fb_bl_default_curve -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fb_deferred_io_cleanup -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fb_deferred_io_fsync -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fb_deferred_io_init -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fb_deferred_io_open -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fb_destroy_modelist -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fb_mode_option -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fb_notifier_call_chain -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fb_videomode_from_videomode -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fib4_rule_default -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fib6_check_nexthop -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fib6_get_table -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fib6_info_destroy_rcu -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fib6_new_table -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fib6_rule_default -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fib_add_nexthop -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fib_alias_hw_flags_set -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fib_info_nh_uses_dev -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fib_new_table -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fib_nexthop_info -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fib_nh_common_init -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fib_nh_common_release -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fib_nl_delrule -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fib_nl_newrule -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fib_rule_matchall -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fib_rules_dump -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fib_rules_lookup -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fib_rules_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fib_rules_seq_read -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fib_rules_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fib_table_lookup -EXPORT_SYMBOL_GPL vmlinux 0x00000000 file_ra_state_init -EXPORT_SYMBOL_GPL vmlinux 0x00000000 filter_match_preds -EXPORT_SYMBOL_GPL vmlinux 0x00000000 find_asymmetric_key -EXPORT_SYMBOL_GPL vmlinux 0x00000000 find_extend_vma -EXPORT_SYMBOL_GPL vmlinux 0x00000000 find_get_pid -EXPORT_SYMBOL_GPL vmlinux 0x00000000 find_iova -EXPORT_SYMBOL_GPL vmlinux 0x00000000 find_mci_by_dev -EXPORT_SYMBOL_GPL vmlinux 0x00000000 find_module -EXPORT_SYMBOL_GPL vmlinux 0x00000000 find_pid_ns -EXPORT_SYMBOL_GPL vmlinux 0x00000000 find_symbol -EXPORT_SYMBOL_GPL vmlinux 0x00000000 find_vpid -EXPORT_SYMBOL_GPL vmlinux 0x00000000 firmware_config_table -EXPORT_SYMBOL_GPL vmlinux 0x00000000 firmware_kobj -EXPORT_SYMBOL_GPL vmlinux 0x00000000 firmware_request_cache -EXPORT_SYMBOL_GPL vmlinux 0x00000000 firmware_request_nowarn -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fixed_percpu_data -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fixed_phy_add -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fixed_phy_change_carrier -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fixed_phy_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fixed_phy_register_with_gpiod -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fixed_phy_set_link_update -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fixed_phy_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fixup_user_fault -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fl6_merge_options -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fl6_update_dst -EXPORT_SYMBOL_GPL vmlinux 0x00000000 flow_indr_add_block_cb -EXPORT_SYMBOL_GPL vmlinux 0x00000000 flow_indr_block_call -EXPORT_SYMBOL_GPL vmlinux 0x00000000 flow_indr_block_cb_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 flow_indr_block_cb_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 flow_indr_del_block_cb -EXPORT_SYMBOL_GPL vmlinux 0x00000000 flush_delayed_fput -EXPORT_SYMBOL_GPL vmlinux 0x00000000 flush_work -EXPORT_SYMBOL_GPL vmlinux 0x00000000 for_each_kernel_tracepoint -EXPORT_SYMBOL_GPL vmlinux 0x00000000 force_irqthreads -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fork_usermode_blob -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fpregs_assert_state_consistent -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fpregs_mark_activate -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fpstate_init -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fpu_kernel_xstate_size -EXPORT_SYMBOL_GPL vmlinux 0x00000000 free_fib_info -EXPORT_SYMBOL_GPL vmlinux 0x00000000 free_iova -EXPORT_SYMBOL_GPL vmlinux 0x00000000 free_iova_fast -EXPORT_SYMBOL_GPL vmlinux 0x00000000 free_percpu -EXPORT_SYMBOL_GPL vmlinux 0x00000000 free_percpu_irq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 free_vm_area -EXPORT_SYMBOL_GPL vmlinux 0x00000000 freezer_cgrp_subsys_enabled_key -EXPORT_SYMBOL_GPL vmlinux 0x00000000 freezer_cgrp_subsys_on_dfl_key -EXPORT_SYMBOL_GPL vmlinux 0x00000000 freq_qos_add_notifier -EXPORT_SYMBOL_GPL vmlinux 0x00000000 freq_qos_add_request -EXPORT_SYMBOL_GPL vmlinux 0x00000000 freq_qos_remove_notifier -EXPORT_SYMBOL_GPL vmlinux 0x00000000 freq_qos_remove_request -EXPORT_SYMBOL_GPL vmlinux 0x00000000 freq_qos_update_request -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fs_dax_get_by_bdev -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fs_ftype_to_dtype -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fs_kobj -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fs_umode_to_dtype -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fs_umode_to_ftype -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fscrypt_drop_inode -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fscrypt_file_open -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fscrypt_fname_siphash -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fscrypt_get_symlink -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fscrypt_ioctl_add_key -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fscrypt_ioctl_get_key_status -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fscrypt_ioctl_get_policy_ex -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fscrypt_ioctl_remove_key -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fscrypt_ioctl_remove_key_all_users -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fscrypt_match_name -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fsl_mc_device_group -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fsnotify -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fsnotify_add_mark -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fsnotify_alloc_group -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fsnotify_destroy_mark -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fsnotify_find_mark -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fsnotify_get_cookie -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fsnotify_get_group -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fsnotify_init_mark -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fsnotify_put_group -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fsnotify_put_mark -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fsnotify_wait_marks_destroyed -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fsstack_copy_attr_all -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fsstack_copy_inode_size -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fsverity_cleanup_inode -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fsverity_enqueue_verify_work -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fsverity_file_open -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fsverity_ioctl_enable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fsverity_ioctl_measure -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fsverity_prepare_setattr -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fsverity_verify_bio -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fsverity_verify_page -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ftrace_dump -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ftrace_ops_set_global_filter -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ftrace_set_filter -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ftrace_set_filter_ip -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ftrace_set_global_filter -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ftrace_set_global_notrace -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ftrace_set_notrace -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fuse_abort_conn -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fuse_conn_get -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fuse_conn_init -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fuse_conn_put -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fuse_dev_alloc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fuse_dev_alloc_install -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fuse_dev_fiq_ops -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fuse_dev_free -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fuse_dev_install -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fuse_dev_operations -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fuse_dev_release -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fuse_direct_io -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fuse_do_ioctl -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fuse_do_open -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fuse_file_poll -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fuse_fill_super_common -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fuse_free_conn -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fuse_get_unique -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fuse_kill_sb_anon -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fuse_len_args -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fuse_request_end -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fuse_send_init -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fuse_simple_background -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fuse_sync_release -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fw_fallback_config -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fwnode_connection_find_match -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fwnode_count_parents -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fwnode_create_software_node -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fwnode_device_is_available -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fwnode_find_reference -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fwnode_get_named_child_node -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fwnode_get_named_gpiod -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fwnode_get_next_available_child_node -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fwnode_get_next_child_node -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fwnode_get_next_parent -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fwnode_get_nth_parent -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fwnode_get_parent -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fwnode_get_phy_mode -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fwnode_gpiod_get_index -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fwnode_graph_get_endpoint_by_id -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fwnode_graph_get_next_endpoint -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fwnode_graph_get_port_parent -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fwnode_graph_get_remote_endpoint -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fwnode_graph_get_remote_node -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fwnode_graph_get_remote_port -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fwnode_graph_get_remote_port_parent -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fwnode_handle_get -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fwnode_handle_put -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fwnode_property_get_reference_args -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fwnode_property_match_string -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fwnode_property_present -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fwnode_property_read_string -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fwnode_property_read_string_array -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fwnode_property_read_u16_array -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fwnode_property_read_u32_array -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fwnode_property_read_u64_array -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fwnode_property_read_u8_array -EXPORT_SYMBOL_GPL vmlinux 0x00000000 fwnode_remove_software_node -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gcd -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gdt_page -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gen10g_config_aneg -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gen_pool_avail -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gen_pool_get -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gen_pool_size -EXPORT_SYMBOL_GPL vmlinux 0x00000000 generic_access_phys -EXPORT_SYMBOL_GPL vmlinux 0x00000000 generic_device_group -EXPORT_SYMBOL_GPL vmlinux 0x00000000 generic_fh_to_dentry -EXPORT_SYMBOL_GPL vmlinux 0x00000000 generic_fh_to_parent -EXPORT_SYMBOL_GPL vmlinux 0x00000000 generic_handle_irq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 generic_online_page -EXPORT_SYMBOL_GPL vmlinux 0x00000000 generic_xdp_tx -EXPORT_SYMBOL_GPL vmlinux 0x00000000 genphy_c45_an_config_aneg -EXPORT_SYMBOL_GPL vmlinux 0x00000000 genphy_c45_an_disable_aneg -EXPORT_SYMBOL_GPL vmlinux 0x00000000 genphy_c45_aneg_done -EXPORT_SYMBOL_GPL vmlinux 0x00000000 genphy_c45_check_and_restart_aneg -EXPORT_SYMBOL_GPL vmlinux 0x00000000 genphy_c45_config_aneg -EXPORT_SYMBOL_GPL vmlinux 0x00000000 genphy_c45_pma_read_abilities -EXPORT_SYMBOL_GPL vmlinux 0x00000000 genphy_c45_pma_setup_forced -EXPORT_SYMBOL_GPL vmlinux 0x00000000 genphy_c45_read_link -EXPORT_SYMBOL_GPL vmlinux 0x00000000 genphy_c45_read_lpa -EXPORT_SYMBOL_GPL vmlinux 0x00000000 genphy_c45_read_mdix -EXPORT_SYMBOL_GPL vmlinux 0x00000000 genphy_c45_read_pma -EXPORT_SYMBOL_GPL vmlinux 0x00000000 genphy_c45_read_status -EXPORT_SYMBOL_GPL vmlinux 0x00000000 genphy_c45_restart_aneg -EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_cached_msi_msg -EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_compat_bpf_fprog -EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_compat_sigset -EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_cpu_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_cpu_idle_time -EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_cpu_idle_time_us -EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_cpu_iowait_time_us -EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_current_tty -EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_dcookie -EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_dev_pagemap -EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_device_system_crosststamp -EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_governor_parent_kobj -EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_hwpoison_page -EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_itimerspec64 -EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_kernel_page -EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_kernel_pages -EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_max_files -EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_net_ns -EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_net_ns_by_fd -EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_net_ns_by_pid -EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_old_itimerspec32 -EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_old_timespec32 -EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_phys_to_machine -EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_pid_task -EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_state_synchronize_rcu -EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_task_mm -EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_task_pid -EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_timespec64 -EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_umwait_control_msr -EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_user_pages_fast -EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_xsave_addr -EXPORT_SYMBOL_GPL vmlinux 0x00000000 getboottime64 -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gnttab_alloc_grant_references -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gnttab_alloc_pages -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gnttab_batch_copy -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gnttab_batch_map -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gnttab_cancel_free_callback -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gnttab_claim_grant_reference -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gnttab_dma_alloc_pages -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gnttab_dma_free_pages -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gnttab_empty_grant_references -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gnttab_end_foreign_access -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gnttab_end_foreign_access_ref -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gnttab_end_foreign_transfer -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gnttab_end_foreign_transfer_ref -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gnttab_foreach_grant_in_range -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gnttab_free_auto_xlat_frames -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gnttab_free_grant_reference -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gnttab_free_grant_references -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gnttab_free_pages -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gnttab_grant_foreign_access -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gnttab_grant_foreign_access_ref -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gnttab_grant_foreign_transfer -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gnttab_grant_foreign_transfer_ref -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gnttab_init -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gnttab_map_refs -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gnttab_max_grant_frames -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gnttab_pages_clear_private -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gnttab_pages_set_private -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gnttab_query_foreign_access -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gnttab_release_grant_reference -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gnttab_request_free_callback -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gnttab_setup_auto_xlat_frames -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gnttab_unmap_refs -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gnttab_unmap_refs_async -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gnttab_unmap_refs_sync -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gov_attr_set_get -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gov_attr_set_init -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gov_attr_set_put -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gov_update_cpu_data -EXPORT_SYMBOL_GPL vmlinux 0x00000000 governor_sysfs_ops -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpio_free -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpio_free_array -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpio_request -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpio_request_array -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpio_request_one -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpio_to_desc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiochip_add_data_with_key -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiochip_add_pin_range -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiochip_add_pingroup_range -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiochip_disable_irq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiochip_enable_irq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiochip_find -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiochip_free_own_desc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiochip_generic_config -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiochip_generic_free -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiochip_generic_request -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiochip_get_data -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiochip_irq_domain_activate -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiochip_irq_domain_deactivate -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiochip_irq_map -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiochip_irq_unmap -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiochip_irqchip_add_key -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiochip_irqchip_irq_valid -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiochip_is_requested -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiochip_line_is_irq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiochip_line_is_open_drain -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiochip_line_is_open_source -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiochip_line_is_persistent -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiochip_line_is_valid -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiochip_lock_as_irq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiochip_populate_parent_fwspec_fourcell -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiochip_populate_parent_fwspec_twocell -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiochip_relres_irq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiochip_remove -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiochip_remove_pin_ranges -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiochip_reqres_irq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiochip_request_own_desc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiochip_set_nested_irqchip -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiochip_unlock_as_irq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_add_hogs -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_add_lookup_table -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_cansleep -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_count -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_direction_input -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_direction_output -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_direction_output_raw -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_export -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_export_link -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_get -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_get_array -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_get_array_optional -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_get_array_value -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_get_array_value_cansleep -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_get_direction -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_get_index -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_get_index_optional -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_get_optional -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_get_raw_array_value -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_get_raw_array_value_cansleep -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_get_raw_value -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_get_raw_value_cansleep -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_get_value -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_get_value_cansleep -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_is_active_low -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_put -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_put_array -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_remove_lookup_table -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_set_array_value -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_set_array_value_cansleep -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_set_consumer_name -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_set_debounce -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_set_raw_array_value -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_set_raw_array_value_cansleep -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_set_raw_value -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_set_raw_value_cansleep -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_set_transitory -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_set_value -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_set_value_cansleep -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_to_chip -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_to_irq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_toggle_active_low -EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_unexport -EXPORT_SYMBOL_GPL vmlinux 0x00000000 guid_gen -EXPORT_SYMBOL_GPL vmlinux 0x00000000 handle_bad_irq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 handle_fasteoi_irq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 handle_fasteoi_nmi -EXPORT_SYMBOL_GPL vmlinux 0x00000000 handle_level_irq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 handle_mm_fault -EXPORT_SYMBOL_GPL vmlinux 0x00000000 handle_nested_irq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 handle_simple_irq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 handle_untracked_irq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hash_algo_name -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hash_digest_size -EXPORT_SYMBOL_GPL vmlinux 0x00000000 have_governor_per_policy -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hest_disable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hibernation_set_ops -EXPORT_SYMBOL_GPL vmlinux 0x00000000 housekeeping_affine -EXPORT_SYMBOL_GPL vmlinux 0x00000000 housekeeping_any_cpu -EXPORT_SYMBOL_GPL vmlinux 0x00000000 housekeeping_cpumask -EXPORT_SYMBOL_GPL vmlinux 0x00000000 housekeeping_enabled -EXPORT_SYMBOL_GPL vmlinux 0x00000000 housekeeping_overridden -EXPORT_SYMBOL_GPL vmlinux 0x00000000 housekeeping_test_cpu -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hpet_mask_rtc_irq_bit -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hpet_register_irq_handler -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hpet_rtc_dropped_irq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hpet_rtc_interrupt -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hpet_rtc_timer_init -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hpet_set_alarm_time -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hpet_set_periodic_freq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hpet_set_rtc_irq_bit -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hpet_unregister_irq_handler -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hrtimer_active -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hrtimer_cancel -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hrtimer_forward -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hrtimer_init -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hrtimer_init_sleeper -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hrtimer_resolution -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hrtimer_sleeper_start_expires -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hrtimer_start_range_ns -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hrtimer_try_to_cancel -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hugetlb_cgrp_subsys_enabled_key -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hugetlb_cgrp_subsys_on_dfl_key -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hv_alloc_hyperv_page -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hv_alloc_hyperv_zeroed_page -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hv_free_hyperv_page -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hv_get_tsc_page -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hv_hypercall_pg -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hv_init_clocksource -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hv_is_hibernation_supported -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hv_is_hyperv_initialized -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hv_max_vp_index -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hv_read_reference_counter -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hv_remove_crash_handler -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hv_remove_kexec_handler -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hv_remove_stimer0_irq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hv_remove_vmbus_irq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hv_setup_crash_handler -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hv_setup_kexec_handler -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hv_setup_stimer0_irq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hv_setup_vmbus_irq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hv_stimer0_isr -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hv_stimer_alloc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hv_stimer_cleanup -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hv_stimer_free -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hv_stimer_global_cleanup -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hv_stimer_legacy_cleanup -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hv_stimer_legacy_init -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hv_vp_assist_page -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hv_vp_index -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hvc_alloc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hvc_instantiate -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hvc_kick -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hvc_poll -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hvc_remove -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hw_breakpoint_restore -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hwmon_device_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hwmon_device_register_with_groups -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hwmon_device_register_with_info -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hwmon_device_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hwpoison_filter -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hwpoison_filter_dev_major -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hwpoison_filter_dev_minor -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hwpoison_filter_enable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hwpoison_filter_flags_mask -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hwpoison_filter_flags_value -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hwpoison_filter_memcg -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hwrng_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hwrng_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hwspin_lock_free -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hwspin_lock_get_id -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hwspin_lock_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hwspin_lock_request -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hwspin_lock_request_specific -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hwspin_lock_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hypercall_page -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hyperv_cleanup -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hyperv_fill_flush_guest_mapping_list -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hyperv_flush_guest_mapping -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hyperv_flush_guest_mapping_range -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hyperv_pcpu_input_arg -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hyperv_report_panic -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hyperv_report_panic_msg -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hyperv_stop_tsc_emulation -EXPORT_SYMBOL_GPL vmlinux 0x00000000 hypervisor_kobj -EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_acpi_find_adapter_by_handle -EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_acpi_find_bus_speed -EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_acpi_get_i2c_resource -EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_acpi_new_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_adapter_depth -EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_adapter_type -EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_add_numbered_adapter -EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_bus_type -EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_client_type -EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_dw_prepare_clk -EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_dw_probe -EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_dw_read_comp_param -EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_for_each_dev -EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_generic_scl_recovery -EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_get_device_id -EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_get_dma_safe_msg_buf -EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_handle_smbus_host_notify -EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_match_id -EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_new_ancillary_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_new_client_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_new_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_new_dummy_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_new_probed_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_new_scanned_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_parse_fw_timings -EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_probe_func_quick_read -EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_put_dma_safe_msg_buf -EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_recover_bus -EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_setup_smbus_alert -EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_unregister_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ibft_addr -EXPORT_SYMBOL_GPL vmlinux 0x00000000 idr_alloc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 idr_alloc_u32 -EXPORT_SYMBOL_GPL vmlinux 0x00000000 idr_find -EXPORT_SYMBOL_GPL vmlinux 0x00000000 idr_remove -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ima_file_check -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ima_file_hash -EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet6_csk_addr2sockaddr -EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet6_csk_update_pmtu -EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet6_csk_xmit -EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet6_destroy_sock -EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet6_hash -EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet6_hash_connect -EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet6_lookup -EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet6_lookup_listener -EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet6_sk_rebuild_header -EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_csk_addr2sockaddr -EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_csk_clone_lock -EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_csk_compat_getsockopt -EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_csk_compat_setsockopt -EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_csk_get_port -EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_csk_listen_start -EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_csk_listen_stop -EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_csk_reqsk_queue_hash_add -EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_csk_route_child_sock -EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_csk_route_req -EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_csk_update_pmtu -EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_ctl_sock_create -EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_ehash_locks_alloc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_ehash_nolisten -EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_getpeer -EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_hash -EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_hash_connect -EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_hashinfo2_init_mod -EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_hashinfo_init -EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_peer_base_init -EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_putpeer -EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_send_prepare -EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_twsk_alloc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_twsk_hashdance -EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_twsk_purge -EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_twsk_put -EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_unhash -EXPORT_SYMBOL_GPL vmlinux 0x00000000 init_dummy_netdev -EXPORT_SYMBOL_GPL vmlinux 0x00000000 init_iova_domain -EXPORT_SYMBOL_GPL vmlinux 0x00000000 init_iova_flush_queue -EXPORT_SYMBOL_GPL vmlinux 0x00000000 init_pid_ns -EXPORT_SYMBOL_GPL vmlinux 0x00000000 init_srcu_struct -EXPORT_SYMBOL_GPL vmlinux 0x00000000 init_user_ns -EXPORT_SYMBOL_GPL vmlinux 0x00000000 init_uts_ns -EXPORT_SYMBOL_GPL vmlinux 0x00000000 injectm -EXPORT_SYMBOL_GPL vmlinux 0x00000000 inode_congested -EXPORT_SYMBOL_GPL vmlinux 0x00000000 inode_dax -EXPORT_SYMBOL_GPL vmlinux 0x00000000 inode_sb_list_add -EXPORT_SYMBOL_GPL vmlinux 0x00000000 input_class -EXPORT_SYMBOL_GPL vmlinux 0x00000000 input_event_from_user -EXPORT_SYMBOL_GPL vmlinux 0x00000000 input_event_to_user -EXPORT_SYMBOL_GPL vmlinux 0x00000000 input_ff_create -EXPORT_SYMBOL_GPL vmlinux 0x00000000 input_ff_destroy -EXPORT_SYMBOL_GPL vmlinux 0x00000000 input_ff_effect_from_user -EXPORT_SYMBOL_GPL vmlinux 0x00000000 input_ff_erase -EXPORT_SYMBOL_GPL vmlinux 0x00000000 input_ff_event -EXPORT_SYMBOL_GPL vmlinux 0x00000000 input_ff_flush -EXPORT_SYMBOL_GPL vmlinux 0x00000000 input_ff_upload -EXPORT_SYMBOL_GPL vmlinux 0x00000000 insert_resource -EXPORT_SYMBOL_GPL vmlinux 0x00000000 int_pow -EXPORT_SYMBOL_GPL vmlinux 0x00000000 intel_iommu_enabled -EXPORT_SYMBOL_GPL vmlinux 0x00000000 intel_iommu_gfx_mapped -EXPORT_SYMBOL_GPL vmlinux 0x00000000 intel_pt_handle_vmx -EXPORT_SYMBOL_GPL vmlinux 0x00000000 intel_pt_validate_cap -EXPORT_SYMBOL_GPL vmlinux 0x00000000 intel_pt_validate_hw_cap -EXPORT_SYMBOL_GPL vmlinux 0x00000000 intel_svm_bind_mm -EXPORT_SYMBOL_GPL vmlinux 0x00000000 intel_svm_is_pasid_valid -EXPORT_SYMBOL_GPL vmlinux 0x00000000 intel_svm_unbind_mm -EXPORT_SYMBOL_GPL vmlinux 0x00000000 interval_tree_insert -EXPORT_SYMBOL_GPL vmlinux 0x00000000 interval_tree_iter_first -EXPORT_SYMBOL_GPL vmlinux 0x00000000 interval_tree_iter_next -EXPORT_SYMBOL_GPL vmlinux 0x00000000 interval_tree_remove -EXPORT_SYMBOL_GPL vmlinux 0x00000000 invalidate_bh_lrus -EXPORT_SYMBOL_GPL vmlinux 0x00000000 invalidate_inode_pages2 -EXPORT_SYMBOL_GPL vmlinux 0x00000000 invalidate_inode_pages2_range -EXPORT_SYMBOL_GPL vmlinux 0x00000000 inverse_translate -EXPORT_SYMBOL_GPL vmlinux 0x00000000 io_cgrp_subsys -EXPORT_SYMBOL_GPL vmlinux 0x00000000 io_cgrp_subsys_enabled_key -EXPORT_SYMBOL_GPL vmlinux 0x00000000 io_cgrp_subsys_on_dfl_key -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ioasid_alloc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ioasid_find -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ioasid_free -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ioasid_register_allocator -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ioasid_set_data -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ioasid_unregister_allocator -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iomap_bmap -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iomap_dio_iopoll -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iomap_dio_rw -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iomap_fiemap -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iomap_file_buffered_write -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iomap_file_unshare -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iomap_finish_ioends -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iomap_invalidatepage -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iomap_ioend_try_merge -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iomap_is_partially_uptodate -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iomap_migrate_page -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iomap_page_mkwrite -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iomap_readpage -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iomap_readpages -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iomap_releasepage -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iomap_seek_data -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iomap_seek_hole -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iomap_set_page_dirty -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iomap_sort_ioends -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iomap_swapfile_activate -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iomap_truncate_page -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iomap_writepage -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iomap_writepages -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iomap_zero_range -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_alloc_resv_region -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_attach_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_attach_group -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_aux_attach_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_aux_detach_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_aux_get_pasid -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_cache_invalidate -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_capable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_default_passthrough -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_detach_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_detach_group -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_dev_disable_feature -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_dev_enable_feature -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_dev_feature_enabled -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_dev_has_feature -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_device_link -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_device_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_device_sysfs_add -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_device_sysfs_remove -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_device_unlink -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_device_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_domain_alloc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_domain_free -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_domain_get_attr -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_domain_set_attr -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_domain_window_disable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_domain_window_enable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_fwspec_add_ids -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_fwspec_free -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_fwspec_init -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_get_domain_for_dev -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_get_group_resv_regions -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_group_add_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_group_alloc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_group_for_each_dev -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_group_get -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_group_get_by_id -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_group_get_iommudata -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_group_id -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_group_put -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_group_ref_get -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_group_register_notifier -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_group_remove_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_group_set_iommudata -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_group_set_name -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_group_unregister_notifier -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_iova_to_phys -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_map -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_map_atomic -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_map_sg -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_map_sg_atomic -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_page_response -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_present -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_register_device_fault_handler -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_report_device_fault -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_set_fault_handler -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_sva_bind_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_sva_bind_gpasid -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_sva_get_pasid -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_sva_set_ops -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_sva_unbind_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_sva_unbind_gpasid -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_unmap -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_unmap_fast -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_unregister_device_fault_handler -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ioremap_uc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iova_cache_get -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iova_cache_put -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ip4_datagram_release_cb -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ip6_append_data -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ip6_datagram_connect -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ip6_datagram_connect_v6_only -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ip6_datagram_recv_ctl -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ip6_datagram_release_cb -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ip6_datagram_send_ctl -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ip6_dst_lookup -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ip6_dst_lookup_flow -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ip6_flush_pending_frames -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ip6_input -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ip6_local_out -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ip6_pol_route -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ip6_push_pending_frames -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ip6_redirect -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ip6_route_input_lookup -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ip6_route_lookup -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ip6_route_output_flags -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ip6_route_output_flags_noref -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ip6_sk_dst_lookup_flow -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ip6_sk_redirect -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ip6_sk_update_pmtu -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ip6_update_pmtu -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ip_build_and_send_pkt -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ip_fib_metrics_init -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ip_local_out -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ip_route_output_flow -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ip_route_output_key_hash -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ip_tunnel_get_stats64 -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ip_tunnel_need_metadata -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ip_tunnel_unneed_metadata -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ip_valid_fib_dump_req -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iptunnel_handle_offloads -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iptunnel_metadata_reply -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iptunnel_xmit -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ipv4_redirect -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ipv4_sk_redirect -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ipv4_sk_update_pmtu -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ipv4_update_pmtu -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ipv6_bpf_stub -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ipv6_dup_options -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ipv6_find_tlv -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ipv6_fixup_options -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ipv6_mod_enabled -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ipv6_opt_accepted -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ipv6_proxy_select_ident -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ipv6_recv_error -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ipv6_stub -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_alloc_generic_chip -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_bypass_register_consumer -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_bypass_register_producer -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_bypass_unregister_consumer -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_bypass_unregister_producer -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_chip_ack_parent -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_chip_disable_parent -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_chip_enable_parent -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_chip_eoi_parent -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_chip_get_parent_state -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_chip_mask_ack_parent -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_chip_mask_parent -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_chip_release_resources_parent -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_chip_request_resources_parent -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_chip_set_affinity_parent -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_chip_set_parent_state -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_chip_set_type_parent -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_chip_set_wake_parent -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_chip_unmask_parent -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_create_direct_mapping -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_create_fwspec_mapping -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_create_mapping -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_create_of_mapping -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_create_strict_mappings -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_dispose_mapping -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_domain_add_legacy -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_domain_add_simple -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_domain_alloc_irqs_parent -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_domain_associate -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_domain_associate_many -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_domain_check_msi_remap -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_domain_create_hierarchy -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_domain_free_fwnode -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_domain_free_irqs_common -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_domain_free_irqs_parent -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_domain_get_irq_data -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_domain_pop_irq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_domain_push_irq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_domain_remove -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_domain_reset_irq_data -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_domain_set_hwirq_and_chip -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_domain_simple_ops -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_domain_translate_onecell -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_domain_translate_twocell -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_domain_xlate_onecell -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_domain_xlate_onetwocell -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_domain_xlate_twocell -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_find_mapping -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_find_matching_fwspec -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_free_descs -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_from_evtchn -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_gc_ack_set_bit -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_gc_mask_clr_bit -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_gc_mask_set_bit -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_generic_chip_ops -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_get_domain_generic_chip -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_get_irq_data -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_get_irqchip_state -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_get_percpu_devid_partition -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_modify_status -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_percpu_is_enabled -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_remapping_cap -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_remove_generic_chip -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_set_affinity_hint -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_set_affinity_notifier -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_set_chained_handler_and_data -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_set_chip_and_handler_name -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_set_default_host -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_set_irqchip_state -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_set_vcpu_affinity -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_setup_alt_chip -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_setup_generic_chip -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_to_pcap -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_wake_thread -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_work_queue -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_work_run -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_work_sync -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irqchip_fwnode_ops -EXPORT_SYMBOL_GPL vmlinux 0x00000000 irqd_cfg -EXPORT_SYMBOL_GPL vmlinux 0x00000000 is_binary_blacklisted -EXPORT_SYMBOL_GPL vmlinux 0x00000000 is_current_mnt_ns -EXPORT_SYMBOL_GPL vmlinux 0x00000000 is_dock_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 is_hash_blacklisted -EXPORT_SYMBOL_GPL vmlinux 0x00000000 is_hpet_enabled -EXPORT_SYMBOL_GPL vmlinux 0x00000000 is_nvdimm_sync -EXPORT_SYMBOL_GPL vmlinux 0x00000000 is_skb_forwardable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 is_software_node -EXPORT_SYMBOL_GPL vmlinux 0x00000000 is_transparent_hugepage -EXPORT_SYMBOL_GPL vmlinux 0x00000000 isa_register_driver -EXPORT_SYMBOL_GPL vmlinux 0x00000000 isa_unregister_driver -EXPORT_SYMBOL_GPL vmlinux 0x00000000 iterate_mounts -EXPORT_SYMBOL_GPL vmlinux 0x00000000 itlb_multihit_kvm_mitigation -EXPORT_SYMBOL_GPL vmlinux 0x00000000 jump_label_rate_limit -EXPORT_SYMBOL_GPL vmlinux 0x00000000 jump_label_update_timeout -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kallsyms_lookup_name -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kallsyms_on_each_symbol -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kdb_get_kbd_char -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kdb_poll_funcs -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kdb_poll_idx -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kdb_printf -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kdb_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kdb_register_flags -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kdb_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kern_mount -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kernel_fpu_begin -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kernel_fpu_end -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kernel_halt -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kernel_kobj -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kernel_power_off -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kernel_read_file -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kernel_read_file_from_fd -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kernel_read_file_from_path -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kernel_restart -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kernfs_find_and_get_ns -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kernfs_get -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kernfs_notify -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kernfs_path_from_node -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kernfs_put -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kexec_crash_loaded -EXPORT_SYMBOL_GPL vmlinux 0x00000000 key_being_used_for -EXPORT_SYMBOL_GPL vmlinux 0x00000000 key_set_timeout -EXPORT_SYMBOL_GPL vmlinux 0x00000000 key_type_asymmetric -EXPORT_SYMBOL_GPL vmlinux 0x00000000 key_type_encrypted -EXPORT_SYMBOL_GPL vmlinux 0x00000000 key_type_logon -EXPORT_SYMBOL_GPL vmlinux 0x00000000 key_type_trusted -EXPORT_SYMBOL_GPL vmlinux 0x00000000 key_type_user -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kfree_call_rcu -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kgdb_active -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kgdb_breakpoint -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kgdb_connected -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kgdb_register_io_module -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kgdb_register_nmi_console -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kgdb_schedule_breakpoint -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kgdb_unregister_io_module -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kgdb_unregister_nmi_console -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kick_all_cpus_sync -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kick_process -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kill_dax -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kill_dev_dax -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kill_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kill_pid_usb_asyncio -EXPORT_SYMBOL_GPL vmlinux 0x00000000 klist_add_before -EXPORT_SYMBOL_GPL vmlinux 0x00000000 klist_add_behind -EXPORT_SYMBOL_GPL vmlinux 0x00000000 klist_add_head -EXPORT_SYMBOL_GPL vmlinux 0x00000000 klist_add_tail -EXPORT_SYMBOL_GPL vmlinux 0x00000000 klist_del -EXPORT_SYMBOL_GPL vmlinux 0x00000000 klist_init -EXPORT_SYMBOL_GPL vmlinux 0x00000000 klist_iter_exit -EXPORT_SYMBOL_GPL vmlinux 0x00000000 klist_iter_init -EXPORT_SYMBOL_GPL vmlinux 0x00000000 klist_iter_init_node -EXPORT_SYMBOL_GPL vmlinux 0x00000000 klist_next -EXPORT_SYMBOL_GPL vmlinux 0x00000000 klist_node_attached -EXPORT_SYMBOL_GPL vmlinux 0x00000000 klist_prev -EXPORT_SYMBOL_GPL vmlinux 0x00000000 klist_remove -EXPORT_SYMBOL_GPL vmlinux 0x00000000 klp_enable_patch -EXPORT_SYMBOL_GPL vmlinux 0x00000000 klp_get_prev_state -EXPORT_SYMBOL_GPL vmlinux 0x00000000 klp_get_state -EXPORT_SYMBOL_GPL vmlinux 0x00000000 klp_shadow_alloc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 klp_shadow_free -EXPORT_SYMBOL_GPL vmlinux 0x00000000 klp_shadow_free_all -EXPORT_SYMBOL_GPL vmlinux 0x00000000 klp_shadow_get -EXPORT_SYMBOL_GPL vmlinux 0x00000000 klp_shadow_get_or_alloc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kmsg_dump_get_buffer -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kmsg_dump_get_line -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kmsg_dump_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kmsg_dump_rewind -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kmsg_dump_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kobj_ns_drop -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kobj_ns_grab_current -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kobj_sysfs_ops -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kobject_create_and_add -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kobject_get_path -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kobject_init_and_add -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kobject_move -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kobject_rename -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kobject_uevent -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kobject_uevent_env -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kprobe_event_cmd_init -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kprobe_event_delete -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kset_create_and_add -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kset_find_obj -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ksm_madvise -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kstrdup_quotable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kstrdup_quotable_cmdline -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kstrdup_quotable_file -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ksys_sync_helper -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kthread_cancel_delayed_work_sync -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kthread_cancel_work_sync -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kthread_flush_work -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kthread_flush_worker -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kthread_freezable_should_stop -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kthread_mod_delayed_work -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kthread_park -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kthread_parkme -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kthread_queue_delayed_work -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kthread_queue_work -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kthread_should_park -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kthread_unpark -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kthread_worker_fn -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ktime_add_safe -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ktime_get -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ktime_get_boot_fast_ns -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ktime_get_coarse_with_offset -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ktime_get_mono_fast_ns -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ktime_get_raw -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ktime_get_raw_fast_ns -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ktime_get_real_fast_ns -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ktime_get_real_seconds -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ktime_get_resolution_ns -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ktime_get_seconds -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ktime_get_snapshot -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ktime_get_ts64 -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ktime_get_with_offset -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ktime_mono_to_any -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kvm_arch_para_hints -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kvm_async_pf_task_wait -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kvm_async_pf_task_wake -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kvm_clock -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kvm_para_available -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kvm_read_and_reset_pf_reason -EXPORT_SYMBOL_GPL vmlinux 0x00000000 kvm_set_posted_intr_wakeup_handler -EXPORT_SYMBOL_GPL vmlinux 0x00000000 l1tf_mitigation -EXPORT_SYMBOL_GPL vmlinux 0x00000000 l1tf_vmx_mitigation -EXPORT_SYMBOL_GPL vmlinux 0x00000000 l3mdev_fib_table_by_index -EXPORT_SYMBOL_GPL vmlinux 0x00000000 l3mdev_fib_table_rcu -EXPORT_SYMBOL_GPL vmlinux 0x00000000 l3mdev_link_scope_lookup -EXPORT_SYMBOL_GPL vmlinux 0x00000000 l3mdev_master_ifindex_rcu -EXPORT_SYMBOL_GPL vmlinux 0x00000000 l3mdev_master_upper_ifindex_by_index_rcu -EXPORT_SYMBOL_GPL vmlinux 0x00000000 l3mdev_update_flow -EXPORT_SYMBOL_GPL vmlinux 0x00000000 lcm -EXPORT_SYMBOL_GPL vmlinux 0x00000000 lcm_not_zero -EXPORT_SYMBOL_GPL vmlinux 0x00000000 lease_register_notifier -EXPORT_SYMBOL_GPL vmlinux 0x00000000 lease_unregister_notifier -EXPORT_SYMBOL_GPL vmlinux 0x00000000 leave_mm -EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_blink_set -EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_blink_set_oneshot -EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_classdev_notify_brightness_hw_changed -EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_classdev_register_ext -EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_classdev_resume -EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_classdev_suspend -EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_classdev_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_colors -EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_compose_name -EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_get_default_pattern -EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_init_core -EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_put -EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_set_brightness -EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_set_brightness_nopm -EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_set_brightness_nosleep -EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_set_brightness_sync -EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_stop_software_blink -EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_sysfs_disable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_sysfs_enable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_trigger_blink -EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_trigger_blink_oneshot -EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_trigger_event -EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_trigger_read -EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_trigger_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_trigger_register_simple -EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_trigger_remove -EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_trigger_rename_static -EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_trigger_set -EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_trigger_set_default -EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_trigger_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_trigger_unregister_simple -EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_trigger_write -EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_update_brightness -EXPORT_SYMBOL_GPL vmlinux 0x00000000 leds_list -EXPORT_SYMBOL_GPL vmlinux 0x00000000 leds_list_lock -EXPORT_SYMBOL_GPL vmlinux 0x00000000 linear_hugepage_index -EXPORT_SYMBOL_GPL vmlinux 0x00000000 list_lru_add -EXPORT_SYMBOL_GPL vmlinux 0x00000000 list_lru_count_node -EXPORT_SYMBOL_GPL vmlinux 0x00000000 list_lru_count_one -EXPORT_SYMBOL_GPL vmlinux 0x00000000 list_lru_del -EXPORT_SYMBOL_GPL vmlinux 0x00000000 list_lru_destroy -EXPORT_SYMBOL_GPL vmlinux 0x00000000 list_lru_isolate -EXPORT_SYMBOL_GPL vmlinux 0x00000000 list_lru_isolate_move -EXPORT_SYMBOL_GPL vmlinux 0x00000000 list_lru_walk_node -EXPORT_SYMBOL_GPL vmlinux 0x00000000 list_lru_walk_one -EXPORT_SYMBOL_GPL vmlinux 0x00000000 llist_add_batch -EXPORT_SYMBOL_GPL vmlinux 0x00000000 llist_del_first -EXPORT_SYMBOL_GPL vmlinux 0x00000000 llist_reverse_order -EXPORT_SYMBOL_GPL vmlinux 0x00000000 load_direct_gdt -EXPORT_SYMBOL_GPL vmlinux 0x00000000 load_fixmap_gdt -EXPORT_SYMBOL_GPL vmlinux 0x00000000 local_apic_timer_c2_ok -EXPORT_SYMBOL_GPL vmlinux 0x00000000 local_touch_nmi -EXPORT_SYMBOL_GPL vmlinux 0x00000000 lock_system_sleep -EXPORT_SYMBOL_GPL vmlinux 0x00000000 locks_alloc_lock -EXPORT_SYMBOL_GPL vmlinux 0x00000000 locks_release_private -EXPORT_SYMBOL_GPL vmlinux 0x00000000 look_up_OID -EXPORT_SYMBOL_GPL vmlinux 0x00000000 lookup_address -EXPORT_SYMBOL_GPL vmlinux 0x00000000 lookup_address_in_mm -EXPORT_SYMBOL_GPL vmlinux 0x00000000 loop_backing_file -EXPORT_SYMBOL_GPL vmlinux 0x00000000 lp8788_read_byte -EXPORT_SYMBOL_GPL vmlinux 0x00000000 lp8788_read_multi_bytes -EXPORT_SYMBOL_GPL vmlinux 0x00000000 lp8788_update_bits -EXPORT_SYMBOL_GPL vmlinux 0x00000000 lp8788_write_byte -EXPORT_SYMBOL_GPL vmlinux 0x00000000 lpit_read_residency_count_address -EXPORT_SYMBOL_GPL vmlinux 0x00000000 lwtstate_free -EXPORT_SYMBOL_GPL vmlinux 0x00000000 lwtunnel_build_state -EXPORT_SYMBOL_GPL vmlinux 0x00000000 lwtunnel_cmp_encap -EXPORT_SYMBOL_GPL vmlinux 0x00000000 lwtunnel_encap_add_ops -EXPORT_SYMBOL_GPL vmlinux 0x00000000 lwtunnel_encap_del_ops -EXPORT_SYMBOL_GPL vmlinux 0x00000000 lwtunnel_fill_encap -EXPORT_SYMBOL_GPL vmlinux 0x00000000 lwtunnel_get_encap_size -EXPORT_SYMBOL_GPL vmlinux 0x00000000 lwtunnel_input -EXPORT_SYMBOL_GPL vmlinux 0x00000000 lwtunnel_output -EXPORT_SYMBOL_GPL vmlinux 0x00000000 lwtunnel_state_alloc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 lwtunnel_valid_encap_type -EXPORT_SYMBOL_GPL vmlinux 0x00000000 lwtunnel_valid_encap_type_attr -EXPORT_SYMBOL_GPL vmlinux 0x00000000 lwtunnel_xmit -EXPORT_SYMBOL_GPL vmlinux 0x00000000 lzo1x_1_compress -EXPORT_SYMBOL_GPL vmlinux 0x00000000 lzo1x_decompress_safe -EXPORT_SYMBOL_GPL vmlinux 0x00000000 lzorle1x_1_compress -EXPORT_SYMBOL_GPL vmlinux 0x00000000 machine_check_poll -EXPORT_SYMBOL_GPL vmlinux 0x00000000 map_vm_area -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mark_mounts_for_expiry -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mark_tsc_unstable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 max8997_bulk_read -EXPORT_SYMBOL_GPL vmlinux 0x00000000 max8997_bulk_write -EXPORT_SYMBOL_GPL vmlinux 0x00000000 max8997_read_reg -EXPORT_SYMBOL_GPL vmlinux 0x00000000 max8997_update_reg -EXPORT_SYMBOL_GPL vmlinux 0x00000000 max8997_write_reg -EXPORT_SYMBOL_GPL vmlinux 0x00000000 maxim_charger_calc_reg_current -EXPORT_SYMBOL_GPL vmlinux 0x00000000 maxim_charger_currents -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mbox_chan_received_data -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mbox_chan_txdone -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mbox_client_peek_data -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mbox_client_txdone -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mbox_controller_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mbox_controller_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mbox_flush -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mbox_free_channel -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mbox_request_channel -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mbox_request_channel_byname -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mbox_send_message -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mc146818_get_time -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mc146818_set_time -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mce_is_correctable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mce_is_memory_error -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mce_log -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mce_notify_irq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mce_register_decode_chain -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mce_register_injector_chain -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mce_unregister_decode_chain -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mce_unregister_injector_chain -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mce_usable_address -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mcsafe_key -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mctrl_gpio_disable_ms -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mctrl_gpio_enable_ms -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mctrl_gpio_free -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mctrl_gpio_get -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mctrl_gpio_get_outputs -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mctrl_gpio_init -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mctrl_gpio_init_noauto -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mctrl_gpio_set -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mctrl_gpio_to_gpiod -EXPORT_SYMBOL_GPL vmlinux 0x00000000 md5_zero_message_hash -EXPORT_SYMBOL_GPL vmlinux 0x00000000 md_allow_write -EXPORT_SYMBOL_GPL vmlinux 0x00000000 md_bitmap_copy_from_slot -EXPORT_SYMBOL_GPL vmlinux 0x00000000 md_bitmap_load -EXPORT_SYMBOL_GPL vmlinux 0x00000000 md_bitmap_resize -EXPORT_SYMBOL_GPL vmlinux 0x00000000 md_do_sync -EXPORT_SYMBOL_GPL vmlinux 0x00000000 md_find_rdev_nr_rcu -EXPORT_SYMBOL_GPL vmlinux 0x00000000 md_find_rdev_rcu -EXPORT_SYMBOL_GPL vmlinux 0x00000000 md_kick_rdev_from_array -EXPORT_SYMBOL_GPL vmlinux 0x00000000 md_new_event -EXPORT_SYMBOL_GPL vmlinux 0x00000000 md_rdev_clear -EXPORT_SYMBOL_GPL vmlinux 0x00000000 md_rdev_init -EXPORT_SYMBOL_GPL vmlinux 0x00000000 md_run -EXPORT_SYMBOL_GPL vmlinux 0x00000000 md_start -EXPORT_SYMBOL_GPL vmlinux 0x00000000 md_stop -EXPORT_SYMBOL_GPL vmlinux 0x00000000 md_stop_writes -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mddev_congested -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mddev_init -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mddev_init_writes_pending -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mddev_resume -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mddev_suspend -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mddev_unlock -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mdio_bus_exit -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mdio_bus_init -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mds_idle_clear -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mds_user_clear -EXPORT_SYMBOL_GPL vmlinux 0x00000000 memalloc_socks_key -EXPORT_SYMBOL_GPL vmlinux 0x00000000 memhp_auto_online -EXPORT_SYMBOL_GPL vmlinux 0x00000000 memory_add_physaddr_to_nid -EXPORT_SYMBOL_GPL vmlinux 0x00000000 memory_block_size_bytes -EXPORT_SYMBOL_GPL vmlinux 0x00000000 memory_cgrp_subsys_enabled_key -EXPORT_SYMBOL_GPL vmlinux 0x00000000 memory_cgrp_subsys_on_dfl_key -EXPORT_SYMBOL_GPL vmlinux 0x00000000 memory_failure -EXPORT_SYMBOL_GPL vmlinux 0x00000000 memory_failure_queue -EXPORT_SYMBOL_GPL vmlinux 0x00000000 memremap_pages -EXPORT_SYMBOL_GPL vmlinux 0x00000000 memunmap_pages -EXPORT_SYMBOL_GPL vmlinux 0x00000000 metadata_dst_alloc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 metadata_dst_alloc_percpu -EXPORT_SYMBOL_GPL vmlinux 0x00000000 metadata_dst_free -EXPORT_SYMBOL_GPL vmlinux 0x00000000 metadata_dst_free_percpu -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mm_account_pinned_pages -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mm_kobj -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mm_unaccount_pinned_pages -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mmc_abort_tuning -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mmc_app_cmd -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mmc_cmdq_disable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mmc_cmdq_enable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mmc_get_ext_csd -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mmc_regulator_get_supply -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mmc_regulator_set_ocr -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mmc_regulator_set_vqmmc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mmc_send_status -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mmc_send_tuning -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mmc_switch -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mmput -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mmu_interval_notifier_insert -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mmu_interval_notifier_insert_locked -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mmu_interval_notifier_remove -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mmu_interval_read_begin -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mmu_notifier_get_locked -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mmu_notifier_put -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mmu_notifier_range_update_to_read_only -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mmu_notifier_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mmu_notifier_synchronize -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mmu_notifier_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mnt_clone_write -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mnt_drop_write -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mnt_want_write -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mnt_want_write_file -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mod_delayed_work_on -EXPORT_SYMBOL_GPL vmlinux 0x00000000 modify_ftrace_direct -EXPORT_SYMBOL_GPL vmlinux 0x00000000 modify_user_hw_breakpoint -EXPORT_SYMBOL_GPL vmlinux 0x00000000 module_mutex -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mpi_alloc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mpi_cmp -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mpi_cmp_ui -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mpi_free -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mpi_get_buffer -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mpi_get_nbits -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mpi_powm -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mpi_read_buffer -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mpi_read_from_buffer -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mpi_read_raw_data -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mpi_read_raw_from_sgl -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mpi_write_to_sgl -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ms_hyperv -EXPORT_SYMBOL_GPL vmlinux 0x00000000 msi_desc_to_pci_sysdata -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mtrr_state -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mutex_lock_io -EXPORT_SYMBOL_GPL vmlinux 0x00000000 mxcsr_feature_mask -EXPORT_SYMBOL_GPL vmlinux 0x00000000 n_tty_inherit_ops -EXPORT_SYMBOL_GPL vmlinux 0x00000000 name_to_dev_t -EXPORT_SYMBOL_GPL vmlinux 0x00000000 napi_hash_del -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ncsi_register_dev -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ncsi_start_dev -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ncsi_stop_dev -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ncsi_unregister_dev -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ncsi_vlan_rx_add_vid -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ncsi_vlan_rx_kill_vid -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nd_blk_memremap_flags -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nd_blk_region_provider_data -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nd_blk_region_set_provider_data -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nd_blk_region_to_dimm -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nd_cmd_bus_desc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nd_cmd_dimm_desc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nd_cmd_in_size -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nd_cmd_out_size -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nd_fletcher64 -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nd_region_dev -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nd_region_provider_data -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nd_synchronize -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nd_tbl -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ndo_dflt_bridge_getlink -EXPORT_SYMBOL_GPL vmlinux 0x00000000 net_cls_cgrp_subsys_enabled_key -EXPORT_SYMBOL_GPL vmlinux 0x00000000 net_cls_cgrp_subsys_on_dfl_key -EXPORT_SYMBOL_GPL vmlinux 0x00000000 net_dec_egress_queue -EXPORT_SYMBOL_GPL vmlinux 0x00000000 net_dec_ingress_queue -EXPORT_SYMBOL_GPL vmlinux 0x00000000 net_dm_hw_report -EXPORT_SYMBOL_GPL vmlinux 0x00000000 net_inc_egress_queue -EXPORT_SYMBOL_GPL vmlinux 0x00000000 net_inc_ingress_queue -EXPORT_SYMBOL_GPL vmlinux 0x00000000 net_namespace_list -EXPORT_SYMBOL_GPL vmlinux 0x00000000 net_ns_get_ownership -EXPORT_SYMBOL_GPL vmlinux 0x00000000 net_ns_type_operations -EXPORT_SYMBOL_GPL vmlinux 0x00000000 net_prio_cgrp_subsys_enabled_key -EXPORT_SYMBOL_GPL vmlinux 0x00000000 net_prio_cgrp_subsys_on_dfl_key -EXPORT_SYMBOL_GPL vmlinux 0x00000000 net_rwsem -EXPORT_SYMBOL_GPL vmlinux 0x00000000 netdev_cmd_to_name -EXPORT_SYMBOL_GPL vmlinux 0x00000000 netdev_is_rx_handler_busy -EXPORT_SYMBOL_GPL vmlinux 0x00000000 netdev_rx_handler_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 netdev_rx_handler_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 netdev_set_default_ethtool_ops -EXPORT_SYMBOL_GPL vmlinux 0x00000000 netdev_walk_all_lower_dev -EXPORT_SYMBOL_GPL vmlinux 0x00000000 netdev_walk_all_lower_dev_rcu -EXPORT_SYMBOL_GPL vmlinux 0x00000000 netdev_walk_all_upper_dev_rcu -EXPORT_SYMBOL_GPL vmlinux 0x00000000 netlink_add_tap -EXPORT_SYMBOL_GPL vmlinux 0x00000000 netlink_has_listeners -EXPORT_SYMBOL_GPL vmlinux 0x00000000 netlink_remove_tap -EXPORT_SYMBOL_GPL vmlinux 0x00000000 netlink_strict_get_check -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nexthop_find_by_id -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nexthop_for_each_fib6_nh -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nexthop_free_rcu -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nexthop_select_path -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nf_checksum -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nf_checksum_partial -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nf_ct_hook -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nf_ct_zone_dflt -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nf_hook_entries_delete_raw -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nf_hook_entries_insert_raw -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nf_ip_route -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nf_ipv6_ops -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nf_log_buf_add -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nf_log_buf_close -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nf_log_buf_open -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nf_logger_find_get -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nf_logger_put -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nf_logger_request_module -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nf_nat_hook -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nf_queue -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nf_queue_entry_get_refs -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nf_queue_entry_release_refs -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nf_queue_nf_hook_drop -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nf_route -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nf_skb_duplicated -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nfnl_ct_hook -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nl_table -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nl_table_lock -EXPORT_SYMBOL_GPL vmlinux 0x00000000 no_action -EXPORT_SYMBOL_GPL vmlinux 0x00000000 node_to_amd_nb -EXPORT_SYMBOL_GPL vmlinux 0x00000000 noop_backing_dev_info -EXPORT_SYMBOL_GPL vmlinux 0x00000000 noop_direct_IO -EXPORT_SYMBOL_GPL vmlinux 0x00000000 noop_invalidatepage -EXPORT_SYMBOL_GPL vmlinux 0x00000000 noop_set_page_dirty -EXPORT_SYMBOL_GPL vmlinux 0x00000000 notify_remote_via_irq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nr_free_buffer_pages -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nr_irqs -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nr_swap_pages -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nsecs_to_jiffies -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvdimm_badblocks_populate -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvdimm_blk_region_create -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvdimm_bus_add_badrange -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvdimm_bus_check_dimm_count -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvdimm_bus_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvdimm_bus_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvdimm_clear_poison -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvdimm_cmd_mask -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvdimm_flush -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvdimm_has_cache -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvdimm_has_flush -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvdimm_in_overwrite -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvdimm_kobj -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvdimm_name -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvdimm_pmem_region_create -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvdimm_provider_data -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvdimm_region_notify -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvdimm_security_setup_events -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvdimm_setup_pfn -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvdimm_to_bus -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvdimm_volatile_region_create -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvm_get_chunk_meta -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvm_set_chunk_meta -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvmem_add_cell_lookups -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvmem_add_cell_table -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvmem_cell_get -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvmem_cell_put -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvmem_cell_read -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvmem_cell_read_u16 -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvmem_cell_read_u32 -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvmem_cell_write -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvmem_del_cell_lookups -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvmem_del_cell_table -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvmem_dev_name -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvmem_device_cell_read -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvmem_device_cell_write -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvmem_device_find -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvmem_device_get -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvmem_device_put -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvmem_device_read -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvmem_device_write -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvmem_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvmem_register_notifier -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvmem_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvmem_unregister_notifier -EXPORT_SYMBOL_GPL vmlinux 0x00000000 od_register_powersave_bias_handler -EXPORT_SYMBOL_GPL vmlinux 0x00000000 od_unregister_powersave_bias_handler -EXPORT_SYMBOL_GPL vmlinux 0x00000000 of_clk_hw_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 of_css -EXPORT_SYMBOL_GPL vmlinux 0x00000000 of_devfreq_cooling_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 of_devfreq_cooling_register_power -EXPORT_SYMBOL_GPL vmlinux 0x00000000 of_hwspin_lock_get_id -EXPORT_SYMBOL_GPL vmlinux 0x00000000 of_hwspin_lock_get_id_byname -EXPORT_SYMBOL_GPL vmlinux 0x00000000 of_led_get -EXPORT_SYMBOL_GPL vmlinux 0x00000000 of_phy_get -EXPORT_SYMBOL_GPL vmlinux 0x00000000 of_phy_provider_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 of_phy_put -EXPORT_SYMBOL_GPL vmlinux 0x00000000 of_phy_simple_xlate -EXPORT_SYMBOL_GPL vmlinux 0x00000000 of_pm_clk_add_clk -EXPORT_SYMBOL_GPL vmlinux 0x00000000 of_pm_clk_add_clks -EXPORT_SYMBOL_GPL vmlinux 0x00000000 of_pwm_get -EXPORT_SYMBOL_GPL vmlinux 0x00000000 of_pwm_xlate_with_flags -EXPORT_SYMBOL_GPL vmlinux 0x00000000 of_reset_control_array_get -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ohci_hub_control -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ohci_hub_status_data -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ohci_init_driver -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ohci_restart -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ohci_resume -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ohci_setup -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ohci_suspend -EXPORT_SYMBOL_GPL vmlinux 0x00000000 oiap -EXPORT_SYMBOL_GPL vmlinux 0x00000000 open_related_ns -EXPORT_SYMBOL_GPL vmlinux 0x00000000 orderly_poweroff -EXPORT_SYMBOL_GPL vmlinux 0x00000000 orderly_reboot -EXPORT_SYMBOL_GPL vmlinux 0x00000000 osc_pc_lpi_support_confirmed -EXPORT_SYMBOL_GPL vmlinux 0x00000000 out_of_line_wait_on_bit_timeout -EXPORT_SYMBOL_GPL vmlinux 0x00000000 page_cache_async_readahead -EXPORT_SYMBOL_GPL vmlinux 0x00000000 page_cache_sync_readahead -EXPORT_SYMBOL_GPL vmlinux 0x00000000 page_endio -EXPORT_SYMBOL_GPL vmlinux 0x00000000 page_is_ram -EXPORT_SYMBOL_GPL vmlinux 0x00000000 page_mkclean -EXPORT_SYMBOL_GPL vmlinux 0x00000000 page_poisoning_enabled -EXPORT_SYMBOL_GPL vmlinux 0x00000000 palmas_ext_control_req_config -EXPORT_SYMBOL_GPL vmlinux 0x00000000 panic_timeout -EXPORT_SYMBOL_GPL vmlinux 0x00000000 param_ops_bool_enable_only -EXPORT_SYMBOL_GPL vmlinux 0x00000000 param_set_bool_enable_only -EXPORT_SYMBOL_GPL vmlinux 0x00000000 paste_selection -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pat_enabled -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pat_pfn_immune_to_uc_mtrr -EXPORT_SYMBOL_GPL vmlinux 0x00000000 path_noexec -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pcap_adc_async -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pcap_adc_sync -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pcap_set_ts_bits -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pcap_to_irq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pcc_mbox_free_channel -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pcc_mbox_request_channel -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_add_dynid -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_assign_unassigned_bridge_resources -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_assign_unassigned_bus_resources -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_ats_disabled -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_bridge_secondary_bus_reset -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_bus_add_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_bus_max_busnr -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_bus_resource_n -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_cfg_access_lock -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_cfg_access_trylock -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_cfg_access_unlock -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_check_and_mask_intx -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_check_and_unmask_intx -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_cleanup_aer_uncorrect_error_status -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_common_swizzle -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_create_root_bus -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_create_slot -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_d3cold_disable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_d3cold_enable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_destroy_slot -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_dev_run_wake -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_device_group -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_device_is_present -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_disable_ats -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_disable_pcie_error_reporting -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_disable_pri -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_disable_rom -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_disable_sriov -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_enable_ats -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_enable_pcie_error_reporting -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_enable_rom -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_enable_sriov -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_epc_add_epf -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_epc_clear_bar -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_epc_destroy -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_epc_get -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_epc_get_features -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_epc_get_first_free_bar -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_epc_get_msi -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_epc_get_msix -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_epc_linkup -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_epc_map_addr -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_epc_mem_alloc_addr -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_epc_mem_exit -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_epc_mem_free_addr -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_epc_put -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_epc_raise_irq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_epc_remove_epf -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_epc_set_bar -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_epc_set_msi -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_epc_set_msix -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_epc_start -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_epc_stop -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_epc_unmap_addr -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_epc_write_header -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_epf_alloc_space -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_epf_bind -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_epf_create -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_epf_destroy -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_epf_free_space -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_epf_linkup -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_epf_match_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_epf_unbind -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_epf_unregister_driver -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_find_ext_capability -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_find_ht_capability -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_find_next_capability -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_find_next_ext_capability -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_find_next_ht_capability -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_generic_config_read -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_generic_config_read32 -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_generic_config_write -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_generic_config_write32 -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_host_probe -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_hp_add -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_hp_add_bridge -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_hp_create_module_link -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_hp_del -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_hp_deregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_hp_destroy -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_hp_remove_module_link -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_ignore_hotplug -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_intx -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_iomap_wc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_iomap_wc_range -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_ioremap_bar -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_ioremap_wc_bar -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_load_and_free_saved_state -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_load_saved_state -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_lock_rescan_remove -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_msi_create_irq_domain -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_msi_mask_irq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_msi_prepare -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_msi_set_desc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_msi_unmask_irq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_num_vf -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_platform_power_transition -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_power_names -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_pr3_present -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_probe_reset_bus -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_probe_reset_slot -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_remove_root_bus -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_rescan_bus -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_reset_bus -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_reset_function -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_reset_function_locked -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_restore_msi_state -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_scan_child_bus -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_set_cacheline_size -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_set_host_bridge_release -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_set_pcie_reset_state -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_slots_kset -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_sriov_configure_simple -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_sriov_get_totalvfs -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_sriov_set_totalvfs -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_stop_and_remove_bus_device_locked -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_stop_root_bus -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_store_saved_state -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_test_config_bits -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_try_reset_function -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_unlock_rescan_remove -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_user_read_config_byte -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_user_read_config_dword -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_user_read_config_word -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_user_write_config_byte -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_user_write_config_dword -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_user_write_config_word -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_vfs_assigned -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_vpd_find_info_keyword -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_vpd_find_tag -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_walk_bus -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_write_msi_msg -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_xen_swiotlb_init_late -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pcibios_scan_specific_bus -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pcie_aspm_enabled -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pcie_bus_configure_settings -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pcie_flr -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pcie_has_flr -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pcie_port_bus_type -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pcie_port_find_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pcie_update_link_speed -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pciserial_init_ports -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pciserial_remove_ports -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pciserial_resume_ports -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pciserial_suspend_ports -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pcpu_base_addr -EXPORT_SYMBOL_GPL vmlinux 0x00000000 peernet2id_alloc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 percpu_down_write -EXPORT_SYMBOL_GPL vmlinux 0x00000000 percpu_free_rwsem -EXPORT_SYMBOL_GPL vmlinux 0x00000000 percpu_ref_exit -EXPORT_SYMBOL_GPL vmlinux 0x00000000 percpu_ref_init -EXPORT_SYMBOL_GPL vmlinux 0x00000000 percpu_ref_kill_and_confirm -EXPORT_SYMBOL_GPL vmlinux 0x00000000 percpu_ref_reinit -EXPORT_SYMBOL_GPL vmlinux 0x00000000 percpu_ref_resurrect -EXPORT_SYMBOL_GPL vmlinux 0x00000000 percpu_ref_switch_to_atomic -EXPORT_SYMBOL_GPL vmlinux 0x00000000 percpu_ref_switch_to_atomic_sync -EXPORT_SYMBOL_GPL vmlinux 0x00000000 percpu_ref_switch_to_percpu -EXPORT_SYMBOL_GPL vmlinux 0x00000000 percpu_up_write -EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_assign_events -EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_aux_output_begin -EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_aux_output_end -EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_aux_output_flag -EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_aux_output_skip -EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_event_addr_filters_sync -EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_event_cgrp_subsys_enabled_key -EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_event_cgrp_subsys_on_dfl_key -EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_event_create_kernel_counter -EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_event_disable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_event_enable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_event_pause -EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_event_period -EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_event_read_value -EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_event_refresh -EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_event_release_kernel -EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_event_sysfs_show -EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_event_update_userpage -EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_get_aux -EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_get_x86_pmu_capability -EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_guest_get_msrs -EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_msr_probe -EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_pmu_migrate_context -EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_pmu_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_pmu_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_register_guest_info_callbacks -EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_swevent_get_recursion_context -EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_tp_event -EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_trace_buf_alloc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_trace_run_bpf_submit -EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_unregister_guest_info_callbacks -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pernet_ops_rwsem -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pgprot_writecombine -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pgprot_writethrough -EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_10_100_features_array -EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_10gbit_features -EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_10gbit_features_array -EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_10gbit_fec_features -EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_10gbit_fec_features_array -EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_10gbit_full_features -EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_all_ports_features_array -EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_basic_features -EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_basic_ports_array -EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_basic_t1_features -EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_basic_t1_features_array -EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_calibrate -EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_configure -EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_create -EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_create_lookup -EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_destroy -EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_driver_is_genphy -EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_driver_is_genphy_10g -EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_duplex_to_str -EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_exit -EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_fibre_port_array -EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_gbit_all_ports_features -EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_gbit_features -EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_gbit_features_array -EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_gbit_fibre_features -EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_get -EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_init -EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_led_trigger_change_speed -EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_led_triggers_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_led_triggers_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_lookup_setting -EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_modify -EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_modify_changed -EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_modify_mmd -EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_modify_mmd_changed -EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_optional_get -EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_pm_runtime_allow -EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_pm_runtime_forbid -EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_pm_runtime_get -EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_pm_runtime_get_sync -EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_pm_runtime_put -EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_pm_runtime_put_sync -EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_power_off -EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_power_on -EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_put -EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_remove_lookup -EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_reset -EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_resolve_aneg_linkmode -EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_resolve_aneg_pause -EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_restart_aneg -EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_restore_page -EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_save_page -EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_select_page -EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_set_mode_ext -EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_speed_down -EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_speed_to_str -EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_speed_up -EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_start_machine -EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_validate -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pid_nr_ns -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pid_vnr -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pids_cgrp_subsys_enabled_key -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pids_cgrp_subsys_on_dfl_key -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pin_user_pages_fast -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pinconf_generic_dump_config -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pinctrl_add_gpio_range -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pinctrl_add_gpio_ranges -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pinctrl_dev_get_devname -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pinctrl_dev_get_drvdata -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pinctrl_dev_get_name -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pinctrl_enable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pinctrl_find_and_add_gpio_range -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pinctrl_find_gpio_range_from_pin -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pinctrl_find_gpio_range_from_pin_nolock -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pinctrl_force_default -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pinctrl_force_sleep -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pinctrl_get -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pinctrl_get_group_pins -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pinctrl_gpio_can_use_line -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pinctrl_gpio_direction_input -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pinctrl_gpio_direction_output -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pinctrl_gpio_free -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pinctrl_gpio_request -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pinctrl_gpio_set_config -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pinctrl_lookup_state -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pinctrl_pm_select_default_state -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pinctrl_pm_select_idle_state -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pinctrl_pm_select_sleep_state -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pinctrl_put -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pinctrl_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pinctrl_register_and_init -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pinctrl_register_mappings -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pinctrl_remove_gpio_range -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pinctrl_select_default_state -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pinctrl_select_state -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pinctrl_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pinctrl_unregister_mappings -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pinctrl_utils_add_config -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pinctrl_utils_add_map_configs -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pinctrl_utils_add_map_mux -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pinctrl_utils_free_map -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pinctrl_utils_reserve_map -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ping_bind -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ping_close -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ping_common_sendmsg -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ping_err -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ping_get_port -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ping_getfrag -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ping_hash -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ping_init_sock -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ping_queue_rcv_skb -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ping_rcv -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ping_recvmsg -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ping_seq_next -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ping_seq_start -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ping_seq_stop -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ping_unhash -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pingv6_ops -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pingv6_prot -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pkcs7_free_message -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pkcs7_get_content_data -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pkcs7_parse_message -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pkcs7_validate_trust -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pkcs7_verify -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pktgen_xfrm_outer_mode_output -EXPORT_SYMBOL_GPL vmlinux 0x00000000 platform_add_devices -EXPORT_SYMBOL_GPL vmlinux 0x00000000 platform_bus -EXPORT_SYMBOL_GPL vmlinux 0x00000000 platform_bus_type -EXPORT_SYMBOL_GPL vmlinux 0x00000000 platform_device_add -EXPORT_SYMBOL_GPL vmlinux 0x00000000 platform_device_add_data -EXPORT_SYMBOL_GPL vmlinux 0x00000000 platform_device_add_properties -EXPORT_SYMBOL_GPL vmlinux 0x00000000 platform_device_add_resources -EXPORT_SYMBOL_GPL vmlinux 0x00000000 platform_device_alloc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 platform_device_del -EXPORT_SYMBOL_GPL vmlinux 0x00000000 platform_device_put -EXPORT_SYMBOL_GPL vmlinux 0x00000000 platform_device_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 platform_device_register_full -EXPORT_SYMBOL_GPL vmlinux 0x00000000 platform_device_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 platform_driver_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 platform_find_device_by_driver -EXPORT_SYMBOL_GPL vmlinux 0x00000000 platform_get_irq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 platform_get_irq_byname -EXPORT_SYMBOL_GPL vmlinux 0x00000000 platform_get_irq_byname_optional -EXPORT_SYMBOL_GPL vmlinux 0x00000000 platform_get_irq_optional -EXPORT_SYMBOL_GPL vmlinux 0x00000000 platform_get_resource -EXPORT_SYMBOL_GPL vmlinux 0x00000000 platform_get_resource_byname -EXPORT_SYMBOL_GPL vmlinux 0x00000000 platform_irq_count -EXPORT_SYMBOL_GPL vmlinux 0x00000000 platform_msi_domain_alloc_irqs -EXPORT_SYMBOL_GPL vmlinux 0x00000000 platform_msi_domain_free_irqs -EXPORT_SYMBOL_GPL vmlinux 0x00000000 platform_thermal_package_notify -EXPORT_SYMBOL_GPL vmlinux 0x00000000 platform_thermal_package_rate_control -EXPORT_SYMBOL_GPL vmlinux 0x00000000 platform_unregister_drivers -EXPORT_SYMBOL_GPL vmlinux 0x00000000 play_idle_precise -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_clk_add -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_clk_add_clk -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_clk_add_notifier -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_clk_create -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_clk_destroy -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_clk_init -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_clk_remove -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_clk_remove_clk -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_clk_resume -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_clk_runtime_resume -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_clk_runtime_suspend -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_clk_suspend -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_generic_freeze -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_generic_freeze_late -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_generic_freeze_noirq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_generic_poweroff -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_generic_poweroff_late -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_generic_poweroff_noirq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_generic_restore -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_generic_restore_early -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_generic_restore_noirq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_generic_resume -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_generic_resume_early -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_generic_resume_noirq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_generic_runtime_resume -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_generic_runtime_suspend -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_generic_suspend -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_generic_suspend_late -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_generic_suspend_noirq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_generic_thaw -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_generic_thaw_early -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_generic_thaw_noirq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_genpd_add_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_genpd_add_subdomain -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_genpd_init -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_genpd_remove -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_genpd_remove_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_genpd_remove_subdomain -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_genpd_syscore_poweroff -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_genpd_syscore_poweron -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_power_off_prepare -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_print_active_wakeup_sources -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_qos_add_notifier -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_qos_add_request -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_qos_remove_notifier -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_qos_remove_request -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_qos_request -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_qos_request_active -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_qos_update_request -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_relax -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_runtime_allow -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_runtime_autosuspend_expiration -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_runtime_barrier -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_runtime_enable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_runtime_forbid -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_runtime_force_resume -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_runtime_force_suspend -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_runtime_get_if_in_use -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_runtime_irq_safe -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_runtime_no_callbacks -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_runtime_set_autosuspend_delay -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_runtime_set_memalloc_noio -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_runtime_suspended_time -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_schedule_suspend -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_stay_awake -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_suspend_default_s2idle -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_suspend_global_flags -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_suspend_target_state -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_system_wakeup -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_trace_rtc_abused -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_wakeup_dev_event -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_wakeup_ws_event -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_wq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pmc_atom_read -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pmc_atom_write -EXPORT_SYMBOL_GPL vmlinux 0x00000000 policy_has_boost_freq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 posix_acl_access_xattr_handler -EXPORT_SYMBOL_GPL vmlinux 0x00000000 posix_acl_create -EXPORT_SYMBOL_GPL vmlinux 0x00000000 posix_acl_default_xattr_handler -EXPORT_SYMBOL_GPL vmlinux 0x00000000 posix_clock_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 posix_clock_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 power_group_name -EXPORT_SYMBOL_GPL vmlinux 0x00000000 power_supply_am_i_supplied -EXPORT_SYMBOL_GPL vmlinux 0x00000000 power_supply_batinfo_ocv2cap -EXPORT_SYMBOL_GPL vmlinux 0x00000000 power_supply_changed -EXPORT_SYMBOL_GPL vmlinux 0x00000000 power_supply_class -EXPORT_SYMBOL_GPL vmlinux 0x00000000 power_supply_external_power_changed -EXPORT_SYMBOL_GPL vmlinux 0x00000000 power_supply_find_ocv2cap_table -EXPORT_SYMBOL_GPL vmlinux 0x00000000 power_supply_get_battery_info -EXPORT_SYMBOL_GPL vmlinux 0x00000000 power_supply_get_by_name -EXPORT_SYMBOL_GPL vmlinux 0x00000000 power_supply_get_drvdata -EXPORT_SYMBOL_GPL vmlinux 0x00000000 power_supply_get_property -EXPORT_SYMBOL_GPL vmlinux 0x00000000 power_supply_is_system_supplied -EXPORT_SYMBOL_GPL vmlinux 0x00000000 power_supply_notifier -EXPORT_SYMBOL_GPL vmlinux 0x00000000 power_supply_ocv2cap_simple -EXPORT_SYMBOL_GPL vmlinux 0x00000000 power_supply_powers -EXPORT_SYMBOL_GPL vmlinux 0x00000000 power_supply_property_is_writeable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 power_supply_put -EXPORT_SYMBOL_GPL vmlinux 0x00000000 power_supply_put_battery_info -EXPORT_SYMBOL_GPL vmlinux 0x00000000 power_supply_reg_notifier -EXPORT_SYMBOL_GPL vmlinux 0x00000000 power_supply_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 power_supply_register_no_ws -EXPORT_SYMBOL_GPL vmlinux 0x00000000 power_supply_set_battery_charged -EXPORT_SYMBOL_GPL vmlinux 0x00000000 power_supply_set_input_current_limit_from_supplier -EXPORT_SYMBOL_GPL vmlinux 0x00000000 power_supply_set_property -EXPORT_SYMBOL_GPL vmlinux 0x00000000 power_supply_temp2resist_simple -EXPORT_SYMBOL_GPL vmlinux 0x00000000 power_supply_unreg_notifier -EXPORT_SYMBOL_GPL vmlinux 0x00000000 power_supply_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 powercap_register_control_type -EXPORT_SYMBOL_GPL vmlinux 0x00000000 powercap_register_zone -EXPORT_SYMBOL_GPL vmlinux 0x00000000 powercap_unregister_control_type -EXPORT_SYMBOL_GPL vmlinux 0x00000000 powercap_unregister_zone -EXPORT_SYMBOL_GPL vmlinux 0x00000000 preempt_notifier_dec -EXPORT_SYMBOL_GPL vmlinux 0x00000000 preempt_notifier_inc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 preempt_notifier_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 preempt_notifier_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 probe_kernel_read -EXPORT_SYMBOL_GPL vmlinux 0x00000000 probe_kernel_write -EXPORT_SYMBOL_GPL vmlinux 0x00000000 probe_user_read -EXPORT_SYMBOL_GPL vmlinux 0x00000000 probe_user_write -EXPORT_SYMBOL_GPL vmlinux 0x00000000 proc_create_net_data -EXPORT_SYMBOL_GPL vmlinux 0x00000000 proc_create_net_data_write -EXPORT_SYMBOL_GPL vmlinux 0x00000000 proc_create_net_single -EXPORT_SYMBOL_GPL vmlinux 0x00000000 proc_create_net_single_write -EXPORT_SYMBOL_GPL vmlinux 0x00000000 proc_douintvec_minmax -EXPORT_SYMBOL_GPL vmlinux 0x00000000 proc_get_parent_data -EXPORT_SYMBOL_GPL vmlinux 0x00000000 proc_mkdir_data -EXPORT_SYMBOL_GPL vmlinux 0x00000000 prof_on -EXPORT_SYMBOL_GPL vmlinux 0x00000000 profile_event_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 profile_event_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 profile_hits -EXPORT_SYMBOL_GPL vmlinux 0x00000000 property_entries_dup -EXPORT_SYMBOL_GPL vmlinux 0x00000000 property_entries_free -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pskb_put -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pstore_name_to_type -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pstore_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pstore_type_to_name -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pstore_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ptdump_walk_pgd_level_debugfs -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ptp_classify_raw -EXPORT_SYMBOL_GPL vmlinux 0x00000000 public_key_free -EXPORT_SYMBOL_GPL vmlinux 0x00000000 public_key_signature_free -EXPORT_SYMBOL_GPL vmlinux 0x00000000 public_key_subtype -EXPORT_SYMBOL_GPL vmlinux 0x00000000 public_key_verify_signature -EXPORT_SYMBOL_GPL vmlinux 0x00000000 put_dax -EXPORT_SYMBOL_GPL vmlinux 0x00000000 put_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 put_iova_domain -EXPORT_SYMBOL_GPL vmlinux 0x00000000 put_itimerspec64 -EXPORT_SYMBOL_GPL vmlinux 0x00000000 put_old_itimerspec32 -EXPORT_SYMBOL_GPL vmlinux 0x00000000 put_old_timespec32 -EXPORT_SYMBOL_GPL vmlinux 0x00000000 put_pid -EXPORT_SYMBOL_GPL vmlinux 0x00000000 put_pid_ns -EXPORT_SYMBOL_GPL vmlinux 0x00000000 put_timespec64 -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pv_info -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pvclock_get_pvti_cpu0_va -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pvclock_gtod_register_notifier -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pvclock_gtod_unregister_notifier -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pwm_adjust_config -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pwm_apply_state -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pwm_capture -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pwm_free -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pwm_get -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pwm_get_chip_data -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pwm_lpss_probe -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pwm_lpss_remove -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pwm_lpss_resume -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pwm_lpss_suspend -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pwm_put -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pwm_request -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pwm_request_from_chip -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pwm_set_chip_data -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pwmchip_add -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pwmchip_add_with_polarity -EXPORT_SYMBOL_GPL vmlinux 0x00000000 pwmchip_remove -EXPORT_SYMBOL_GPL vmlinux 0x00000000 query_asymmetric_key -EXPORT_SYMBOL_GPL vmlinux 0x00000000 queue_iova -EXPORT_SYMBOL_GPL vmlinux 0x00000000 queue_work_node -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ras_userspace_consumers -EXPORT_SYMBOL_GPL vmlinux 0x00000000 raw_abort -EXPORT_SYMBOL_GPL vmlinux 0x00000000 raw_hash_sk -EXPORT_SYMBOL_GPL vmlinux 0x00000000 raw_notifier_call_chain -EXPORT_SYMBOL_GPL vmlinux 0x00000000 raw_notifier_chain_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 raw_notifier_chain_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 raw_seq_next -EXPORT_SYMBOL_GPL vmlinux 0x00000000 raw_seq_start -EXPORT_SYMBOL_GPL vmlinux 0x00000000 raw_seq_stop -EXPORT_SYMBOL_GPL vmlinux 0x00000000 raw_unhash_sk -EXPORT_SYMBOL_GPL vmlinux 0x00000000 raw_v4_hashinfo -EXPORT_SYMBOL_GPL vmlinux 0x00000000 raw_v6_hashinfo -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rcu_all_qs -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rcu_barrier -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rcu_barrier_tasks -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rcu_cpu_stall_suppress -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rcu_exp_batches_completed -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rcu_expedite_gp -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rcu_force_quiescent_state -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rcu_fwd_progress_check -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rcu_get_gp_kthreads_prio -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rcu_get_gp_seq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rcu_gp_is_expedited -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rcu_gp_is_normal -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rcu_is_watching -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rcu_jiffies_till_stall_check -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rcu_momentary_dyntick_idle -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rcu_note_context_switch -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rcu_scheduler_active -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rcu_unexpedite_gp -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rcutorture_get_gp_data -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rdev_clear_badblocks -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rdev_get_dev -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rdev_get_drvdata -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rdev_get_id -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rdev_get_regmap -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rdev_set_badblocks -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rdma_cgrp_subsys_enabled_key -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rdma_cgrp_subsys_on_dfl_key -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ref_module -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regcache_cache_bypass -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regcache_cache_only -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regcache_drop_region -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regcache_mark_dirty -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regcache_sync -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regcache_sync_region -EXPORT_SYMBOL_GPL vmlinux 0x00000000 region_intersects -EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_acpi_bus_type -EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_acpi_hed_notifier -EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_asymmetric_key_parser -EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_die_notifier -EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_ftrace_direct -EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_ftrace_export -EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_ftrace_function -EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_keyboard_notifier -EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_kprobe -EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_kprobes -EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_kretprobe -EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_kretprobes -EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_net_sysctl -EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_netevent_notifier -EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_oldmem_pfn_is_ram -EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_oom_notifier -EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_pernet_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_pernet_subsys -EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_pm_notifier -EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_switchdev_blocking_notifier -EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_switchdev_notifier -EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_syscore_ops -EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_trace_event -EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_tracepoint_module_notifier -EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_user_hw_breakpoint -EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_virtio_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_virtio_driver -EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_vmap_purge_notifier -EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_vt_notifier -EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_wide_hw_breakpoint -EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_xenbus_watch -EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_xenstore_notifier -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_add_irq_chip -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_async_complete -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_async_complete_cb -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_attach_dev -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_bulk_read -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_bulk_write -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_can_raw_write -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_check_range_table -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_del_irq_chip -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_exit -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_field_alloc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_field_free -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_field_read -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_field_update_bits_base -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_fields_read -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_fields_update_bits_base -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_get_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_get_max_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_get_raw_read_max -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_get_raw_write_max -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_get_reg_stride -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_get_val_bytes -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_get_val_endian -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_irq_chip_get_base -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_irq_get_domain -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_irq_get_virq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_mmio_attach_clk -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_mmio_detach_clk -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_multi_reg_write -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_multi_reg_write_bypassed -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_noinc_read -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_noinc_write -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_parse_val -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_raw_read -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_raw_write -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_raw_write_async -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_read -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_reg_in_ranges -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_register_patch -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_reinit_cache -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_update_bits_base -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_write -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_write_async -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_allow_bypass -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_bulk_disable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_bulk_enable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_bulk_force_disable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_bulk_free -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_bulk_get -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_bulk_register_supply_alias -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_bulk_set_supply_names -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_bulk_unregister_supply_alias -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_count_voltages -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_desc_list_voltage_linear_range -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_disable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_disable_deferred -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_disable_regmap -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_enable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_enable_regmap -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_force_disable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_get -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_get_bypass_regmap -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_get_current_limit -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_get_current_limit_regmap -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_get_drvdata -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_get_error_flags -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_get_exclusive -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_get_hardware_vsel_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_get_init_drvdata -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_get_linear_step -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_get_mode -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_get_optional -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_get_voltage -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_get_voltage_rdev -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_get_voltage_sel_pickable_regmap -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_get_voltage_sel_regmap -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_has_full_constraints -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_is_enabled -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_is_enabled_regmap -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_is_equal -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_is_supported_voltage -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_list_hardware_vsel -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_list_voltage -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_list_voltage_linear -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_list_voltage_linear_range -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_list_voltage_pickable_linear_range -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_list_voltage_table -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_lock -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_map_voltage_ascend -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_map_voltage_iterate -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_map_voltage_linear -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_map_voltage_linear_range -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_map_voltage_pickable_linear_range -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_mode_to_status -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_notifier_call_chain -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_put -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_register_notifier -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_register_supply_alias -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_set_active_discharge_regmap -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_set_bypass_regmap -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_set_current_limit -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_set_current_limit_regmap -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_set_drvdata -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_set_load -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_set_mode -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_set_pull_down_regmap -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_set_soft_start_regmap -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_set_suspend_voltage -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_set_voltage -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_set_voltage_rdev -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_set_voltage_sel_pickable_regmap -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_set_voltage_sel_regmap -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_set_voltage_time -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_set_voltage_time_sel -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_suspend_disable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_suspend_enable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_sync_voltage -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_unlock -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_unregister_notifier -EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_unregister_supply_alias -EXPORT_SYMBOL_GPL vmlinux 0x00000000 relay_buf_full -EXPORT_SYMBOL_GPL vmlinux 0x00000000 relay_close -EXPORT_SYMBOL_GPL vmlinux 0x00000000 relay_file_operations -EXPORT_SYMBOL_GPL vmlinux 0x00000000 relay_flush -EXPORT_SYMBOL_GPL vmlinux 0x00000000 relay_late_setup_files -EXPORT_SYMBOL_GPL vmlinux 0x00000000 relay_open -EXPORT_SYMBOL_GPL vmlinux 0x00000000 relay_reset -EXPORT_SYMBOL_GPL vmlinux 0x00000000 relay_subbufs_consumed -EXPORT_SYMBOL_GPL vmlinux 0x00000000 relay_switch_subbuf -EXPORT_SYMBOL_GPL vmlinux 0x00000000 remove_irq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 remove_memory -EXPORT_SYMBOL_GPL vmlinux 0x00000000 remove_resource -EXPORT_SYMBOL_GPL vmlinux 0x00000000 replace_page_cache_page -EXPORT_SYMBOL_GPL vmlinux 0x00000000 report_iommu_fault -EXPORT_SYMBOL_GPL vmlinux 0x00000000 request_any_context_irq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 request_firmware_direct -EXPORT_SYMBOL_GPL vmlinux 0x00000000 request_free_mem_region -EXPORT_SYMBOL_GPL vmlinux 0x00000000 reserve_iova -EXPORT_SYMBOL_GPL vmlinux 0x00000000 reset_control_acquire -EXPORT_SYMBOL_GPL vmlinux 0x00000000 reset_control_assert -EXPORT_SYMBOL_GPL vmlinux 0x00000000 reset_control_deassert -EXPORT_SYMBOL_GPL vmlinux 0x00000000 reset_control_get_count -EXPORT_SYMBOL_GPL vmlinux 0x00000000 reset_control_put -EXPORT_SYMBOL_GPL vmlinux 0x00000000 reset_control_release -EXPORT_SYMBOL_GPL vmlinux 0x00000000 reset_control_reset -EXPORT_SYMBOL_GPL vmlinux 0x00000000 reset_control_status -EXPORT_SYMBOL_GPL vmlinux 0x00000000 reset_controller_add_lookup -EXPORT_SYMBOL_GPL vmlinux 0x00000000 reset_controller_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 reset_controller_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 reset_hung_task_detector -EXPORT_SYMBOL_GPL vmlinux 0x00000000 restore_online_page_callback -EXPORT_SYMBOL_GPL vmlinux 0x00000000 resume_device_irqs -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rhashtable_destroy -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rhashtable_free_and_destroy -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rhashtable_init -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rhashtable_insert_slow -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rhashtable_walk_enter -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rhashtable_walk_exit -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rhashtable_walk_next -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rhashtable_walk_peek -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rhashtable_walk_start_check -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rhashtable_walk_stop -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rhltable_init -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rht_bucket_nested -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rht_bucket_nested_insert -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_alloc_read_page -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_bytes_cpu -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_change_overwrite -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_commit_overrun_cpu -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_consume -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_discard_commit -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_dropped_events_cpu -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_empty -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_empty_cpu -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_entries -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_entries_cpu -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_event_data -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_event_length -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_free -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_free_read_page -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_iter_empty -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_iter_peek -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_iter_reset -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_lock_reserve -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_normalize_time_stamp -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_oldest_event_ts -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_overrun_cpu -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_overruns -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_peek -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_read -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_read_events_cpu -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_read_finish -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_read_page -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_read_prepare -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_read_prepare_sync -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_read_start -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_record_disable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_record_disable_cpu -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_record_enable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_record_enable_cpu -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_record_off -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_record_on -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_reset -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_reset_cpu -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_resize -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_size -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_swap_cpu -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_time_stamp -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_unlock_commit -EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_write -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_add_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_add_mport_pw_handler -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_add_net -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_alloc_net -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_attach_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_bus_type -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_del_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_del_mport_pw_handler -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_dev_get -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_dev_put -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_dma_prep_slave_sg -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_dma_prep_xfer -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_enable_rx_tx_port -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_free_net -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_get_asm -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_get_comptag -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_get_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_inb_pwrite_handler -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_init_mports -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_local_get_device_id -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_local_set_device_id -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_lock_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_map_inb_region -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_map_outb_region -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_mport_chk_dev_access -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_mport_class -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_mport_get_efb -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_mport_get_feature -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_mport_get_physefb -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_mport_initialize -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_mport_read_config_16 -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_mport_read_config_32 -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_mport_read_config_8 -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_mport_send_doorbell -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_mport_write_config_16 -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_mport_write_config_32 -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_mport_write_config_8 -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_pw_enable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_register_driver -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_register_mport -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_register_scan -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_release_dma -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_release_inb_dbell -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_release_inb_mbox -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_release_inb_pwrite -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_release_outb_dbell -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_release_outb_mbox -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_request_dma -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_request_inb_dbell -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_request_inb_mbox -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_request_inb_pwrite -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_request_mport_dma -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_request_outb_dbell -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_request_outb_mbox -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_route_add_entry -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_route_clr_table -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_route_get_entry -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_set_port_lockout -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_unlock_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_unmap_inb_region -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_unmap_outb_region -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_unregister_driver -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_unregister_mport -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_unregister_scan -EXPORT_SYMBOL_GPL vmlinux 0x00000000 root_device_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 round_jiffies -EXPORT_SYMBOL_GPL vmlinux 0x00000000 round_jiffies_relative -EXPORT_SYMBOL_GPL vmlinux 0x00000000 round_jiffies_up -EXPORT_SYMBOL_GPL vmlinux 0x00000000 round_jiffies_up_relative -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rsa_parse_priv_key -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rsa_parse_pub_key -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rt_mutex_destroy -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rt_mutex_lock -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rt_mutex_lock_interruptible -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rt_mutex_timed_lock -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rt_mutex_trylock -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rt_mutex_unlock -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rtc_alarm_irq_enable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rtc_class_close -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rtc_class_open -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rtc_initialize_alarm -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rtc_ktime_to_tm -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rtc_nvmem_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rtc_read_alarm -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rtc_read_time -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rtc_set_alarm -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rtc_set_time -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rtc_tm_to_ktime -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rtc_update_irq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rtc_update_irq_enable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rtm_getroute_parse_ip_proto -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rtnl_af_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rtnl_af_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rtnl_delete_link -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rtnl_get_net_ns_capable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rtnl_link_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rtnl_link_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rtnl_put_cacheinfo -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rtnl_register_module -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rtnl_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 rtnl_unregister_all -EXPORT_SYMBOL_GPL vmlinux 0x00000000 run_dax -EXPORT_SYMBOL_GPL vmlinux 0x00000000 s2idle_wake -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sata_async_notification -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sata_deb_timing_hotplug -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sata_deb_timing_long -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sata_deb_timing_normal -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sata_link_debounce -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sata_link_hardreset -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sata_link_resume -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sata_link_scr_lpm -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sata_lpm_ignore_phy_events -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sata_pmp_error_handler -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sata_pmp_port_ops -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sata_pmp_qc_defer_cmd_switch -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sata_port_ops -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sata_scr_read -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sata_scr_valid -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sata_scr_write -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sata_scr_write_flush -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sata_set_spd -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sata_sff_hardreset -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sata_std_hardreset -EXPORT_SYMBOL_GPL vmlinux 0x00000000 save_fsgs_for_kvm -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sb800_prefetch -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sbitmap_add_wait_queue -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sbitmap_any_bit_set -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sbitmap_bitmap_show -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sbitmap_del_wait_queue -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sbitmap_finish_wait -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sbitmap_get -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sbitmap_get_shallow -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sbitmap_init_node -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sbitmap_prepare_to_wait -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sbitmap_queue_clear -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sbitmap_queue_init_node -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sbitmap_queue_min_shallow_depth -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sbitmap_queue_resize -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sbitmap_queue_show -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sbitmap_queue_wake_all -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sbitmap_queue_wake_up -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sbitmap_resize -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sbitmap_show -EXPORT_SYMBOL_GPL vmlinux 0x00000000 scatterwalk_copychunks -EXPORT_SYMBOL_GPL vmlinux 0x00000000 scatterwalk_ffwd -EXPORT_SYMBOL_GPL vmlinux 0x00000000 scatterwalk_map_and_copy -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sched_clock -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sched_clock_cpu -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sched_clock_idle_sleep_event -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sched_clock_idle_wakeup_event -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sched_setattr -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sched_setscheduler -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sched_setscheduler_nocheck -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sched_show_task -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sched_smt_present -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sched_trace_cfs_rq_avg -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sched_trace_cfs_rq_cpu -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sched_trace_cfs_rq_path -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sched_trace_rd_span -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sched_trace_rq_avg_dl -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sched_trace_rq_avg_irq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sched_trace_rq_avg_rt -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sched_trace_rq_cpu -EXPORT_SYMBOL_GPL vmlinux 0x00000000 schedule_hrtimeout -EXPORT_SYMBOL_GPL vmlinux 0x00000000 schedule_hrtimeout_range -EXPORT_SYMBOL_GPL vmlinux 0x00000000 screen_glyph -EXPORT_SYMBOL_GPL vmlinux 0x00000000 screen_glyph_unicode -EXPORT_SYMBOL_GPL vmlinux 0x00000000 screen_pos -EXPORT_SYMBOL_GPL vmlinux 0x00000000 scsi_autopm_get_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 scsi_autopm_put_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 scsi_bus_type -EXPORT_SYMBOL_GPL vmlinux 0x00000000 scsi_check_sense -EXPORT_SYMBOL_GPL vmlinux 0x00000000 scsi_device_from_queue -EXPORT_SYMBOL_GPL vmlinux 0x00000000 scsi_dh_activate -EXPORT_SYMBOL_GPL vmlinux 0x00000000 scsi_dh_attach -EXPORT_SYMBOL_GPL vmlinux 0x00000000 scsi_dh_attached_handler_name -EXPORT_SYMBOL_GPL vmlinux 0x00000000 scsi_dh_set_params -EXPORT_SYMBOL_GPL vmlinux 0x00000000 scsi_eh_get_sense -EXPORT_SYMBOL_GPL vmlinux 0x00000000 scsi_eh_ready_devs -EXPORT_SYMBOL_GPL vmlinux 0x00000000 scsi_flush_work -EXPORT_SYMBOL_GPL vmlinux 0x00000000 scsi_get_vpd_page -EXPORT_SYMBOL_GPL vmlinux 0x00000000 scsi_internal_device_block_nowait -EXPORT_SYMBOL_GPL vmlinux 0x00000000 scsi_internal_device_unblock_nowait -EXPORT_SYMBOL_GPL vmlinux 0x00000000 scsi_ioctl_block_when_processing_errors -EXPORT_SYMBOL_GPL vmlinux 0x00000000 scsi_mode_select -EXPORT_SYMBOL_GPL vmlinux 0x00000000 scsi_nl_sock -EXPORT_SYMBOL_GPL vmlinux 0x00000000 scsi_queue_work -EXPORT_SYMBOL_GPL vmlinux 0x00000000 scsi_register_device_handler -EXPORT_SYMBOL_GPL vmlinux 0x00000000 scsi_schedule_eh -EXPORT_SYMBOL_GPL vmlinux 0x00000000 scsi_target_block -EXPORT_SYMBOL_GPL vmlinux 0x00000000 scsi_target_unblock -EXPORT_SYMBOL_GPL vmlinux 0x00000000 scsi_unregister_device_handler -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdev_evt_alloc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdev_evt_send -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdev_evt_send_simple -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdhci_pci_get_data -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_align_size -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_claim_host -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_claim_irq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_disable_func -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_enable_func -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_f0_readb -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_f0_writeb -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_get_host_pm_caps -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_memcpy_fromio -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_memcpy_toio -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_readb -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_readl -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_readsb -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_readw -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_register_driver -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_release_host -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_release_irq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_retune_crc_disable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_retune_crc_enable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_retune_hold_now -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_retune_release -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_set_block_size -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_set_host_pm_flags -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_signal_irq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_unregister_driver -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_writeb -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_writeb_readb -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_writel -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_writesb -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_writew -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sec_irq_init -EXPORT_SYMBOL_GPL vmlinux 0x00000000 secure_ipv4_port_ephemeral -EXPORT_SYMBOL_GPL vmlinux 0x00000000 secure_tcp_seq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 security_file_ioctl -EXPORT_SYMBOL_GPL vmlinux 0x00000000 security_file_permission -EXPORT_SYMBOL_GPL vmlinux 0x00000000 security_inode_create -EXPORT_SYMBOL_GPL vmlinux 0x00000000 security_inode_mkdir -EXPORT_SYMBOL_GPL vmlinux 0x00000000 security_inode_permission -EXPORT_SYMBOL_GPL vmlinux 0x00000000 security_inode_setattr -EXPORT_SYMBOL_GPL vmlinux 0x00000000 security_kernel_load_data -EXPORT_SYMBOL_GPL vmlinux 0x00000000 security_kernel_post_read_file -EXPORT_SYMBOL_GPL vmlinux 0x00000000 security_kernel_read_file -EXPORT_SYMBOL_GPL vmlinux 0x00000000 security_path_chmod -EXPORT_SYMBOL_GPL vmlinux 0x00000000 security_path_chown -EXPORT_SYMBOL_GPL vmlinux 0x00000000 security_path_link -EXPORT_SYMBOL_GPL vmlinux 0x00000000 security_path_rmdir -EXPORT_SYMBOL_GPL vmlinux 0x00000000 security_path_symlink -EXPORT_SYMBOL_GPL vmlinux 0x00000000 security_path_truncate -EXPORT_SYMBOL_GPL vmlinux 0x00000000 securityfs_create_dir -EXPORT_SYMBOL_GPL vmlinux 0x00000000 securityfs_create_file -EXPORT_SYMBOL_GPL vmlinux 0x00000000 securityfs_create_symlink -EXPORT_SYMBOL_GPL vmlinux 0x00000000 securityfs_remove -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sed_ioctl -EXPORT_SYMBOL_GPL vmlinux 0x00000000 seg6_do_srh_encap -EXPORT_SYMBOL_GPL vmlinux 0x00000000 seg6_do_srh_inline -EXPORT_SYMBOL_GPL vmlinux 0x00000000 serdev_controller_add -EXPORT_SYMBOL_GPL vmlinux 0x00000000 serdev_controller_alloc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 serdev_controller_remove -EXPORT_SYMBOL_GPL vmlinux 0x00000000 serdev_device_add -EXPORT_SYMBOL_GPL vmlinux 0x00000000 serdev_device_alloc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 serdev_device_close -EXPORT_SYMBOL_GPL vmlinux 0x00000000 serdev_device_get_tiocm -EXPORT_SYMBOL_GPL vmlinux 0x00000000 serdev_device_open -EXPORT_SYMBOL_GPL vmlinux 0x00000000 serdev_device_remove -EXPORT_SYMBOL_GPL vmlinux 0x00000000 serdev_device_set_baudrate -EXPORT_SYMBOL_GPL vmlinux 0x00000000 serdev_device_set_flow_control -EXPORT_SYMBOL_GPL vmlinux 0x00000000 serdev_device_set_parity -EXPORT_SYMBOL_GPL vmlinux 0x00000000 serdev_device_set_tiocm -EXPORT_SYMBOL_GPL vmlinux 0x00000000 serdev_device_wait_until_sent -EXPORT_SYMBOL_GPL vmlinux 0x00000000 serdev_device_write -EXPORT_SYMBOL_GPL vmlinux 0x00000000 serdev_device_write_buf -EXPORT_SYMBOL_GPL vmlinux 0x00000000 serdev_device_write_flush -EXPORT_SYMBOL_GPL vmlinux 0x00000000 serdev_device_write_room -EXPORT_SYMBOL_GPL vmlinux 0x00000000 serdev_device_write_wakeup -EXPORT_SYMBOL_GPL vmlinux 0x00000000 serial8250_clear_and_reinit_fifos -EXPORT_SYMBOL_GPL vmlinux 0x00000000 serial8250_do_get_mctrl -EXPORT_SYMBOL_GPL vmlinux 0x00000000 serial8250_do_set_divisor -EXPORT_SYMBOL_GPL vmlinux 0x00000000 serial8250_do_set_ldisc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 serial8250_do_set_mctrl -EXPORT_SYMBOL_GPL vmlinux 0x00000000 serial8250_do_shutdown -EXPORT_SYMBOL_GPL vmlinux 0x00000000 serial8250_do_startup -EXPORT_SYMBOL_GPL vmlinux 0x00000000 serial8250_em485_destroy -EXPORT_SYMBOL_GPL vmlinux 0x00000000 serial8250_em485_init -EXPORT_SYMBOL_GPL vmlinux 0x00000000 serial8250_get_port -EXPORT_SYMBOL_GPL vmlinux 0x00000000 serial8250_handle_irq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 serial8250_init_port -EXPORT_SYMBOL_GPL vmlinux 0x00000000 serial8250_modem_status -EXPORT_SYMBOL_GPL vmlinux 0x00000000 serial8250_read_char -EXPORT_SYMBOL_GPL vmlinux 0x00000000 serial8250_release_dma -EXPORT_SYMBOL_GPL vmlinux 0x00000000 serial8250_request_dma -EXPORT_SYMBOL_GPL vmlinux 0x00000000 serial8250_rpm_get -EXPORT_SYMBOL_GPL vmlinux 0x00000000 serial8250_rpm_get_tx -EXPORT_SYMBOL_GPL vmlinux 0x00000000 serial8250_rpm_put -EXPORT_SYMBOL_GPL vmlinux 0x00000000 serial8250_rpm_put_tx -EXPORT_SYMBOL_GPL vmlinux 0x00000000 serial8250_rx_chars -EXPORT_SYMBOL_GPL vmlinux 0x00000000 serial8250_rx_dma_flush -EXPORT_SYMBOL_GPL vmlinux 0x00000000 serial8250_set_defaults -EXPORT_SYMBOL_GPL vmlinux 0x00000000 serial8250_tx_chars -EXPORT_SYMBOL_GPL vmlinux 0x00000000 set_cpus_allowed_ptr -EXPORT_SYMBOL_GPL vmlinux 0x00000000 set_foreign_p2m_mapping -EXPORT_SYMBOL_GPL vmlinux 0x00000000 set_hv_tscchange_cb -EXPORT_SYMBOL_GPL vmlinux 0x00000000 set_memory_decrypted -EXPORT_SYMBOL_GPL vmlinux 0x00000000 set_memory_encrypted -EXPORT_SYMBOL_GPL vmlinux 0x00000000 set_online_page_callback -EXPORT_SYMBOL_GPL vmlinux 0x00000000 set_pages_array_wt -EXPORT_SYMBOL_GPL vmlinux 0x00000000 set_personality_ia32 -EXPORT_SYMBOL_GPL vmlinux 0x00000000 set_primary_fwnode -EXPORT_SYMBOL_GPL vmlinux 0x00000000 set_selection_kernel -EXPORT_SYMBOL_GPL vmlinux 0x00000000 set_task_ioprio -EXPORT_SYMBOL_GPL vmlinux 0x00000000 set_worker_desc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 setfl -EXPORT_SYMBOL_GPL vmlinux 0x00000000 setup_APIC_eilvt -EXPORT_SYMBOL_GPL vmlinux 0x00000000 setup_irq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sev_enable_key -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sfi_table_parse -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sfp_add_phy -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sfp_bus_add_upstream -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sfp_bus_del_upstream -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sfp_bus_find_fwnode -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sfp_bus_put -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sfp_get_module_eeprom -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sfp_get_module_info -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sfp_link_down -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sfp_link_up -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sfp_may_have_phy -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sfp_module_insert -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sfp_module_remove -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sfp_module_start -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sfp_module_stop -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sfp_parse_port -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sfp_parse_support -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sfp_register_socket -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sfp_remove_phy -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sfp_select_interface -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sfp_unregister_socket -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sfp_upstream_start -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sfp_upstream_stop -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sg_alloc_table_chained -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sg_free_table_chained -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sg_scsi_ioctl -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sha1_zero_message_hash -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sha224_zero_message_hash -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sha256_zero_message_hash -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sha384_zero_message_hash -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sha512_zero_message_hash -EXPORT_SYMBOL_GPL vmlinux 0x00000000 shake_page -EXPORT_SYMBOL_GPL vmlinux 0x00000000 shash_ahash_digest -EXPORT_SYMBOL_GPL vmlinux 0x00000000 shash_ahash_finup -EXPORT_SYMBOL_GPL vmlinux 0x00000000 shash_ahash_update -EXPORT_SYMBOL_GPL vmlinux 0x00000000 shash_free_singlespawn_instance -EXPORT_SYMBOL_GPL vmlinux 0x00000000 shash_no_setkey -EXPORT_SYMBOL_GPL vmlinux 0x00000000 shash_register_instance -EXPORT_SYMBOL_GPL vmlinux 0x00000000 shmem_file_setup -EXPORT_SYMBOL_GPL vmlinux 0x00000000 shmem_file_setup_with_mnt -EXPORT_SYMBOL_GPL vmlinux 0x00000000 shmem_read_mapping_page_gfp -EXPORT_SYMBOL_GPL vmlinux 0x00000000 shmem_truncate_range -EXPORT_SYMBOL_GPL vmlinux 0x00000000 shmem_zero_setup -EXPORT_SYMBOL_GPL vmlinux 0x00000000 show_class_attr_string -EXPORT_SYMBOL_GPL vmlinux 0x00000000 show_rcu_gp_kthreads -EXPORT_SYMBOL_GPL vmlinux 0x00000000 si_mem_available -EXPORT_SYMBOL_GPL vmlinux 0x00000000 simple_attr_open -EXPORT_SYMBOL_GPL vmlinux 0x00000000 simple_attr_read -EXPORT_SYMBOL_GPL vmlinux 0x00000000 simple_attr_release -EXPORT_SYMBOL_GPL vmlinux 0x00000000 simple_attr_write -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sis_info133_for_sata -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sk_attach_filter -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sk_clear_memalloc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sk_clone_lock -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sk_detach_filter -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sk_free_unlock_clone -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sk_msg_alloc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sk_msg_clone -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sk_msg_free -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sk_msg_free_nocharge -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sk_msg_free_partial -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sk_msg_memcopy_from_iter -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sk_msg_return -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sk_msg_return_zero -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sk_msg_trim -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sk_msg_zerocopy_from_iter -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sk_psock_destroy -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sk_psock_drop -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sk_psock_init -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sk_psock_msg_verdict -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sk_set_memalloc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sk_set_peek_off -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sk_setup_caps -EXPORT_SYMBOL_GPL vmlinux 0x00000000 skb_append_pagefrags -EXPORT_SYMBOL_GPL vmlinux 0x00000000 skb_clone_tx_timestamp -EXPORT_SYMBOL_GPL vmlinux 0x00000000 skb_complete_tx_timestamp -EXPORT_SYMBOL_GPL vmlinux 0x00000000 skb_complete_wifi_ack -EXPORT_SYMBOL_GPL vmlinux 0x00000000 skb_consume_udp -EXPORT_SYMBOL_GPL vmlinux 0x00000000 skb_copy_ubufs -EXPORT_SYMBOL_GPL vmlinux 0x00000000 skb_cow_data -EXPORT_SYMBOL_GPL vmlinux 0x00000000 skb_defer_rx_timestamp -EXPORT_SYMBOL_GPL vmlinux 0x00000000 skb_gro_receive -EXPORT_SYMBOL_GPL vmlinux 0x00000000 skb_gro_receive_list -EXPORT_SYMBOL_GPL vmlinux 0x00000000 skb_gso_validate_mac_len -EXPORT_SYMBOL_GPL vmlinux 0x00000000 skb_gso_validate_network_len -EXPORT_SYMBOL_GPL vmlinux 0x00000000 skb_morph -EXPORT_SYMBOL_GPL vmlinux 0x00000000 skb_mpls_dec_ttl -EXPORT_SYMBOL_GPL vmlinux 0x00000000 skb_mpls_pop -EXPORT_SYMBOL_GPL vmlinux 0x00000000 skb_mpls_push -EXPORT_SYMBOL_GPL vmlinux 0x00000000 skb_mpls_update_lse -EXPORT_SYMBOL_GPL vmlinux 0x00000000 skb_partial_csum_set -EXPORT_SYMBOL_GPL vmlinux 0x00000000 skb_pull_rcsum -EXPORT_SYMBOL_GPL vmlinux 0x00000000 skb_scrub_packet -EXPORT_SYMBOL_GPL vmlinux 0x00000000 skb_segment -EXPORT_SYMBOL_GPL vmlinux 0x00000000 skb_segment_list -EXPORT_SYMBOL_GPL vmlinux 0x00000000 skb_send_sock_locked -EXPORT_SYMBOL_GPL vmlinux 0x00000000 skb_splice_bits -EXPORT_SYMBOL_GPL vmlinux 0x00000000 skb_to_sgvec -EXPORT_SYMBOL_GPL vmlinux 0x00000000 skb_to_sgvec_nomark -EXPORT_SYMBOL_GPL vmlinux 0x00000000 skb_tstamp_tx -EXPORT_SYMBOL_GPL vmlinux 0x00000000 skb_zerocopy -EXPORT_SYMBOL_GPL vmlinux 0x00000000 skb_zerocopy_headlen -EXPORT_SYMBOL_GPL vmlinux 0x00000000 skb_zerocopy_iter_dgram -EXPORT_SYMBOL_GPL vmlinux 0x00000000 skb_zerocopy_iter_stream -EXPORT_SYMBOL_GPL vmlinux 0x00000000 skcipher_alloc_instance_simple -EXPORT_SYMBOL_GPL vmlinux 0x00000000 skcipher_register_instance -EXPORT_SYMBOL_GPL vmlinux 0x00000000 skcipher_walk_aead_decrypt -EXPORT_SYMBOL_GPL vmlinux 0x00000000 skcipher_walk_aead_encrypt -EXPORT_SYMBOL_GPL vmlinux 0x00000000 skcipher_walk_async -EXPORT_SYMBOL_GPL vmlinux 0x00000000 skcipher_walk_atomise -EXPORT_SYMBOL_GPL vmlinux 0x00000000 skcipher_walk_complete -EXPORT_SYMBOL_GPL vmlinux 0x00000000 skcipher_walk_done -EXPORT_SYMBOL_GPL vmlinux 0x00000000 skcipher_walk_virt -EXPORT_SYMBOL_GPL vmlinux 0x00000000 slow_virt_to_phys -EXPORT_SYMBOL_GPL vmlinux 0x00000000 smca_banks -EXPORT_SYMBOL_GPL vmlinux 0x00000000 smca_get_long_name -EXPORT_SYMBOL_GPL vmlinux 0x00000000 smp_call_function_any -EXPORT_SYMBOL_GPL vmlinux 0x00000000 smp_call_function_single_async -EXPORT_SYMBOL_GPL vmlinux 0x00000000 smp_call_on_cpu -EXPORT_SYMBOL_GPL vmlinux 0x00000000 smp_ops -EXPORT_SYMBOL_GPL vmlinux 0x00000000 smpboot_register_percpu_thread -EXPORT_SYMBOL_GPL vmlinux 0x00000000 smpboot_unregister_percpu_thread -EXPORT_SYMBOL_GPL vmlinux 0x00000000 snmp_fold_field -EXPORT_SYMBOL_GPL vmlinux 0x00000000 snmp_get_cpu_field -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sock_diag_check_cookie -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sock_diag_destroy -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sock_diag_put_meminfo -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sock_diag_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sock_diag_register_inet_compat -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sock_diag_save_cookie -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sock_diag_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sock_diag_unregister_inet_compat -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sock_gen_put -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sock_inuse_get -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sock_prot_inuse_add -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sock_prot_inuse_get -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sock_zerocopy_alloc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sock_zerocopy_callback -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sock_zerocopy_put -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sock_zerocopy_put_abort -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sock_zerocopy_realloc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 software_node_find_by_name -EXPORT_SYMBOL_GPL vmlinux 0x00000000 software_node_fwnode -EXPORT_SYMBOL_GPL vmlinux 0x00000000 software_node_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 software_node_register_nodes -EXPORT_SYMBOL_GPL vmlinux 0x00000000 software_node_unregister_nodes -EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_add_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_alloc_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_async -EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_async_locked -EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_bus_lock -EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_bus_type -EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_bus_unlock -EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_busnum_to_master -EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_controller_dma_map_mem_op_data -EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_controller_dma_unmap_mem_op_data -EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_controller_resume -EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_controller_suspend -EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_delay_exec -EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_delay_to_ns -EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_finalize_current_message -EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_finalize_current_transfer -EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_get_device_id -EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_get_next_queued_message -EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_mem_adjust_op_size -EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_mem_default_supports_op -EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_mem_dirmap_create -EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_mem_dirmap_destroy -EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_mem_dirmap_read -EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_mem_dirmap_write -EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_mem_driver_register_with_owner -EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_mem_driver_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_mem_exec_op -EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_mem_get_name -EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_mem_supports_op -EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_new_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_register_controller -EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_replace_transfers -EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_res_add -EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_res_alloc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_res_free -EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_res_release -EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_set_cs_timing -EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_setup -EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_slave_abort -EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_split_transfers_maxsize -EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_statistics_add_transfer_stats -EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_sync -EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_sync_locked -EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_take_timestamp_post -EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_take_timestamp_pre -EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_unregister_controller -EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_unregister_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_write_then_read -EXPORT_SYMBOL_GPL vmlinux 0x00000000 splice_to_pipe -EXPORT_SYMBOL_GPL vmlinux 0x00000000 split_page -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sprint_OID -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sprint_oid -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sprint_symbol -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sprint_symbol_no_offset -EXPORT_SYMBOL_GPL vmlinux 0x00000000 srcu_barrier -EXPORT_SYMBOL_GPL vmlinux 0x00000000 srcu_batches_completed -EXPORT_SYMBOL_GPL vmlinux 0x00000000 srcu_init_notifier_head -EXPORT_SYMBOL_GPL vmlinux 0x00000000 srcu_notifier_call_chain -EXPORT_SYMBOL_GPL vmlinux 0x00000000 srcu_notifier_chain_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 srcu_notifier_chain_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 srcu_torture_stats_print -EXPORT_SYMBOL_GPL vmlinux 0x00000000 srcutorture_get_gp_data -EXPORT_SYMBOL_GPL vmlinux 0x00000000 stack_trace_print -EXPORT_SYMBOL_GPL vmlinux 0x00000000 stack_trace_save -EXPORT_SYMBOL_GPL vmlinux 0x00000000 stack_trace_snprint -EXPORT_SYMBOL_GPL vmlinux 0x00000000 start_thread -EXPORT_SYMBOL_GPL vmlinux 0x00000000 static_key_count -EXPORT_SYMBOL_GPL vmlinux 0x00000000 static_key_disable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 static_key_disable_cpuslocked -EXPORT_SYMBOL_GPL vmlinux 0x00000000 static_key_enable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 static_key_enable_cpuslocked -EXPORT_SYMBOL_GPL vmlinux 0x00000000 static_key_initialized -EXPORT_SYMBOL_GPL vmlinux 0x00000000 static_key_slow_dec -EXPORT_SYMBOL_GPL vmlinux 0x00000000 static_key_slow_inc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 stop_machine -EXPORT_SYMBOL_GPL vmlinux 0x00000000 store_sampling_rate -EXPORT_SYMBOL_GPL vmlinux 0x00000000 strp_check_rcv -EXPORT_SYMBOL_GPL vmlinux 0x00000000 strp_data_ready -EXPORT_SYMBOL_GPL vmlinux 0x00000000 strp_done -EXPORT_SYMBOL_GPL vmlinux 0x00000000 strp_init -EXPORT_SYMBOL_GPL vmlinux 0x00000000 strp_process -EXPORT_SYMBOL_GPL vmlinux 0x00000000 strp_stop -EXPORT_SYMBOL_GPL vmlinux 0x00000000 strp_unpause -EXPORT_SYMBOL_GPL vmlinux 0x00000000 subsys_dev_iter_exit -EXPORT_SYMBOL_GPL vmlinux 0x00000000 subsys_dev_iter_init -EXPORT_SYMBOL_GPL vmlinux 0x00000000 subsys_dev_iter_next -EXPORT_SYMBOL_GPL vmlinux 0x00000000 subsys_find_device_by_id -EXPORT_SYMBOL_GPL vmlinux 0x00000000 subsys_interface_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 subsys_interface_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 subsys_system_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 subsys_virtual_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 suspend_device_irqs -EXPORT_SYMBOL_GPL vmlinux 0x00000000 suspend_set_ops -EXPORT_SYMBOL_GPL vmlinux 0x00000000 suspend_valid_only_mem -EXPORT_SYMBOL_GPL vmlinux 0x00000000 swiotlb_max_segment -EXPORT_SYMBOL_GPL vmlinux 0x00000000 swiotlb_nr_tbl -EXPORT_SYMBOL_GPL vmlinux 0x00000000 switch_fpu_return -EXPORT_SYMBOL_GPL vmlinux 0x00000000 switchdev_deferred_process -EXPORT_SYMBOL_GPL vmlinux 0x00000000 switchdev_handle_port_attr_set -EXPORT_SYMBOL_GPL vmlinux 0x00000000 switchdev_handle_port_obj_add -EXPORT_SYMBOL_GPL vmlinux 0x00000000 switchdev_handle_port_obj_del -EXPORT_SYMBOL_GPL vmlinux 0x00000000 switchdev_port_attr_set -EXPORT_SYMBOL_GPL vmlinux 0x00000000 switchdev_port_obj_add -EXPORT_SYMBOL_GPL vmlinux 0x00000000 switchdev_port_obj_del -EXPORT_SYMBOL_GPL vmlinux 0x00000000 swphy_read_reg -EXPORT_SYMBOL_GPL vmlinux 0x00000000 swphy_validate_state -EXPORT_SYMBOL_GPL vmlinux 0x00000000 symbol_put_addr -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sync_page_io -EXPORT_SYMBOL_GPL vmlinux 0x00000000 synchronize_rcu -EXPORT_SYMBOL_GPL vmlinux 0x00000000 synchronize_rcu_expedited -EXPORT_SYMBOL_GPL vmlinux 0x00000000 synchronize_rcu_tasks -EXPORT_SYMBOL_GPL vmlinux 0x00000000 synchronize_srcu -EXPORT_SYMBOL_GPL vmlinux 0x00000000 synchronize_srcu_expedited -EXPORT_SYMBOL_GPL vmlinux 0x00000000 synth_event_add_field -EXPORT_SYMBOL_GPL vmlinux 0x00000000 synth_event_add_field_str -EXPORT_SYMBOL_GPL vmlinux 0x00000000 synth_event_add_fields -EXPORT_SYMBOL_GPL vmlinux 0x00000000 synth_event_add_next_val -EXPORT_SYMBOL_GPL vmlinux 0x00000000 synth_event_add_val -EXPORT_SYMBOL_GPL vmlinux 0x00000000 synth_event_cmd_init -EXPORT_SYMBOL_GPL vmlinux 0x00000000 synth_event_create -EXPORT_SYMBOL_GPL vmlinux 0x00000000 synth_event_delete -EXPORT_SYMBOL_GPL vmlinux 0x00000000 synth_event_gen_cmd_array_start -EXPORT_SYMBOL_GPL vmlinux 0x00000000 synth_event_trace -EXPORT_SYMBOL_GPL vmlinux 0x00000000 synth_event_trace_array -EXPORT_SYMBOL_GPL vmlinux 0x00000000 synth_event_trace_end -EXPORT_SYMBOL_GPL vmlinux 0x00000000 synth_event_trace_start -EXPORT_SYMBOL_GPL vmlinux 0x00000000 syscon_node_to_regmap -EXPORT_SYMBOL_GPL vmlinux 0x00000000 syscon_regmap_lookup_by_compatible -EXPORT_SYMBOL_GPL vmlinux 0x00000000 syscon_regmap_lookup_by_phandle -EXPORT_SYMBOL_GPL vmlinux 0x00000000 syscon_regmap_lookup_by_phandle_args -EXPORT_SYMBOL_GPL vmlinux 0x00000000 syscore_resume -EXPORT_SYMBOL_GPL vmlinux 0x00000000 syscore_suspend -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysctl_vfs_cache_pressure -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_add_file_to_group -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_add_link_to_group -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_break_active_protection -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_change_owner -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_chmod_file -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_create_bin_file -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_create_file_ns -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_create_files -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_create_group -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_create_groups -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_create_link -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_create_link_nowarn -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_create_mount_point -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_file_change_owner -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_group_change_owner -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_groups_change_owner -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_merge_group -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_notify -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_remove_bin_file -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_remove_file_from_group -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_remove_file_ns -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_remove_files -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_remove_group -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_remove_groups -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_remove_link -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_remove_link_from_group -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_remove_mount_point -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_rename_link_ns -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_unbreak_active_protection -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_unmerge_group -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_update_group -EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_update_groups -EXPORT_SYMBOL_GPL vmlinux 0x00000000 system_freezable_power_efficient_wq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 system_freezable_wq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 system_highpri_wq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 system_long_wq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 system_power_efficient_wq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 system_unbound_wq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 task_active_pid_ns -EXPORT_SYMBOL_GPL vmlinux 0x00000000 task_cgroup_path -EXPORT_SYMBOL_GPL vmlinux 0x00000000 task_cls_state -EXPORT_SYMBOL_GPL vmlinux 0x00000000 task_cputime_adjusted -EXPORT_SYMBOL_GPL vmlinux 0x00000000 task_handoff_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 task_handoff_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 task_user_regset_view -EXPORT_SYMBOL_GPL vmlinux 0x00000000 task_work_run -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tcp_abort -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tcp_bpf_sendmsg_redir -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tcp_ca_get_key_by_name -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tcp_ca_get_name_by_key -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tcp_ca_openreq_child -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tcp_cong_avoid_ai -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tcp_done -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tcp_enter_memory_pressure -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tcp_get_info -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tcp_get_syncookie_mss -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tcp_is_ulp_esp -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tcp_leave_memory_pressure -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tcp_memory_pressure -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tcp_orphan_count -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tcp_rate_check_app_limited -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tcp_register_congestion_control -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tcp_register_ulp -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tcp_reno_cong_avoid -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tcp_reno_ssthresh -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tcp_reno_undo_cwnd -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tcp_sendmsg_locked -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tcp_sendpage_locked -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tcp_set_keepalive -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tcp_set_state -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tcp_slow_start -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tcp_twsk_destructor -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tcp_twsk_unique -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tcp_unregister_congestion_control -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tcp_unregister_ulp -EXPORT_SYMBOL_GPL vmlinux 0x00000000 thermal_add_hwmon_sysfs -EXPORT_SYMBOL_GPL vmlinux 0x00000000 thermal_cooling_device_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 thermal_cooling_device_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 thermal_notify_framework -EXPORT_SYMBOL_GPL vmlinux 0x00000000 thermal_of_cooling_device_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 thermal_remove_hwmon_sysfs -EXPORT_SYMBOL_GPL vmlinux 0x00000000 thermal_zone_bind_cooling_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 thermal_zone_device_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 thermal_zone_device_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 thermal_zone_device_update -EXPORT_SYMBOL_GPL vmlinux 0x00000000 thermal_zone_get_offset -EXPORT_SYMBOL_GPL vmlinux 0x00000000 thermal_zone_get_slope -EXPORT_SYMBOL_GPL vmlinux 0x00000000 thermal_zone_get_temp -EXPORT_SYMBOL_GPL vmlinux 0x00000000 thermal_zone_get_zone_by_name -EXPORT_SYMBOL_GPL vmlinux 0x00000000 thermal_zone_set_trips -EXPORT_SYMBOL_GPL vmlinux 0x00000000 thermal_zone_unbind_cooling_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 thp_get_unmapped_area -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tick_broadcast_control -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tick_broadcast_oneshot_control -EXPORT_SYMBOL_GPL vmlinux 0x00000000 timecounter_cyc2time -EXPORT_SYMBOL_GPL vmlinux 0x00000000 timecounter_init -EXPORT_SYMBOL_GPL vmlinux 0x00000000 timecounter_read -EXPORT_SYMBOL_GPL vmlinux 0x00000000 timerqueue_add -EXPORT_SYMBOL_GPL vmlinux 0x00000000 timerqueue_del -EXPORT_SYMBOL_GPL vmlinux 0x00000000 timerqueue_iterate_next -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tnum_strn -EXPORT_SYMBOL_GPL vmlinux 0x00000000 to_nd_blk_region -EXPORT_SYMBOL_GPL vmlinux 0x00000000 to_nd_desc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 to_nd_region -EXPORT_SYMBOL_GPL vmlinux 0x00000000 to_nvdimm -EXPORT_SYMBOL_GPL vmlinux 0x00000000 to_nvdimm_bus -EXPORT_SYMBOL_GPL vmlinux 0x00000000 to_nvdimm_bus_dev -EXPORT_SYMBOL_GPL vmlinux 0x00000000 to_software_node -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tpm1_do_selftest -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tpm1_getcap -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tpm2_flush_context -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tpm2_get_tpm_pt -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tpm2_probe -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tpm_calc_ordinal_duration -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tpm_chip_alloc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tpm_chip_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tpm_chip_start -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tpm_chip_stop -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tpm_chip_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tpm_default_chip -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tpm_get_random -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tpm_get_timeouts -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tpm_is_tpm2 -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tpm_pcr_extend -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tpm_pcr_read -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tpm_pm_resume -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tpm_pm_suspend -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tpm_put_ops -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tpm_send -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tpm_tis_core_init -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tpm_tis_remove -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tpm_tis_resume -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tpm_transmit_cmd -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tpm_try_get_ops -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tpmm_chip_alloc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tps6586x_clr_bits -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tps6586x_get_version -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tps6586x_irq_get_virq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tps6586x_read -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tps6586x_reads -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tps6586x_set_bits -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tps6586x_update -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tps6586x_write -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tps6586x_writes -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tps65912_device_exit -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tps65912_device_init -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tps65912_regmap_config -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tps80031_ext_power_req_config -EXPORT_SYMBOL_GPL vmlinux 0x00000000 trace_array_destroy -EXPORT_SYMBOL_GPL vmlinux 0x00000000 trace_array_get_by_name -EXPORT_SYMBOL_GPL vmlinux 0x00000000 trace_array_printk -EXPORT_SYMBOL_GPL vmlinux 0x00000000 trace_array_put -EXPORT_SYMBOL_GPL vmlinux 0x00000000 trace_array_set_clr_event -EXPORT_SYMBOL_GPL vmlinux 0x00000000 trace_call_bpf -EXPORT_SYMBOL_GPL vmlinux 0x00000000 trace_clock -EXPORT_SYMBOL_GPL vmlinux 0x00000000 trace_clock_global -EXPORT_SYMBOL_GPL vmlinux 0x00000000 trace_clock_jiffies -EXPORT_SYMBOL_GPL vmlinux 0x00000000 trace_clock_local -EXPORT_SYMBOL_GPL vmlinux 0x00000000 trace_define_field -EXPORT_SYMBOL_GPL vmlinux 0x00000000 trace_dump_stack -EXPORT_SYMBOL_GPL vmlinux 0x00000000 trace_event_buffer_commit -EXPORT_SYMBOL_GPL vmlinux 0x00000000 trace_event_buffer_lock_reserve -EXPORT_SYMBOL_GPL vmlinux 0x00000000 trace_event_buffer_reserve -EXPORT_SYMBOL_GPL vmlinux 0x00000000 trace_event_ignore_this_pid -EXPORT_SYMBOL_GPL vmlinux 0x00000000 trace_event_raw_init -EXPORT_SYMBOL_GPL vmlinux 0x00000000 trace_event_reg -EXPORT_SYMBOL_GPL vmlinux 0x00000000 trace_get_event_file -EXPORT_SYMBOL_GPL vmlinux 0x00000000 trace_handle_return -EXPORT_SYMBOL_GPL vmlinux 0x00000000 trace_output_call -EXPORT_SYMBOL_GPL vmlinux 0x00000000 trace_print_bitmask_seq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 trace_printk_init_buffers -EXPORT_SYMBOL_GPL vmlinux 0x00000000 trace_put_event_file -EXPORT_SYMBOL_GPL vmlinux 0x00000000 trace_seq_bitmask -EXPORT_SYMBOL_GPL vmlinux 0x00000000 trace_seq_bprintf -EXPORT_SYMBOL_GPL vmlinux 0x00000000 trace_seq_path -EXPORT_SYMBOL_GPL vmlinux 0x00000000 trace_seq_printf -EXPORT_SYMBOL_GPL vmlinux 0x00000000 trace_seq_putc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 trace_seq_putmem -EXPORT_SYMBOL_GPL vmlinux 0x00000000 trace_seq_putmem_hex -EXPORT_SYMBOL_GPL vmlinux 0x00000000 trace_seq_puts -EXPORT_SYMBOL_GPL vmlinux 0x00000000 trace_seq_to_user -EXPORT_SYMBOL_GPL vmlinux 0x00000000 trace_seq_vprintf -EXPORT_SYMBOL_GPL vmlinux 0x00000000 trace_set_clr_event -EXPORT_SYMBOL_GPL vmlinux 0x00000000 trace_vbprintk -EXPORT_SYMBOL_GPL vmlinux 0x00000000 trace_vprintk -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tracepoint_probe_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tracepoint_probe_register_prio -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tracepoint_probe_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tracepoint_srcu -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tracing_alloc_snapshot -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tracing_cond_snapshot_data -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tracing_generic_entry_update -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tracing_is_on -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tracing_off -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tracing_on -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tracing_snapshot -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tracing_snapshot_alloc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tracing_snapshot_cond -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tracing_snapshot_cond_disable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tracing_snapshot_cond_enable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 transport_add_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 transport_class_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 transport_class_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 transport_configure_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 transport_destroy_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 transport_remove_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 transport_setup_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 trusted_tpm_send -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_buffer_lock_exclusive -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_buffer_request_room -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_buffer_set_limit -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_buffer_space_avail -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_buffer_unlock_exclusive -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_dev_name_to_number -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_encode_baud_rate -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_find_polling_driver -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_get_pgrp -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_init_termios -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_kclose -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_kopen -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_ldisc_deref -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_ldisc_flush -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_ldisc_receive_buf -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_ldisc_ref -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_ldisc_ref_wait -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_ldisc_release -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_mode_ioctl -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_perform_flush -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_port_default_client_ops -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_port_install -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_port_link_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_port_register_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_port_register_device_attr -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_port_register_device_attr_serdev -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_port_register_device_serdev -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_port_tty_hangup -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_port_tty_wakeup -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_port_unregister_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_prepare_flip_string -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_put_char -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_register_device_attr -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_release_struct -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_save_termios -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_set_ldisc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_set_termios -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_standard_install -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_termios_encode_baud_rate -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_wakeup -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tun_get_socket -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tun_get_tx_ring -EXPORT_SYMBOL_GPL vmlinux 0x00000000 tun_ptr_free -EXPORT_SYMBOL_GPL vmlinux 0x00000000 twl4030_audio_disable_resource -EXPORT_SYMBOL_GPL vmlinux 0x00000000 twl4030_audio_enable_resource -EXPORT_SYMBOL_GPL vmlinux 0x00000000 twl4030_audio_get_mclk -EXPORT_SYMBOL_GPL vmlinux 0x00000000 twl_get_hfclk_rate -EXPORT_SYMBOL_GPL vmlinux 0x00000000 twl_get_type -EXPORT_SYMBOL_GPL vmlinux 0x00000000 twl_get_version -EXPORT_SYMBOL_GPL vmlinux 0x00000000 uart_console_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 uart_console_write -EXPORT_SYMBOL_GPL vmlinux 0x00000000 uart_get_rs485_mode -EXPORT_SYMBOL_GPL vmlinux 0x00000000 uart_handle_break -EXPORT_SYMBOL_GPL vmlinux 0x00000000 uart_handle_cts_change -EXPORT_SYMBOL_GPL vmlinux 0x00000000 uart_handle_dcd_change -EXPORT_SYMBOL_GPL vmlinux 0x00000000 uart_handle_sysrq_char -EXPORT_SYMBOL_GPL vmlinux 0x00000000 uart_insert_char -EXPORT_SYMBOL_GPL vmlinux 0x00000000 uart_parse_earlycon -EXPORT_SYMBOL_GPL vmlinux 0x00000000 uart_parse_options -EXPORT_SYMBOL_GPL vmlinux 0x00000000 uart_prepare_sysrq_char -EXPORT_SYMBOL_GPL vmlinux 0x00000000 uart_set_options -EXPORT_SYMBOL_GPL vmlinux 0x00000000 uart_unlock_and_check_sysrq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 udp4_hwcsum -EXPORT_SYMBOL_GPL vmlinux 0x00000000 udp4_lib_lookup -EXPORT_SYMBOL_GPL vmlinux 0x00000000 udp4_lib_lookup_skb -EXPORT_SYMBOL_GPL vmlinux 0x00000000 udp6_lib_lookup -EXPORT_SYMBOL_GPL vmlinux 0x00000000 udp6_lib_lookup_skb -EXPORT_SYMBOL_GPL vmlinux 0x00000000 udp_abort -EXPORT_SYMBOL_GPL vmlinux 0x00000000 udp_cmsg_send -EXPORT_SYMBOL_GPL vmlinux 0x00000000 udp_destruct_sock -EXPORT_SYMBOL_GPL vmlinux 0x00000000 udp_init_sock -EXPORT_SYMBOL_GPL vmlinux 0x00000000 uhci_check_and_reset_hc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 uhci_reset_hc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 umc_normaddr_to_sysaddr -EXPORT_SYMBOL_GPL vmlinux 0x00000000 unbind_from_irqhandler -EXPORT_SYMBOL_GPL vmlinux 0x00000000 unix_inq_len -EXPORT_SYMBOL_GPL vmlinux 0x00000000 unix_outq_len -EXPORT_SYMBOL_GPL vmlinux 0x00000000 unix_peer_get -EXPORT_SYMBOL_GPL vmlinux 0x00000000 unix_socket_table -EXPORT_SYMBOL_GPL vmlinux 0x00000000 unix_table_lock -EXPORT_SYMBOL_GPL vmlinux 0x00000000 unlock_system_sleep -EXPORT_SYMBOL_GPL vmlinux 0x00000000 unmap_kernel_range -EXPORT_SYMBOL_GPL vmlinux 0x00000000 unmap_kernel_range_noflush -EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_acpi_bus_type -EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_acpi_hed_notifier -EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_asymmetric_key_parser -EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_die_notifier -EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_ftrace_direct -EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_ftrace_export -EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_ftrace_function -EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_hw_breakpoint -EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_keyboard_notifier -EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_kprobe -EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_kprobes -EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_kretprobe -EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_kretprobes -EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_net_sysctl_table -EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_netevent_notifier -EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_nmi_handler -EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_oldmem_pfn_is_ram -EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_oom_notifier -EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_pernet_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_pernet_subsys -EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_pm_notifier -EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_switchdev_blocking_notifier -EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_switchdev_notifier -EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_syscore_ops -EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_trace_event -EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_tracepoint_module_notifier -EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_virtio_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_virtio_driver -EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_vmap_purge_notifier -EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_vt_notifier -EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_wide_hw_breakpoint -EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_xenbus_watch -EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_xenstore_notifier -EXPORT_SYMBOL_GPL vmlinux 0x00000000 unshare_fs_struct -EXPORT_SYMBOL_GPL vmlinux 0x00000000 unuse_mm -EXPORT_SYMBOL_GPL vmlinux 0x00000000 unwind_get_return_address -EXPORT_SYMBOL_GPL vmlinux 0x00000000 unwind_next_frame -EXPORT_SYMBOL_GPL vmlinux 0x00000000 update_time -EXPORT_SYMBOL_GPL vmlinux 0x00000000 uprobe_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 uprobe_register_refctr -EXPORT_SYMBOL_GPL vmlinux 0x00000000 uprobe_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_acpi_power_manageable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_acpi_set_power_state -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_add_hcd -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_add_phy -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_add_phy_dev -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_alloc_coherent -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_alloc_dev -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_alloc_streams -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_alloc_urb -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_altnum_to_altsetting -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_amd_dev_put -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_amd_hang_symptom_quirk -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_amd_prefetch_quirk -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_amd_pt_check_port -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_amd_quirk_pll_check -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_amd_quirk_pll_disable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_amd_quirk_pll_enable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_anchor_empty -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_anchor_resume_wakeups -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_anchor_suspend_wakeups -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_anchor_urb -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_asmedia_modifyflowcontrol -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_autopm_get_interface -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_autopm_get_interface_async -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_autopm_get_interface_no_resume -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_autopm_put_interface -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_autopm_put_interface_async -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_autopm_put_interface_no_suspend -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_block_urb -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_bulk_msg -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_bus_idr -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_bus_idr_lock -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_calc_bus_time -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_choose_configuration -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_clear_halt -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_control_msg -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_create_hcd -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_create_shared_hcd -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_debug_root -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_decode_ctrl -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_deregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_deregister_dev -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_deregister_device_driver -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_disable_autosuspend -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_disable_lpm -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_disable_ltm -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_disable_xhci_ports -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_disabled -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_driver_claim_interface -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_driver_release_interface -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_driver_set_configuration -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_enable_autosuspend -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_enable_intel_xhci_ports -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_enable_lpm -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_enable_ltm -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_ep0_reinit -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_ep_type_string -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_find_alt_setting -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_find_common_endpoints -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_find_common_endpoints_reverse -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_find_interface -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_for_each_dev -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_free_coherent -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_free_streams -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_free_urb -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_get_current_frame_number -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_get_descriptor -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_get_dev -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_get_dr_mode -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_get_from_anchor -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_get_hcd -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_get_intf -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_get_maximum_speed -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_get_phy -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_get_status -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_get_urb -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_hc_died -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_hcd_amd_remote_wakeup_quirk -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_hcd_check_unlink_urb -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_hcd_end_port_resume -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_hcd_giveback_urb -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_hcd_irq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_hcd_is_primary_hcd -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_hcd_link_urb_to_ep -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_hcd_map_urb_for_dma -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_hcd_pci_pm_ops -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_hcd_pci_probe -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_hcd_pci_remove -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_hcd_pci_shutdown -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_hcd_platform_shutdown -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_hcd_poll_rh_status -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_hcd_resume_root_hub -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_hcd_setup_local_mem -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_hcd_start_port_resume -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_hcd_unlink_urb_from_ep -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_hcd_unmap_urb_for_dma -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_hcd_unmap_urb_setup_for_dma -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_hcds_loaded -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_hub_claim_port -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_hub_clear_tt_buffer -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_hub_find_child -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_hub_release_port -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_ifnum_to_if -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_init_urb -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_interrupt_msg -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_kill_anchored_urbs -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_kill_urb -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_led_activity -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_lock_device_for_reset -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_match_id -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_match_one_id -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_mon_deregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_mon_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_otg_state_string -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_phy_get_charger_current -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_phy_roothub_alloc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_phy_roothub_calibrate -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_phy_roothub_exit -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_phy_roothub_init -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_phy_roothub_power_off -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_phy_roothub_power_on -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_phy_roothub_resume -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_phy_roothub_set_mode -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_phy_roothub_suspend -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_phy_set_charger_current -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_phy_set_charger_state -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_phy_set_event -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_poison_anchored_urbs -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_poison_urb -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_put_dev -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_put_hcd -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_put_intf -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_put_phy -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_queue_reset_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_register_dev -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_register_device_driver -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_register_driver -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_register_notify -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_remove_hcd -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_remove_phy -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_reset_configuration -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_reset_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_reset_endpoint -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_root_hub_lost_power -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_scuttle_anchored_urbs -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_set_configuration -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_set_device_state -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_set_interface -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_sg_cancel -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_sg_init -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_sg_wait -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_show_dynids -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_speed_string -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_state_string -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_store_new_id -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_string -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_submit_urb -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_unanchor_urb -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_unlink_anchored_urbs -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_unlink_urb -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_unlocked_disable_lpm -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_unlocked_enable_lpm -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_unpoison_anchored_urbs -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_unpoison_urb -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_unregister_notify -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_urb_ep_type_check -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_wait_anchor_empty_timeout -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_wakeup_enabled_descendants -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_wakeup_notification -EXPORT_SYMBOL_GPL vmlinux 0x00000000 use_mm -EXPORT_SYMBOL_GPL vmlinux 0x00000000 user_describe -EXPORT_SYMBOL_GPL vmlinux 0x00000000 user_destroy -EXPORT_SYMBOL_GPL vmlinux 0x00000000 user_free_preparse -EXPORT_SYMBOL_GPL vmlinux 0x00000000 user_preparse -EXPORT_SYMBOL_GPL vmlinux 0x00000000 user_read -EXPORT_SYMBOL_GPL vmlinux 0x00000000 user_return_notifier_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 user_return_notifier_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 user_update -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usermodehelper_read_lock_wait -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usermodehelper_read_trylock -EXPORT_SYMBOL_GPL vmlinux 0x00000000 usermodehelper_read_unlock -EXPORT_SYMBOL_GPL vmlinux 0x00000000 uuid_gen -EXPORT_SYMBOL_GPL vmlinux 0x00000000 validate_xmit_skb_list -EXPORT_SYMBOL_GPL vmlinux 0x00000000 validate_xmit_xfrm -EXPORT_SYMBOL_GPL vmlinux 0x00000000 vbin_printf -EXPORT_SYMBOL_GPL vmlinux 0x00000000 vc_scrolldelta_helper -EXPORT_SYMBOL_GPL vmlinux 0x00000000 verify_pkcs7_signature -EXPORT_SYMBOL_GPL vmlinux 0x00000000 verify_signature -EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfio_add_group_dev -EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfio_del_group_dev -EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfio_device_data -EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfio_device_get_from_dev -EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfio_device_put -EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfio_external_check_extension -EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfio_external_group_match_file -EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfio_external_user_iommu_id -EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfio_group_get_external_user -EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfio_group_put_external_user -EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfio_group_set_kvm -EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfio_info_cap_add -EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfio_iommu_group_get -EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfio_iommu_group_put -EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfio_register_iommu_driver -EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfio_unregister_iommu_driver -EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfio_virqfd_disable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfio_virqfd_enable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfs_cancel_lock -EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfs_fallocate -EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfs_getxattr -EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfs_getxattr_alloc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfs_kern_mount -EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfs_listxattr -EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfs_lock_file -EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfs_read -EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfs_readf -EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfs_removexattr -EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfs_setlease -EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfs_setxattr -EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfs_submount -EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfs_test_lock -EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfs_truncate -EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfs_write -EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfs_writef -EXPORT_SYMBOL_GPL vmlinux 0x00000000 vga_default_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 videomode_from_timing -EXPORT_SYMBOL_GPL vmlinux 0x00000000 videomode_from_timings -EXPORT_SYMBOL_GPL vmlinux 0x00000000 virtio_add_status -EXPORT_SYMBOL_GPL vmlinux 0x00000000 virtio_break_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 virtio_check_driver_offered_feature -EXPORT_SYMBOL_GPL vmlinux 0x00000000 virtio_config_changed -EXPORT_SYMBOL_GPL vmlinux 0x00000000 virtio_config_disable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 virtio_config_enable -EXPORT_SYMBOL_GPL vmlinux 0x00000000 virtio_device_freeze -EXPORT_SYMBOL_GPL vmlinux 0x00000000 virtio_device_restore -EXPORT_SYMBOL_GPL vmlinux 0x00000000 virtio_finalize_features -EXPORT_SYMBOL_GPL vmlinux 0x00000000 virtio_max_dma_size -EXPORT_SYMBOL_GPL vmlinux 0x00000000 virtqueue_add_inbuf -EXPORT_SYMBOL_GPL vmlinux 0x00000000 virtqueue_add_inbuf_ctx -EXPORT_SYMBOL_GPL vmlinux 0x00000000 virtqueue_add_outbuf -EXPORT_SYMBOL_GPL vmlinux 0x00000000 virtqueue_add_sgs -EXPORT_SYMBOL_GPL vmlinux 0x00000000 virtqueue_detach_unused_buf -EXPORT_SYMBOL_GPL vmlinux 0x00000000 virtqueue_disable_cb -EXPORT_SYMBOL_GPL vmlinux 0x00000000 virtqueue_enable_cb -EXPORT_SYMBOL_GPL vmlinux 0x00000000 virtqueue_enable_cb_delayed -EXPORT_SYMBOL_GPL vmlinux 0x00000000 virtqueue_enable_cb_prepare -EXPORT_SYMBOL_GPL vmlinux 0x00000000 virtqueue_get_avail_addr -EXPORT_SYMBOL_GPL vmlinux 0x00000000 virtqueue_get_buf -EXPORT_SYMBOL_GPL vmlinux 0x00000000 virtqueue_get_buf_ctx -EXPORT_SYMBOL_GPL vmlinux 0x00000000 virtqueue_get_desc_addr -EXPORT_SYMBOL_GPL vmlinux 0x00000000 virtqueue_get_used_addr -EXPORT_SYMBOL_GPL vmlinux 0x00000000 virtqueue_get_vring -EXPORT_SYMBOL_GPL vmlinux 0x00000000 virtqueue_get_vring_size -EXPORT_SYMBOL_GPL vmlinux 0x00000000 virtqueue_is_broken -EXPORT_SYMBOL_GPL vmlinux 0x00000000 virtqueue_kick -EXPORT_SYMBOL_GPL vmlinux 0x00000000 virtqueue_kick_prepare -EXPORT_SYMBOL_GPL vmlinux 0x00000000 virtqueue_notify -EXPORT_SYMBOL_GPL vmlinux 0x00000000 virtqueue_poll -EXPORT_SYMBOL_GPL vmlinux 0x00000000 visitor128 -EXPORT_SYMBOL_GPL vmlinux 0x00000000 visitor32 -EXPORT_SYMBOL_GPL vmlinux 0x00000000 visitor64 -EXPORT_SYMBOL_GPL vmlinux 0x00000000 visitorl -EXPORT_SYMBOL_GPL vmlinux 0x00000000 vm_memory_committed -EXPORT_SYMBOL_GPL vmlinux 0x00000000 vm_unmap_aliases -EXPORT_SYMBOL_GPL vmlinux 0x00000000 vma_kernel_pagesize -EXPORT_SYMBOL_GPL vmlinux 0x00000000 vmf_insert_pfn_pmd -EXPORT_SYMBOL_GPL vmlinux 0x00000000 vmf_insert_pfn_pud -EXPORT_SYMBOL_GPL vmlinux 0x00000000 vprintk_default -EXPORT_SYMBOL_GPL vmlinux 0x00000000 vring_create_virtqueue -EXPORT_SYMBOL_GPL vmlinux 0x00000000 vring_del_virtqueue -EXPORT_SYMBOL_GPL vmlinux 0x00000000 vring_interrupt -EXPORT_SYMBOL_GPL vmlinux 0x00000000 vring_new_virtqueue -EXPORT_SYMBOL_GPL vmlinux 0x00000000 vring_transport_features -EXPORT_SYMBOL_GPL vmlinux 0x00000000 vt_get_leds -EXPORT_SYMBOL_GPL vmlinux 0x00000000 wait_for_device_probe -EXPORT_SYMBOL_GPL vmlinux 0x00000000 wait_for_stable_page -EXPORT_SYMBOL_GPL vmlinux 0x00000000 wait_on_page_writeback -EXPORT_SYMBOL_GPL vmlinux 0x00000000 wake_up_all_idle_cpus -EXPORT_SYMBOL_GPL vmlinux 0x00000000 wakeme_after_rcu -EXPORT_SYMBOL_GPL vmlinux 0x00000000 wakeup_source_add -EXPORT_SYMBOL_GPL vmlinux 0x00000000 wakeup_source_create -EXPORT_SYMBOL_GPL vmlinux 0x00000000 wakeup_source_destroy -EXPORT_SYMBOL_GPL vmlinux 0x00000000 wakeup_source_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 wakeup_source_remove -EXPORT_SYMBOL_GPL vmlinux 0x00000000 wakeup_source_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 wakeup_sources_read_lock -EXPORT_SYMBOL_GPL vmlinux 0x00000000 wakeup_sources_read_unlock -EXPORT_SYMBOL_GPL vmlinux 0x00000000 wakeup_sources_walk_next -EXPORT_SYMBOL_GPL vmlinux 0x00000000 wakeup_sources_walk_start -EXPORT_SYMBOL_GPL vmlinux 0x00000000 walk_iomem_res_desc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 watchdog_init_timeout -EXPORT_SYMBOL_GPL vmlinux 0x00000000 watchdog_notify_pretimeout -EXPORT_SYMBOL_GPL vmlinux 0x00000000 watchdog_register_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 watchdog_set_restart_priority -EXPORT_SYMBOL_GPL vmlinux 0x00000000 watchdog_unregister_device -EXPORT_SYMBOL_GPL vmlinux 0x00000000 wb_writeout_inc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 wbc_account_cgroup_owner -EXPORT_SYMBOL_GPL vmlinux 0x00000000 wbc_attach_and_unlock_inode -EXPORT_SYMBOL_GPL vmlinux 0x00000000 wbc_detach_inode -EXPORT_SYMBOL_GPL vmlinux 0x00000000 wbt_disable_default -EXPORT_SYMBOL_GPL vmlinux 0x00000000 wbt_enable_default -EXPORT_SYMBOL_GPL vmlinux 0x00000000 wireless_nlevent_flush -EXPORT_SYMBOL_GPL vmlinux 0x00000000 wm5102_i2c_regmap -EXPORT_SYMBOL_GPL vmlinux 0x00000000 wm5102_spi_regmap -EXPORT_SYMBOL_GPL vmlinux 0x00000000 wm5110_aod -EXPORT_SYMBOL_GPL vmlinux 0x00000000 wm5110_i2c_regmap -EXPORT_SYMBOL_GPL vmlinux 0x00000000 wm5110_irq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 wm5110_patch -EXPORT_SYMBOL_GPL vmlinux 0x00000000 wm5110_revd_irq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 wm5110_spi_regmap -EXPORT_SYMBOL_GPL vmlinux 0x00000000 wm831x_auxadc_read -EXPORT_SYMBOL_GPL vmlinux 0x00000000 wm831x_auxadc_read_uv -EXPORT_SYMBOL_GPL vmlinux 0x00000000 wm831x_bulk_read -EXPORT_SYMBOL_GPL vmlinux 0x00000000 wm831x_device_shutdown -EXPORT_SYMBOL_GPL vmlinux 0x00000000 wm831x_isinkv_values -EXPORT_SYMBOL_GPL vmlinux 0x00000000 wm831x_of_match -EXPORT_SYMBOL_GPL vmlinux 0x00000000 wm831x_reg_lock -EXPORT_SYMBOL_GPL vmlinux 0x00000000 wm831x_reg_read -EXPORT_SYMBOL_GPL vmlinux 0x00000000 wm831x_reg_unlock -EXPORT_SYMBOL_GPL vmlinux 0x00000000 wm831x_reg_write -EXPORT_SYMBOL_GPL vmlinux 0x00000000 wm831x_regmap_config -EXPORT_SYMBOL_GPL vmlinux 0x00000000 wm831x_set_bits -EXPORT_SYMBOL_GPL vmlinux 0x00000000 wm8350_block_read -EXPORT_SYMBOL_GPL vmlinux 0x00000000 wm8350_block_write -EXPORT_SYMBOL_GPL vmlinux 0x00000000 wm8350_clear_bits -EXPORT_SYMBOL_GPL vmlinux 0x00000000 wm8350_device_init -EXPORT_SYMBOL_GPL vmlinux 0x00000000 wm8350_gpio_config -EXPORT_SYMBOL_GPL vmlinux 0x00000000 wm8350_read_auxadc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 wm8350_reg_lock -EXPORT_SYMBOL_GPL vmlinux 0x00000000 wm8350_reg_read -EXPORT_SYMBOL_GPL vmlinux 0x00000000 wm8350_reg_unlock -EXPORT_SYMBOL_GPL vmlinux 0x00000000 wm8350_reg_write -EXPORT_SYMBOL_GPL vmlinux 0x00000000 wm8350_set_bits -EXPORT_SYMBOL_GPL vmlinux 0x00000000 wm8400_reset_codec_reg_cache -EXPORT_SYMBOL_GPL vmlinux 0x00000000 wm8997_aod -EXPORT_SYMBOL_GPL vmlinux 0x00000000 wm8997_i2c_regmap -EXPORT_SYMBOL_GPL vmlinux 0x00000000 wm8997_irq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 wm8997_patch -EXPORT_SYMBOL_GPL vmlinux 0x00000000 wm8998_i2c_regmap -EXPORT_SYMBOL_GPL vmlinux 0x00000000 work_busy -EXPORT_SYMBOL_GPL vmlinux 0x00000000 work_on_cpu -EXPORT_SYMBOL_GPL vmlinux 0x00000000 work_on_cpu_safe -EXPORT_SYMBOL_GPL vmlinux 0x00000000 workqueue_congested -EXPORT_SYMBOL_GPL vmlinux 0x00000000 workqueue_set_max_active -EXPORT_SYMBOL_GPL vmlinux 0x00000000 wp_shared_mapping_range -EXPORT_SYMBOL_GPL vmlinux 0x00000000 x509_cert_parse -EXPORT_SYMBOL_GPL vmlinux 0x00000000 x509_decode_time -EXPORT_SYMBOL_GPL vmlinux 0x00000000 x509_free_certificate -EXPORT_SYMBOL_GPL vmlinux 0x00000000 x86_cpu_has_min_microcode_rev -EXPORT_SYMBOL_GPL vmlinux 0x00000000 x86_family -EXPORT_SYMBOL_GPL vmlinux 0x00000000 x86_model -EXPORT_SYMBOL_GPL vmlinux 0x00000000 x86_platform -EXPORT_SYMBOL_GPL vmlinux 0x00000000 x86_spec_ctrl_base -EXPORT_SYMBOL_GPL vmlinux 0x00000000 x86_stepping -EXPORT_SYMBOL_GPL vmlinux 0x00000000 x86_vector_domain -EXPORT_SYMBOL_GPL vmlinux 0x00000000 x86_virt_spec_ctrl -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xas_clear_mark -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xas_create_range -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xas_find -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xas_find_conflict -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xas_find_marked -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xas_get_mark -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xas_init_marks -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xas_load -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xas_nomem -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xas_pause -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xas_set_mark -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xas_store -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xdp_attachment_flags_ok -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xdp_attachment_query -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xdp_attachment_setup -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xdp_convert_zc_to_xdp_frame -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xdp_do_flush -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xdp_do_generic_redirect -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xdp_do_redirect -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xdp_return_buff -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xdp_return_frame -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xdp_return_frame_rx_napi -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xdp_rxq_info_is_reg -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xdp_rxq_info_reg -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xdp_rxq_info_reg_mem_model -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xdp_rxq_info_unreg -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xdp_rxq_info_unreg_mem_model -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xdp_rxq_info_unused -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_balloon_init -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_domain_type -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_evtchn_nr_channels -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_features -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_find_device_domain_owner -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_has_pv_and_legacy_disk_devices -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_has_pv_devices -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_has_pv_disk_devices -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_has_pv_nic_devices -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_have_vector_callback -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_hvm_evtchn_do_upcall -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_in_preemptible_hcall -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_irq_from_gsi -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_max_p2m_pfn -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_p2m_addr -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_p2m_size -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_pci_frontend -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_pcpu_hotplug_sync -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_pcpu_id -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_pirq_from_irq -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_register_device_domain_owner -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_remap_pfn -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_remap_vma_range -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_resume_notifier_register -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_resume_notifier_unregister -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_set_affinity_evtchn -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_set_callback_via -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_set_irq_priority -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_setup_shutdown_event -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_start_info -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_store_domain_type -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_store_evtchn -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_store_interface -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_test_irq_shared -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_unmap_domain_gfn_range -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_unregister_device_domain_owner -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_xenbus_fops -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_xlate_map_ballooned_pages -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_xlate_remap_gfn_array -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_xlate_unmap_gfn_range -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_alloc_evtchn -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_dev_cancel -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_dev_changed -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_dev_error -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_dev_fatal -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_dev_groups -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_dev_is_online -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_dev_probe -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_dev_remove -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_dev_resume -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_dev_suspend -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_directory -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_exists -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_free_evtchn -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_frontend_closed -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_gather -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_grant_ring -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_map_ring -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_map_ring_valloc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_match -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_mkdir -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_otherend_changed -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_printf -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_probe -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_probe_devices -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_probe_node -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_read -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_read_driver_state -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_read_otherend_details -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_read_unsigned -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_register_driver_common -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_rm -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_scanf -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_strstate -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_switch_state -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_transaction_end -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_transaction_start -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_unmap_ring -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_unmap_ring_vfree -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_unregister_driver -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_watch_path -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_watch_pathfmt -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_write -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenmem_reservation_decrease -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenmem_reservation_increase -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xfrm_audit_policy_add -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xfrm_audit_policy_delete -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xfrm_audit_state_add -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xfrm_audit_state_delete -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xfrm_audit_state_icvfail -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xfrm_audit_state_notfound -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xfrm_audit_state_notfound_simple -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xfrm_audit_state_replay -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xfrm_audit_state_replay_overflow -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xfrm_dev_offload_ok -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xfrm_dev_resume -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xfrm_dev_state_add -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xfrm_local_error -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xfrm_output -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xfrm_output_resume -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xfrm_state_afinfo_get_rcu -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xfrm_state_mtu -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xhci_dbg_trace -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xhci_ext_cap_init -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xhci_gen_setup -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xhci_init_driver -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xhci_resume -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xhci_run -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xhci_shutdown -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xhci_suspend -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xsk_reuseq_free -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xsk_reuseq_prepare -EXPORT_SYMBOL_GPL vmlinux 0x00000000 xsk_reuseq_swap -EXPORT_SYMBOL_GPL vmlinux 0x00000000 yield_to -EXPORT_SYMBOL_GPL vmlinux 0x00000000 zap_vma_ptes -EXPORT_SYMBOL_GPL vmlinux 0x00000000 zs_compact -EXPORT_SYMBOL_GPL vmlinux 0x00000000 zs_create_pool -EXPORT_SYMBOL_GPL vmlinux 0x00000000 zs_destroy_pool -EXPORT_SYMBOL_GPL vmlinux 0x00000000 zs_free -EXPORT_SYMBOL_GPL vmlinux 0x00000000 zs_get_total_pages -EXPORT_SYMBOL_GPL vmlinux 0x00000000 zs_huge_class_size -EXPORT_SYMBOL_GPL vmlinux 0x00000000 zs_malloc -EXPORT_SYMBOL_GPL vmlinux 0x00000000 zs_map_object -EXPORT_SYMBOL_GPL vmlinux 0x00000000 zs_pool_stats -EXPORT_SYMBOL_GPL vmlinux 0x00000000 zs_unmap_object -LTC2497 EXPORT_SYMBOL 0x00000000 ltc2497core_probe drivers/iio/adc/ltc2497-core -LTC2497 EXPORT_SYMBOL 0x00000000 ltc2497core_remove drivers/iio/adc/ltc2497-core -MCB EXPORT_SYMBOL_GPL 0x00000000 __mcb_register_driver drivers/mcb/mcb -MCB EXPORT_SYMBOL_GPL 0x00000000 chameleon_parse_cells drivers/mcb/mcb -MCB EXPORT_SYMBOL_GPL 0x00000000 mcb_alloc_bus drivers/mcb/mcb -MCB EXPORT_SYMBOL_GPL 0x00000000 mcb_alloc_dev drivers/mcb/mcb -MCB EXPORT_SYMBOL_GPL 0x00000000 mcb_bus_add_devices drivers/mcb/mcb -MCB EXPORT_SYMBOL_GPL 0x00000000 mcb_bus_get drivers/mcb/mcb -MCB EXPORT_SYMBOL_GPL 0x00000000 mcb_bus_put drivers/mcb/mcb -MCB EXPORT_SYMBOL_GPL 0x00000000 mcb_device_register drivers/mcb/mcb -MCB EXPORT_SYMBOL_GPL 0x00000000 mcb_free_dev drivers/mcb/mcb -MCB EXPORT_SYMBOL_GPL 0x00000000 mcb_get_irq drivers/mcb/mcb -MCB EXPORT_SYMBOL_GPL 0x00000000 mcb_get_resource drivers/mcb/mcb -MCB EXPORT_SYMBOL_GPL 0x00000000 mcb_release_bus drivers/mcb/mcb -MCB EXPORT_SYMBOL_GPL 0x00000000 mcb_release_mem drivers/mcb/mcb -MCB EXPORT_SYMBOL_GPL 0x00000000 mcb_request_mem drivers/mcb/mcb -MCB EXPORT_SYMBOL_GPL 0x00000000 mcb_unregister_driver drivers/mcb/mcb -SND_SOC_SOF_HDA_AUDIO_CODEC EXPORT_SYMBOL 0x00000000 hda_codec_jack_check sound/soc/sof/intel/snd-sof-intel-hda -SND_SOC_SOF_HDA_AUDIO_CODEC EXPORT_SYMBOL 0x00000000 hda_codec_jack_wake_enable sound/soc/sof/intel/snd-sof-intel-hda -SND_SOC_SOF_HDA_AUDIO_CODEC EXPORT_SYMBOL 0x00000000 hda_codec_probe_bus sound/soc/sof/intel/snd-sof-intel-hda -SND_SOC_SOF_HDA_AUDIO_CODEC_I915 EXPORT_SYMBOL 0x00000000 hda_codec_i915_display_power sound/soc/sof/intel/snd-sof-intel-hda -SND_SOC_SOF_HDA_AUDIO_CODEC_I915 EXPORT_SYMBOL 0x00000000 hda_codec_i915_exit sound/soc/sof/intel/snd-sof-intel-hda -SND_SOC_SOF_HDA_AUDIO_CODEC_I915 EXPORT_SYMBOL 0x00000000 hda_codec_i915_init sound/soc/sof/intel/snd-sof-intel-hda -SND_SOC_SOF_INTEL_HDA_COMMON EXPORT_SYMBOL 0x00000000 apl_chip_info sound/soc/sof/intel/snd-sof-intel-hda-common -SND_SOC_SOF_INTEL_HDA_COMMON EXPORT_SYMBOL 0x00000000 cnl_chip_info sound/soc/sof/intel/snd-sof-intel-hda-common -SND_SOC_SOF_INTEL_HDA_COMMON EXPORT_SYMBOL 0x00000000 ehl_chip_info sound/soc/sof/intel/snd-sof-intel-hda-common -SND_SOC_SOF_INTEL_HDA_COMMON EXPORT_SYMBOL 0x00000000 icl_chip_info sound/soc/sof/intel/snd-sof-intel-hda-common -SND_SOC_SOF_INTEL_HDA_COMMON EXPORT_SYMBOL 0x00000000 jsl_chip_info sound/soc/sof/intel/snd-sof-intel-hda-common -SND_SOC_SOF_INTEL_HDA_COMMON EXPORT_SYMBOL 0x00000000 sof_apl_ops sound/soc/sof/intel/snd-sof-intel-hda-common -SND_SOC_SOF_INTEL_HDA_COMMON EXPORT_SYMBOL 0x00000000 sof_cnl_ops sound/soc/sof/intel/snd-sof-intel-hda-common -SND_SOC_SOF_INTEL_HDA_COMMON EXPORT_SYMBOL 0x00000000 tgl_chip_info sound/soc/sof/intel/snd-sof-intel-hda-common -SND_SOC_SOF_XTENSA EXPORT_SYMBOL 0x00000000 sof_xtensa_arch_ops sound/soc/sof/xtensa/snd-sof-xtensa-dsp -SOUNDWIRE_INTEL_INIT EXPORT_SYMBOL 0x00000000 sdw_intel_acpi_scan drivers/soundwire/soundwire-intel -SOUNDWIRE_INTEL_INIT EXPORT_SYMBOL 0x00000000 sdw_intel_enable_irq drivers/soundwire/soundwire-intel -SOUNDWIRE_INTEL_INIT EXPORT_SYMBOL 0x00000000 sdw_intel_exit drivers/soundwire/soundwire-intel -SOUNDWIRE_INTEL_INIT EXPORT_SYMBOL 0x00000000 sdw_intel_probe drivers/soundwire/soundwire-intel -SOUNDWIRE_INTEL_INIT EXPORT_SYMBOL 0x00000000 sdw_intel_process_wakeen_event drivers/soundwire/soundwire-intel -SOUNDWIRE_INTEL_INIT EXPORT_SYMBOL 0x00000000 sdw_intel_startup drivers/soundwire/soundwire-intel -USB_STORAGE EXPORT_SYMBOL_GPL 0x00000000 fill_inquiry_response drivers/usb/storage/usb-storage -USB_STORAGE EXPORT_SYMBOL_GPL 0x00000000 usb_stor_Bulk_reset drivers/usb/storage/usb-storage -USB_STORAGE EXPORT_SYMBOL_GPL 0x00000000 usb_stor_Bulk_transport drivers/usb/storage/usb-storage -USB_STORAGE EXPORT_SYMBOL_GPL 0x00000000 usb_stor_CB_reset drivers/usb/storage/usb-storage -USB_STORAGE EXPORT_SYMBOL_GPL 0x00000000 usb_stor_CB_transport drivers/usb/storage/usb-storage -USB_STORAGE EXPORT_SYMBOL_GPL 0x00000000 usb_stor_access_xfer_buf drivers/usb/storage/usb-storage -USB_STORAGE EXPORT_SYMBOL_GPL 0x00000000 usb_stor_adjust_quirks drivers/usb/storage/usb-storage -USB_STORAGE EXPORT_SYMBOL_GPL 0x00000000 usb_stor_bulk_srb drivers/usb/storage/usb-storage -USB_STORAGE EXPORT_SYMBOL_GPL 0x00000000 usb_stor_bulk_transfer_buf drivers/usb/storage/usb-storage -USB_STORAGE EXPORT_SYMBOL_GPL 0x00000000 usb_stor_bulk_transfer_sg drivers/usb/storage/usb-storage -USB_STORAGE EXPORT_SYMBOL_GPL 0x00000000 usb_stor_clear_halt drivers/usb/storage/usb-storage -USB_STORAGE EXPORT_SYMBOL_GPL 0x00000000 usb_stor_control_msg drivers/usb/storage/usb-storage -USB_STORAGE EXPORT_SYMBOL_GPL 0x00000000 usb_stor_ctrl_transfer drivers/usb/storage/usb-storage -USB_STORAGE EXPORT_SYMBOL_GPL 0x00000000 usb_stor_disconnect drivers/usb/storage/usb-storage -USB_STORAGE EXPORT_SYMBOL_GPL 0x00000000 usb_stor_host_template_init drivers/usb/storage/usb-storage -USB_STORAGE EXPORT_SYMBOL_GPL 0x00000000 usb_stor_post_reset drivers/usb/storage/usb-storage -USB_STORAGE EXPORT_SYMBOL_GPL 0x00000000 usb_stor_pre_reset drivers/usb/storage/usb-storage -USB_STORAGE EXPORT_SYMBOL_GPL 0x00000000 usb_stor_probe1 drivers/usb/storage/usb-storage -USB_STORAGE EXPORT_SYMBOL_GPL 0x00000000 usb_stor_probe2 drivers/usb/storage/usb-storage -USB_STORAGE EXPORT_SYMBOL_GPL 0x00000000 usb_stor_reset_resume drivers/usb/storage/usb-storage -USB_STORAGE EXPORT_SYMBOL_GPL 0x00000000 usb_stor_resume drivers/usb/storage/usb-storage -USB_STORAGE EXPORT_SYMBOL_GPL 0x00000000 usb_stor_sense_invalidCDB drivers/usb/storage/usb-storage -USB_STORAGE EXPORT_SYMBOL_GPL 0x00000000 usb_stor_set_xfer_buf drivers/usb/storage/usb-storage -USB_STORAGE EXPORT_SYMBOL_GPL 0x00000000 usb_stor_suspend drivers/usb/storage/usb-storage -USB_STORAGE EXPORT_SYMBOL_GPL 0x00000000 usb_stor_transparent_scsi_command drivers/usb/storage/usb-storage reverted: --- linux-oem-5.6-5.6.0/debian.oem/abi/5.6.0-1032.33/amd64/oem.compiler +++ linux-oem-5.6-5.6.0.orig/debian.oem/abi/5.6.0-1032.33/amd64/oem.compiler @@ -1 +0,0 @@ -GCC: (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0 reverted: --- linux-oem-5.6-5.6.0/debian.oem/abi/5.6.0-1032.33/amd64/oem.modules +++ linux-oem-5.6-5.6.0.orig/debian.oem/abi/5.6.0-1032.33/amd64/oem.modules @@ -1,5613 +0,0 @@ -104-quad-8 -3c509 -3c574_cs -3c589_cs -3c59x -3w-9xxx -3w-sas -3w-xxxx -53c700 -6lowpan -6pack -8021q -8139cp -8139too -8250_dw -8250_exar -8250_lpss -8250_men_mcb -8250_mid -8255 -8255_pci -8390 -842 -842_compress -842_decompress -88pg86x -88pm800 -88pm800-regulator -88pm805 -88pm80x -88pm80x_onkey -88pm8607 -88pm860x-ts -88pm860x_battery -88pm860x_bl -88pm860x_charger -88pm860x_onkey -9p -9pnet -9pnet_rdma -9pnet_virtio -9pnet_xen -BusLogic -a100u2w -a3d -a8293 -aacraid -aat2870-regulator -aat2870_bl -ab3100 -ab3100-otp -abituguru -abituguru3 -abp060mg -ac97_bus -acard-ahci -acecad -acenic -acer-wireless -acer-wmi -acerhdf -acp_audio_dma -acpi-als -acpi_configfs -acpi_extlog -acpi_ipmi -acpi_pad -acpi_power_meter -acpi_tad -acpi_thermal_rel -acpiphp_ibm -acquirewdt -act8865-regulator -act_bpf -act_connmark -act_csum -act_ct -act_ctinfo -act_gact -act_ipt -act_mirred -act_mpls -act_nat -act_pedit -act_police -act_sample -act_simple -act_skbedit -act_skbmod -act_tunnel_key -act_vlan -ad2s1200 -ad2s1210 -ad2s90 -ad5064 -ad525x_dpot -ad525x_dpot-i2c -ad525x_dpot-spi -ad5272 -ad5360 -ad5380 -ad5398 -ad5421 -ad5446 -ad5449 -ad5504 -ad5592r -ad5592r-base -ad5593r -ad5624r_spi -ad5686 -ad5686-spi -ad5696-i2c -ad5755 -ad5758 -ad5761 -ad5764 -ad5791 -ad5820 -ad5933 -ad7091r-base -ad7091r5 -ad7124 -ad714x -ad714x-i2c -ad714x-spi -ad7150 -ad7192 -ad7266 -ad7280a -ad7291 -ad7292 -ad7298 -ad7303 -ad7314 -ad7414 -ad7418 -ad7476 -ad7606 -ad7606_par -ad7606_spi -ad7746 -ad7766 -ad7768-1 -ad7780 -ad7791 -ad7793 -ad7816 -ad7877 -ad7879 -ad7879-i2c -ad7879-spi -ad7887 -ad7923 -ad7949 -ad799x -ad8366 -ad8801 -ad9389b -ad9523 -ad9832 -ad9834 -ad_sigma_delta -adc-keys -adc128d818 -adcxx -addi_apci_1032 -addi_apci_1500 -addi_apci_1516 -addi_apci_1564 -addi_apci_16xx -addi_apci_2032 -addi_apci_2200 -addi_apci_3120 -addi_apci_3501 -addi_apci_3xxx -addi_watchdog -ade7854 -ade7854-i2c -ade7854-spi -adf4350 -adf4371 -adf7242 -adfs -adi -adiantum -adin -adis16080 -adis16130 -adis16136 -adis16201 -adis16203 -adis16209 -adis16240 -adis16260 -adis16400 -adis16460 -adis16480 -adis_lib -adjd_s311 -adl_pci6208 -adl_pci7x3x -adl_pci8164 -adl_pci9111 -adl_pci9118 -adm1021 -adm1025 -adm1026 -adm1029 -adm1031 -adm1177 -adm1275 -adm8211 -adm9240 -adp1653 -adp5061 -adp5520-keys -adp5520_bl -adp5588-keys -adp5589-keys -adp8860_bl -adp8870_bl -adq12b -ads7828 -ads7846 -ads7871 -adt7310 -adt7316 -adt7316-i2c -adt7316-spi -adt7410 -adt7411 -adt7462 -adt7470 -adt7475 -adt7x10 -adummy -adutux -adux1020 -adv7170 -adv7175 -adv7180 -adv7183 -adv7343 -adv7393 -adv7511-v4l2 -adv7604 -adv7842 -adv_pci1710 -adv_pci1720 -adv_pci1723 -adv_pci1724 -adv_pci1760 -adv_pci_dio -advansys -advantechwdt -adxl34x -adxl34x-i2c -adxl34x-spi -adxl372 -adxl372_i2c -adxl372_spi -adxrs450 -aegis128 -aegis128-aesni -aes_ti -aesni-intel -af9013 -af9033 -af_alg -af_key -af_packet_diag -afe4403 -afe4404 -affs -ah4 -ah6 -aha152x_cs -aha1740 -ahci -ahci_platform -aic79xx -aic7xxx -aic94xx -aio_aio12_8 -aio_iiro_16 -aiptek -aircable -airo -airo_cs -airspy -ak7375 -ak881x -ak8975 -al3320a -alcor -alcor_pci -algif_aead -algif_hash -algif_rng -algif_skcipher -alienware-wmi -alim1535_wdt -alim7101_wdt -altera-ci -altera-cvp -altera-freeze-bridge -altera-msgdma -altera-pr-ip-core -altera-ps-spi -altera-stapl -altera_jtaguart -altera_ps2 -altera_tse -altera_uart -alx -am2315 -am53c974 -ambassador -amc6821 -amd -amd-rng -amd-xgbe -amd5536udc_pci -amd64_edac_mod -amd76xrom -amd8111e -amd_freq_sensitivity -amd_iommu_v2 -amdgpu -amdtee -amilo-rfkill -amlogic-gxl-crypto -amplc_dio200 -amplc_dio200_common -amplc_dio200_pci -amplc_pc236 -amplc_pc236_common -amplc_pc263 -amplc_pci224 -amplc_pci230 -amplc_pci236 -amplc_pci263 -ams-iaq-core -ams369fg06 -analog -analogix-anx78xx -analogix_dp -anatop-regulator -ansi_cprng -anubis -aoe -apanel -apds9300 -apds9802als -apds990x -apds9960 -apex -apple-gmux -apple_bl -appledisplay -applesmc -applespi -appletalk -appletouch -applicom -aptina-pll -aqc111 -aquantia -ar5523 -ar7part -ar9331 -arc-rawmode -arc-rimi -arc4 -arc_ps2 -arc_uart -arcfb -arcmsr -arcnet -arcxcnn_bl -arizona-haptics -arizona-i2c -arizona-ldo1 -arizona-micsupp -arizona-spi -ark3116 -arkfb -arp_tables -arpt_mangle -arptable_filter -as102_fe -as370-hwmon -as3711-regulator -as3711_bl -as3935 -as5011 -asb100 -asc7621 -ascot2e -ashmem_linux -asix -aspeed-pwm-tacho -aspeed-video -ast -asus-laptop -asus-nb-wmi -asus-wireless -asus-wmi -asus_atk0110 -asym_tpm -async_memcpy -async_pq -async_raid6_recov -async_tx -async_xor -at24 -at25 -at76c50x-usb -at803x -at86rf230 -atbm8830 -aten -ath -ath10k_core -ath10k_pci -ath10k_sdio -ath10k_usb -ath3k -ath5k -ath6kl_core -ath6kl_sdio -ath6kl_usb -ath9k -ath9k_common -ath9k_htc -ath9k_hw -ath9k_pci_owl_loader -ati_remote -ati_remote2 -atl1 -atl1c -atl1e -atl2 -atlantic -atlas-sensor -atlas_btns -atm -atmel -atmel-ecc -atmel-i2c -atmel-sha204a -atmel_cs -atmel_mxt_ts -atmel_pci -atmtcp -atp -atp870u -atusb -atxp1 -aty128fb -atyfb -au0828 -au8522_common -au8522_decoder -au8522_dig -aufs -auo-pixcir-ts -auth_rpcgss -authenc -authencesn -autofs4 -avmfritz -ax25 -ax88179_178a -ax88796b -axnet_cs -axp20x -axp20x-i2c -axp20x-pek -axp20x-regulator -axp20x_ac_power -axp20x_adc -axp20x_battery -axp20x_usb_power -axp288_adc -axp288_charger -axp288_fuel_gauge -b2c2-flexcop -b2c2-flexcop-pci -b2c2-flexcop-usb -b43 -b43legacy -b44 -b53_common -b53_mdio -b53_mmap -b53_serdes -b53_spi -b53_srab -batman-adv -baycom_par -baycom_ser_fdx -baycom_ser_hdx -bcache -bch -bcm-phy-lib -bcm-sf2 -bcm203x -bcm3510 -bcm590xx -bcm590xx-regulator -bcm5974 -bcm7xxx -bcm87xx -bcma -bcma-hcd -bcmsysport -bd6107 -bd9571mwv -bd9571mwv-regulator -bdc -bdc_pci -be2iscsi -be2net -befs -bel-pfe -belkin_sa -bfa -bfq -bfs -bfusb -bh1750 -bh1770glc -bh1780 -binder_linux -binfmt_misc -blake2b_generic -blake2s-x86_64 -blake2s_generic -block2mtd -blocklayoutdriver -blowfish-x86_64 -blowfish_common -blowfish_generic -bluecard_cs -bluetooth -bluetooth_6lowpan -bma150 -bma180 -bma220_spi -bma400_core -bma400_i2c -bmc150-accel-core -bmc150-accel-i2c -bmc150-accel-spi -bmc150_magn -bmc150_magn_i2c -bmc150_magn_spi -bme680_core -bme680_i2c -bme680_spi -bmg160_core -bmg160_i2c -bmg160_spi -bmi160_core -bmi160_i2c -bmi160_spi -bmp280 -bmp280-i2c -bmp280-spi -bna -bnep -bnx2 -bnx2fc -bnx2i -bnx2x -bnxt_en -bnxt_re -bochs-drm -bonding -bpa10x -bpck -bpfilter -bpqether -bq2415x_charger -bq24190_charger -bq24257_charger -bq24735-charger -bq25890_charger -bq27xxx_battery -bq27xxx_battery_hdq -bq27xxx_battery_i2c -br2684 -br_netfilter -brcmfmac -brcmsmac -brcmutil -brd -bridge -broadcom -bsd_comp -bt3c_cs -bt819 -bt856 -bt866 -bt878 -btbcm -btcoexist -btintel -btmrvl -btmrvl_sdio -btmtksdio -btmtkuart -btqca -btrfs -btrsi -btrtl -btsdio -bttv -btusb -bu21013_ts -bu21029_ts -budget -budget-av -budget-ci -budget-core -budget-patch -c2port-duramar2150 -c67x00 -c6xdigio -c_can -c_can_pci -c_can_platform -ca8210 -cachefiles -cadence_wdt -cafe_ccic -cafe_nand -caif -caif_hsi -caif_serial -caif_socket -caif_usb -caif_virtio -camellia-aesni-avx-x86_64 -camellia-aesni-avx2 -camellia-x86_64 -camellia_generic -can -can-bcm -can-dev -can-gw -can-j1939 -can-raw -capmode -capsule-loader -carl9170 -carminefb -cassini -cast5-avx-x86_64 -cast5_generic -cast6-avx-x86_64 -cast6_generic -cast_common -catc -cavium_ptp -cb710 -cb710-mmc -cb_das16_cs -cb_pcidas -cb_pcidas64 -cb_pcidda -cb_pcimdas -cb_pcimdda -cc10001_adc -cc2520 -cc770 -cc770_isa -cc770_platform -ccm -ccp -ccp-crypto -ccs811 -cdc-acm -cdc-phonet -cdc-wdm -cdc_eem -cdc_ether -cdc_mbim -cdc_ncm -cdc_subset -cdns-csi2rx -cdns-csi2tx -cdns-pltfrm -cdns3 -cdns3-pci-wrap -cec -ceph -cfag12864b -cfag12864bfb -cfb -cfg80211 -cfi_cmdset_0001 -cfi_cmdset_0002 -cfi_cmdset_0020 -cfi_probe -cfi_util -cfspi_slave -ch -ch341 -ch7006 -ch9200 -chacha-x86_64 -chacha20poly1305 -chacha_generic -chaoskey -charlcd -chcr -chipone_icn8505 -chipreg -chnl_net -chromeos_laptop -chromeos_pstore -chromeos_tbmc -ci_hdrc -ci_hdrc_msm -ci_hdrc_pci -ci_hdrc_usb2 -ci_hdrc_zevio -cicada -cifs -cio-dac -cirrus -cirrusfb -ck804xrom -classmate-laptop -clip -clk-cdce706 -clk-cs2000-cp -clk-max9485 -clk-palmas -clk-pwm -clk-s2mps11 -clk-si5341 -clk-si5351 -clk-si544 -clk-twl6040 -clk-wm831x -cls_basic -cls_bpf -cls_cgroup -cls_flow -cls_flower -cls_fw -cls_matchall -cls_route -cls_rsvp -cls_rsvp6 -cls_tcindex -cls_u32 -cm109 -cm32181 -cm3232 -cm3323 -cm36651 -cm4000_cs -cm4040_cs -cma3000_d0x -cma3000_d0x_i2c -cmac -cmdlinepart -cmtp -cnic -cobalt -cobra -coda -com20020 -com20020-pci -com20020_cs -com90io -com90xx -comedi -comedi_8254 -comedi_8255 -comedi_bond -comedi_isadma -comedi_parport -comedi_pci -comedi_pcmcia -comedi_test -comedi_usb -comm -compal-laptop -contec_pci_dio -cops -cordic -core -coretemp -cortina -cosm_bus -cosm_client -counter -cp210x -cpcihp_generic -cpcihp_zt5550 -cpia2 -cpu5wdt -cpuid -cpuidle-haltpoll -cqhci -cr_bllcd -cramfs -crc-itu-t -crc32-pclmul -crc32_generic -crc4 -crc64 -crc7 -crc8 -crct10dif-pclmul -cros-ec-cec -cros_ec -cros_ec_accel_legacy -cros_ec_baro -cros_ec_chardev -cros_ec_debugfs -cros_ec_dev -cros_ec_i2c -cros_ec_ishtp -cros_ec_keyb -cros_ec_lid_angle -cros_ec_light_prox -cros_ec_lightbar -cros_ec_lpcs -cros_ec_sensorhub -cros_ec_sensors -cros_ec_sensors_core -cros_ec_spi -cros_ec_sysfs -cros_kbd_led_backlight -cros_usbpd-charger -cros_usbpd_logger -crvml -cryptd -crypto_engine -crypto_safexcel -crypto_simd -crypto_user -cryptoloop -cs3308 -cs5345 -cs53l32a -cs89x0 -csiostor -ct82c710 -curve25519-generic -curve25519-x86_64 -cuse -cw1200_core -cw1200_wlan_sdio -cw1200_wlan_spi -cx18 -cx18-alsa -cx22700 -cx22702 -cx231xx -cx231xx-alsa -cx231xx-dvb -cx2341x -cx23885 -cx24110 -cx24113 -cx24116 -cx24117 -cx24120 -cx24123 -cx25821 -cx25821-alsa -cx25840 -cx82310_eth -cx88-alsa -cx88-blackbird -cx88-dvb -cx88-vp3054-i2c -cx8800 -cx8802 -cx88xx -cxacru -cxd2099 -cxd2820r -cxd2841er -cxd2880 -cxd2880-spi -cxgb -cxgb3 -cxgb3i -cxgb4 -cxgb4i -cxgb4vf -cxgbit -cy8ctmg110_ts -cyapatp -cyber2000fb -cyberjack -cyclades -cypress_cy7c63 -cypress_firmware -cypress_m8 -cytherm -cyttsp4_core -cyttsp4_i2c -cyttsp4_spi -cyttsp_core -cyttsp_i2c -cyttsp_i2c_common -cyttsp_spi -da280 -da311 -da9030_battery -da9034-ts -da903x -da903x_bl -da9052-battery -da9052-hwmon -da9052-regulator -da9052_bl -da9052_onkey -da9052_tsi -da9052_wdt -da9055-hwmon -da9055-regulator -da9055_onkey -da9055_wdt -da9062-core -da9062-regulator -da9062_wdt -da9063_onkey -da9063_wdt -da9150-charger -da9150-core -da9150-fg -da9150-gpadc -da9210-regulator -da9211-regulator -dac02 -daqboard2000 -das08 -das08_cs -das08_isa -das08_pci -das16 -das16m1 -das1800 -das6402 -das800 -davicom -dax_hmem -dax_pmem -dax_pmem_compat -dax_pmem_core -db9 -dc395x -dca -dccp -dccp_diag -dccp_ipv4 -dccp_ipv6 -dcdbas -ddbridge -de2104x -de4x5 -decnet -defxx -dell-laptop -dell-rbtn -dell-smbios -dell-smm-hwmon -dell-smo8800 -dell-uart-backlight -dell-wmi -dell-wmi-aio -dell-wmi-descriptor -dell-wmi-led -dell_rbu -denali -denali_pci -des3_ede-x86_64 -des_generic -designware_i2s -device_dax -dfl -dfl-afu -dfl-fme -dfl-fme-br -dfl-fme-mgr -dfl-fme-region -dfl-pci -dht11 -diag -dib0070 -dib0090 -dib3000mb -dib3000mc -dib7000m -dib7000p -dib8000 -dib9000 -dibx000_common -digi_acceleport -diskonchip -dl2k -dlci -dlhl60d -dlink-dir685-touchkeys -dlm -dln2 -dln2-adc -dm-bio-prison -dm-bufio -dm-cache -dm-cache-smq -dm-clone -dm-crypt -dm-delay -dm-era -dm-flakey -dm-integrity -dm-log -dm-log-userspace -dm-log-writes -dm-mirror -dm-multipath -dm-persistent-data -dm-queue-length -dm-raid -dm-region-hash -dm-round-robin -dm-service-time -dm-snapshot -dm-switch -dm-thin-pool -dm-unstripe -dm-verity -dm-writecache -dm-zero -dm-zoned -dm1105 -dm9601 -dmard09 -dmard10 -dme1737 -dmfe -dmi-sysfs -dmm32at -dmx3191d -dn_rtmsg -dnet -dp83640 -dp83822 -dp83848 -dp83867 -dp83869 -dp83tc811 -dps310 -dpt_i2o -dptf_power -drbd -drivetemp -drm -drm_kms_helper -drm_mipi_dbi -drm_ttm_helper -drm_vram_helper -drm_xen_front -drv260x -drv2665 -drv2667 -drx39xyj -drxd -drxk -ds1621 -ds1682 -ds1803 -ds1wm -ds2482 -ds2490 -ds2760_battery -ds2780_battery -ds2781_battery -ds2782_battery -ds3000 -ds4424 -ds620 -dsa_core -dsbr100 -dst -dst_ca -dstr -dt2801 -dt2811 -dt2814 -dt2815 -dt2817 -dt282x -dt3000 -dt3155 -dt9812 -dtl1_cs -dummy -dummy-irq -dummy_stm -dvb-as102 -dvb-bt8xx -dvb-core -dvb-pll -dvb-ttpci -dvb-ttusb-budget -dvb-usb -dvb-usb-a800 -dvb-usb-af9005 -dvb-usb-af9005-remote -dvb-usb-af9015 -dvb-usb-af9035 -dvb-usb-anysee -dvb-usb-au6610 -dvb-usb-az6007 -dvb-usb-az6027 -dvb-usb-ce6230 -dvb-usb-cinergyT2 -dvb-usb-cxusb -dvb-usb-dib0700 -dvb-usb-dibusb-common -dvb-usb-dibusb-mb -dvb-usb-dibusb-mc -dvb-usb-dibusb-mc-common -dvb-usb-digitv -dvb-usb-dtt200u -dvb-usb-dtv5100 -dvb-usb-dvbsky -dvb-usb-dw2102 -dvb-usb-ec168 -dvb-usb-gl861 -dvb-usb-gp8psk -dvb-usb-lmedm04 -dvb-usb-m920x -dvb-usb-mxl111sf -dvb-usb-nova-t-usb2 -dvb-usb-opera -dvb-usb-pctv452e -dvb-usb-rtl28xxu -dvb-usb-technisat-usb2 -dvb-usb-ttusb2 -dvb-usb-umt-010 -dvb-usb-vp702x -dvb-usb-vp7045 -dvb_dummy_fe -dvb_usb_v2 -dw-edma -dw-edma-pcie -dw-i3c-master -dw9714 -dw9807-vcm -dw_dmac -dw_dmac_core -dw_dmac_pci -dw_wdt -dwc-xlgmac -dwc2_pci -dwc3 -dwc3-haps -dwc3-pci -dwmac-generic -dyna_pci10xx -dynapro -e100 -e1000 -e1000e -e3x0-button -e4000 -e752x_edac -earth-pt1 -earth-pt3 -ebc-c384_wdt -ebt_802_3 -ebt_among -ebt_arp -ebt_arpreply -ebt_dnat -ebt_ip -ebt_ip6 -ebt_limit -ebt_log -ebt_mark -ebt_mark_m -ebt_nflog -ebt_pkttype -ebt_redirect -ebt_snat -ebt_stp -ebt_vlan -ebtable_broute -ebtable_filter -ebtable_nat -ebtables -ec100 -ec_bhf -ec_sys -ecc -ecdh_generic -echainiv -echo -ecrdsa_generic -edac_mce_amd -edt-ft5x06 -ee1004 -eeepc-laptop -eeepc-wmi -eeprom -eeprom_93cx6 -eeprom_93xx46 -eeti_ts -efa -efi-pstore -efi_test -efibc -efs -egalax_ts_serial -ehci-fsl -ehset -einj -ektf2127 -elan_i2c -elo -em28xx -em28xx-alsa -em28xx-dvb -em28xx-rc -em28xx-v4l -em_canid -em_cmp -em_ipset -em_ipt -em_meta -em_nbyte -em_text -em_u32 -emc1403 -emc2103 -emc6w201 -emi26 -emi62 -empeg -ems_pci -ems_pcmcia -ems_usb -emu10k1-gp -ena -enc28j60 -enclosure -encx24j600 -encx24j600-regmap -ene_ir -eni -enic -epat -epia -epic100 -eql -erofs -esas2r -esb2rom -esd_usb2 -esp4 -esp4_offload -esp6 -esp6_offload -esp_scsi -essiv -et1011c -et131x -et8ek8 -ethoc -eurotechwdt -evbug -exc3000 -exfat -extcon-adc-jack -extcon-arizona -extcon-axp288 -extcon-fsa9480 -extcon-gpio -extcon-intel-cht-wc -extcon-intel-int3496 -extcon-max14577 -extcon-max3355 -extcon-max77693 -extcon-max77843 -extcon-max8997 -extcon-palmas -extcon-ptn5150 -extcon-rt8973a -extcon-sm5502 -extcon-usb-gpio -extcon-usbc-cros-ec -ezusb -f2fs -f71805f -f71808e_wdt -f71882fg -f75375s -f81232 -f81534 -f81601 -failover -fakelb -fam15h_power -fan53555 -farsync -faulty -fb_agm1264k-fl -fb_bd663474 -fb_ddc -fb_hx8340bn -fb_hx8347d -fb_hx8353d -fb_hx8357d -fb_ili9163 -fb_ili9320 -fb_ili9325 -fb_ili9340 -fb_ili9341 -fb_ili9481 -fb_ili9486 -fb_pcd8544 -fb_ra8875 -fb_s6d02a1 -fb_s6d1121 -fb_seps525 -fb_sh1106 -fb_ssd1289 -fb_ssd1305 -fb_ssd1306 -fb_ssd1325 -fb_ssd1331 -fb_ssd1351 -fb_st7735r -fb_st7789v -fb_sys_fops -fb_tinylcd -fb_tls8204 -fb_uc1611 -fb_uc1701 -fb_upd161704 -fb_watterott -fbtft -fc0011 -fc0012 -fc0013 -fc2580 -fcoe -fcrypt -fdomain -fdomain_cs -fdomain_pci -fdp -fdp_i2c -fealnx -ff-memless -fieldbus_dev -fintek-cir -firedtv -firestream -firewire-core -firewire-net -firewire-ohci -firewire-sbp2 -firewire-serial -fit2 -fit3 -fixed -fjes -fl512 -floppy -fm10k -fm801-gp -fm_drv -fmvj18x_cs -fnic -forcedeth -fore_200e -fotg210-hcd -fotg210-udc -fou -fou6 -fpga-bridge -fpga-mgr -fpga-region -freevxfs -friq -frpw -fscache -fschmd -fsia6b -fsl-mph-dr-of -fsl_linflexuart -fsl_lpuart -ftdi-elan -ftdi_sio -ftl -ftrace-direct -ftrace-direct-modify -ftrace-direct-too -ftsteutates -fujitsu-laptop -fujitsu-tablet -fujitsu_ts -fusb302 -fxas21002c_core -fxas21002c_i2c -fxas21002c_spi -fxos8700_core -fxos8700_i2c -fxos8700_spi -g450_pll -g760a -g762 -g_acm_ms -g_audio -g_cdc -g_dbgp -g_ether -g_ffs -g_hid -g_mass_storage -g_midi -g_ncm -g_nokia -g_printer -g_serial -g_webcam -g_zero -gadgetfs -gamecon -gameport -garmin_gps -garp -gasket -gb-audio-apbridgea -gb-audio-gb -gb-audio-manager -gb-bootrom -gb-es2 -gb-firmware -gb-gbphy -gb-gpio -gb-hid -gb-i2c -gb-light -gb-log -gb-loopback -gb-power-supply -gb-pwm -gb-raw -gb-sdio -gb-spi -gb-spilib -gb-uart -gb-usb -gb-vibrator -gdmtty -gdmulte -gdth -gen_probe -generic -generic-adc-battery -generic_bl -genet -geneve -genwqe_card -gf2k -gfs2 -ghash-clmulni-intel -gl518sm -gl520sm -gl620a -glue_helper -gluebi -gm12u320 -gma500_gfx -gnss -gnss-mtk -gnss-serial -gnss-sirf -gnss-ubx -go7007 -go7007-loader -go7007-usb -goku_udc -goodix -gp2ap002a00f -gp2ap020a00f -gp8psk-fe -gpd-pocket-fan -gpio -gpio-104-dio-48e -gpio-104-idi-48 -gpio-104-idio-16 -gpio-adp5520 -gpio-adp5588 -gpio-amd-fch -gpio-amd8111 -gpio-amdpt -gpio-arizona -gpio-bd9571mwv -gpio-beeper -gpio-charger -gpio-crystalcove -gpio-da9052 -gpio-da9055 -gpio-dln2 -gpio-dwapb -gpio-exar -gpio-f7188x -gpio-generic -gpio-gpio-mm -gpio-ich -gpio-it87 -gpio-janz-ttl -gpio-kempld -gpio-lp3943 -gpio-lp873x -gpio-madera -gpio-max3191x -gpio-max7300 -gpio-max7301 -gpio-max730x -gpio-max732x -gpio-mb86s7x -gpio-mc33880 -gpio-menz127 -gpio-ml-ioh -gpio-pca953x -gpio-pcf857x -gpio-pci-idio-16 -gpio-pcie-idio-24 -gpio-pisosr -gpio-rdc321x -gpio-regulator -gpio-sch -gpio-sch311x -gpio-siox -gpio-tpic2810 -gpio-tps65086 -gpio-tps65912 -gpio-tqmx86 -gpio-twl4030 -gpio-twl6040 -gpio-ucb1400 -gpio-vibra -gpio-viperboard -gpio-vx855 -gpio-wcove -gpio-winbond -gpio-wm831x -gpio-wm8350 -gpio-wm8994 -gpio-ws16c48 -gpio-xra1403 -gpio_backlight -gpio_decoder -gpio_keys -gpio_keys_polled -gpio_mouse -gpu-sched -gr_udc -grace -gre -greybus -grip -grip_mp -gs1662 -gs_fpga -gs_usb -gsc_hpdi -gspca_benq -gspca_conex -gspca_cpia1 -gspca_dtcs033 -gspca_etoms -gspca_finepix -gspca_gl860 -gspca_jeilinj -gspca_jl2005bcd -gspca_kinect -gspca_konica -gspca_m5602 -gspca_main -gspca_mars -gspca_mr97310a -gspca_nw80x -gspca_ov519 -gspca_ov534 -gspca_ov534_9 -gspca_pac207 -gspca_pac7302 -gspca_pac7311 -gspca_se401 -gspca_sn9c2028 -gspca_sn9c20x -gspca_sonixb -gspca_sonixj -gspca_spca1528 -gspca_spca500 -gspca_spca501 -gspca_spca505 -gspca_spca506 -gspca_spca508 -gspca_spca561 -gspca_sq905 -gspca_sq905c -gspca_sq930x -gspca_stk014 -gspca_stk1135 -gspca_stv0680 -gspca_stv06xx -gspca_sunplus -gspca_t613 -gspca_topro -gspca_touptek -gspca_tv8532 -gspca_vc032x -gspca_vicam -gspca_xirlink_cit -gspca_zc3xx -gtco -gtp -guillemot -gunze -gve -habanalabs -hackrf -hamachi -hampshire -hangcheck-timer -hanwang -hci -hci_nokia -hci_uart -hci_vhci -hd3ss3220 -hd44780 -hdaps -hdc100x -hdlc -hdlc_cisco -hdlc_fr -hdlc_ppp -hdlc_raw -hdlc_raw_eth -hdlc_x25 -hdlcdrv -hdma -hdma_mgmt -hdpvr -he -hecubafb -helene -hexium_gemini -hexium_orion -hfcmulti -hfcpci -hfcsusb -hfi1 -hfs -hfsplus -hgafb -hi311x -hi556 -hi6210-i2s -hi8435 -hid -hid-a4tech -hid-accutouch -hid-alps -hid-apple -hid-appleir -hid-asus -hid-aureal -hid-axff -hid-belkin -hid-betopff -hid-bigbenff -hid-cherry -hid-chicony -hid-cmedia -hid-corsair -hid-cougar -hid-cp2112 -hid-creative-sb0540 -hid-cypress -hid-dr -hid-elan -hid-elecom -hid-elo -hid-emsff -hid-ezkey -hid-gaff -hid-gembird -hid-generic -hid-gfrm -hid-google-hammer -hid-gt683r -hid-gyration -hid-holtek-kbd -hid-holtek-mouse -hid-holtekff -hid-hyperv -hid-icade -hid-ite -hid-jabra -hid-kensington -hid-keytouch -hid-kye -hid-lcpower -hid-led -hid-lenovo -hid-lg-g15 -hid-logitech -hid-logitech-dj -hid-logitech-hidpp -hid-macally -hid-magicmouse -hid-maltron -hid-mf -hid-microsoft -hid-monterey -hid-multitouch -hid-nti -hid-ntrig -hid-ortek -hid-penmount -hid-petalynx -hid-picolcd -hid-pl -hid-plantronics -hid-primax -hid-prodikeys -hid-redragon -hid-retrode -hid-rmi -hid-roccat -hid-roccat-arvo -hid-roccat-common -hid-roccat-isku -hid-roccat-kone -hid-roccat-koneplus -hid-roccat-konepure -hid-roccat-kovaplus -hid-roccat-lua -hid-roccat-pyra -hid-roccat-ryos -hid-roccat-savu -hid-saitek -hid-samsung -hid-sensor-accel-3d -hid-sensor-als -hid-sensor-custom -hid-sensor-gyro-3d -hid-sensor-hub -hid-sensor-humidity -hid-sensor-iio-common -hid-sensor-incl-3d -hid-sensor-magn-3d -hid-sensor-press -hid-sensor-prox -hid-sensor-rotation -hid-sensor-temperature -hid-sensor-trigger -hid-sjoy -hid-sony -hid-speedlink -hid-steam -hid-steelseries -hid-sunplus -hid-tivo -hid-tmff -hid-topseed -hid-twinhan -hid-u2fzero -hid-uclogic -hid-udraw-ps3 -hid-viewsonic -hid-waltop -hid-wiimote -hid-xinmo -hid-zpff -hid-zydacron -hideep -hidp -hih6130 -hinic -hio -hmc5843_core -hmc5843_i2c -hmc5843_spi -hmc6352 -hopper -horizon -horus3a -hostap -hostap_cs -hostap_pci -hostap_plx -hp-wireless -hp-wmi -hp03 -hp100 -hp206c -hp_accel -hpfs -hpilo -hpsa -hptiop -hpwdt -hsi -hsi_char -hso -hsr -hsu_dma -htc-pasic3 -hts221 -hts221_i2c -hts221_spi -htu21 -huawei-wmi -huawei_cdc_ncm -hv_balloon -hv_netvsc -hv_sock -hv_storvsc -hv_utils -hv_vmbus -hwa-hc -hwa-rc -hwmon-vid -hwpoison-inject -hx711 -hx8357 -hx8357d -hyperbus-core -hyperv-keyboard -hyperv_fb -i10nm_edac -i1480-dfu-usb -i1480-est -i2400m -i2400m-usb -i2c-algo-bit -i2c-algo-pca -i2c-ali1535 -i2c-ali1563 -i2c-ali15x3 -i2c-amd-mp2-pci -i2c-amd-mp2-plat -i2c-amd756 -i2c-amd756-s4882 -i2c-amd8111 -i2c-cbus-gpio -i2c-cht-wc -i2c-cros-ec-tunnel -i2c-designware-pci -i2c-diolan-u2c -i2c-dln2 -i2c-gpio -i2c-hid -i2c-i801 -i2c-isch -i2c-ismt -i2c-kempld -i2c-matroxfb -i2c-mlxcpld -i2c-multi-instantiate -i2c-mux -i2c-mux-gpio -i2c-mux-ltc4306 -i2c-mux-mlxcpld -i2c-mux-pca9541 -i2c-mux-pca954x -i2c-mux-reg -i2c-nforce2 -i2c-nforce2-s4985 -i2c-nvidia-gpu -i2c-ocores -i2c-parport -i2c-pca-platform -i2c-piix4 -i2c-robotfuzz-osif -i2c-scmi -i2c-simtec -i2c-sis5595 -i2c-sis630 -i2c-sis96x -i2c-smbus -i2c-stub -i2c-taos-evm -i2c-tiny-usb -i2c-via -i2c-viapro -i2c-viperboard -i2c-xiic -i3000_edac -i3200_edac -i3c -i3c-master-cdns -i40e -i40iw -i5000_edac -i5100_edac -i5400_edac -i5500_temp -i5k_amb -i6300esb -i7300_edac -i740fb -i7core_edac -i82092 -i82975x_edac -i915 -iTCO_vendor_support -iTCO_wdt -iavf -ib700wdt -ib_cm -ib_core -ib_ipoib -ib_iser -ib_isert -ib_mthca -ib_qib -ib_srp -ib_srpt -ib_umad -ib_uverbs -ibm-cffps -ibm_rtl -ibmaem -ibmasm -ibmasr -ibmpex -icc-core -ice -ichxrom -icp -icp_multi -icplus -ics932s401 -ideapad-laptop -ideapad_slidebar -idma64 -idmouse -idt77252 -idt_89hpesx -idt_gen2 -idt_gen3 -idtcps -idxd -ie31200_edac -ie6xx_wdt -ieee802154 -ieee802154_6lowpan -ieee802154_socket -ifb -ife -ifi_canfd -iforce -iforce-serio -iforce-usb -igb -igbvf -igc -igorplugusb -iguanair -ii_pci20kc -iio-trig-hrtimer -iio-trig-interrupt -iio-trig-loop -iio-trig-sysfs -iio_dummy -iio_hwmon -ila -ili210x -ili9225 -ili922x -ili9320 -ili9341 -img-ascii-lcd -img-i2s-in -img-i2s-out -img-parallel-out -img-spdif-in -img-spdif-out -imm -imon -imon_raw -ims-pcu -imx214 -imx258 -imx274 -imx290 -imx319 -imx355 -ina209 -ina2xx -ina2xx-adc -ina3221 -industrialio -industrialio-buffer-cb -industrialio-configfs -industrialio-hw-consumer -industrialio-sw-device -industrialio-sw-trigger -industrialio-triggered-buffer -industrialio-triggered-event -inet_diag -inexio -inftl -initio -input-leds -input-polldev -inspur-ipsps -int3400_thermal -int3402_thermal -int3403_thermal -int3406_thermal -int340x_thermal_zone -int51x1 -intel-cstate -intel-hid -intel-ish-ipc -intel-ishtp -intel-ishtp-hid -intel-ishtp-loader -intel-lpss -intel-lpss-acpi -intel-lpss-pci -intel-rapl-perf -intel-rng -intel-rst -intel-smartconnect -intel-uncore-frequency -intel-vbtn -intel-wmi-thunderbolt -intel-xhci-usb-role-switch -intel-xway -intel_atomisp2_pm -intel_bxt_pmic_thermal -intel_bxtwc_tmu -intel_cht_int33fe -intel_chtdc_ti_pwrbtn -intel_int0002_vgpio -intel_ips -intel_menlow -intel_oaktrail -intel_pch_thermal -intel_pmc_ipc -intel_powerclamp -intel_punit_ipc -intel_qat -intel_quark_i2c_gpio -intel_rapl_common -intel_rapl_msr -intel_soc_dts_iosf -intel_soc_dts_thermal -intel_soc_pmic_bxtwc -intel_soc_pmic_chtdc_ti -intel_telemetry_core -intel_telemetry_debugfs -intel_telemetry_pltdrv -intel_th -intel_th_acpi -intel_th_gth -intel_th_msu -intel_th_msu_sink -intel_th_pci -intel_th_pti -intel_th_sth -intel_vr_nor -intelfb -interact -inv-mpu6050 -inv-mpu6050-i2c -inv-mpu6050-spi -io_edgeport -io_ti -ioatdma -ionic -iowarrior -ip6_gre -ip6_tables -ip6_tunnel -ip6_udp_tunnel -ip6_vti -ip6t_NPT -ip6t_REJECT -ip6t_SYNPROXY -ip6t_ah -ip6t_eui64 -ip6t_frag -ip6t_hbh -ip6t_ipv6header -ip6t_mh -ip6t_rpfilter -ip6t_rt -ip6t_srh -ip6table_filter -ip6table_mangle -ip6table_nat -ip6table_raw -ip6table_security -ip_gre -ip_set -ip_set_bitmap_ip -ip_set_bitmap_ipmac -ip_set_bitmap_port -ip_set_hash_ip -ip_set_hash_ipmac -ip_set_hash_ipmark -ip_set_hash_ipport -ip_set_hash_ipportip -ip_set_hash_ipportnet -ip_set_hash_mac -ip_set_hash_net -ip_set_hash_netiface -ip_set_hash_netnet -ip_set_hash_netport -ip_set_hash_netportnet -ip_set_list_set -ip_tables -ip_tunnel -ip_vs -ip_vs_dh -ip_vs_fo -ip_vs_ftp -ip_vs_lblc -ip_vs_lblcr -ip_vs_lc -ip_vs_mh -ip_vs_nq -ip_vs_ovf -ip_vs_pe_sip -ip_vs_rr -ip_vs_sed -ip_vs_sh -ip_vs_wlc -ip_vs_wrr -ip_vti -ipack -ipaq -ipcomp -ipcomp6 -iphase -ipheth -ipip -ipmi_devintf -ipmi_msghandler -ipmi_poweroff -ipmi_si -ipmi_ssif -ipmi_watchdog -ipoctal -ipr -ips -ipt_CLUSTERIP -ipt_ECN -ipt_REJECT -ipt_SYNPROXY -ipt_ah -ipt_rpfilter -iptable_filter -iptable_mangle -iptable_nat -iptable_raw -iptable_security -ipu3-cio2 -ipu3-imgu -ipvlan -ipvtap -ipw -ipw2100 -ipw2200 -ipwireless -iqs5xx -ir-imon-decoder -ir-jvc-decoder -ir-kbd-i2c -ir-mce_kbd-decoder -ir-nec-decoder -ir-rc5-decoder -ir-rc6-decoder -ir-rcmm-decoder -ir-sanyo-decoder -ir-sharp-decoder -ir-sony-decoder -ir-usb -ir-xmp-decoder -ir35221 -ir38064 -irps5401 -irq-madera -isci -iscsi_boot_sysfs -iscsi_ibft -iscsi_target_mod -iscsi_tcp -isdnhdlc -isicom -isight_firmware -isl29003 -isl29018 -isl29020 -isl29028 -isl29125 -isl29501 -isl6271a-regulator -isl6405 -isl6421 -isl6423 -isl68137 -isl9305 -isofs -isp116x-hcd -isp1704_charger -isp1760 -isst_if_common -isst_if_mbox_msr -isst_if_mbox_pci -isst_if_mmio -it87 -it8712f_wdt -it87_wdt -it913x -itd1000 -ite-cir -itg3200 -iuu_phoenix -ivtv -ivtv-alsa -ivtvfb -iw_cm -iw_cxgb4 -iwl3945 -iwl4965 -iwldvm -iwlegacy -iwlmvm -iwlwifi -ix2505v -ixgb -ixgbe -ixgbevf -janz-cmodio -janz-ican3 -jc42 -jedec_probe -jffs2 -jfs -jmb38x_ms -jme -joydev -joydump -jr3_pci -jsa1212 -jsm -k10temp -k8temp -kafs -kalmia -kaweth -kb3886_bl -kbic -kbtab -kcm -kcomedilib -ke_counter -kempld-core -kempld_wdt -kernelcapi -keyspan -keyspan_pda -keyspan_remote -keywrap -kfifo_buf -khazad -kheaders -kl5kusb105 -kmem -kmx61 -kobil_sct -kpc2000 -kpc2000_i2c -kpc2000_spi -kpc_dma -ks0108 -ks0127 -ks7010 -ks8842 -ks8851 -ks8851_mll -ksz8795 -ksz8795_spi -ksz884x -ksz9477 -ksz9477_i2c -ksz9477_spi -ksz_common -ktti -kvaser_pci -kvaser_pciefd -kvaser_usb -kvm -kvm-amd -kvm-intel -kvmgt -kxcjk-1013 -kxsd9 -kxsd9-i2c -kxsd9-spi -kxtj9 -kyber-iosched -kyrofb -l1oip -l2tp_core -l2tp_debugfs -l2tp_eth -l2tp_ip -l2tp_ip6 -l2tp_netlink -l2tp_ppp -l440gx -l4f00242t03 -l64781 -lan743x -lan78xx -lan9303-core -lan9303_i2c -lan9303_mdio -lanai -lantiq_gswip -lapb -lapbether -lattice-ecp3-config -lcd -ldusb -lec -led-class-flash -leds-88pm860x -leds-adp5520 -leds-apu -leds-as3645a -leds-bd2802 -leds-blinkm -leds-clevo-mail -leds-da903x -leds-da9052 -leds-dac124s085 -leds-gpio -leds-lm3530 -leds-lm3532 -leds-lm3533 -leds-lm355x -leds-lm3601x -leds-lm36274 -leds-lm3642 -leds-lp3944 -leds-lp3952 -leds-lp5521 -leds-lp5523 -leds-lp5562 -leds-lp55xx-common -leds-lp8501 -leds-lp8788 -leds-max8997 -leds-mc13783 -leds-menf21bmc -leds-mlxcpld -leds-mlxreg -leds-mt6323 -leds-nic78bx -leds-pca9532 -leds-pca955x -leds-pca963x -leds-pwm -leds-regulator -leds-ss4200 -leds-tca6507 -leds-ti-lmu-common -leds-tlc591xx -leds-tps6105x -leds-wm831x-status -leds-wm8350 -ledtrig-activity -ledtrig-audio -ledtrig-backlight -ledtrig-camera -ledtrig-default-on -ledtrig-gpio -ledtrig-heartbeat -ledtrig-netdev -ledtrig-oneshot -ledtrig-pattern -ledtrig-timer -ledtrig-transient -ledtrig-usbport -legousbtower -lg-laptop -lg-vl600 -lg2160 -lgdt3305 -lgdt3306a -lgdt330x -lgs8gl5 -lgs8gxx -lib80211 -lib80211_crypt_ccmp -lib80211_crypt_tkip -lib80211_crypt_wep -libahci -libahci_platform -libarc4 -libblake2s -libblake2s-generic -libceph -libchacha -libchacha20poly1305 -libcomposite -libcrc32c -libcurve25519 -libcurve25519-generic -libcxgb -libcxgbi -libdes -libertas -libertas_cs -libertas_sdio -libertas_spi -libertas_tf -libertas_tf_usb -libfc -libfcoe -libipw -libiscsi -libiscsi_tcp -libpoly1305 -libsas -lightning -lineage-pem -linear -liquidio -liquidio_vf -lis3lv02d -lis3lv02d_i2c -lkkbd -ll_temac -llc -llc2 -lm25066 -lm3533-als -lm3533-core -lm3533-ctrlbank -lm3533_bl -lm3560 -lm3630a_bl -lm3639_bl -lm363x-regulator -lm3646 -lm63 -lm70 -lm73 -lm75 -lm77 -lm78 -lm80 -lm83 -lm8323 -lm8333 -lm85 -lm87 -lm90 -lm92 -lm93 -lm95234 -lm95241 -lm95245 -lmc -lmp91000 -lms283gf05 -lms501kf03 -lnbh25 -lnbh29 -lnbp21 -lnbp22 -lockd -lp -lp3943 -lp3971 -lp3972 -lp855x_bl -lp8727_charger -lp872x -lp873x -lp8755 -lp8788-buck -lp8788-charger -lp8788-ldo -lp8788_adc -lp8788_bl -lpc_ich -lpc_sch -lpddr_cmds -lpfc -lru_cache -lrw -lt3651-charger -ltc1660 -ltc2471 -ltc2485 -ltc2496 -ltc2497 -ltc2497-core -ltc2632 -ltc2941-battery-gauge -ltc2945 -ltc2947-core -ltc2947-i2c -ltc2947-spi -ltc2978 -ltc2983 -ltc2990 -ltc3589 -ltc3676 -ltc3815 -ltc4151 -ltc4215 -ltc4222 -ltc4245 -ltc4260 -ltc4261 -ltpc -ltr501 -ltv350qv -lv0104cs -lv5207lp -lvstest -lxt -lz4 -lz4hc -lz4hc_compress -m2m-deinterlace -m52790 -m5mols -m62332 -m88ds3103 -m88rs2000 -m88rs6000t -mISDN_core -mISDN_dsp -mISDNinfineon -mISDNipac -mISDNisar -m_can -m_can_platform -mac-celtic -mac-centeuro -mac-croatian -mac-cyrillic -mac-gaelic -mac-greek -mac-iceland -mac-inuit -mac-roman -mac-romanian -mac-turkish -mac80211 -mac80211_hwsim -mac802154 -mac802154_hwsim -mac_hid -macb -macb_pci -machxo2-spi -machzwd -macmodes -macsec -macvlan -macvtap -madera -madera-i2c -madera-spi -mag3110 -magellan -mailbox-altera -mantis -mantis_core -map_absent -map_funcs -map_ram -map_rom -marvell -marvell10g -matrix-keymap -matrix_keypad -matrox_w1 -matroxfb_DAC1064 -matroxfb_Ti3026 -matroxfb_accel -matroxfb_base -matroxfb_crtc2 -matroxfb_g450 -matroxfb_maven -matroxfb_misc -max1027 -max11100 -max1111 -max1118 -max11801_ts -max1363 -max14577-regulator -max14577_charger -max1586 -max16064 -max16065 -max1619 -max1668 -max17040_battery -max17042_battery -max1721x_battery -max197 -max20730 -max20751 -max2165 -max2175 -max30100 -max30102 -max3100 -max31722 -max31730 -max31785 -max31790 -max31856 -max3421-hcd -max34440 -max44000 -max44009 -max517 -max5432 -max5481 -max5487 -max63xx_wdt -max6621 -max6639 -max6642 -max6650 -max6697 -max6875 -max7359_keypad -max77693-haptic -max77693-regulator -max77693_charger -max8649 -max8660 -max8688 -max8903_charger -max8907 -max8907-regulator -max8925-regulator -max8925_bl -max8925_onkey -max8925_power -max8952 -max8997-regulator -max8997_charger -max8997_haptic -max8998 -max8998_charger -max9611 -maxim_thermocouple -mb1232 -mb862xxfb -mb86a16 -mb86a20s -mc -mc13783-adc -mc13783-pwrbutton -mc13783-regulator -mc13783_ts -mc13892-regulator -mc13xxx-core -mc13xxx-i2c -mc13xxx-regulator-core -mc13xxx-spi -mc3230 -mc44s803 -mcam-core -mcb -mcb-lpc -mcb-pci -mcba_usb -mce-inject -mceusb -mchp23k256 -mcp251x -mcp3021 -mcp320x -mcp3422 -mcp3911 -mcp4018 -mcp41010 -mcp4131 -mcp4531 -mcp4725 -mcp4922 -mcr20a -mcs5000_ts -mcs7830 -mcs_touchkey -mct_u232 -md-cluster -md4 -mdc800 -mdev -mdio -mdio-bcm-unimac -mdio-bitbang -mdio-cavium -mdio-gpio -mdio-i2c -mdio-mscc-miim -mdio-thunder -me4000 -me_daq -megaraid -megaraid_mbox -megaraid_mm -megaraid_sas -mei -mei-me -mei-txe -mei_hdcp -mei_phy -mei_wdt -melfas_mip4 -memory-notifier-error-inject -memstick -men_z135_uart -men_z188_adc -mena21_wdt -menf21bmc -menf21bmc_hwmon -menf21bmc_wdt -menz69_wdt -metro-usb -metronomefb -meye -mf6x4 -mgag200 -mi0283qt -mic_bus -mic_card -mic_cosm -mic_host -mic_x100_dma -michael_mic -micrel -microchip -microchip_t1 -microread -microread_i2c -microread_mei -microtek -mii -minix -mip6 -mite -mk712 -mkiss -ml86v7667 -mlx-platform -mlx4_core -mlx4_en -mlx4_ib -mlx5_core -mlx5_ib -mlx90614 -mlx90632 -mlx_wdt -mlxfw -mlxreg-fan -mlxreg-hotplug -mlxreg-io -mlxsw_core -mlxsw_i2c -mlxsw_minimal -mlxsw_pci -mlxsw_spectrum -mlxsw_switchib -mlxsw_switchx2 -mma7455_core -mma7455_i2c -mma7455_spi -mma7660 -mma8450 -mma8452 -mma9551 -mma9551_core -mma9553 -mmc35240 -mmc_block -mmc_spi -mms114 -mn88443x -mn88472 -mn88473 -mos7720 -mos7840 -most_cdev -most_core -most_i2c -most_net -most_sound -most_usb -most_video -moxa -mp8859 -mpc624 -mpl115 -mpl115_i2c -mpl115_spi -mpl3115 -mpls_gso -mpls_iptunnel -mpls_router -mpoa -mpr121_touchkey -mpt3sas -mptbase -mptctl -mptfc -mptlan -mptsas -mptscsih -mptspi -mpu3050 -mrf24j40 -mrp -ms5611_core -ms5611_i2c -ms5611_spi -ms5637 -ms_block -ms_sensors_i2c -mscc -mscc_ocelot_common -msdos -msi-laptop -msi-wmi -msi001 -msi2500 -msm-vibrator -msp3400 -mspro_block -msr -mt2060 -mt2063 -mt20xx -mt2131 -mt2266 -mt312 -mt352 -mt6311-regulator -mt6323-regulator -mt6397 -mt6397-regulator -mt7530 -mt76 -mt76-usb -mt7601u -mt7603e -mt7615e -mt76x0-common -mt76x02-lib -mt76x02-usb -mt76x0e -mt76x0u -mt76x2-common -mt76x2e -mt76x2u -mt9m001 -mt9m032 -mt9m111 -mt9p031 -mt9t001 -mt9t112 -mt9v011 -mt9v032 -mt9v111 -mtd -mtd_blkdevs -mtd_dataflash -mtdblock -mtdblock_ro -mtdoops -mtdram -mtdswap -mtip32xx -mtk-pmic-keys -mtk-quadspi -mtk-sd -mtouch -multipath -multiq3 -musb_hdrc -mv88e6060 -mv88e6xxx -mv_u3d_core -mv_udc -mvmdio -mvsas -mvumi -mwave -mwifiex -mwifiex_pcie -mwifiex_sdio -mwifiex_usb -mwl8k -mxb -mxc4005 -mxc6255 -mxic_nand -mxl111sf-demod -mxl111sf-tuner -mxl301rf -mxl5005s -mxl5007t -mxl5xx -mxm-wmi -mxser -mxuport -myrb -myri10ge -myrs -n411 -n5pf -n_gsm -n_hdlc -n_tracerouter -n_tracesink -nand -nand_ecc -nandcore -nandsim -national -natsemi -nau7802 -navman -nb8800 -nbd -nci -nci_spi -nci_uart -nct6683 -nct6775 -nct7802 -nct7904 -nd_blk -nd_btt -nd_pmem -nd_virtio -ne2k-pci -neofb -net1080 -net2272 -net2280 -net_failover -netconsole -netdevsim -netjet -netlink_diag -netrom -nettel -netup-unidvb -netxen_nic -newtonkbd -nf_conncount -nf_conntrack -nf_conntrack_amanda -nf_conntrack_bridge -nf_conntrack_broadcast -nf_conntrack_ftp -nf_conntrack_h323 -nf_conntrack_irc -nf_conntrack_netbios_ns -nf_conntrack_netlink -nf_conntrack_pptp -nf_conntrack_sane -nf_conntrack_sip -nf_conntrack_snmp -nf_conntrack_tftp -nf_defrag_ipv4 -nf_defrag_ipv6 -nf_dup_ipv4 -nf_dup_ipv6 -nf_dup_netdev -nf_flow_table -nf_flow_table_inet -nf_flow_table_ipv4 -nf_flow_table_ipv6 -nf_log_arp -nf_log_bridge -nf_log_common -nf_log_ipv4 -nf_log_ipv6 -nf_log_netdev -nf_nat -nf_nat_amanda -nf_nat_ftp -nf_nat_h323 -nf_nat_irc -nf_nat_pptp -nf_nat_sip -nf_nat_snmp_basic -nf_nat_tftp -nf_reject_ipv4 -nf_reject_ipv6 -nf_socket_ipv4 -nf_socket_ipv6 -nf_synproxy_core -nf_tables -nf_tables_set -nf_tproxy_ipv4 -nf_tproxy_ipv6 -nfc -nfc_digital -nfcmrvl -nfcmrvl_i2c -nfcmrvl_spi -nfcmrvl_uart -nfcmrvl_usb -nfcsim -nfit -nfnetlink -nfnetlink_acct -nfnetlink_cthelper -nfnetlink_cttimeout -nfnetlink_log -nfnetlink_osf -nfnetlink_queue -nfp -nfs -nfs_acl -nfs_layout_flexfiles -nfs_layout_nfsv41_files -nfsd -nfsv2 -nfsv3 -nfsv4 -nft_chain_nat -nft_compat -nft_connlimit -nft_counter -nft_ct -nft_dup_ipv4 -nft_dup_ipv6 -nft_dup_netdev -nft_fib -nft_fib_inet -nft_fib_ipv4 -nft_fib_ipv6 -nft_fib_netdev -nft_flow_offload -nft_fwd_netdev -nft_hash -nft_limit -nft_log -nft_masq -nft_meta_bridge -nft_nat -nft_numgen -nft_objref -nft_osf -nft_queue -nft_quota -nft_redir -nft_reject -nft_reject_bridge -nft_reject_inet -nft_reject_ipv4 -nft_reject_ipv6 -nft_socket -nft_synproxy -nft_tproxy -nft_tunnel -nft_xfrm -nftl -ngene -nhc_dest -nhc_fragment -nhc_hop -nhc_ipv6 -nhc_mobility -nhc_routing -nhc_udp -nhpoly1305 -nhpoly1305-avx2 -nhpoly1305-sse2 -ni903x_wdt -ni_6527 -ni_65xx -ni_660x -ni_670x -ni_at_a2150 -ni_at_ao -ni_atmio -ni_atmio16d -ni_daq_700 -ni_daq_dio24 -ni_labpc -ni_labpc_common -ni_labpc_cs -ni_labpc_isadma -ni_labpc_pci -ni_mio_cs -ni_pcidio -ni_pcimio -ni_routing -ni_tio -ni_tiocmd -ni_usb6501 -nic7018_wdt -nicpf -nicstar -nicvf -nilfs2 -niu -nixge -nlmon -nls_ascii -nls_cp1250 -nls_cp1251 -nls_cp1255 -nls_cp737 -nls_cp775 -nls_cp850 -nls_cp852 -nls_cp855 -nls_cp857 -nls_cp860 -nls_cp861 -nls_cp862 -nls_cp863 -nls_cp864 -nls_cp865 -nls_cp866 -nls_cp869 -nls_cp874 -nls_cp932 -nls_cp936 -nls_cp949 -nls_cp950 -nls_euc-jp -nls_iso8859-1 -nls_iso8859-13 -nls_iso8859-14 -nls_iso8859-15 -nls_iso8859-2 -nls_iso8859-3 -nls_iso8859-4 -nls_iso8859-5 -nls_iso8859-6 -nls_iso8859-7 -nls_iso8859-9 -nls_koi8-r -nls_koi8-ru -nls_koi8-u -nls_utf8 -nmclan_cs -noa1305 -noon010pc30 -nosy -notifier-error-inject -nouveau -nozomi -npcm750-pwm-fan -ns558 -ns83820 -nsh -ntb -ntb_hw_idt -ntb_hw_intel -ntb_hw_switchtec -ntb_netdev -ntb_perf -ntb_pingpong -ntb_tool -ntb_transport -ntc_thermistor -ntfs -null_blk -nuvoton-cir -nv_tco -nvidiafb -nvme -nvme-core -nvme-fabrics -nvme-fc -nvme-loop -nvme-rdma -nvme-tcp -nvmem-rave-sp-eeprom -nvmem_qcom-spmi-sdam -nvmet -nvmet-fc -nvmet-rdma -nvmet-tcp -nvram -nxp-nci -nxp-nci_i2c -nxp-tja11xx -nxt200x -nxt6000 -objagg -ocfb -ocfs2 -ocfs2_dlm -ocfs2_dlmfs -ocfs2_nodemanager -ocfs2_stack_o2cb -ocfs2_stack_user -ocfs2_stackglue -ocrdma -of_xilinx_wdt -ofb -omfs -omninet -on20 -on26 -onenand -opa_vnic -opencores-kbd -openvswitch -oprofile -opt3001 -opticon -option -or51132 -or51211 -orangefs -orinoco -orinoco_cs -orinoco_nortel -orinoco_plx -orinoco_tmd -orinoco_usb -oti6858 -otm3225a -ov13858 -ov2640 -ov2659 -ov2680 -ov2685 -ov5647 -ov5670 -ov5675 -ov5695 -ov6650 -ov7251 -ov7640 -ov7670 -ov772x -ov7740 -ov8856 -ov9640 -ov9650 -overlay -oxu210hp-hcd -p4-clockmod -p54common -p54pci -p54spi -p54usb -p8022 -pa12203001 -padlock-aes -padlock-sha -palmas-pwrbutton -palmas-regulator -palmas_gpadc -panasonic-laptop -pandora_bl -panel -panel-raspberrypi-touchscreen -paride -parkbd -parman -parport -parport_ax88796 -parport_cs -parport_pc -parport_serial -pata_acpi -pata_ali -pata_amd -pata_artop -pata_atiixp -pata_atp867x -pata_cmd640 -pata_cmd64x -pata_cypress -pata_efar -pata_hpt366 -pata_hpt37x -pata_hpt3x2n -pata_hpt3x3 -pata_it8213 -pata_it821x -pata_jmicron -pata_legacy -pata_marvell -pata_mpiix -pata_netcell -pata_ninja32 -pata_ns87410 -pata_ns87415 -pata_oldpiix -pata_opti -pata_optidma -pata_pcmcia -pata_pdc2027x -pata_pdc202xx_old -pata_piccolo -pata_platform -pata_radisys -pata_rdc -pata_rz1000 -pata_sch -pata_serverworks -pata_sil680 -pata_sl82c105 -pata_triflex -pata_via -pblk -pc300too -pc87360 -pc87413_wdt -pc87427 -pcap-regulator -pcap_keys -pcap_ts -pcbc -pcd -pcengines-apuv2 -pcf50633 -pcf50633-adc -pcf50633-backlight -pcf50633-charger -pcf50633-gpio -pcf50633-input -pcf50633-regulator -pcf8574_keypad -pcf8591 -pch_udc -pci -pci-hyperv -pci-hyperv-intf -pci-pf-stub -pci-stub -pci200syn -pcips2 -pcl711 -pcl724 -pcl726 -pcl730 -pcl812 -pcl816 -pcl818 -pcm3724 -pcmad -pcmcia -pcmcia_core -pcmcia_rsrc -pcmciamtd -pcmda12 -pcmmio -pcmuio -pcnet32 -pcnet_cs -pcrypt -pcspkr -pcwd_pci -pcwd_usb -pd -pd6729 -pda_power -pdc_adma -peak_pci -peak_pciefd -peak_pcmcia -peak_usb -peaq-wmi -pegasus -pegasus_notetaker -penmount -pf -pfuze100-regulator -pg -phantom -phonet -phram -phy-bcm-kona-usb2 -phy-cpcap-usb -phy-exynos-usb2 -phy-generic -phy-gpio-vbus-usb -phy-intel-emmc -phy-isp1301 -phy-pxa-28nm-hsic -phy-pxa-28nm-usb2 -phy-qcom-usb-hs -phy-qcom-usb-hsic -phy-tahvo -phy-tusb1210 -phylink -physmap -pi3usb30532 -pi433 -pinctrl-broxton -pinctrl-cannonlake -pinctrl-cedarfork -pinctrl-denverton -pinctrl-geminilake -pinctrl-icelake -pinctrl-intel -pinctrl-lewisburg -pinctrl-lynxpoint -pinctrl-madera -pinctrl-mcp23s08 -pinctrl-sunrisepoint -pinctrl-tigerlake -ping -pistachio-internal-dac -pixcir_i2c_ts -pkcs7_test_key -pkcs8_key_parser -pktcdvd -pktgen -pl2303 -plat-ram -plat_nand -platform_lcd -plip -plusb -pluto2 -plx_dma -plx_pci -pm-notifier-error-inject -pm2fb -pm3fb -pm80xx -pmbus -pmbus_core -pmc551 -pmcraid -pms7003 -pn532_uart -pn533 -pn533_i2c -pn533_usb -pn544 -pn544_i2c -pn544_mei -pn_pep -pnd2_edac -poly1305-x86_64 -poly1305_generic -port100 -powermate -powr1220 -ppa -ppdev -ppp_async -ppp_deflate -ppp_mppe -ppp_synctty -pppoatm -pppoe -pppox -pps-gpio -pps-ldisc -pps_parport -pptp -pretimeout_panic -prism2_usb -processor_thermal_device -ps2-gpio -ps2mult -psample -psmouse -psnap -psxpad-spi -pt -ptp_clockmatrix -ptp_ines -ptp_kvm -pulse8-cec -pulsedlight-lidar-lite-v2 -punit_atom_debug -pv88060-regulator -pv88080-regulator -pv88090-regulator -pvcalls-front -pvpanic -pvrusb2 -pwc -pwm-beeper -pwm-cros-ec -pwm-lp3943 -pwm-pca9685 -pwm-regulator -pwm-twl -pwm-twl-led -pwm-vibra -pwm_bl -pxa27x_udc -pxe1610 -pxrc -qat_c3xxx -qat_c3xxxvf -qat_c62x -qat_c62xvf -qat_dh895xcc -qat_dh895xccvf -qca8k -qcaux -qcom-cpr -qcom-emac -qcom-spmi-adc5 -qcom-spmi-iadc -qcom-spmi-vadc -qcom-vadc-common -qcom-wled -qcom_glink_native -qcom_glink_rpm -qcom_spmi-regulator -qcserial -qed -qede -qedf -qedi -qedr -qemu_fw_cfg -qinfo_probe -qla1280 -qla2xxx -qla3xxx -qla4xxx -qlcnic -qlge -qlogic_cs -qlogicfas408 -qm1d1b0004 -qm1d1c0042 -qmi_wwan -qnx4 -qnx6 -qsemi -qt1010 -qt1050 -qt1070 -qt2160 -qtnfmac -qtnfmac_pcie -quatech2 -quatech_daqp_cs -quota_tree -quota_v1 -quota_v2 -qxl -r592 -r6040 -r8152 -r8169 -r8188eu -r8192e_pci -r8192u_usb -r820t -r852 -r8712u -r8723bs -r8a66597-hcd -r8a66597-udc -radeon -radeonfb -radio-keene -radio-ma901 -radio-maxiradio -radio-mr800 -radio-platform-si4713 -radio-raremono -radio-shark -radio-si470x-common -radio-si470x-i2c -radio-si470x-usb -radio-si476x -radio-tea5764 -radio-usb-si4713 -radio-wl1273 -raid0 -raid1 -raid10 -raid456 -raid6_pq -raid_class -rainshadow-cec -ramoops -rave-sp -rave-sp-backlight -rave-sp-pwrbutton -rave-sp-wdt -raw -raw_diag -ray_cs -raydium_i2c_ts -rbd -rc-adstech-dvb-t-pci -rc-alink-dtu-m -rc-anysee -rc-apac-viewcomp -rc-astrometa-t2hybrid -rc-asus-pc39 -rc-asus-ps3-100 -rc-ati-tv-wonder-hd-600 -rc-ati-x10 -rc-avermedia -rc-avermedia-a16d -rc-avermedia-cardbus -rc-avermedia-dvbt -rc-avermedia-m135a -rc-avermedia-m733a-rm-k6 -rc-avermedia-rm-ks -rc-avertv-303 -rc-azurewave-ad-tu700 -rc-beelink-gs1 -rc-behold -rc-behold-columbus -rc-budget-ci-old -rc-cec -rc-cinergy -rc-cinergy-1400 -rc-core -rc-d680-dmb -rc-delock-61959 -rc-dib0700-nec -rc-dib0700-rc5 -rc-digitalnow-tinytwin -rc-digittrade -rc-dm1105-nec -rc-dntv-live-dvb-t -rc-dntv-live-dvbt-pro -rc-dtt200u -rc-dvbsky -rc-dvico-mce -rc-dvico-portable -rc-em-terratec -rc-encore-enltv -rc-encore-enltv-fm53 -rc-encore-enltv2 -rc-evga-indtube -rc-eztv -rc-flydvb -rc-flyvideo -rc-fusionhdtv-mce -rc-gadmei-rm008z -rc-geekbox -rc-genius-tvgo-a11mce -rc-gotview7135 -rc-hauppauge -rc-hisi-poplar -rc-hisi-tv-demo -rc-imon-mce -rc-imon-pad -rc-imon-rsc -rc-iodata-bctv7e -rc-it913x-v1 -rc-it913x-v2 -rc-kaiomy -rc-khadas -rc-kworld-315u -rc-kworld-pc150u -rc-kworld-plus-tv-analog -rc-leadtek-y04g0051 -rc-lme2510 -rc-loopback -rc-manli -rc-medion-x10 -rc-medion-x10-digitainer -rc-medion-x10-or2x -rc-msi-digivox-ii -rc-msi-digivox-iii -rc-msi-tvanywhere -rc-msi-tvanywhere-plus -rc-nebula -rc-nec-terratec-cinergy-xs -rc-norwood -rc-npgtech -rc-odroid -rc-pctv-sedna -rc-pinnacle-color -rc-pinnacle-grey -rc-pinnacle-pctv-hd -rc-pixelview -rc-pixelview-002t -rc-pixelview-mk12 -rc-pixelview-new -rc-powercolor-real-angel -rc-proteus-2309 -rc-purpletv -rc-pv951 -rc-rc6-mce -rc-real-audio-220-32-keys -rc-reddo -rc-snapstream-firefly -rc-streamzap -rc-su3000 -rc-tango -rc-tanix-tx3mini -rc-tanix-tx5max -rc-tbs-nec -rc-technisat-ts35 -rc-technisat-usb2 -rc-terratec-cinergy-c-pci -rc-terratec-cinergy-s2-hd -rc-terratec-cinergy-xs -rc-terratec-slim -rc-terratec-slim-2 -rc-tevii-nec -rc-tivo -rc-total-media-in-hand -rc-total-media-in-hand-02 -rc-trekstor -rc-tt-1500 -rc-twinhan-dtv-cab-ci -rc-twinhan1027 -rc-vega-s9x -rc-videomate-m1f -rc-videomate-s350 -rc-videomate-tv-pvr -rc-videostrong-kii-pro -rc-wetek-hub -rc-wetek-play2 -rc-winfast -rc-winfast-usbii-deluxe -rc-x96max -rc-xbox-dvd -rc-zx-irdec -rc5t583-regulator -rcuperf -rdc321x-southbridge -rdma_cm -rdma_rxe -rdma_ucm -rdmavt -rds -rds_rdma -rds_tcp -realtek -realtek-smi -redboot -redrat3 -reed_solomon -regmap-i3c -regmap-sccb -regmap-sdw -regmap-slimbus -regmap-spmi -regmap-w1 -regulator-haptic -reiserfs -repaper -reset-ti-syscon -resistive-adc-touch -retu-mfd -retu-pwrbutton -retu_wdt -rfc1051 -rfc1201 -rfcomm -rfd77402 -rfd_ftl -rfkill-gpio -rio-scan -rio_cm -rio_mport_cdev -rionet -rivafb -rj54n1cb0c -rm3100-core -rm3100-i2c -rm3100-spi -rmd128 -rmd160 -rmd256 -rmd320 -rmi_core -rmi_i2c -rmi_smbus -rmi_spi -rmnet -rndis_host -rndis_wlan -rockchip -rocker -rocket -rohm_bu21023 -roles -romfs -rose -rotary_encoder -rp2 -rpcrdma -rpcsec_gss_krb5 -rpmsg_char -rpmsg_core -rpr0521 -rsi_91x -rsi_sdio -rsi_usb -rsxx -rt2400pci -rt2500pci -rt2500usb -rt2800lib -rt2800mmio -rt2800pci -rt2800usb -rt2x00lib -rt2x00mmio -rt2x00pci -rt2x00usb -rt5033 -rt5033-regulator -rt5033_battery -rt61pci -rt73usb -rt9455_charger -rtc-88pm80x -rtc-88pm860x -rtc-ab-b5ze-s3 -rtc-ab-eoz9 -rtc-ab3100 -rtc-abx80x -rtc-bq32k -rtc-bq4802 -rtc-cros-ec -rtc-da9052 -rtc-da9055 -rtc-da9063 -rtc-ds1286 -rtc-ds1302 -rtc-ds1305 -rtc-ds1307 -rtc-ds1343 -rtc-ds1347 -rtc-ds1374 -rtc-ds1390 -rtc-ds1511 -rtc-ds1553 -rtc-ds1672 -rtc-ds1685 -rtc-ds1742 -rtc-ds2404 -rtc-ds3232 -rtc-em3027 -rtc-fm3130 -rtc-ftrtc010 -rtc-hid-sensor-time -rtc-isl12022 -rtc-isl1208 -rtc-lp8788 -rtc-m41t80 -rtc-m41t93 -rtc-m41t94 -rtc-m48t35 -rtc-m48t59 -rtc-m48t86 -rtc-max6900 -rtc-max6902 -rtc-max6916 -rtc-max8907 -rtc-max8925 -rtc-max8997 -rtc-max8998 -rtc-mc13xxx -rtc-mcp795 -rtc-msm6242 -rtc-mt6397 -rtc-palmas -rtc-pcap -rtc-pcf2123 -rtc-pcf2127 -rtc-pcf50633 -rtc-pcf85063 -rtc-pcf8523 -rtc-pcf85363 -rtc-pcf8563 -rtc-pcf8583 -rtc-r9701 -rtc-rc5t583 -rtc-rp5c01 -rtc-rs5c348 -rtc-rs5c372 -rtc-rv3028 -rtc-rv3029c2 -rtc-rv8803 -rtc-rx4581 -rtc-rx6110 -rtc-rx8010 -rtc-rx8025 -rtc-rx8581 -rtc-s35390a -rtc-s5m -rtc-sd3078 -rtc-stk17ta8 -rtc-tps6586x -rtc-tps65910 -rtc-tps80031 -rtc-v3020 -rtc-wilco-ec -rtc-wm831x -rtc-wm8350 -rtc-x1205 -rtd520 -rti800 -rti802 -rtl2830 -rtl2832 -rtl2832_sdr -rtl8150 -rtl8187 -rtl8188ee -rtl818x_pci -rtl8192c-common -rtl8192ce -rtl8192cu -rtl8192de -rtl8192ee -rtl8192se -rtl8723-common -rtl8723ae -rtl8723be -rtl8821ae -rtl8xxxu -rtl_pci -rtl_usb -rtllib -rtllib_crypt_ccmp -rtllib_crypt_tkip -rtllib_crypt_wep -rtlwifi -rts5208 -rtsx_pci -rtsx_pci_ms -rtsx_pci_sdmmc -rtsx_usb -rtsx_usb_ms -rtsx_usb_sdmmc -rtw88 -rtwpci -rx51_battery -rxrpc -s1d13xxxfb -s2250 -s2255drv -s2io -s2mpa01 -s2mps11 -s3fb -s3fwrn5 -s3fwrn5_i2c -s526 -s5c73m3 -s5h1409 -s5h1411 -s5h1420 -s5h1432 -s5k4ecgx -s5k5baf -s5k6a3 -s5k6aa -s5m8767 -s626 -s6sy761 -s921 -saa6588 -saa6752hs -saa7110 -saa7115 -saa7127 -saa7134 -saa7134-alsa -saa7134-dvb -saa7134-empress -saa7134-go7007 -saa7146 -saa7146_vv -saa7164 -saa717x -saa7185 -saa7706h -safe_serial -salsa20_generic -sample-trace-array -samsung-keypad -samsung-laptop -samsung-q10 -samsung-sxgbe -sata_dwc_460ex -sata_inic162x -sata_mv -sata_nv -sata_promise -sata_qstor -sata_sil -sata_sil24 -sata_sis -sata_svw -sata_sx4 -sata_uli -sata_via -sata_vsc -savagefb -sb1000 -sb_edac -sbc60xxwdt -sbc_epx_c3 -sbc_fitpc2_wdt -sbc_gxx -sbni -sbp_target -sbs -sbs-battery -sbs-charger -sbs-manager -sbshc -sc1200wdt -sc16is7xx -sc92031 -sca3000 -scb2_flash -sch311x_wdt -sch5627 -sch5636 -sch56xx-common -sch_atm -sch_cake -sch_cbq -sch_cbs -sch_choke -sch_codel -sch_drr -sch_dsmark -sch_etf -sch_ets -sch_fq -sch_fq_codel -sch_fq_pie -sch_gred -sch_hfsc -sch_hhf -sch_htb -sch_ingress -sch_mqprio -sch_multiq -sch_netem -sch_pie -sch_plug -sch_prio -sch_qfq -sch_red -sch_sfb -sch_sfq -sch_skbprio -sch_taprio -sch_tbf -sch_teql -scif -scif_bus -scr24x_cs -scsi_debug -scsi_dh_alua -scsi_dh_emc -scsi_dh_hp_sw -scsi_dh_rdac -scsi_transport_fc -scsi_transport_iscsi -scsi_transport_sas -scsi_transport_spi -scsi_transport_srp -sctp -sctp_diag -sdhci -sdhci-acpi -sdhci-pci -sdhci-pltfm -sdhci-xenon-driver -sdhci_f_sdh30 -sdio_uart -sdricoh_cs -seco-cec -seed -sensorhub -serial_cs -serial_ir -serio_raw -sermouse -serpent-avx-x86_64 -serpent-avx2 -serpent-sse2-x86_64 -serpent_generic -serport -ses -sf-pdma -sfc -sfc-falcon -sfp -sgi_w1 -sgp30 -sh_veu -sha1-ssse3 -sha256-ssse3 -sha3_generic -sha512-ssse3 -shark2 -shiftfs -sht15 -sht21 -sht3x -shtc1 -si1133 -si1145 -si2157 -si2165 -si2168 -si21xx -si4713 -si476x-core -si7005 -si7020 -sidewinder -sierra -sierra_net -sil164 -silead -sim710 -siox-bus-gpio -siox-core -sir_ir -sirf-audio-codec -sis-agp -sis190 -sis5595 -sis900 -sis_i2c -sisfb -sisusbvga -sit -siw -sja1000 -sja1000_isa -sja1000_platform -sja1105 -skd -skfp -skge -skx_edac -sky2 -sky81452 -sky81452-backlight -sky81452-regulator -sl811-hcd -sl811_cs -slcan -slg51000-regulator -slicoss -slim-qcom-ctrl -slimbus -slip -slram -sm3_generic -sm4_generic -sm501 -sm501fb -sm712fb -sm750fb -sm_common -sm_ftl -smartpqi -smb347-charger -smc -smc91c92_cs -smc_diag -smiapp -smiapp-pll -smipcie -smm665 -smsc -smsc37b787_wdt -smsc47b397 -smsc47m1 -smsc47m192 -smsc75xx -smsc911x -smsc9420 -smsc95xx -smscufx -smsdvb -smsmdtv -smssdio -smsusb -snd -snd-ac97-codec -snd-acp3x-i2s -snd-acp3x-pcm-dma -snd-acp3x-pdm-dma -snd-acp3x-rn -snd-ad1889 -snd-ak4113 -snd-ak4114 -snd-ak4117 -snd-ak4xxx-adda -snd-ali5451 -snd-aloop -snd-als300 -snd-als4000 -snd-asihpi -snd-atiixp -snd-atiixp-modem -snd-au8810 -snd-au8820 -snd-au8830 -snd-aw2 -snd-azt3328 -snd-bcd2000 -snd-bebob -snd-bt87x -snd-ca0106 -snd-cmipci -snd-compress -snd-cs4281 -snd-cs46xx -snd-cs8427 -snd-ctxfi -snd-darla20 -snd-darla24 -snd-dice -snd-dummy -snd-echo3g -snd-emu10k1 -snd-emu10k1-synth -snd-emu10k1x -snd-emux-synth -snd-ens1370 -snd-ens1371 -snd-es1938 -snd-es1968 -snd-fireface -snd-firewire-digi00x -snd-firewire-lib -snd-firewire-motu -snd-firewire-tascam -snd-fireworks -snd-fm801 -snd-gina20 -snd-gina24 -snd-hda-codec -snd-hda-codec-analog -snd-hda-codec-ca0110 -snd-hda-codec-ca0132 -snd-hda-codec-cirrus -snd-hda-codec-cmedia -snd-hda-codec-conexant -snd-hda-codec-generic -snd-hda-codec-hdmi -snd-hda-codec-idt -snd-hda-codec-realtek -snd-hda-codec-si3054 -snd-hda-codec-via -snd-hda-core -snd-hda-ext-core -snd-hda-intel -snd-hdmi-lpe-audio -snd-hdsp -snd-hdspm -snd-hrtimer -snd-hwdep -snd-i2c -snd-ice1712 -snd-ice1724 -snd-ice17xx-ak4xxx -snd-indigo -snd-indigodj -snd-indigodjx -snd-indigoio -snd-indigoiox -snd-intel-dspcfg -snd-intel-sst-acpi -snd-intel-sst-core -snd-intel8x0 -snd-intel8x0m -snd-isight -snd-korg1212 -snd-layla20 -snd-layla24 -snd-lola -snd-lx6464es -snd-maestro3 -snd-mia -snd-mixart -snd-mixer-oss -snd-mona -snd-mpu401 -snd-mpu401-uart -snd-mtpav -snd-mts64 -snd-nm256 -snd-opl3-lib -snd-opl3-synth -snd-oxfw -snd-oxygen -snd-oxygen-lib -snd-pci-acp3x -snd-pcm -snd-pcm-dmaengine -snd-pcsp -snd-pcxhr -snd-pdaudiocf -snd-portman2x4 -snd-pt2258 -snd-rawmidi -snd-riptide -snd-rme32 -snd-rme96 -snd-rme9652 -snd-rn-pci-acp3x -snd-sb-common -snd-seq -snd-seq-device -snd-seq-dummy -snd-seq-midi -snd-seq-midi-emul -snd-seq-midi-event -snd-seq-virmidi -snd-serial-u16550 -snd-skl_nau88l25_max98357a -snd-soc-ac97 -snd-soc-acp-da7219mx98357-mach -snd-soc-acp-rt5645-mach -snd-soc-acpi -snd-soc-acpi-intel-match -snd-soc-adau-utils -snd-soc-adau1701 -snd-soc-adau1761 -snd-soc-adau1761-i2c -snd-soc-adau1761-spi -snd-soc-adau17x1 -snd-soc-adau7002 -snd-soc-adau7118 -snd-soc-adau7118-hw -snd-soc-adau7118-i2c -snd-soc-ak4104 -snd-soc-ak4118 -snd-soc-ak4458 -snd-soc-ak4554 -snd-soc-ak4613 -snd-soc-ak4642 -snd-soc-ak5386 -snd-soc-ak5558 -snd-soc-alc5623 -snd-soc-bd28623 -snd-soc-bt-sco -snd-soc-cml_rt1011_rt5682 -snd-soc-core -snd-soc-cros-ec-codec -snd-soc-cs35l32 -snd-soc-cs35l33 -snd-soc-cs35l34 -snd-soc-cs35l35 -snd-soc-cs35l36 -snd-soc-cs4265 -snd-soc-cs4270 -snd-soc-cs4271 -snd-soc-cs4271-i2c -snd-soc-cs4271-spi -snd-soc-cs42l42 -snd-soc-cs42l51 -snd-soc-cs42l51-i2c -snd-soc-cs42l52 -snd-soc-cs42l56 -snd-soc-cs42l73 -snd-soc-cs42xx8 -snd-soc-cs42xx8-i2c -snd-soc-cs43130 -snd-soc-cs4341 -snd-soc-cs4349 -snd-soc-cs53l30 -snd-soc-cx2072x -snd-soc-da7213 -snd-soc-da7219 -snd-soc-dmic -snd-soc-es7134 -snd-soc-es7241 -snd-soc-es8316 -snd-soc-es8328 -snd-soc-es8328-i2c -snd-soc-es8328-spi -snd-soc-fsl-asrc -snd-soc-fsl-audmix -snd-soc-fsl-esai -snd-soc-fsl-micfil -snd-soc-fsl-mqs -snd-soc-fsl-sai -snd-soc-fsl-spdif -snd-soc-fsl-ssi -snd-soc-gtm601 -snd-soc-hdac-hda -snd-soc-hdac-hdmi -snd-soc-hdmi-codec -snd-soc-imx-audmux -snd-soc-inno-rk3036 -snd-soc-kbl_da7219_max98357a -snd-soc-kbl_da7219_max98927 -snd-soc-kbl_rt5660 -snd-soc-kbl_rt5663_max98927 -snd-soc-kbl_rt5663_rt5514_max98927 -snd-soc-max9759 -snd-soc-max98088 -snd-soc-max98090 -snd-soc-max98357a -snd-soc-max98373 -snd-soc-max98504 -snd-soc-max9860 -snd-soc-max9867 -snd-soc-max98927 -snd-soc-msm8916-analog -snd-soc-msm8916-digital -snd-soc-mt6351 -snd-soc-mt6358 -snd-soc-mt6660 -snd-soc-nau8540 -snd-soc-nau8810 -snd-soc-nau8822 -snd-soc-nau8824 -snd-soc-nau8825 -snd-soc-pcm1681 -snd-soc-pcm1789-codec -snd-soc-pcm1789-i2c -snd-soc-pcm179x-codec -snd-soc-pcm179x-i2c -snd-soc-pcm179x-spi -snd-soc-pcm186x -snd-soc-pcm186x-i2c -snd-soc-pcm186x-spi -snd-soc-pcm3060 -snd-soc-pcm3060-i2c -snd-soc-pcm3060-spi -snd-soc-pcm3168a -snd-soc-pcm3168a-i2c -snd-soc-pcm3168a-spi -snd-soc-pcm512x -snd-soc-pcm512x-i2c -snd-soc-pcm512x-spi -snd-soc-rk3328 -snd-soc-rl6231 -snd-soc-rl6347a -snd-soc-rt1011 -snd-soc-rt1015 -snd-soc-rt1308 -snd-soc-rt1308-sdw -snd-soc-rt286 -snd-soc-rt298 -snd-soc-rt5514 -snd-soc-rt5514-spi -snd-soc-rt5616 -snd-soc-rt5631 -snd-soc-rt5640 -snd-soc-rt5645 -snd-soc-rt5651 -snd-soc-rt5660 -snd-soc-rt5663 -snd-soc-rt5670 -snd-soc-rt5677 -snd-soc-rt5677-spi -snd-soc-rt5682 -snd-soc-rt700 -snd-soc-rt711 -snd-soc-rt715 -snd-soc-sgtl5000 -snd-soc-si476x -snd-soc-sigmadsp -snd-soc-sigmadsp-i2c -snd-soc-sigmadsp-regmap -snd-soc-simple-amplifier -snd-soc-simple-card -snd-soc-simple-card-utils -snd-soc-skl_hda_dsp -snd-soc-skl_nau88l25_ssm4567 -snd-soc-skl_rt286 -snd-soc-sof-sdw -snd-soc-sof_da7219_max98373 -snd-soc-sof_rt5682 -snd-soc-spdif-rx -snd-soc-spdif-tx -snd-soc-ssm2305 -snd-soc-ssm2602 -snd-soc-ssm2602-i2c -snd-soc-ssm2602-spi -snd-soc-ssm4567 -snd-soc-sst-acpi -snd-soc-sst-atom-hifi2-platform -snd-soc-sst-bdw-rt5650-mach -snd-soc-sst-bdw-rt5677-mach -snd-soc-sst-broadwell -snd-soc-sst-bxt-da7219_max98357a -snd-soc-sst-bxt-rt298 -snd-soc-sst-byt-cht-cx2072x -snd-soc-sst-byt-cht-da7213 -snd-soc-sst-byt-cht-es8316 -snd-soc-sst-bytcr-rt5640 -snd-soc-sst-bytcr-rt5651 -snd-soc-sst-cht-bsw-max98090_ti -snd-soc-sst-cht-bsw-nau8824 -snd-soc-sst-cht-bsw-rt5645 -snd-soc-sst-cht-bsw-rt5672 -snd-soc-sst-dsp -snd-soc-sst-firmware -snd-soc-sst-glk-rt5682_max98357a -snd-soc-sst-haswell-pcm -snd-soc-sst-ipc -snd-soc-sst-sof-pcm512x -snd-soc-sta32x -snd-soc-sta350 -snd-soc-sti-sas -snd-soc-tas2552 -snd-soc-tas2562 -snd-soc-tas2770 -snd-soc-tas5086 -snd-soc-tas571x -snd-soc-tas5720 -snd-soc-tas6424 -snd-soc-tda7419 -snd-soc-tfa9879 -snd-soc-tlv320aic23 -snd-soc-tlv320aic23-i2c -snd-soc-tlv320aic23-spi -snd-soc-tlv320aic31xx -snd-soc-tlv320aic32x4 -snd-soc-tlv320aic32x4-i2c -snd-soc-tlv320aic32x4-spi -snd-soc-tlv320aic3x -snd-soc-tpa6130a2 -snd-soc-ts3a227e -snd-soc-tscs42xx -snd-soc-tscs454 -snd-soc-uda1334 -snd-soc-wcd9335 -snd-soc-wcd934x -snd-soc-wm8510 -snd-soc-wm8523 -snd-soc-wm8524 -snd-soc-wm8580 -snd-soc-wm8711 -snd-soc-wm8728 -snd-soc-wm8731 -snd-soc-wm8737 -snd-soc-wm8741 -snd-soc-wm8750 -snd-soc-wm8753 -snd-soc-wm8770 -snd-soc-wm8776 -snd-soc-wm8782 -snd-soc-wm8804 -snd-soc-wm8804-i2c -snd-soc-wm8804-spi -snd-soc-wm8903 -snd-soc-wm8904 -snd-soc-wm8960 -snd-soc-wm8962 -snd-soc-wm8974 -snd-soc-wm8978 -snd-soc-wm8985 -snd-soc-wsa881x -snd-soc-xlnx-formatter-pcm -snd-soc-xlnx-i2s -snd-soc-xlnx-spdif -snd-soc-xtfpga-i2s -snd-soc-zx-aud96p22 -snd-sof -snd-sof-acpi -snd-sof-intel-hda -snd-sof-intel-hda-common -snd-sof-pci -snd-sof-xtensa-dsp -snd-sonicvibes -snd-timer -snd-trident -snd-ua101 -snd-usb-6fire -snd-usb-audio -snd-usb-caiaq -snd-usb-hiface -snd-usb-line6 -snd-usb-pod -snd-usb-podhd -snd-usb-toneport -snd-usb-us122l -snd-usb-usx2y -snd-usb-variax -snd-usbmidi-lib -snd-util-mem -snd-via82xx -snd-via82xx-modem -snd-virmidi -snd-virtuoso -snd-vx-lib -snd-vx222 -snd-vxpocket -snd-ymfpci -snd_xen_front -snic -snps_udc_core -soc_button_array -softdog -softing -softing_cs -solo6x10 -solos-pci -sony-btf-mpx -sony-laptop -soundcore -soundwire-bus -soundwire-cadence -soundwire-generic-allocation -soundwire-intel -soundwire-qcom -sp2 -sp5100_tco -sp8870 -sp887x -spaceball -spaceorb -sparse-keymap -spcp8x5 -speakup -speakup_acntsa -speakup_apollo -speakup_audptr -speakup_bns -speakup_decext -speakup_dectlk -speakup_dummy -speakup_ltlk -speakup_soft -speakup_spkout -speakup_txprt -spectrum_cs -speedfax -speedstep-lib -speedtch -spi-altera -spi-axi-spi-engine -spi-bitbang -spi-butterfly -spi-cadence -spi-dln2 -spi-dw -spi-dw-midpci -spi-dw-mmio -spi-gpio -spi-lm70llp -spi-loopback-test -spi-mxic -spi-nor -spi-nxp-fspi -spi-oc-tiny -spi-pxa2xx-pci -spi-pxa2xx-platform -spi-sc18is602 -spi-sifive -spi-slave-system-control -spi-slave-time -spi-tle62x0 -spi-xcomm -spi-zynqmp-gqspi -spi_ks8995 -spidev -spinand -spl -spmi -sps30 -sr030pc30 -sr9700 -sr9800 -srf04 -srf08 -ssb -ssb-hcd -ssfdc -ssp_accel_sensor -ssp_gyro_sensor -ssp_iio -sst25l -sstfb -ssu100 -st -st-mipid02 -st-nci -st-nci_i2c -st-nci_spi -st1232 -st21nfca_hci -st21nfca_i2c -st7586 -st7735r -st95hf -st_accel -st_accel_i2c -st_accel_spi -st_drv -st_gyro -st_gyro_i2c -st_gyro_spi -st_lsm6dsx -st_lsm6dsx_i2c -st_lsm6dsx_i3c -st_lsm6dsx_spi -st_magn -st_magn_i2c -st_magn_spi -st_pressure -st_pressure_i2c -st_pressure_spi -st_sensors -st_sensors_i2c -st_sensors_spi -st_uvis25_core -st_uvis25_i2c -st_uvis25_spi -starfire -stb0899 -stb6000 -stb6100 -ste10Xp -stex -stinger -stk1160 -stk3310 -stk8312 -stk8ba50 -stkwebcam -stm_console -stm_core -stm_ftrace -stm_heartbeat -stm_p_basic -stm_p_sys-t -stmfts -stmmac -stmmac-pci -stmmac-platform -stowaway -stp -streamzap -streebog_generic -stts751 -stv0288 -stv0297 -stv0299 -stv0367 -stv0900 -stv090x -stv0910 -stv6110 -stv6110x -stv6111 -stx104 -sundance -sungem -sungem_phy -sunhme -suni -sunkbd -sunrpc -sur40 -surface3-wmi -surface3_button -surface3_spi -surfacepro3_button -svgalib -switchtec -sx8 -sx8654 -sx9500 -sym53c500_cs -sym53c8xx -symbolserial -synaptics_i2c -synaptics_usb -synclink -synclink_cs -synclink_gt -synclinkmp -syscopyarea -sysfillrect -sysimgblt -system76_acpi -sysv -t5403 -tag_8021q -tag_ar9331 -tag_brcm -tag_dsa -tag_edsa -tag_gswip -tag_ksz -tag_lan9303 -tag_mtk -tag_ocelot -tag_qca -tag_sja1105 -tag_trailer -tap -target_core_file -target_core_iblock -target_core_mod -target_core_pscsi -target_core_user -tc-dwc-g210 -tc-dwc-g210-pci -tc-dwc-g210-pltfrm -tc358743 -tc654 -tc74 -tc90522 -tca6416-keypad -tca8418_keypad -tcan4x5x -tcm_fc -tcm_loop -tcm_qla2xxx -tcm_usb_gadget -tcp_bbr -tcp_bic -tcp_cdg -tcp_dctcp -tcp_diag -tcp_highspeed -tcp_htcp -tcp_hybla -tcp_illinois -tcp_lp -tcp_nv -tcp_scalable -tcp_vegas -tcp_veno -tcp_westwood -tcp_yeah -tcpci -tcpci_rt1711h -tcpm -tcrypt -tcs3414 -tcs3472 -tda10021 -tda10023 -tda10048 -tda1004x -tda10071 -tda10086 -tda18212 -tda18218 -tda18250 -tda18271 -tda18271c2dd -tda1997x -tda665x -tda7432 -tda8083 -tda8261 -tda826x -tda827x -tda8290 -tda9840 -tda9887 -tda9950 -tda998x -tdfxfb -tdo24m -tea -tea575x -tea5761 -tea5767 -tea6415c -tea6420 -team -team_mode_activebackup -team_mode_broadcast -team_mode_loadbalance -team_mode_random -team_mode_roundrobin -tee -tef6862 -tehuti -teranetics -test_blackhole_dev -test_bpf -test_power -tg3 -tgr192 -thermal-generic-adc -thinkpad_acpi -thmc50 -ths7303 -ths8200 -thunder_bgx -thunder_xcv -thunderbolt -thunderbolt-net -ti-adc081c -ti-adc0832 -ti-adc084s021 -ti-adc108s102 -ti-adc12138 -ti-adc128s052 -ti-adc161s626 -ti-ads1015 -ti-ads7950 -ti-dac082s085 -ti-dac5571 -ti-dac7311 -ti-dac7612 -ti-lmu -ti-tlc4541 -ti_am335x_adc -ti_am335x_tsc -ti_am335x_tscadc -ti_usb_3410_5052 -tifm_7xx1 -tifm_core -tifm_ms -tifm_sd -timeriomem-rng -tipc -tlan -tlclk -tls -tlv320aic23b -tm2-touchkey -tm6000 -tm6000-alsa -tm6000-dvb -tmdc -tmp006 -tmp007 -tmp102 -tmp103 -tmp108 -tmp401 -tmp421 -tmp513 -topstar-laptop -torture -toshiba_acpi -toshiba_bluetooth -toshiba_haps -toshsd -touchit213 -touchright -touchwin -tpci200 -tpl0102 -tpm_atmel -tpm_i2c_atmel -tpm_i2c_infineon -tpm_i2c_nuvoton -tpm_infineon -tpm_key_parser -tpm_nsc -tpm_st33zp24 -tpm_st33zp24_i2c -tpm_st33zp24_spi -tpm_tis_spi -tpm_vtpm_proxy -tps40422 -tps51632-regulator -tps53679 -tps6105x -tps6105x-regulator -tps62360-regulator -tps65010 -tps65023-regulator -tps6507x -tps6507x-regulator -tps6507x-ts -tps65086 -tps65086-regulator -tps65090-charger -tps65090-regulator -tps65132-regulator -tps6524x-regulator -tps6586x-regulator -tps65910-regulator -tps65912-regulator -tps6598x -tps80031-regulator -tqmx86 -tqmx86_wdt -trace-printk -trancevibrator -trf7970a -tridentfb -ts2020 -ts_bm -ts_fsm -ts_kmp -tsc2004 -tsc2005 -tsc2007 -tsc200x-core -tsc40 -tsi568 -tsi57x -tsi721_mport -tsl2550 -tsl2563 -tsl2583 -tsl2772 -tsl4531 -tsys01 -tsys02d -ttm -ttpci-eeprom -ttusb_dec -ttusbdecfe -ttusbir -ttynull -tua6100 -tua9001 -tulip -tuner -tuner-simple -tuner-types -tuner-xc2028 -tunnel4 -tunnel6 -turbografx -tvaudio -tveeprom -tvp514x -tvp5150 -tvp7002 -tw2804 -tw5864 -tw68 -tw686x -tw9903 -tw9906 -tw9910 -twidjoy -twl-regulator -twl4030-madc -twl4030-pwrbutton -twl4030-vibra -twl4030_charger -twl4030_keypad -twl4030_madc_battery -twl4030_wdt -twl6030-gpadc -twl6030-regulator -twl6040-vibra -twofish-avx-x86_64 -twofish-x86_64 -twofish-x86_64-3way -twofish_common -twofish_generic -typec -typec_displayport -typec_nvidia -typec_ucsi -typhoon -u132-hcd -uPD60620 -uPD98402 -u_audio -u_ether -u_serial -uartlite -uas -ubi -ubifs -ucan -ucb1400_core -ucb1400_ts -ucd9000 -ucd9200 -ucsi_acpi -ucsi_ccg -uda1342 -udc-core -udf -udl -udlfb -udp_diag -udp_tunnel -ueagle-atm -ufs -ufshcd-core -ufshcd-dwc -ufshcd-pci -ufshcd-pltfrm -uhid -uio -uio_aec -uio_cif -uio_dmem_genirq -uio_hv_generic -uio_mf624 -uio_netx -uio_pci_generic -uio_pdrv_genirq -uio_pruss -uio_sercos3 -uleds -uli526x -ulpi -umc -umem -ums-alauda -ums-cypress -ums-datafab -ums-eneub6250 -ums-freecom -ums-isd200 -ums-jumpshot -ums-karma -ums-onetouch -ums-realtek -ums-sddr09 -ums-sddr55 -ums-usbat -unix_diag -upd64031a -upd64083 -upd78f0730 -us5182d -usb-conn-gpio -usb-serial-simple -usb-storage -usb251xb -usb3503 -usb4604 -usb8xxx -usb_8dev -usb_debug -usb_f_acm -usb_f_ecm -usb_f_ecm_subset -usb_f_eem -usb_f_fs -usb_f_hid -usb_f_mass_storage -usb_f_midi -usb_f_ncm -usb_f_obex -usb_f_phonet -usb_f_printer -usb_f_rndis -usb_f_serial -usb_f_ss_lb -usb_f_tcm -usb_f_uac1 -usb_f_uac1_legacy -usb_f_uac2 -usb_f_uvc -usb_wwan -usbatm -usbdux -usbduxfast -usbduxsigma -usbhid -usbip-core -usbip-host -usbip-vudc -usbkbd -usblcd -usblp -usbmon -usbmouse -usbnet -usbserial -usbsevseg -usbtest -usbtmc -usbtouchscreen -usbtv -usbvision -usdhi6rol0 -userio -userspace-consumer -ushc -usnic_verbs -uss720 -uvcvideo -uvesafb -uwb -v4l2-dv-timings -v4l2-flash-led-class -v4l2-fwnode -v4l2-mem2mem -v4l2-tpg -vboxvideo -vcan -vcnl4000 -vcnl4035 -veml6030 -veml6070 -ves1820 -ves1x93 -veth -vfio_mdev -vga16fb -vgastate -vgem -vgg2432a4 -vhci-hcd -vhost -vhost_net -vhost_scsi -vhost_vsock -via-camera -via-cputemp -via-rhine -via-rng -via-sdmmc -via-velocity -via686a -via_wdt -viafb -vicodec -video -video-i2c -videobuf-core -videobuf-dma-sg -videobuf-vmalloc -videobuf2-common -videobuf2-dma-contig -videobuf2-dma-sg -videobuf2-dvb -videobuf2-memops -videobuf2-v4l2 -videobuf2-vmalloc -videodev -vim2m -vimc -viperboard -viperboard_adc -virt-dma -virt_wifi -virtio-gpu -virtio-rng -virtio_blk -virtio_crypto -virtio_input -virtio_net -virtio_pmem -virtio_rpmsg_bus -virtio_scsi -virtiofs -virtual -visor -visorbus -visorhba -visorinput -visornic -vitesse -vitesse-vsc73xx-core -vitesse-vsc73xx-platform -vitesse-vsc73xx-spi -vivid -vkms -vl53l0x-i2c -vl6180 -vmac -vmd -vme_ca91cx42 -vme_fake -vme_tsi148 -vme_user -vme_vmivme7805 -vmk80xx -vmlfb -vmw_balloon -vmw_pvrdma -vmw_pvscsi -vmw_vmci -vmw_vsock_virtio_transport -vmw_vsock_virtio_transport_common -vmw_vsock_vmci_transport -vmwgfx -vmxnet3 -vop -vop_bus -vp27smpx -vport-geneve -vport-gre -vport-vxlan -vpx3220 -vrf -vringh -vs6624 -vsock -vsock_diag -vsock_loopback -vsockmon -vsxxxaa -vt1211 -vt6655_stage -vt6656_stage -vt8231 -vt8623fb -vub300 -vx855 -vxcan -vxge -vxlan -vz89x -w1-gpio -w1_ds2405 -w1_ds2406 -w1_ds2408 -w1_ds2413 -w1_ds2423 -w1_ds2430 -w1_ds2431 -w1_ds2433 -w1_ds2438 -w1_ds250x -w1_ds2780 -w1_ds2781 -w1_ds2805 -w1_ds28e04 -w1_ds28e17 -w1_smem -w1_therm -w5100 -w5100-spi -w5300 -w6692 -w83627ehf -w83627hf -w83627hf_wdt -w83773g -w83781d -w83791d -w83792d -w83793 -w83795 -w83877f_wdt -w83977f_wdt -w83l785ts -w83l786ng -wacom -wacom_i2c -wacom_serial4 -wacom_w8001 -wafer5823wdt -walkera0701 -wanxl -warrior -wbsd -wcd934x -wcn36xx -wd719x -wdat_wdt -wdt87xx_i2c -wdt_pci -wfx -whc-rc -whci -whci-hcd -whiteheat -wil6210 -wilc1000 -wilc1000-sdio -wilc1000-spi -wilco-charger -wilco_ec -wilco_ec_debugfs -wilco_ec_events -wilco_ec_telem -wimax -winbond-840 -winbond-cir -wire -wireguard -wishbone-serial -wl1251 -wl1251_sdio -wl1251_spi -wl1273-core -wl12xx -wl18xx -wl3501_cs -wlcore -wlcore_sdio -wm831x-dcdc -wm831x-hwmon -wm831x-isink -wm831x-ldo -wm831x-on -wm831x-ts -wm831x_backup -wm831x_bl -wm831x_power -wm831x_wdt -wm8350-hwmon -wm8350-regulator -wm8350_power -wm8350_wdt -wm8400-regulator -wm8739 -wm8775 -wm8994 -wm8994-regulator -wm97xx-ts -wmi -wmi-bmof -wp512 -wusb-cbaf -wusb-wa -wusbcore -x25 -x25_asy -x38_edac -x86_pkg_temp_thermal -x_tables -xbox_remote -xc4000 -xc5000 -xcbc -xdpe12284 -xen-blkback -xen-evtchn -xen-fbfront -xen-front-pgdir-shbuf -xen-gntalloc -xen-gntdev -xen-kbdfront -xen-netback -xen-pciback -xen-pcifront -xen-privcmd -xen-scsiback -xen-scsifront -xen-tpmfront -xen_wdt -xenfs -xfrm4_tunnel -xfrm6_tunnel -xfrm_algo -xfrm_interface -xfrm_ipcomp -xfrm_user -xfs -xgene-hwmon -xhci-plat-hcd -xiaomi-wmi -xilinx-pr-decoupler -xilinx-spi -xilinx-xadc -xilinx_emac -xilinx_gmii2rgmii -xilinx_sdfec -xillybus_core -xillybus_pcie -xirc2ps_cs -xircom_cb -xlnx_vcu -xor -xpad -xr_usb_serial_common -xsens_mt -xsk_diag -xt_AUDIT -xt_CHECKSUM -xt_CLASSIFY -xt_CONNSECMARK -xt_CT -xt_DSCP -xt_HL -xt_HMARK -xt_IDLETIMER -xt_LED -xt_LOG -xt_MASQUERADE -xt_NETMAP -xt_NFLOG -xt_NFQUEUE -xt_RATEEST -xt_REDIRECT -xt_SECMARK -xt_TCPMSS -xt_TCPOPTSTRIP -xt_TEE -xt_TPROXY -xt_TRACE -xt_addrtype -xt_bpf -xt_cgroup -xt_cluster -xt_comment -xt_connbytes -xt_connlabel -xt_connlimit -xt_connmark -xt_conntrack -xt_cpu -xt_dccp -xt_devgroup -xt_dscp -xt_ecn -xt_esp -xt_hashlimit -xt_helper -xt_hl -xt_ipcomp -xt_iprange -xt_ipvs -xt_l2tp -xt_length -xt_limit -xt_mac -xt_mark -xt_multiport -xt_nat -xt_nfacct -xt_osf -xt_owner -xt_physdev -xt_pkttype -xt_policy -xt_quota -xt_rateest -xt_realm -xt_recent -xt_sctp -xt_set -xt_socket -xt_state -xt_statistic -xt_string -xt_tcpmss -xt_tcpudp -xt_time -xt_u32 -xtkbd -xusbatm -xxhash_generic -xz_dec_test -yam -yealink -yellowfin -yenta_socket -yurex -z3fold -zatm -zaurus -zavl -zcommon -zd1201 -zd1211rw -zd1301 -zd1301_demod -zet6223 -zforce_ts -zfs -zhenhua -ziirave_wdt -zl10036 -zl10039 -zl10353 -zl6100 -zlua -znvpair -zonefs -zopt2201 -zpa2326 -zpa2326_i2c -zpa2326_spi -zr364xx -zram -zstd -zstd_compress -zunicode -zx-tdm reverted: --- linux-oem-5.6-5.6.0/debian.oem/abi/5.6.0-1032.33/amd64/oem.retpoline +++ linux-oem-5.6-5.6.0.orig/debian.oem/abi/5.6.0-1032.33/amd64/oem.retpoline @@ -1 +0,0 @@ -# retpoline v1.0 reverted: --- linux-oem-5.6-5.6.0/debian.oem/abi/5.6.0-1032.33/fwinfo +++ linux-oem-5.6-5.6.0.orig/debian.oem/abi/5.6.0-1032.33/fwinfo @@ -1,1708 +0,0 @@ -firmware: 3826.arm -firmware: 3com/typhoon.bin -firmware: 6fire/dmx6fireap.ihx -firmware: 6fire/dmx6firecf.bin -firmware: 6fire/dmx6firel2.ihx -firmware: BCM2033-FW.bin -firmware: BCM2033-MD.hex -firmware: BT3CPCC.bin -firmware: RTL8192E/boot.img -firmware: RTL8192E/data.img -firmware: RTL8192E/main.img -firmware: RTL8192U/boot.img -firmware: RTL8192U/data.img -firmware: RTL8192U/main.img -firmware: acenic/tg1.bin -firmware: acenic/tg2.bin -firmware: adaptec/starfire_rx.bin -firmware: adaptec/starfire_tx.bin -firmware: advansys/3550.bin -firmware: advansys/38C0800.bin -firmware: advansys/38C1600.bin -firmware: advansys/mcode.bin -firmware: agere_ap_fw.bin -firmware: agere_sta_fw.bin -firmware: aic94xx-seq.fw -firmware: amdgpu/arcturus_asd.bin -firmware: amdgpu/arcturus_gpu_info.bin -firmware: amdgpu/arcturus_mec.bin -firmware: amdgpu/arcturus_mec2.bin -firmware: amdgpu/arcturus_rlc.bin -firmware: amdgpu/arcturus_sdma.bin -firmware: amdgpu/arcturus_smc.bin -firmware: amdgpu/arcturus_sos.bin -firmware: amdgpu/arcturus_ta.bin -firmware: amdgpu/arcturus_vcn.bin -firmware: amdgpu/banks_k_2_smc.bin -firmware: amdgpu/bonaire_ce.bin -firmware: amdgpu/bonaire_k_smc.bin -firmware: amdgpu/bonaire_mc.bin -firmware: amdgpu/bonaire_me.bin -firmware: amdgpu/bonaire_mec.bin -firmware: amdgpu/bonaire_pfp.bin -firmware: amdgpu/bonaire_rlc.bin -firmware: amdgpu/bonaire_sdma.bin -firmware: amdgpu/bonaire_sdma1.bin -firmware: amdgpu/bonaire_smc.bin -firmware: amdgpu/bonaire_uvd.bin -firmware: amdgpu/bonaire_vce.bin -firmware: amdgpu/carrizo_ce.bin -firmware: amdgpu/carrizo_me.bin -firmware: amdgpu/carrizo_mec.bin -firmware: amdgpu/carrizo_mec2.bin -firmware: amdgpu/carrizo_pfp.bin -firmware: amdgpu/carrizo_rlc.bin -firmware: amdgpu/carrizo_sdma.bin -firmware: amdgpu/carrizo_sdma1.bin -firmware: amdgpu/carrizo_uvd.bin -firmware: amdgpu/carrizo_vce.bin -firmware: amdgpu/fiji_ce.bin -firmware: amdgpu/fiji_me.bin -firmware: amdgpu/fiji_mec.bin -firmware: amdgpu/fiji_mec2.bin -firmware: amdgpu/fiji_pfp.bin -firmware: amdgpu/fiji_rlc.bin -firmware: amdgpu/fiji_sdma.bin -firmware: amdgpu/fiji_sdma1.bin -firmware: amdgpu/fiji_smc.bin -firmware: amdgpu/fiji_uvd.bin -firmware: amdgpu/fiji_vce.bin -firmware: amdgpu/hainan_ce.bin -firmware: amdgpu/hainan_k_smc.bin -firmware: amdgpu/hainan_mc.bin -firmware: amdgpu/hainan_me.bin -firmware: amdgpu/hainan_pfp.bin -firmware: amdgpu/hainan_rlc.bin -firmware: amdgpu/hainan_smc.bin -firmware: amdgpu/hawaii_ce.bin -firmware: amdgpu/hawaii_k_smc.bin -firmware: amdgpu/hawaii_mc.bin -firmware: amdgpu/hawaii_me.bin -firmware: amdgpu/hawaii_mec.bin -firmware: amdgpu/hawaii_pfp.bin -firmware: amdgpu/hawaii_rlc.bin -firmware: amdgpu/hawaii_sdma.bin -firmware: amdgpu/hawaii_sdma1.bin -firmware: amdgpu/hawaii_smc.bin -firmware: amdgpu/hawaii_uvd.bin -firmware: amdgpu/hawaii_vce.bin -firmware: amdgpu/kabini_ce.bin -firmware: amdgpu/kabini_me.bin -firmware: amdgpu/kabini_mec.bin -firmware: amdgpu/kabini_pfp.bin -firmware: amdgpu/kabini_rlc.bin -firmware: amdgpu/kabini_sdma.bin -firmware: amdgpu/kabini_sdma1.bin -firmware: amdgpu/kabini_uvd.bin -firmware: amdgpu/kabini_vce.bin -firmware: amdgpu/kaveri_ce.bin -firmware: amdgpu/kaveri_me.bin -firmware: amdgpu/kaveri_mec.bin -firmware: amdgpu/kaveri_mec2.bin -firmware: amdgpu/kaveri_pfp.bin -firmware: amdgpu/kaveri_rlc.bin -firmware: amdgpu/kaveri_sdma.bin -firmware: amdgpu/kaveri_sdma1.bin -firmware: amdgpu/kaveri_uvd.bin -firmware: amdgpu/kaveri_vce.bin -firmware: amdgpu/mullins_ce.bin -firmware: amdgpu/mullins_me.bin -firmware: amdgpu/mullins_mec.bin -firmware: amdgpu/mullins_pfp.bin -firmware: amdgpu/mullins_rlc.bin -firmware: amdgpu/mullins_sdma.bin -firmware: amdgpu/mullins_sdma1.bin -firmware: amdgpu/mullins_uvd.bin -firmware: amdgpu/mullins_vce.bin -firmware: amdgpu/navi10_asd.bin -firmware: amdgpu/navi10_ce.bin -firmware: amdgpu/navi10_gpu_info.bin -firmware: amdgpu/navi10_me.bin -firmware: amdgpu/navi10_mec.bin -firmware: amdgpu/navi10_mec2.bin -firmware: amdgpu/navi10_mes.bin -firmware: amdgpu/navi10_pfp.bin -firmware: amdgpu/navi10_rlc.bin -firmware: amdgpu/navi10_sdma.bin -firmware: amdgpu/navi10_sdma1.bin -firmware: amdgpu/navi10_smc.bin -firmware: amdgpu/navi10_sos.bin -firmware: amdgpu/navi10_ta.bin -firmware: amdgpu/navi10_vcn.bin -firmware: amdgpu/navi12_asd.bin -firmware: amdgpu/navi12_ce.bin -firmware: amdgpu/navi12_gpu_info.bin -firmware: amdgpu/navi12_me.bin -firmware: amdgpu/navi12_mec.bin -firmware: amdgpu/navi12_mec2.bin -firmware: amdgpu/navi12_pfp.bin -firmware: amdgpu/navi12_rlc.bin -firmware: amdgpu/navi12_sdma.bin -firmware: amdgpu/navi12_sdma1.bin -firmware: amdgpu/navi12_smc.bin -firmware: amdgpu/navi12_sos.bin -firmware: amdgpu/navi12_ta.bin -firmware: amdgpu/navi12_vcn.bin -firmware: amdgpu/navi14_asd.bin -firmware: amdgpu/navi14_ce.bin -firmware: amdgpu/navi14_ce_wks.bin -firmware: amdgpu/navi14_gpu_info.bin -firmware: amdgpu/navi14_me.bin -firmware: amdgpu/navi14_me_wks.bin -firmware: amdgpu/navi14_mec.bin -firmware: amdgpu/navi14_mec2.bin -firmware: amdgpu/navi14_mec2_wks.bin -firmware: amdgpu/navi14_mec_wks.bin -firmware: amdgpu/navi14_pfp.bin -firmware: amdgpu/navi14_pfp_wks.bin -firmware: amdgpu/navi14_rlc.bin -firmware: amdgpu/navi14_sdma.bin -firmware: amdgpu/navi14_sdma1.bin -firmware: amdgpu/navi14_smc.bin -firmware: amdgpu/navi14_sos.bin -firmware: amdgpu/navi14_ta.bin -firmware: amdgpu/navi14_vcn.bin -firmware: amdgpu/oland_ce.bin -firmware: amdgpu/oland_k_smc.bin -firmware: amdgpu/oland_mc.bin -firmware: amdgpu/oland_me.bin -firmware: amdgpu/oland_pfp.bin -firmware: amdgpu/oland_rlc.bin -firmware: amdgpu/oland_smc.bin -firmware: amdgpu/picasso_asd.bin -firmware: amdgpu/picasso_ce.bin -firmware: amdgpu/picasso_gpu_info.bin -firmware: amdgpu/picasso_me.bin -firmware: amdgpu/picasso_mec.bin -firmware: amdgpu/picasso_mec2.bin -firmware: amdgpu/picasso_pfp.bin -firmware: amdgpu/picasso_rlc.bin -firmware: amdgpu/picasso_rlc_am4.bin -firmware: amdgpu/picasso_sdma.bin -firmware: amdgpu/picasso_ta.bin -firmware: amdgpu/picasso_vcn.bin -firmware: amdgpu/pitcairn_ce.bin -firmware: amdgpu/pitcairn_k_smc.bin -firmware: amdgpu/pitcairn_mc.bin -firmware: amdgpu/pitcairn_me.bin -firmware: amdgpu/pitcairn_pfp.bin -firmware: amdgpu/pitcairn_rlc.bin -firmware: amdgpu/pitcairn_smc.bin -firmware: amdgpu/polaris10_ce.bin -firmware: amdgpu/polaris10_ce_2.bin -firmware: amdgpu/polaris10_k2_smc.bin -firmware: amdgpu/polaris10_k_mc.bin -firmware: amdgpu/polaris10_k_smc.bin -firmware: amdgpu/polaris10_mc.bin -firmware: amdgpu/polaris10_me.bin -firmware: amdgpu/polaris10_me_2.bin -firmware: amdgpu/polaris10_mec.bin -firmware: amdgpu/polaris10_mec2.bin -firmware: amdgpu/polaris10_mec2_2.bin -firmware: amdgpu/polaris10_mec_2.bin -firmware: amdgpu/polaris10_pfp.bin -firmware: amdgpu/polaris10_pfp_2.bin -firmware: amdgpu/polaris10_rlc.bin -firmware: amdgpu/polaris10_sdma.bin -firmware: amdgpu/polaris10_sdma1.bin -firmware: amdgpu/polaris10_smc.bin -firmware: amdgpu/polaris10_smc_sk.bin -firmware: amdgpu/polaris10_uvd.bin -firmware: amdgpu/polaris10_vce.bin -firmware: amdgpu/polaris11_ce.bin -firmware: amdgpu/polaris11_ce_2.bin -firmware: amdgpu/polaris11_k2_smc.bin -firmware: amdgpu/polaris11_k_mc.bin -firmware: amdgpu/polaris11_k_smc.bin -firmware: amdgpu/polaris11_mc.bin -firmware: amdgpu/polaris11_me.bin -firmware: amdgpu/polaris11_me_2.bin -firmware: amdgpu/polaris11_mec.bin -firmware: amdgpu/polaris11_mec2.bin -firmware: amdgpu/polaris11_mec2_2.bin -firmware: amdgpu/polaris11_mec_2.bin -firmware: amdgpu/polaris11_pfp.bin -firmware: amdgpu/polaris11_pfp_2.bin -firmware: amdgpu/polaris11_rlc.bin -firmware: amdgpu/polaris11_sdma.bin -firmware: amdgpu/polaris11_sdma1.bin -firmware: amdgpu/polaris11_smc.bin -firmware: amdgpu/polaris11_smc_sk.bin -firmware: amdgpu/polaris11_uvd.bin -firmware: amdgpu/polaris11_vce.bin -firmware: amdgpu/polaris12_ce.bin -firmware: amdgpu/polaris12_ce_2.bin -firmware: amdgpu/polaris12_k_mc.bin -firmware: amdgpu/polaris12_k_smc.bin -firmware: amdgpu/polaris12_mc.bin -firmware: amdgpu/polaris12_me.bin -firmware: amdgpu/polaris12_me_2.bin -firmware: amdgpu/polaris12_mec.bin -firmware: amdgpu/polaris12_mec2.bin -firmware: amdgpu/polaris12_mec2_2.bin -firmware: amdgpu/polaris12_mec_2.bin -firmware: amdgpu/polaris12_pfp.bin -firmware: amdgpu/polaris12_pfp_2.bin -firmware: amdgpu/polaris12_rlc.bin -firmware: amdgpu/polaris12_sdma.bin -firmware: amdgpu/polaris12_sdma1.bin -firmware: amdgpu/polaris12_smc.bin -firmware: amdgpu/polaris12_uvd.bin -firmware: amdgpu/polaris12_vce.bin -firmware: amdgpu/raven2_asd.bin -firmware: amdgpu/raven2_ce.bin -firmware: amdgpu/raven2_gpu_info.bin -firmware: amdgpu/raven2_me.bin -firmware: amdgpu/raven2_mec.bin -firmware: amdgpu/raven2_mec2.bin -firmware: amdgpu/raven2_pfp.bin -firmware: amdgpu/raven2_rlc.bin -firmware: amdgpu/raven2_sdma.bin -firmware: amdgpu/raven2_ta.bin -firmware: amdgpu/raven2_vcn.bin -firmware: amdgpu/raven_asd.bin -firmware: amdgpu/raven_ce.bin -firmware: amdgpu/raven_dmcu.bin -firmware: amdgpu/raven_gpu_info.bin -firmware: amdgpu/raven_kicker_rlc.bin -firmware: amdgpu/raven_me.bin -firmware: amdgpu/raven_mec.bin -firmware: amdgpu/raven_mec2.bin -firmware: amdgpu/raven_pfp.bin -firmware: amdgpu/raven_rlc.bin -firmware: amdgpu/raven_sdma.bin -firmware: amdgpu/raven_ta.bin -firmware: amdgpu/raven_vcn.bin -firmware: amdgpu/renoir_asd.bin -firmware: amdgpu/renoir_ce.bin -firmware: amdgpu/renoir_dmcub.bin -firmware: amdgpu/renoir_gpu_info.bin -firmware: amdgpu/renoir_me.bin -firmware: amdgpu/renoir_mec.bin -firmware: amdgpu/renoir_mec2.bin -firmware: amdgpu/renoir_pfp.bin -firmware: amdgpu/renoir_rlc.bin -firmware: amdgpu/renoir_sdma.bin -firmware: amdgpu/renoir_vcn.bin -firmware: amdgpu/si58_mc.bin -firmware: amdgpu/stoney_ce.bin -firmware: amdgpu/stoney_me.bin -firmware: amdgpu/stoney_mec.bin -firmware: amdgpu/stoney_pfp.bin -firmware: amdgpu/stoney_rlc.bin -firmware: amdgpu/stoney_sdma.bin -firmware: amdgpu/stoney_uvd.bin -firmware: amdgpu/stoney_vce.bin -firmware: amdgpu/tahiti_ce.bin -firmware: amdgpu/tahiti_mc.bin -firmware: amdgpu/tahiti_me.bin -firmware: amdgpu/tahiti_pfp.bin -firmware: amdgpu/tahiti_rlc.bin -firmware: amdgpu/tahiti_smc.bin -firmware: amdgpu/tonga_ce.bin -firmware: amdgpu/tonga_k_smc.bin -firmware: amdgpu/tonga_mc.bin -firmware: amdgpu/tonga_me.bin -firmware: amdgpu/tonga_mec.bin -firmware: amdgpu/tonga_mec2.bin -firmware: amdgpu/tonga_pfp.bin -firmware: amdgpu/tonga_rlc.bin -firmware: amdgpu/tonga_sdma.bin -firmware: amdgpu/tonga_sdma1.bin -firmware: amdgpu/tonga_smc.bin -firmware: amdgpu/tonga_uvd.bin -firmware: amdgpu/tonga_vce.bin -firmware: amdgpu/topaz_ce.bin -firmware: amdgpu/topaz_k_smc.bin -firmware: amdgpu/topaz_mc.bin -firmware: amdgpu/topaz_me.bin -firmware: amdgpu/topaz_mec.bin -firmware: amdgpu/topaz_pfp.bin -firmware: amdgpu/topaz_rlc.bin -firmware: amdgpu/topaz_sdma.bin -firmware: amdgpu/topaz_sdma1.bin -firmware: amdgpu/topaz_smc.bin -firmware: amdgpu/vega10_acg_smc.bin -firmware: amdgpu/vega10_asd.bin -firmware: amdgpu/vega10_ce.bin -firmware: amdgpu/vega10_gpu_info.bin -firmware: amdgpu/vega10_me.bin -firmware: amdgpu/vega10_mec.bin -firmware: amdgpu/vega10_mec2.bin -firmware: amdgpu/vega10_pfp.bin -firmware: amdgpu/vega10_rlc.bin -firmware: amdgpu/vega10_sdma.bin -firmware: amdgpu/vega10_sdma1.bin -firmware: amdgpu/vega10_smc.bin -firmware: amdgpu/vega10_sos.bin -firmware: amdgpu/vega10_uvd.bin -firmware: amdgpu/vega10_vce.bin -firmware: amdgpu/vega12_asd.bin -firmware: amdgpu/vega12_ce.bin -firmware: amdgpu/vega12_gpu_info.bin -firmware: amdgpu/vega12_me.bin -firmware: amdgpu/vega12_mec.bin -firmware: amdgpu/vega12_mec2.bin -firmware: amdgpu/vega12_pfp.bin -firmware: amdgpu/vega12_rlc.bin -firmware: amdgpu/vega12_sdma.bin -firmware: amdgpu/vega12_sdma1.bin -firmware: amdgpu/vega12_smc.bin -firmware: amdgpu/vega12_sos.bin -firmware: amdgpu/vega12_uvd.bin -firmware: amdgpu/vega12_vce.bin -firmware: amdgpu/vega20_asd.bin -firmware: amdgpu/vega20_ce.bin -firmware: amdgpu/vega20_me.bin -firmware: amdgpu/vega20_mec.bin -firmware: amdgpu/vega20_mec2.bin -firmware: amdgpu/vega20_pfp.bin -firmware: amdgpu/vega20_rlc.bin -firmware: amdgpu/vega20_sdma.bin -firmware: amdgpu/vega20_sdma1.bin -firmware: amdgpu/vega20_smc.bin -firmware: amdgpu/vega20_sos.bin -firmware: amdgpu/vega20_ta.bin -firmware: amdgpu/vega20_uvd.bin -firmware: amdgpu/vega20_vce.bin -firmware: amdgpu/vegam_ce.bin -firmware: amdgpu/vegam_me.bin -firmware: amdgpu/vegam_mec.bin -firmware: amdgpu/vegam_mec2.bin -firmware: amdgpu/vegam_pfp.bin -firmware: amdgpu/vegam_rlc.bin -firmware: amdgpu/vegam_sdma.bin -firmware: amdgpu/vegam_sdma1.bin -firmware: amdgpu/vegam_smc.bin -firmware: amdgpu/vegam_uvd.bin -firmware: amdgpu/vegam_vce.bin -firmware: amdgpu/verde_ce.bin -firmware: amdgpu/verde_k_smc.bin -firmware: amdgpu/verde_mc.bin -firmware: amdgpu/verde_me.bin -firmware: amdgpu/verde_pfp.bin -firmware: amdgpu/verde_rlc.bin -firmware: amdgpu/verde_smc.bin -firmware: ar5523.bin -firmware: asihpi/dsp5000.bin -firmware: asihpi/dsp6200.bin -firmware: asihpi/dsp6205.bin -firmware: asihpi/dsp6400.bin -firmware: asihpi/dsp6600.bin -firmware: asihpi/dsp8700.bin -firmware: asihpi/dsp8900.bin -firmware: ast_dp501_fw.bin -firmware: ath10k/QCA6174/hw2.1/board-2.bin -firmware: ath10k/QCA6174/hw2.1/board.bin -firmware: ath10k/QCA6174/hw2.1/firmware-4.bin -firmware: ath10k/QCA6174/hw2.1/firmware-5.bin -firmware: ath10k/QCA6174/hw3.0/board-2.bin -firmware: ath10k/QCA6174/hw3.0/board.bin -firmware: ath10k/QCA6174/hw3.0/firmware-4.bin -firmware: ath10k/QCA6174/hw3.0/firmware-5.bin -firmware: ath10k/QCA6174/hw3.0/firmware-6.bin -firmware: ath10k/QCA9377/hw1.0/board.bin -firmware: ath10k/QCA9377/hw1.0/firmware-5.bin -firmware: ath10k/QCA9377/hw1.0/firmware-6.bin -firmware: ath10k/QCA9887/hw1.0/board-2.bin -firmware: ath10k/QCA9887/hw1.0/board.bin -firmware: ath10k/QCA9887/hw1.0/firmware-5.bin -firmware: ath10k/QCA988X/hw2.0/board-2.bin -firmware: ath10k/QCA988X/hw2.0/board.bin -firmware: ath10k/QCA988X/hw2.0/firmware-2.bin -firmware: ath10k/QCA988X/hw2.0/firmware-3.bin -firmware: ath10k/QCA988X/hw2.0/firmware-4.bin -firmware: ath10k/QCA988X/hw2.0/firmware-5.bin -firmware: ath3k-1.fw -firmware: ath6k/AR6003/hw2.0/athwlan.bin.z77 -firmware: ath6k/AR6003/hw2.0/bdata.SD31.bin -firmware: ath6k/AR6003/hw2.0/bdata.bin -firmware: ath6k/AR6003/hw2.0/data.patch.bin -firmware: ath6k/AR6003/hw2.0/otp.bin.z77 -firmware: ath6k/AR6003/hw2.1.1/athwlan.bin -firmware: ath6k/AR6003/hw2.1.1/bdata.SD31.bin -firmware: ath6k/AR6003/hw2.1.1/bdata.bin -firmware: ath6k/AR6003/hw2.1.1/data.patch.bin -firmware: ath6k/AR6003/hw2.1.1/otp.bin -firmware: ath6k/AR6004/hw1.0/bdata.DB132.bin -firmware: ath6k/AR6004/hw1.0/bdata.bin -firmware: ath6k/AR6004/hw1.0/fw.ram.bin -firmware: ath6k/AR6004/hw1.1/bdata.DB132.bin -firmware: ath6k/AR6004/hw1.1/bdata.bin -firmware: ath6k/AR6004/hw1.1/fw.ram.bin -firmware: ath6k/AR6004/hw1.2/bdata.bin -firmware: ath6k/AR6004/hw1.2/fw.ram.bin -firmware: ath6k/AR6004/hw1.3/bdata.bin -firmware: ath6k/AR6004/hw1.3/fw.ram.bin -firmware: ath9k_htc/htc_7010-1.4.0.fw -firmware: ath9k_htc/htc_9271-1.4.0.fw -firmware: atmel_at76c502-wpa.bin -firmware: atmel_at76c502.bin -firmware: atmel_at76c502_3com-wpa.bin -firmware: atmel_at76c502_3com.bin -firmware: atmel_at76c502d-wpa.bin -firmware: atmel_at76c502d.bin -firmware: atmel_at76c502e-wpa.bin -firmware: atmel_at76c502e.bin -firmware: atmel_at76c503-i3861.bin -firmware: atmel_at76c503-i3863.bin -firmware: atmel_at76c503-rfmd-acc.bin -firmware: atmel_at76c503-rfmd.bin -firmware: atmel_at76c504-wpa.bin -firmware: atmel_at76c504.bin -firmware: atmel_at76c504_2958-wpa.bin -firmware: atmel_at76c504_2958.bin -firmware: atmel_at76c504a_2958-wpa.bin -firmware: atmel_at76c504a_2958.bin -firmware: atmel_at76c505-rfmd.bin -firmware: atmel_at76c505-rfmd2958.bin -firmware: atmel_at76c505a-rfmd2958.bin -firmware: atmel_at76c505amx-rfmd.bin -firmware: atmel_at76c506-wpa.bin -firmware: atmel_at76c506.bin -firmware: atmsar11.fw -firmware: atsc_denver.inp -firmware: av7110/bootcode.bin -firmware: b43/ucode11.fw -firmware: b43/ucode13.fw -firmware: b43/ucode14.fw -firmware: b43/ucode15.fw -firmware: b43/ucode16_lp.fw -firmware: b43/ucode16_mimo.fw -firmware: b43/ucode24_lcn.fw -firmware: b43/ucode25_lcn.fw -firmware: b43/ucode25_mimo.fw -firmware: b43/ucode26_mimo.fw -firmware: b43/ucode29_mimo.fw -firmware: b43/ucode30_mimo.fw -firmware: b43/ucode33_lcn40.fw -firmware: b43/ucode40.fw -firmware: b43/ucode42.fw -firmware: b43/ucode5.fw -firmware: b43/ucode9.fw -firmware: b43legacy/ucode2.fw -firmware: b43legacy/ucode4.fw -firmware: bfubase.frm -firmware: bnx2/bnx2-mips-06-6.2.3.fw -firmware: bnx2/bnx2-mips-09-6.2.1b.fw -firmware: bnx2/bnx2-rv2p-06-6.0.15.fw -firmware: bnx2/bnx2-rv2p-09-6.0.17.fw -firmware: bnx2/bnx2-rv2p-09ax-6.0.17.fw -firmware: bnx2x/bnx2x-e1-7.13.15.0.fw -firmware: bnx2x/bnx2x-e1h-7.13.15.0.fw -firmware: bnx2x/bnx2x-e2-7.13.15.0.fw -firmware: brcm/bcm43xx-0.fw -firmware: brcm/bcm43xx_hdr-0.fw -firmware: brcm/brcmfmac43012-sdio.bin -firmware: brcm/brcmfmac43143-sdio.bin -firmware: brcm/brcmfmac43143.bin -firmware: brcm/brcmfmac43236b.bin -firmware: brcm/brcmfmac43241b0-sdio.bin -firmware: brcm/brcmfmac43241b4-sdio.bin -firmware: brcm/brcmfmac43241b5-sdio.bin -firmware: brcm/brcmfmac43242a.bin -firmware: brcm/brcmfmac4329-sdio.bin -firmware: brcm/brcmfmac4330-sdio.bin -firmware: brcm/brcmfmac4334-sdio.bin -firmware: brcm/brcmfmac43340-sdio.bin -firmware: brcm/brcmfmac4335-sdio.bin -firmware: brcm/brcmfmac43362-sdio.bin -firmware: brcm/brcmfmac4339-sdio.bin -firmware: brcm/brcmfmac43430-sdio.bin -firmware: brcm/brcmfmac43430a0-sdio.bin -firmware: brcm/brcmfmac43455-sdio.bin -firmware: brcm/brcmfmac43456-sdio.bin -firmware: brcm/brcmfmac4350-pcie.bin -firmware: brcm/brcmfmac4350c2-pcie.bin -firmware: brcm/brcmfmac4354-sdio.bin -firmware: brcm/brcmfmac4356-pcie.bin -firmware: brcm/brcmfmac4356-sdio.bin -firmware: brcm/brcmfmac43569.bin -firmware: brcm/brcmfmac43570-pcie.bin -firmware: brcm/brcmfmac4358-pcie.bin -firmware: brcm/brcmfmac4359-pcie.bin -firmware: brcm/brcmfmac4359-sdio.bin -firmware: brcm/brcmfmac43602-pcie.bin -firmware: brcm/brcmfmac4365b-pcie.bin -firmware: brcm/brcmfmac4365c-pcie.bin -firmware: brcm/brcmfmac4366b-pcie.bin -firmware: brcm/brcmfmac4366c-pcie.bin -firmware: brcm/brcmfmac4371-pcie.bin -firmware: brcm/brcmfmac4373-sdio.bin -firmware: brcm/brcmfmac4373.bin -firmware: c218tunx.cod -firmware: c320tunx.cod -firmware: carl9170-1.fw -firmware: cavium/cnn55xx_se.fw -firmware: cbfw-3.2.5.1.bin -firmware: cis/3CCFEM556.cis -firmware: cis/3CXEM556.cis -firmware: cis/COMpad2.cis -firmware: cis/COMpad4.cis -firmware: cis/DP83903.cis -firmware: cis/LA-PCM.cis -firmware: cis/MT5634ZLX.cis -firmware: cis/NE2K.cis -firmware: cis/PCMLM28.cis -firmware: cis/PE-200.cis -firmware: cis/PE520.cis -firmware: cis/RS-COM-2P.cis -firmware: cis/SW_555_SER.cis -firmware: cis/SW_7xx_SER.cis -firmware: cis/SW_8xx_SER.cis -firmware: cis/tamarack.cis -firmware: cmmb_ming_app.inp -firmware: cmmb_vega_12mhz.inp -firmware: cmmb_venice_12mhz.inp -firmware: comedi/jr3pci.idm -firmware: cp204unx.cod -firmware: cpia2/stv0672_vp4.bin -firmware: cs46xx/cwc4630 -firmware: cs46xx/cwcasync -firmware: cs46xx/cwcbinhack -firmware: cs46xx/cwcdma -firmware: cs46xx/cwcsnoop -firmware: ct2fw-3.2.5.1.bin -firmware: ctefx-desktop.bin -firmware: ctefx-r3di.bin -firmware: ctefx.bin -firmware: ctfw-3.2.5.1.bin -firmware: cxgb3/ael2005_opt_edc.bin -firmware: cxgb3/ael2005_twx_edc.bin -firmware: cxgb3/ael2020_twx_edc.bin -firmware: cxgb3/t3b_psram-1.1.0.bin -firmware: cxgb3/t3c_psram-1.1.0.bin -firmware: cxgb3/t3fw-7.12.0.bin -firmware: cxgb4/t4fw.bin -firmware: cxgb4/t5fw.bin -firmware: cxgb4/t6fw.bin -firmware: cyzfirm.bin -firmware: daqboard2000_firmware.bin -firmware: digiface_firmware.bin -firmware: digiface_firmware_rev11.bin -firmware: dvb-cx18-mpc718-mt352.fw -firmware: dvb-demod-m88ds3103.fw -firmware: dvb-demod-m88rs6000.fw -firmware: dvb-demod-mn88472-02.fw -firmware: dvb-demod-mn88473-01.fw -firmware: dvb-demod-si2165.fw -firmware: dvb-demod-si2168-a20-01.fw -firmware: dvb-demod-si2168-a30-01.fw -firmware: dvb-demod-si2168-b40-01.fw -firmware: dvb-demod-si2168-d60-01.fw -firmware: dvb-fe-af9013.fw -firmware: dvb-fe-cx24117.fw -firmware: dvb-fe-drxj-mc-1.0.8.fw -firmware: dvb-fe-ds3000.fw -firmware: dvb-fe-tda10071.fw -firmware: dvb-fe-xc4000-1.4.1.fw -firmware: dvb-fe-xc4000-1.4.fw -firmware: dvb-fe-xc5000-1.6.114.fw -firmware: dvb-fe-xc5000c-4.1.30.7.fw -firmware: dvb-tuner-si2141-a10-01.fw -firmware: dvb-tuner-si2157-a30-01.fw -firmware: dvb-tuner-si2158-a20-01.fw -firmware: dvb-usb-af9015.fw -firmware: dvb-usb-af9035-02.fw -firmware: dvb-usb-dib0700-1.20.fw -firmware: dvb-usb-dw2101.fw -firmware: dvb-usb-dw2102.fw -firmware: dvb-usb-dw2104.fw -firmware: dvb-usb-dw3101.fw -firmware: dvb-usb-ec168.fw -firmware: dvb-usb-it9135-01.fw -firmware: dvb-usb-it9135-02.fw -firmware: dvb-usb-it9303-01.fw -firmware: dvb-usb-lme2510-lg.fw -firmware: dvb-usb-lme2510-s0194.fw -firmware: dvb-usb-lme2510c-lg.fw -firmware: dvb-usb-lme2510c-rs2000.fw -firmware: dvb-usb-lme2510c-s0194.fw -firmware: dvb-usb-lme2510c-s7395.fw -firmware: dvb-usb-p1100.fw -firmware: dvb-usb-p7500.fw -firmware: dvb-usb-s630.fw -firmware: dvb-usb-s660.fw -firmware: dvb-usb-terratec-h7-az6007.fw -firmware: dvb_nova_12mhz.inp -firmware: dvb_nova_12mhz_b0.inp -firmware: dvb_rio.inp -firmware: dvbh_rio.inp -firmware: e100/d101m_ucode.bin -firmware: e100/d101s_ucode.bin -firmware: e100/d102e_ucode.bin -firmware: ea/3g_asic.fw -firmware: ea/darla20_dsp.fw -firmware: ea/darla24_dsp.fw -firmware: ea/echo3g_dsp.fw -firmware: ea/gina20_dsp.fw -firmware: ea/gina24_301_asic.fw -firmware: ea/gina24_301_dsp.fw -firmware: ea/gina24_361_asic.fw -firmware: ea/gina24_361_dsp.fw -firmware: ea/indigo_dj_dsp.fw -firmware: ea/indigo_djx_dsp.fw -firmware: ea/indigo_dsp.fw -firmware: ea/indigo_io_dsp.fw -firmware: ea/indigo_iox_dsp.fw -firmware: ea/layla20_asic.fw -firmware: ea/layla20_dsp.fw -firmware: ea/layla24_1_asic.fw -firmware: ea/layla24_2A_asic.fw -firmware: ea/layla24_2S_asic.fw -firmware: ea/layla24_dsp.fw -firmware: ea/loader_dsp.fw -firmware: ea/mia_dsp.fw -firmware: ea/mona_2_asic.fw -firmware: ea/mona_301_1_asic_48.fw -firmware: ea/mona_301_1_asic_96.fw -firmware: ea/mona_301_dsp.fw -firmware: ea/mona_361_1_asic_48.fw -firmware: ea/mona_361_1_asic_96.fw -firmware: ea/mona_361_dsp.fw -firmware: edgeport/boot.fw -firmware: edgeport/boot2.fw -firmware: edgeport/down.fw -firmware: edgeport/down2.fw -firmware: edgeport/down3.bin -firmware: emi26/bitstream.fw -firmware: emi26/firmware.fw -firmware: emi26/loader.fw -firmware: emi62/bitstream.fw -firmware: emi62/loader.fw -firmware: emi62/spdif.fw -firmware: emu/audio_dock.fw -firmware: emu/emu0404.fw -firmware: emu/emu1010_notebook.fw -firmware: emu/emu1010b.fw -firmware: emu/hana.fw -firmware: emu/micro_dock.fw -firmware: ene-ub6250/ms_init.bin -firmware: ene-ub6250/ms_rdwr.bin -firmware: ene-ub6250/msp_rdwr.bin -firmware: ene-ub6250/sd_init1.bin -firmware: ene-ub6250/sd_init2.bin -firmware: ene-ub6250/sd_rdwr.bin -firmware: ess/maestro3_assp_kernel.fw -firmware: ess/maestro3_assp_minisrc.fw -firmware: f2255usb.bin -firmware: fm_radio.inp -firmware: fm_radio_rio.inp -firmware: fw.ram.bin -firmware: go7007/go7007fw.bin -firmware: go7007/go7007tv.bin -firmware: go7007/lr192.fw -firmware: go7007/px-m402u.fw -firmware: go7007/px-tv402u.fw -firmware: go7007/s2250-1.fw -firmware: go7007/s2250-2.fw -firmware: go7007/wis-startrek.fw -firmware: hfi1_dc8051.fw -firmware: hfi1_fabric.fw -firmware: hfi1_pcie.fw -firmware: hfi1_sbus.fw -firmware: i1480-phy-0.0.bin -firmware: i1480-pre-phy-0.0.bin -firmware: i1480-usb-0.0.bin -firmware: i2400m-fw-usb-1.5.sbcf -firmware: i6050-fw-usb-1.5.sbcf -firmware: i915/bxt_dmc_ver1_07.bin -firmware: i915/bxt_guc_33.0.0.bin -firmware: i915/bxt_huc_2.0.0.bin -firmware: i915/cml_guc_33.0.0.bin -firmware: i915/cml_huc_4.0.0.bin -firmware: i915/cnl_dmc_ver1_07.bin -firmware: i915/ehl_guc_33.0.4.bin -firmware: i915/ehl_huc_9.0.0.bin -firmware: i915/glk_dmc_ver1_04.bin -firmware: i915/glk_guc_33.0.0.bin -firmware: i915/glk_huc_4.0.0.bin -firmware: i915/icl_dmc_ver1_09.bin -firmware: i915/icl_guc_33.0.0.bin -firmware: i915/icl_huc_9.0.0.bin -firmware: i915/kbl_dmc_ver1_04.bin -firmware: i915/kbl_guc_33.0.0.bin -firmware: i915/kbl_huc_4.0.0.bin -firmware: i915/skl_dmc_ver1_27.bin -firmware: i915/skl_guc_33.0.0.bin -firmware: i915/skl_huc_2.0.0.bin -firmware: i915/tgl_dmc_ver2_06.bin -firmware: i915/tgl_guc_35.2.0.bin -firmware: i915/tgl_huc_7.0.12.bin -firmware: intel/ibt-11-5.ddc -firmware: intel/ibt-11-5.sfi -firmware: intel/ibt-12-16.ddc -firmware: intel/ibt-12-16.sfi -firmware: intel/ice/ddp/ice.pkg -firmware: ipw2100-1.3-i.fw -firmware: ipw2100-1.3-p.fw -firmware: ipw2100-1.3.fw -firmware: ipw2200-bss.fw -firmware: ipw2200-ibss.fw -firmware: ipw2200-sniffer.fw -firmware: isci/isci_firmware.bin -firmware: isdbt_nova_12mhz.inp -firmware: isdbt_nova_12mhz_b0.inp -firmware: isdbt_pele.inp -firmware: isdbt_rio.inp -firmware: isdn/ISAR.BIN -firmware: isi4608.bin -firmware: isi4616.bin -firmware: isi608.bin -firmware: isi608em.bin -firmware: isi616em.bin -firmware: isight.fw -firmware: isl3886pci -firmware: isl3886usb -firmware: isl3887usb -firmware: iwlwifi-100-5.ucode -firmware: iwlwifi-1000-5.ucode -firmware: iwlwifi-105-6.ucode -firmware: iwlwifi-135-6.ucode -firmware: iwlwifi-2000-6.ucode -firmware: iwlwifi-2030-6.ucode -firmware: iwlwifi-3160-17.ucode -firmware: iwlwifi-3168-29.ucode -firmware: iwlwifi-3945-2.ucode -firmware: iwlwifi-4965-2.ucode -firmware: iwlwifi-5000-5.ucode -firmware: iwlwifi-5150-2.ucode -firmware: iwlwifi-6000-6.ucode -firmware: iwlwifi-6000g2a-6.ucode -firmware: iwlwifi-6000g2b-6.ucode -firmware: iwlwifi-6050-5.ucode -firmware: iwlwifi-7260-17.ucode -firmware: iwlwifi-7265-17.ucode -firmware: iwlwifi-7265D-29.ucode -firmware: iwlwifi-8000C-36.ucode -firmware: iwlwifi-8265-36.ucode -firmware: iwlwifi-9000-pu-b0-jf-b0-46.ucode -firmware: iwlwifi-9260-th-b0-jf-b0-46.ucode -firmware: iwlwifi-Qu-a0-hr-a0-52.ucode -firmware: iwlwifi-Qu-a0-jf-b0-52.ucode -firmware: iwlwifi-Qu-b0-jf-b0-52.ucode -firmware: iwlwifi-Qu-c0-hr-b0-52.ucode -firmware: iwlwifi-QuQnj-a0-hr-a0-52.ucode -firmware: iwlwifi-QuQnj-b0-hr-b0-52.ucode -firmware: iwlwifi-QuQnj-b0-jf-b0-52.ucode -firmware: iwlwifi-QuQnj-f0-hr-a0-52.ucode -firmware: iwlwifi-QuZ-a0-hr-b0-52.ucode -firmware: iwlwifi-QuZ-a0-jf-b0-52.ucode -firmware: iwlwifi-cc-a0-52.ucode -firmware: iwlwifi-so-a0-gf-a0-52.ucode -firmware: iwlwifi-so-a0-hr-b0-52.ucode -firmware: iwlwifi-so-a0-jf-b0-52.ucode -firmware: iwlwifi-ty-a0-gf-a0-52.ucode -firmware: kaweth/new_code.bin -firmware: kaweth/new_code_fix.bin -firmware: kaweth/trigger_code.bin -firmware: kaweth/trigger_code_fix.bin -firmware: keyspan/mpr.fw -firmware: keyspan/usa18x.fw -firmware: keyspan/usa19.fw -firmware: keyspan/usa19qi.fw -firmware: keyspan/usa19qw.fw -firmware: keyspan/usa19w.fw -firmware: keyspan/usa28.fw -firmware: keyspan/usa28x.fw -firmware: keyspan/usa28xa.fw -firmware: keyspan/usa28xb.fw -firmware: keyspan/usa49w.fw -firmware: keyspan/usa49wlc.fw -firmware: keyspan_pda/keyspan_pda.fw -firmware: keyspan_pda/xircom_pgs.fw -firmware: korg/k1212.dsp -firmware: ks7010sd.rom -firmware: lantiq/xrx200_phy11g_a14.bin -firmware: lantiq/xrx200_phy11g_a22.bin -firmware: lantiq/xrx200_phy22f_a14.bin -firmware: lantiq/xrx200_phy22f_a22.bin -firmware: lantiq/xrx300_phy11g_a21.bin -firmware: lantiq/xrx300_phy22f_a21.bin -firmware: lattice-ecp3.bit -firmware: lbtf_usb.bin -firmware: lgs8g75.fw -firmware: libertas/cf8305.bin -firmware: libertas/cf8381.bin -firmware: libertas/cf8381_helper.bin -firmware: libertas/cf8385.bin -firmware: libertas/cf8385_helper.bin -firmware: libertas/gspi8385.bin -firmware: libertas/gspi8385_helper.bin -firmware: libertas/gspi8385_hlp.bin -firmware: libertas/gspi8686.bin -firmware: libertas/gspi8686_hlp.bin -firmware: libertas/gspi8686_v9.bin -firmware: libertas/gspi8686_v9_helper.bin -firmware: libertas/gspi8688.bin -firmware: libertas/gspi8688_helper.bin -firmware: libertas/sd8385.bin -firmware: libertas/sd8385_helper.bin -firmware: libertas/sd8686_v8.bin -firmware: libertas/sd8686_v8_helper.bin -firmware: libertas/sd8686_v9.bin -firmware: libertas/sd8686_v9_helper.bin -firmware: libertas/sd8688.bin -firmware: libertas/sd8688_helper.bin -firmware: libertas/usb8388.bin -firmware: libertas/usb8388_v5.bin -firmware: libertas/usb8388_v9.bin -firmware: libertas/usb8682.bin -firmware: libertas_cs.fw -firmware: libertas_cs_helper.fw -firmware: liquidio/lio_210nv_nic.bin -firmware: liquidio/lio_210sv_nic.bin -firmware: liquidio/lio_23xx_nic.bin -firmware: liquidio/lio_410nv_nic.bin -firmware: me2600_firmware.bin -firmware: me4000_firmware.bin -firmware: mediatek/mt7610e.bin -firmware: mediatek/mt7610u.bin -firmware: mediatek/mt7615_cr4.bin -firmware: mediatek/mt7615_n9.bin -firmware: mediatek/mt7615_rom_patch.bin -firmware: mediatek/mt7622pr2h.bin -firmware: mediatek/mt7650e.bin -firmware: mediatek/mt7663pr2h.bin -firmware: mediatek/mt7668pr2h.bin -firmware: mellanox/mlxsw_spectrum-13.2000.2714.mfa2 -firmware: mellanox/mlxsw_spectrum2-29.2000.2714.mfa2 -firmware: mixart/miXart8.elf -firmware: mixart/miXart8.xlx -firmware: mixart/miXart8AES.xlx -firmware: moxa/moxa-1110.fw -firmware: moxa/moxa-1130.fw -firmware: moxa/moxa-1131.fw -firmware: moxa/moxa-1150.fw -firmware: moxa/moxa-1151.fw -firmware: mrvl/sd8688.bin -firmware: mrvl/sd8688_helper.bin -firmware: mrvl/sd8786_uapsta.bin -firmware: mrvl/sd8787_uapsta.bin -firmware: mrvl/sd8797_uapsta.bin -firmware: mrvl/sd8887_uapsta.bin -firmware: mrvl/sd8897_uapsta.bin -firmware: mrvl/sd8977_uapsta.bin -firmware: mrvl/sd8987_uapsta.bin -firmware: mrvl/sd8997_uapsta.bin -firmware: mrvl/usb8766_uapsta.bin -firmware: mrvl/usb8797_uapsta.bin -firmware: mrvl/usb8801_uapsta.bin -firmware: mrvl/usbusb8997_combo_v4.bin -firmware: mt7601u.bin -firmware: mt7603_e1.bin -firmware: mt7603_e2.bin -firmware: mt7628_e1.bin -firmware: mt7628_e2.bin -firmware: mt7662.bin -firmware: mt7662_rom_patch.bin -firmware: mts_cdma.fw -firmware: mts_edge.fw -firmware: mts_gsm.fw -firmware: mts_mt9234mu.fw -firmware: mts_mt9234zba.fw -firmware: multiface_firmware.bin -firmware: multiface_firmware_rev11.bin -firmware: mwl8k/fmimage_8363.fw -firmware: mwl8k/fmimage_8366.fw -firmware: mwl8k/fmimage_8366_ap-3.fw -firmware: mwl8k/fmimage_8687.fw -firmware: mwl8k/helper_8363.fw -firmware: mwl8k/helper_8366.fw -firmware: mwl8k/helper_8687.fw -firmware: myri10ge_eth_z8e.dat -firmware: myri10ge_ethp_z8e.dat -firmware: myri10ge_rss_eth_z8e.dat -firmware: myri10ge_rss_ethp_z8e.dat -firmware: netronome/nic_AMDA0058-0011_2x40.nffw -firmware: netronome/nic_AMDA0058-0012_2x40.nffw -firmware: netronome/nic_AMDA0081-0001_1x40.nffw -firmware: netronome/nic_AMDA0081-0001_4x10.nffw -firmware: netronome/nic_AMDA0096-0001_2x10.nffw -firmware: netronome/nic_AMDA0097-0001_2x40.nffw -firmware: netronome/nic_AMDA0097-0001_4x10_1x40.nffw -firmware: netronome/nic_AMDA0097-0001_8x10.nffw -firmware: netronome/nic_AMDA0099-0001_1x10_1x25.nffw -firmware: netronome/nic_AMDA0099-0001_2x10.nffw -firmware: netronome/nic_AMDA0099-0001_2x25.nffw -firmware: ni6534a.bin -firmware: niscrb01.bin -firmware: niscrb02.bin -firmware: nvidia/gm200/acr/bl.bin -firmware: nvidia/gm200/acr/ucode_load.bin -firmware: nvidia/gm200/acr/ucode_unload.bin -firmware: nvidia/gm200/gr/fecs_bl.bin -firmware: nvidia/gm200/gr/fecs_data.bin -firmware: nvidia/gm200/gr/fecs_inst.bin -firmware: nvidia/gm200/gr/fecs_sig.bin -firmware: nvidia/gm200/gr/gpccs_bl.bin -firmware: nvidia/gm200/gr/gpccs_data.bin -firmware: nvidia/gm200/gr/gpccs_inst.bin -firmware: nvidia/gm200/gr/gpccs_sig.bin -firmware: nvidia/gm200/gr/sw_bundle_init.bin -firmware: nvidia/gm200/gr/sw_ctx.bin -firmware: nvidia/gm200/gr/sw_method_init.bin -firmware: nvidia/gm200/gr/sw_nonctx.bin -firmware: nvidia/gm204/acr/bl.bin -firmware: nvidia/gm204/acr/ucode_load.bin -firmware: nvidia/gm204/acr/ucode_unload.bin -firmware: nvidia/gm204/gr/fecs_bl.bin -firmware: nvidia/gm204/gr/fecs_data.bin -firmware: nvidia/gm204/gr/fecs_inst.bin -firmware: nvidia/gm204/gr/fecs_sig.bin -firmware: nvidia/gm204/gr/gpccs_bl.bin -firmware: nvidia/gm204/gr/gpccs_data.bin -firmware: nvidia/gm204/gr/gpccs_inst.bin -firmware: nvidia/gm204/gr/gpccs_sig.bin -firmware: nvidia/gm204/gr/sw_bundle_init.bin -firmware: nvidia/gm204/gr/sw_ctx.bin -firmware: nvidia/gm204/gr/sw_method_init.bin -firmware: nvidia/gm204/gr/sw_nonctx.bin -firmware: nvidia/gm206/acr/bl.bin -firmware: nvidia/gm206/acr/ucode_load.bin -firmware: nvidia/gm206/acr/ucode_unload.bin -firmware: nvidia/gm206/gr/fecs_bl.bin -firmware: nvidia/gm206/gr/fecs_data.bin -firmware: nvidia/gm206/gr/fecs_inst.bin -firmware: nvidia/gm206/gr/fecs_sig.bin -firmware: nvidia/gm206/gr/gpccs_bl.bin -firmware: nvidia/gm206/gr/gpccs_data.bin -firmware: nvidia/gm206/gr/gpccs_inst.bin -firmware: nvidia/gm206/gr/gpccs_sig.bin -firmware: nvidia/gm206/gr/sw_bundle_init.bin -firmware: nvidia/gm206/gr/sw_ctx.bin -firmware: nvidia/gm206/gr/sw_method_init.bin -firmware: nvidia/gm206/gr/sw_nonctx.bin -firmware: nvidia/gp100/acr/bl.bin -firmware: nvidia/gp100/acr/ucode_load.bin -firmware: nvidia/gp100/acr/ucode_unload.bin -firmware: nvidia/gp100/gr/fecs_bl.bin -firmware: nvidia/gp100/gr/fecs_data.bin -firmware: nvidia/gp100/gr/fecs_inst.bin -firmware: nvidia/gp100/gr/fecs_sig.bin -firmware: nvidia/gp100/gr/gpccs_bl.bin -firmware: nvidia/gp100/gr/gpccs_data.bin -firmware: nvidia/gp100/gr/gpccs_inst.bin -firmware: nvidia/gp100/gr/gpccs_sig.bin -firmware: nvidia/gp100/gr/sw_bundle_init.bin -firmware: nvidia/gp100/gr/sw_ctx.bin -firmware: nvidia/gp100/gr/sw_method_init.bin -firmware: nvidia/gp100/gr/sw_nonctx.bin -firmware: nvidia/gp102/acr/bl.bin -firmware: nvidia/gp102/acr/ucode_load.bin -firmware: nvidia/gp102/acr/ucode_unload.bin -firmware: nvidia/gp102/acr/unload_bl.bin -firmware: nvidia/gp102/gr/fecs_bl.bin -firmware: nvidia/gp102/gr/fecs_data.bin -firmware: nvidia/gp102/gr/fecs_inst.bin -firmware: nvidia/gp102/gr/fecs_sig.bin -firmware: nvidia/gp102/gr/gpccs_bl.bin -firmware: nvidia/gp102/gr/gpccs_data.bin -firmware: nvidia/gp102/gr/gpccs_inst.bin -firmware: nvidia/gp102/gr/gpccs_sig.bin -firmware: nvidia/gp102/gr/sw_bundle_init.bin -firmware: nvidia/gp102/gr/sw_ctx.bin -firmware: nvidia/gp102/gr/sw_method_init.bin -firmware: nvidia/gp102/gr/sw_nonctx.bin -firmware: nvidia/gp102/nvdec/scrubber.bin -firmware: nvidia/gp102/sec2/desc-1.bin -firmware: nvidia/gp102/sec2/desc.bin -firmware: nvidia/gp102/sec2/image-1.bin -firmware: nvidia/gp102/sec2/image.bin -firmware: nvidia/gp102/sec2/sig-1.bin -firmware: nvidia/gp102/sec2/sig.bin -firmware: nvidia/gp104/acr/bl.bin -firmware: nvidia/gp104/acr/ucode_load.bin -firmware: nvidia/gp104/acr/ucode_unload.bin -firmware: nvidia/gp104/acr/unload_bl.bin -firmware: nvidia/gp104/gr/fecs_bl.bin -firmware: nvidia/gp104/gr/fecs_data.bin -firmware: nvidia/gp104/gr/fecs_inst.bin -firmware: nvidia/gp104/gr/fecs_sig.bin -firmware: nvidia/gp104/gr/gpccs_bl.bin -firmware: nvidia/gp104/gr/gpccs_data.bin -firmware: nvidia/gp104/gr/gpccs_inst.bin -firmware: nvidia/gp104/gr/gpccs_sig.bin -firmware: nvidia/gp104/gr/sw_bundle_init.bin -firmware: nvidia/gp104/gr/sw_ctx.bin -firmware: nvidia/gp104/gr/sw_method_init.bin -firmware: nvidia/gp104/gr/sw_nonctx.bin -firmware: nvidia/gp104/nvdec/scrubber.bin -firmware: nvidia/gp104/sec2/desc-1.bin -firmware: nvidia/gp104/sec2/desc.bin -firmware: nvidia/gp104/sec2/image-1.bin -firmware: nvidia/gp104/sec2/image.bin -firmware: nvidia/gp104/sec2/sig-1.bin -firmware: nvidia/gp104/sec2/sig.bin -firmware: nvidia/gp106/acr/bl.bin -firmware: nvidia/gp106/acr/ucode_load.bin -firmware: nvidia/gp106/acr/ucode_unload.bin -firmware: nvidia/gp106/acr/unload_bl.bin -firmware: nvidia/gp106/gr/fecs_bl.bin -firmware: nvidia/gp106/gr/fecs_data.bin -firmware: nvidia/gp106/gr/fecs_inst.bin -firmware: nvidia/gp106/gr/fecs_sig.bin -firmware: nvidia/gp106/gr/gpccs_bl.bin -firmware: nvidia/gp106/gr/gpccs_data.bin -firmware: nvidia/gp106/gr/gpccs_inst.bin -firmware: nvidia/gp106/gr/gpccs_sig.bin -firmware: nvidia/gp106/gr/sw_bundle_init.bin -firmware: nvidia/gp106/gr/sw_ctx.bin -firmware: nvidia/gp106/gr/sw_method_init.bin -firmware: nvidia/gp106/gr/sw_nonctx.bin -firmware: nvidia/gp106/nvdec/scrubber.bin -firmware: nvidia/gp106/sec2/desc-1.bin -firmware: nvidia/gp106/sec2/desc.bin -firmware: nvidia/gp106/sec2/image-1.bin -firmware: nvidia/gp106/sec2/image.bin -firmware: nvidia/gp106/sec2/sig-1.bin -firmware: nvidia/gp106/sec2/sig.bin -firmware: nvidia/gp107/acr/bl.bin -firmware: nvidia/gp107/acr/ucode_load.bin -firmware: nvidia/gp107/acr/ucode_unload.bin -firmware: nvidia/gp107/acr/unload_bl.bin -firmware: nvidia/gp107/gr/fecs_bl.bin -firmware: nvidia/gp107/gr/fecs_data.bin -firmware: nvidia/gp107/gr/fecs_inst.bin -firmware: nvidia/gp107/gr/fecs_sig.bin -firmware: nvidia/gp107/gr/gpccs_bl.bin -firmware: nvidia/gp107/gr/gpccs_data.bin -firmware: nvidia/gp107/gr/gpccs_inst.bin -firmware: nvidia/gp107/gr/gpccs_sig.bin -firmware: nvidia/gp107/gr/sw_bundle_init.bin -firmware: nvidia/gp107/gr/sw_ctx.bin -firmware: nvidia/gp107/gr/sw_method_init.bin -firmware: nvidia/gp107/gr/sw_nonctx.bin -firmware: nvidia/gp107/nvdec/scrubber.bin -firmware: nvidia/gp107/sec2/desc-1.bin -firmware: nvidia/gp107/sec2/desc.bin -firmware: nvidia/gp107/sec2/image-1.bin -firmware: nvidia/gp107/sec2/image.bin -firmware: nvidia/gp107/sec2/sig-1.bin -firmware: nvidia/gp107/sec2/sig.bin -firmware: nvidia/gp108/acr/bl.bin -firmware: nvidia/gp108/acr/ucode_load.bin -firmware: nvidia/gp108/acr/ucode_unload.bin -firmware: nvidia/gp108/acr/unload_bl.bin -firmware: nvidia/gp108/gr/fecs_bl.bin -firmware: nvidia/gp108/gr/fecs_data.bin -firmware: nvidia/gp108/gr/fecs_inst.bin -firmware: nvidia/gp108/gr/fecs_sig.bin -firmware: nvidia/gp108/gr/gpccs_bl.bin -firmware: nvidia/gp108/gr/gpccs_data.bin -firmware: nvidia/gp108/gr/gpccs_inst.bin -firmware: nvidia/gp108/gr/gpccs_sig.bin -firmware: nvidia/gp108/gr/sw_bundle_init.bin -firmware: nvidia/gp108/gr/sw_ctx.bin -firmware: nvidia/gp108/gr/sw_method_init.bin -firmware: nvidia/gp108/gr/sw_nonctx.bin -firmware: nvidia/gp108/nvdec/scrubber.bin -firmware: nvidia/gp108/sec2/desc.bin -firmware: nvidia/gp108/sec2/image.bin -firmware: nvidia/gp108/sec2/sig.bin -firmware: nvidia/gv100/acr/bl.bin -firmware: nvidia/gv100/acr/ucode_load.bin -firmware: nvidia/gv100/acr/ucode_unload.bin -firmware: nvidia/gv100/acr/unload_bl.bin -firmware: nvidia/gv100/gr/fecs_bl.bin -firmware: nvidia/gv100/gr/fecs_data.bin -firmware: nvidia/gv100/gr/fecs_inst.bin -firmware: nvidia/gv100/gr/fecs_sig.bin -firmware: nvidia/gv100/gr/gpccs_bl.bin -firmware: nvidia/gv100/gr/gpccs_data.bin -firmware: nvidia/gv100/gr/gpccs_inst.bin -firmware: nvidia/gv100/gr/gpccs_sig.bin -firmware: nvidia/gv100/gr/sw_bundle_init.bin -firmware: nvidia/gv100/gr/sw_ctx.bin -firmware: nvidia/gv100/gr/sw_method_init.bin -firmware: nvidia/gv100/gr/sw_nonctx.bin -firmware: nvidia/gv100/nvdec/scrubber.bin -firmware: nvidia/gv100/sec2/desc.bin -firmware: nvidia/gv100/sec2/image.bin -firmware: nvidia/gv100/sec2/sig.bin -firmware: nvidia/tu102/acr/bl.bin -firmware: nvidia/tu102/acr/ucode_ahesasc.bin -firmware: nvidia/tu102/acr/ucode_asb.bin -firmware: nvidia/tu102/acr/ucode_unload.bin -firmware: nvidia/tu102/acr/unload_bl.bin -firmware: nvidia/tu102/gr/fecs_bl.bin -firmware: nvidia/tu102/gr/fecs_data.bin -firmware: nvidia/tu102/gr/fecs_inst.bin -firmware: nvidia/tu102/gr/fecs_sig.bin -firmware: nvidia/tu102/gr/gpccs_bl.bin -firmware: nvidia/tu102/gr/gpccs_data.bin -firmware: nvidia/tu102/gr/gpccs_inst.bin -firmware: nvidia/tu102/gr/gpccs_sig.bin -firmware: nvidia/tu102/gr/sw_bundle_init.bin -firmware: nvidia/tu102/gr/sw_ctx.bin -firmware: nvidia/tu102/gr/sw_method_init.bin -firmware: nvidia/tu102/gr/sw_nonctx.bin -firmware: nvidia/tu102/nvdec/scrubber.bin -firmware: nvidia/tu102/sec2/desc.bin -firmware: nvidia/tu102/sec2/image.bin -firmware: nvidia/tu102/sec2/sig.bin -firmware: nvidia/tu104/acr/bl.bin -firmware: nvidia/tu104/acr/ucode_ahesasc.bin -firmware: nvidia/tu104/acr/ucode_asb.bin -firmware: nvidia/tu104/acr/ucode_unload.bin -firmware: nvidia/tu104/acr/unload_bl.bin -firmware: nvidia/tu104/gr/fecs_bl.bin -firmware: nvidia/tu104/gr/fecs_data.bin -firmware: nvidia/tu104/gr/fecs_inst.bin -firmware: nvidia/tu104/gr/fecs_sig.bin -firmware: nvidia/tu104/gr/gpccs_bl.bin -firmware: nvidia/tu104/gr/gpccs_data.bin -firmware: nvidia/tu104/gr/gpccs_inst.bin -firmware: nvidia/tu104/gr/gpccs_sig.bin -firmware: nvidia/tu104/gr/sw_bundle_init.bin -firmware: nvidia/tu104/gr/sw_ctx.bin -firmware: nvidia/tu104/gr/sw_method_init.bin -firmware: nvidia/tu104/gr/sw_nonctx.bin -firmware: nvidia/tu104/nvdec/scrubber.bin -firmware: nvidia/tu104/sec2/desc.bin -firmware: nvidia/tu104/sec2/image.bin -firmware: nvidia/tu104/sec2/sig.bin -firmware: nvidia/tu106/acr/bl.bin -firmware: nvidia/tu106/acr/ucode_ahesasc.bin -firmware: nvidia/tu106/acr/ucode_asb.bin -firmware: nvidia/tu106/acr/ucode_unload.bin -firmware: nvidia/tu106/acr/unload_bl.bin -firmware: nvidia/tu106/gr/fecs_bl.bin -firmware: nvidia/tu106/gr/fecs_data.bin -firmware: nvidia/tu106/gr/fecs_inst.bin -firmware: nvidia/tu106/gr/fecs_sig.bin -firmware: nvidia/tu106/gr/gpccs_bl.bin -firmware: nvidia/tu106/gr/gpccs_data.bin -firmware: nvidia/tu106/gr/gpccs_inst.bin -firmware: nvidia/tu106/gr/gpccs_sig.bin -firmware: nvidia/tu106/gr/sw_bundle_init.bin -firmware: nvidia/tu106/gr/sw_ctx.bin -firmware: nvidia/tu106/gr/sw_method_init.bin -firmware: nvidia/tu106/gr/sw_nonctx.bin -firmware: nvidia/tu106/nvdec/scrubber.bin -firmware: nvidia/tu106/sec2/desc.bin -firmware: nvidia/tu106/sec2/image.bin -firmware: nvidia/tu106/sec2/sig.bin -firmware: nvidia/tu116/acr/bl.bin -firmware: nvidia/tu116/acr/ucode_ahesasc.bin -firmware: nvidia/tu116/acr/ucode_asb.bin -firmware: nvidia/tu116/acr/ucode_unload.bin -firmware: nvidia/tu116/acr/unload_bl.bin -firmware: nvidia/tu116/gr/fecs_bl.bin -firmware: nvidia/tu116/gr/fecs_data.bin -firmware: nvidia/tu116/gr/fecs_inst.bin -firmware: nvidia/tu116/gr/fecs_sig.bin -firmware: nvidia/tu116/gr/gpccs_bl.bin -firmware: nvidia/tu116/gr/gpccs_data.bin -firmware: nvidia/tu116/gr/gpccs_inst.bin -firmware: nvidia/tu116/gr/gpccs_sig.bin -firmware: nvidia/tu116/gr/sw_bundle_init.bin -firmware: nvidia/tu116/gr/sw_ctx.bin -firmware: nvidia/tu116/gr/sw_method_init.bin -firmware: nvidia/tu116/gr/sw_nonctx.bin -firmware: nvidia/tu116/nvdec/scrubber.bin -firmware: nvidia/tu116/sec2/desc.bin -firmware: nvidia/tu116/sec2/image.bin -firmware: nvidia/tu116/sec2/sig.bin -firmware: nvidia/tu117/acr/bl.bin -firmware: nvidia/tu117/acr/ucode_ahesasc.bin -firmware: nvidia/tu117/acr/ucode_asb.bin -firmware: nvidia/tu117/acr/ucode_unload.bin -firmware: nvidia/tu117/acr/unload_bl.bin -firmware: nvidia/tu117/gr/fecs_bl.bin -firmware: nvidia/tu117/gr/fecs_data.bin -firmware: nvidia/tu117/gr/fecs_inst.bin -firmware: nvidia/tu117/gr/fecs_sig.bin -firmware: nvidia/tu117/gr/gpccs_bl.bin -firmware: nvidia/tu117/gr/gpccs_data.bin -firmware: nvidia/tu117/gr/gpccs_inst.bin -firmware: nvidia/tu117/gr/gpccs_sig.bin -firmware: nvidia/tu117/gr/sw_bundle_init.bin -firmware: nvidia/tu117/gr/sw_ctx.bin -firmware: nvidia/tu117/gr/sw_method_init.bin -firmware: nvidia/tu117/gr/sw_nonctx.bin -firmware: nvidia/tu117/nvdec/scrubber.bin -firmware: nvidia/tu117/sec2/desc.bin -firmware: nvidia/tu117/sec2/image.bin -firmware: nvidia/tu117/sec2/sig.bin -firmware: orinoco_ezusb_fw -firmware: ositech/Xilinx7OD.bin -firmware: pca200e_ecd.bin2 -firmware: pcxhr/dspb1222e.b56 -firmware: pcxhr/dspb1222hr.b56 -firmware: pcxhr/dspb882e.b56 -firmware: pcxhr/dspb882hr.b56 -firmware: pcxhr/dspb924.b56 -firmware: pcxhr/dspd1222.d56 -firmware: pcxhr/dspd222.d56 -firmware: pcxhr/dspd882.d56 -firmware: pcxhr/dspe882.e56 -firmware: pcxhr/dspe924.e56 -firmware: pcxhr/xlxc1222e.dat -firmware: pcxhr/xlxc1222hr.dat -firmware: pcxhr/xlxc222.dat -firmware: pcxhr/xlxc882e.dat -firmware: pcxhr/xlxc882hr.dat -firmware: pcxhr/xlxc924.dat -firmware: pcxhr/xlxint.dat -firmware: phanfw.bin -firmware: prism2_ru.fw -firmware: prism_ap_fw.bin -firmware: prism_sta_fw.bin -firmware: qat_895xcc.bin -firmware: qat_895xcc_mmp.bin -firmware: qat_c3xxx.bin -firmware: qat_c3xxx_mmp.bin -firmware: qat_c62x.bin -firmware: qat_c62x_mmp.bin -firmware: qed/qed_init_values_zipped-8.42.2.0.bin -firmware: ql2100_fw.bin -firmware: ql2200_fw.bin -firmware: ql2300_fw.bin -firmware: ql2322_fw.bin -firmware: ql2400_fw.bin -firmware: ql2500_fw.bin -firmware: qlogic/1040.bin -firmware: qlogic/12160.bin -firmware: qlogic/1280.bin -firmware: qlogic/sd7220.fw -firmware: radeon/ARUBA_me.bin -firmware: radeon/ARUBA_pfp.bin -firmware: radeon/ARUBA_rlc.bin -firmware: radeon/BARTS_mc.bin -firmware: radeon/BARTS_me.bin -firmware: radeon/BARTS_pfp.bin -firmware: radeon/BARTS_smc.bin -firmware: radeon/BONAIRE_ce.bin -firmware: radeon/BONAIRE_mc.bin -firmware: radeon/BONAIRE_mc2.bin -firmware: radeon/BONAIRE_me.bin -firmware: radeon/BONAIRE_mec.bin -firmware: radeon/BONAIRE_pfp.bin -firmware: radeon/BONAIRE_rlc.bin -firmware: radeon/BONAIRE_sdma.bin -firmware: radeon/BONAIRE_smc.bin -firmware: radeon/BONAIRE_uvd.bin -firmware: radeon/BONAIRE_vce.bin -firmware: radeon/BTC_rlc.bin -firmware: radeon/CAICOS_mc.bin -firmware: radeon/CAICOS_me.bin -firmware: radeon/CAICOS_pfp.bin -firmware: radeon/CAICOS_smc.bin -firmware: radeon/CAYMAN_mc.bin -firmware: radeon/CAYMAN_me.bin -firmware: radeon/CAYMAN_pfp.bin -firmware: radeon/CAYMAN_rlc.bin -firmware: radeon/CAYMAN_smc.bin -firmware: radeon/CEDAR_me.bin -firmware: radeon/CEDAR_pfp.bin -firmware: radeon/CEDAR_rlc.bin -firmware: radeon/CEDAR_smc.bin -firmware: radeon/CYPRESS_me.bin -firmware: radeon/CYPRESS_pfp.bin -firmware: radeon/CYPRESS_rlc.bin -firmware: radeon/CYPRESS_smc.bin -firmware: radeon/CYPRESS_uvd.bin -firmware: radeon/HAINAN_ce.bin -firmware: radeon/HAINAN_mc.bin -firmware: radeon/HAINAN_mc2.bin -firmware: radeon/HAINAN_me.bin -firmware: radeon/HAINAN_pfp.bin -firmware: radeon/HAINAN_rlc.bin -firmware: radeon/HAINAN_smc.bin -firmware: radeon/HAWAII_ce.bin -firmware: radeon/HAWAII_mc.bin -firmware: radeon/HAWAII_mc2.bin -firmware: radeon/HAWAII_me.bin -firmware: radeon/HAWAII_mec.bin -firmware: radeon/HAWAII_pfp.bin -firmware: radeon/HAWAII_rlc.bin -firmware: radeon/HAWAII_sdma.bin -firmware: radeon/HAWAII_smc.bin -firmware: radeon/JUNIPER_me.bin -firmware: radeon/JUNIPER_pfp.bin -firmware: radeon/JUNIPER_rlc.bin -firmware: radeon/JUNIPER_smc.bin -firmware: radeon/KABINI_ce.bin -firmware: radeon/KABINI_me.bin -firmware: radeon/KABINI_mec.bin -firmware: radeon/KABINI_pfp.bin -firmware: radeon/KABINI_rlc.bin -firmware: radeon/KABINI_sdma.bin -firmware: radeon/KAVERI_ce.bin -firmware: radeon/KAVERI_me.bin -firmware: radeon/KAVERI_mec.bin -firmware: radeon/KAVERI_pfp.bin -firmware: radeon/KAVERI_rlc.bin -firmware: radeon/KAVERI_sdma.bin -firmware: radeon/MULLINS_ce.bin -firmware: radeon/MULLINS_me.bin -firmware: radeon/MULLINS_mec.bin -firmware: radeon/MULLINS_pfp.bin -firmware: radeon/MULLINS_rlc.bin -firmware: radeon/MULLINS_sdma.bin -firmware: radeon/OLAND_ce.bin -firmware: radeon/OLAND_mc.bin -firmware: radeon/OLAND_mc2.bin -firmware: radeon/OLAND_me.bin -firmware: radeon/OLAND_pfp.bin -firmware: radeon/OLAND_rlc.bin -firmware: radeon/OLAND_smc.bin -firmware: radeon/PALM_me.bin -firmware: radeon/PALM_pfp.bin -firmware: radeon/PITCAIRN_ce.bin -firmware: radeon/PITCAIRN_mc.bin -firmware: radeon/PITCAIRN_mc2.bin -firmware: radeon/PITCAIRN_me.bin -firmware: radeon/PITCAIRN_pfp.bin -firmware: radeon/PITCAIRN_rlc.bin -firmware: radeon/PITCAIRN_smc.bin -firmware: radeon/R100_cp.bin -firmware: radeon/R200_cp.bin -firmware: radeon/R300_cp.bin -firmware: radeon/R420_cp.bin -firmware: radeon/R520_cp.bin -firmware: radeon/R600_me.bin -firmware: radeon/R600_pfp.bin -firmware: radeon/R600_rlc.bin -firmware: radeon/R600_uvd.bin -firmware: radeon/R700_rlc.bin -firmware: radeon/REDWOOD_me.bin -firmware: radeon/REDWOOD_pfp.bin -firmware: radeon/REDWOOD_rlc.bin -firmware: radeon/REDWOOD_smc.bin -firmware: radeon/RS600_cp.bin -firmware: radeon/RS690_cp.bin -firmware: radeon/RS780_me.bin -firmware: radeon/RS780_pfp.bin -firmware: radeon/RS780_uvd.bin -firmware: radeon/RV610_me.bin -firmware: radeon/RV610_pfp.bin -firmware: radeon/RV620_me.bin -firmware: radeon/RV620_pfp.bin -firmware: radeon/RV630_me.bin -firmware: radeon/RV630_pfp.bin -firmware: radeon/RV635_me.bin -firmware: radeon/RV635_pfp.bin -firmware: radeon/RV670_me.bin -firmware: radeon/RV670_pfp.bin -firmware: radeon/RV710_me.bin -firmware: radeon/RV710_pfp.bin -firmware: radeon/RV710_smc.bin -firmware: radeon/RV710_uvd.bin -firmware: radeon/RV730_me.bin -firmware: radeon/RV730_pfp.bin -firmware: radeon/RV730_smc.bin -firmware: radeon/RV740_smc.bin -firmware: radeon/RV770_me.bin -firmware: radeon/RV770_pfp.bin -firmware: radeon/RV770_smc.bin -firmware: radeon/RV770_uvd.bin -firmware: radeon/SUMO2_me.bin -firmware: radeon/SUMO2_pfp.bin -firmware: radeon/SUMO_me.bin -firmware: radeon/SUMO_pfp.bin -firmware: radeon/SUMO_rlc.bin -firmware: radeon/SUMO_uvd.bin -firmware: radeon/TAHITI_ce.bin -firmware: radeon/TAHITI_mc.bin -firmware: radeon/TAHITI_mc2.bin -firmware: radeon/TAHITI_me.bin -firmware: radeon/TAHITI_pfp.bin -firmware: radeon/TAHITI_rlc.bin -firmware: radeon/TAHITI_smc.bin -firmware: radeon/TAHITI_uvd.bin -firmware: radeon/TAHITI_vce.bin -firmware: radeon/TURKS_mc.bin -firmware: radeon/TURKS_me.bin -firmware: radeon/TURKS_pfp.bin -firmware: radeon/TURKS_smc.bin -firmware: radeon/VERDE_ce.bin -firmware: radeon/VERDE_mc.bin -firmware: radeon/VERDE_mc2.bin -firmware: radeon/VERDE_me.bin -firmware: radeon/VERDE_pfp.bin -firmware: radeon/VERDE_rlc.bin -firmware: radeon/VERDE_smc.bin -firmware: radeon/banks_k_2_smc.bin -firmware: radeon/bonaire_ce.bin -firmware: radeon/bonaire_k_smc.bin -firmware: radeon/bonaire_mc.bin -firmware: radeon/bonaire_me.bin -firmware: radeon/bonaire_mec.bin -firmware: radeon/bonaire_pfp.bin -firmware: radeon/bonaire_rlc.bin -firmware: radeon/bonaire_sdma.bin -firmware: radeon/bonaire_smc.bin -firmware: radeon/bonaire_uvd.bin -firmware: radeon/hainan_ce.bin -firmware: radeon/hainan_k_smc.bin -firmware: radeon/hainan_mc.bin -firmware: radeon/hainan_me.bin -firmware: radeon/hainan_pfp.bin -firmware: radeon/hainan_rlc.bin -firmware: radeon/hainan_smc.bin -firmware: radeon/hawaii_ce.bin -firmware: radeon/hawaii_k_smc.bin -firmware: radeon/hawaii_mc.bin -firmware: radeon/hawaii_me.bin -firmware: radeon/hawaii_mec.bin -firmware: radeon/hawaii_pfp.bin -firmware: radeon/hawaii_rlc.bin -firmware: radeon/hawaii_sdma.bin -firmware: radeon/hawaii_smc.bin -firmware: radeon/kabini_ce.bin -firmware: radeon/kabini_me.bin -firmware: radeon/kabini_mec.bin -firmware: radeon/kabini_pfp.bin -firmware: radeon/kabini_rlc.bin -firmware: radeon/kabini_sdma.bin -firmware: radeon/kaveri_ce.bin -firmware: radeon/kaveri_me.bin -firmware: radeon/kaveri_mec.bin -firmware: radeon/kaveri_mec2.bin -firmware: radeon/kaveri_pfp.bin -firmware: radeon/kaveri_rlc.bin -firmware: radeon/kaveri_sdma.bin -firmware: radeon/mullins_ce.bin -firmware: radeon/mullins_me.bin -firmware: radeon/mullins_mec.bin -firmware: radeon/mullins_pfp.bin -firmware: radeon/mullins_rlc.bin -firmware: radeon/mullins_sdma.bin -firmware: radeon/oland_ce.bin -firmware: radeon/oland_k_smc.bin -firmware: radeon/oland_mc.bin -firmware: radeon/oland_me.bin -firmware: radeon/oland_pfp.bin -firmware: radeon/oland_rlc.bin -firmware: radeon/oland_smc.bin -firmware: radeon/pitcairn_ce.bin -firmware: radeon/pitcairn_k_smc.bin -firmware: radeon/pitcairn_mc.bin -firmware: radeon/pitcairn_me.bin -firmware: radeon/pitcairn_pfp.bin -firmware: radeon/pitcairn_rlc.bin -firmware: radeon/pitcairn_smc.bin -firmware: radeon/si58_mc.bin -firmware: radeon/tahiti_ce.bin -firmware: radeon/tahiti_mc.bin -firmware: radeon/tahiti_me.bin -firmware: radeon/tahiti_pfp.bin -firmware: radeon/tahiti_rlc.bin -firmware: radeon/tahiti_smc.bin -firmware: radeon/verde_ce.bin -firmware: radeon/verde_k_smc.bin -firmware: radeon/verde_mc.bin -firmware: radeon/verde_me.bin -firmware: radeon/verde_pfp.bin -firmware: radeon/verde_rlc.bin -firmware: radeon/verde_smc.bin -firmware: riptide.hex -firmware: rp2.fw -firmware: rpm_firmware.bin -firmware: rs9113_wlan_qspi.rps -firmware: rt2561.bin -firmware: rt2561s.bin -firmware: rt2661.bin -firmware: rt2860.bin -firmware: rt2870.bin -firmware: rt73.bin -firmware: rtl_bt/rtl8723a_fw.bin -firmware: rtl_bt/rtl8723b_config.bin -firmware: rtl_bt/rtl8723b_fw.bin -firmware: rtl_bt/rtl8723bs_config.bin -firmware: rtl_bt/rtl8723bs_fw.bin -firmware: rtl_bt/rtl8723ds_config.bin -firmware: rtl_bt/rtl8723ds_fw.bin -firmware: rtl_bt/rtl8761a_config.bin -firmware: rtl_bt/rtl8761a_fw.bin -firmware: rtl_bt/rtl8821a_config.bin -firmware: rtl_bt/rtl8821a_fw.bin -firmware: rtl_bt/rtl8822b_config.bin -firmware: rtl_bt/rtl8822b_fw.bin -firmware: rtl_nic/rtl8105e-1.fw -firmware: rtl_nic/rtl8106e-1.fw -firmware: rtl_nic/rtl8106e-2.fw -firmware: rtl_nic/rtl8107e-1.fw -firmware: rtl_nic/rtl8107e-2.fw -firmware: rtl_nic/rtl8125a-3.fw -firmware: rtl_nic/rtl8153a-2.fw -firmware: rtl_nic/rtl8153a-3.fw -firmware: rtl_nic/rtl8153a-4.fw -firmware: rtl_nic/rtl8153b-2.fw -firmware: rtl_nic/rtl8168d-1.fw -firmware: rtl_nic/rtl8168d-2.fw -firmware: rtl_nic/rtl8168e-1.fw -firmware: rtl_nic/rtl8168e-2.fw -firmware: rtl_nic/rtl8168e-3.fw -firmware: rtl_nic/rtl8168f-1.fw -firmware: rtl_nic/rtl8168f-2.fw -firmware: rtl_nic/rtl8168fp-3.fw -firmware: rtl_nic/rtl8168g-2.fw -firmware: rtl_nic/rtl8168g-3.fw -firmware: rtl_nic/rtl8168h-1.fw -firmware: rtl_nic/rtl8168h-2.fw -firmware: rtl_nic/rtl8402-1.fw -firmware: rtl_nic/rtl8411-1.fw -firmware: rtl_nic/rtl8411-2.fw -firmware: rtlwifi/rtl8188efw.bin -firmware: rtlwifi/rtl8188eufw.bin -firmware: rtlwifi/rtl8192cfw.bin -firmware: rtlwifi/rtl8192cfwU.bin -firmware: rtlwifi/rtl8192cfwU_B.bin -firmware: rtlwifi/rtl8192cufw.bin -firmware: rtlwifi/rtl8192cufw_A.bin -firmware: rtlwifi/rtl8192cufw_B.bin -firmware: rtlwifi/rtl8192cufw_TMSC.bin -firmware: rtlwifi/rtl8192defw.bin -firmware: rtlwifi/rtl8192eefw.bin -firmware: rtlwifi/rtl8192eu_nic.bin -firmware: rtlwifi/rtl8192sefw.bin -firmware: rtlwifi/rtl8712u.bin -firmware: rtlwifi/rtl8723aufw_A.bin -firmware: rtlwifi/rtl8723aufw_B.bin -firmware: rtlwifi/rtl8723aufw_B_NoBT.bin -firmware: rtlwifi/rtl8723befw.bin -firmware: rtlwifi/rtl8723befw_36.bin -firmware: rtlwifi/rtl8723bu_bt.bin -firmware: rtlwifi/rtl8723bu_nic.bin -firmware: rtlwifi/rtl8723efw.bin -firmware: rtlwifi/rtl8821aefw.bin -firmware: rtlwifi/rtl8821aefw_29.bin -firmware: rtw88/rtw8723d_fw.bin -firmware: rtw88/rtw8822b_fw.bin -firmware: rtw88/rtw8822c_fw.bin -firmware: rtw88/rtw8822c_wow_fw.bin -firmware: s5k4ecgx.bin -firmware: sd8385.bin -firmware: sd8385_helper.bin -firmware: sd8686.bin -firmware: sd8686_helper.bin -firmware: sd8688.bin -firmware: sd8688_helper.bin -firmware: slicoss/gbdownload.sys -firmware: slicoss/gbrcvucode.sys -firmware: slicoss/oasisdownload.sys -firmware: slicoss/oasisrcvucode.sys -firmware: sms1xxx-hcw-55xxx-dvbt-02.fw -firmware: sms1xxx-hcw-55xxx-isdbt-02.fw -firmware: sms1xxx-nova-a-dvbt-01.fw -firmware: sms1xxx-nova-b-dvbt-01.fw -firmware: sms1xxx-stellar-dvbt-01.fw -firmware: softing-4.6/bcard.bin -firmware: softing-4.6/bcard2.bin -firmware: softing-4.6/cancard.bin -firmware: softing-4.6/cancrd2.bin -firmware: softing-4.6/cansja.bin -firmware: softing-4.6/ldcard.bin -firmware: softing-4.6/ldcard2.bin -firmware: solos-FPGA.bin -firmware: solos-Firmware.bin -firmware: solos-db-FPGA.bin -firmware: sun/cassini.bin -firmware: symbol_sp24t_prim_fw -firmware: symbol_sp24t_sec_fw -firmware: tdmb_denver.inp -firmware: tdmb_nova_12mhz.inp -firmware: tdmb_nova_12mhz_b0.inp -firmware: tehuti/bdx.bin -firmware: ti-connectivity/wl1251-fw.bin -firmware: ti-connectivity/wl1251-nvs.bin -firmware: ti-connectivity/wl127x-fw-5-mr.bin -firmware: ti-connectivity/wl127x-fw-5-plt.bin -firmware: ti-connectivity/wl127x-fw-5-sr.bin -firmware: ti-connectivity/wl128x-fw-5-mr.bin -firmware: ti-connectivity/wl128x-fw-5-plt.bin -firmware: ti-connectivity/wl128x-fw-5-sr.bin -firmware: ti-connectivity/wl18xx-fw-4.bin -firmware: ti_3410.fw -firmware: ti_5052.fw -firmware: tigon/tg3.bin -firmware: tigon/tg3_tso.bin -firmware: tigon/tg3_tso5.bin -firmware: ttusb-budget/dspbootcode.bin -firmware: ueagle-atm/930-fpga.bin -firmware: ueagle-atm/CMV4i.bin -firmware: ueagle-atm/CMV4i.bin.v2 -firmware: ueagle-atm/CMV4p.bin -firmware: ueagle-atm/CMV4p.bin.v2 -firmware: ueagle-atm/CMV9i.bin -firmware: ueagle-atm/CMV9i.bin.v2 -firmware: ueagle-atm/CMV9p.bin -firmware: ueagle-atm/CMV9p.bin.v2 -firmware: ueagle-atm/CMVei.bin -firmware: ueagle-atm/CMVei.bin.v2 -firmware: ueagle-atm/CMVep.bin -firmware: ueagle-atm/CMVep.bin.v2 -firmware: ueagle-atm/DSP4i.bin -firmware: ueagle-atm/DSP4p.bin -firmware: ueagle-atm/DSP9i.bin -firmware: ueagle-atm/DSP9p.bin -firmware: ueagle-atm/DSPei.bin -firmware: ueagle-atm/DSPep.bin -firmware: ueagle-atm/adi930.fw -firmware: ueagle-atm/eagle.fw -firmware: ueagle-atm/eagleI.fw -firmware: ueagle-atm/eagleII.fw -firmware: ueagle-atm/eagleIII.fw -firmware: ueagle-atm/eagleIV.fw -firmware: usb8388.bin -firmware: usbdux_firmware.bin -firmware: usbduxfast_firmware.bin -firmware: usbduxsigma_firmware.bin -firmware: v4l-cx231xx-avcore-01.fw -firmware: v4l-cx23418-apu.fw -firmware: v4l-cx23418-cpu.fw -firmware: v4l-cx23418-dig.fw -firmware: v4l-cx2341x-dec.fw -firmware: v4l-cx2341x-enc.fw -firmware: v4l-cx2341x-init.mpg -firmware: v4l-cx23885-avcore-01.fw -firmware: v4l-cx23885-enc.fw -firmware: v4l-cx25840.fw -firmware: v4l-pvrusb2-24xxx-01.fw -firmware: v4l-pvrusb2-29xxx-01.fw -firmware: v4l-pvrusb2-73xxx-01.fw -firmware: vicam/firmware.fw -firmware: vntwusb.fw -firmware: vx/bd56002.boot -firmware: vx/bd563s3.boot -firmware: vx/bd563v2.boot -firmware: vx/bx_1_vp4.b56 -firmware: vx/bx_1_vxp.b56 -firmware: vx/l_1_v22.d56 -firmware: vx/l_1_vp4.d56 -firmware: vx/l_1_vx2.d56 -firmware: vx/l_1_vxp.d56 -firmware: vx/x1_1_vp4.xlx -firmware: vx/x1_1_vx2.xlx -firmware: vx/x1_1_vxp.xlx -firmware: vx/x1_2_v22.xlx -firmware: vxge/X3fw-pxe.ncf -firmware: vxge/X3fw.ncf -firmware: wd719x-risc.bin -firmware: wd719x-wcs.bin -firmware: whiteheat.fw -firmware: whiteheat_loader.fw -firmware: wil6210.brd -firmware: wil6210.fw -firmware: wil6210_sparrow_plus.fw -firmware: wil6436.brd -firmware: wil6436.fw -firmware: wlan/prima/WCNSS_qcom_wlan_nv.bin -firmware: xc3028-v27.fw -firmware: xc3028L-v36.fw -firmware: yam/1200.bin -firmware: yam/9600.bin -firmware: yamaha/ds1_ctrl.fw -firmware: yamaha/ds1_dsp.fw -firmware: yamaha/ds1e_ctrl.fw -firmware: zd1201-ap.fw -firmware: zd1201.fw -firmware: zd1211/zd1211_ub -firmware: zd1211/zd1211_uphr -firmware: zd1211/zd1211_ur -firmware: zd1211/zd1211b_ub -firmware: zd1211/zd1211b_uphr -firmware: zd1211/zd1211b_ur diff -u linux-oem-5.6-5.6.0/debian.oem/changelog linux-oem-5.6-5.6.0/debian.oem/changelog --- linux-oem-5.6-5.6.0/debian.oem/changelog +++ linux-oem-5.6-5.6.0/debian.oem/changelog @@ -1,3 +1,583 @@ +linux-oem-5.6 (5.6.0-1039.43) focal; urgency=medium + + * focal/linux-oem-5.6: 5.6.0-1039.43 -proposed tracker (LP: #1909420) + + * Fix suspend error of SOF driver (LP: #1908713) + - Revert "ALSA: hda: Refactor codec PM to use direct-complete optimization" + + * Packaging resync (LP: #1786013) + - [Packaging] update variants + + * Killer 500s (QCA6390) WLAN/BT [17cb:1101] unavailable (LP: #1879633) + - Bluetooth: btusb: Add flag to define wideband speech capability + - Bluetooth: Support querying for WBS support through MGMT + - Bluetooth: Enable erroneous data reporting if WBS is supported + - Bluetooth: Increment management interface revision + - Bluetooth: fix off by one in err_data_reporting cmd masks. + - Bluetooth: mgmt: add mgmt_cmd_status in add_advertising + - mac80211: add 802.11 encapsulation offloading support + - mac80211: fix tx status for no ack cases + - nl80211: add handling for BSS color + - mac80211: add handling for BSS color + - mac80211: allow setting queue_len for drivers not using wake_tx_queue + - Bluetooth: hci_qca: Enable clocks required for BT SOC + - Bluetooth: hci_qca: Optimized code while enabling clocks for BT SOC + - mac80211: fix 11w when using encapsulation offloading + - ath11k: Silence clang -Wsometimes-uninitialized in + ath11k_update_per_peer_stats_from_txcompl + - ath11k: drop tx_info from ath11k_sta + - ath11k: add HE rate accounting to driver + - ath11k: fix rcu lock protect in peer assoc confirmation + - ath11k: fix warn-on in disassociation + - ath11k: fix parsing PPDU_CTRL type in pktlog + - ath11k: Fixing dangling pointer issue upon peer delete failure + - ath11k: fix incorrect peer stats counters update + - Bluetooth: hci_qca: Bug fixes while collecting controller memory dump + - net: qrtr: Migrate nameservice to kernel from userspace + - net: qrtr: Fix the local node ID as 1 + - net: qrtr: fix spelling mistake "serivce" -> "service" + - net: qrtr: Fix error pointer vs NULL bugs + - Bluetooth: Replace zero-length array with flexible-array member + - Bluetooth: hci_qca: Not send vendor pre-shutdown command for QCA Rome + - Bluetooth: btqca: Fix the NVM baudrate tag offcet for wcn3991 + - net: qrtr: Respond to HELLO message + - net: qrtr: Fix FIXME related to qrtr_ns_init() + - soc: qcom: Do not depend on ARCH_QCOM for QMI helpers + - Bluetooth: hci_qca: Make bt_en and susclk not mandatory for QCA Rome + - Bluetooth: hci_qca: Replace devm_gpiod_get() with devm_gpiod_get_optional() + - ath11k: config reorder queue for all tids during peer setup + - ath11k: add thermal cooling device support + - ath11k: add thermal sensor device support + - ath11k: Use scnprintf() for avoiding potential buffer overflow + - ath11k: handle RX fragments + - ath11k: enable PN offload + - ath11k: set queue_len to 4096 + - ath11k: add WMI calls required for handling BSS color + - ath11k: add handling for BSS color + - ath11k: Supporting RX ring backpressure HTT event and stats handling + - ath11k: fill channel info from rx channel + - ath11k: dump SRNG stats during FW assert + - ath11k: Adding proper validation before accessing tx_stats + - ath11k: Configure hash based reo destination ring selection + - ath11k: Perform per-msdu rx processing + - cfg80211: fix kernel-doc notation + - bus: mhi: core: Add support for registering MHI controllers + - bus: mhi: core: Add support for registering MHI client drivers + - bus: mhi: core: Add support for creating and destroying MHI devices + - bus: mhi: core: Add support for ringing channel/event ring doorbells + - bus: mhi: core: Add support for PM state transitions + - bus: mhi: core: Add support for basic PM operations + - bus: mhi: core: Add support for downloading firmware over BHIe + - bus: mhi: core: Add support for downloading RDDM image during panic + - bus: mhi: core: Add support for processing events from client device + - bus: mhi: core: Add support for data transfer + - bus: mhi: core: Add uevent support for module autoloading + - MAINTAINERS: Add entry for MHI bus + - bus/mhi: fix printk format for size_t + - bus: mhi: core: Pass module owner during client driver registration + - bus: mhi: core: Add support for reading MHI info from device + - bus: mhi: core: Initialize bhie field in mhi_cntrl for RDDM capture + - bus: mhi: core: Drop the references to mhi_dev in mhi_destroy_device() + - Bluetooth: hci_qca: Add support for Qualcomm Bluetooth SoC QCA6390 + - ath11k: fix compiler warnings without CONFIG_THERMAL + - ath11k: Add sta debugfs support to configure ADDBA and DELBA + - ath11k: add pktlog checksum in trace events to support pktlog + - ath11k: fix error message to correctly report the command that failed + - ath11k: Increase the tx completion ring size + - ath11k: Avoid mgmt tx count underflow + - ath11k: fix duplication peer create on same radio + - ath11k: Modify the interrupt timer threshold + - ath11k: Fix TWT radio count + - ath11k: set IRQ_DISABLE_UNLAZY flag for DP interrupts + - ath11k: rx path optimizations + - ath11k: Cleanup in pdev destroy and mac register during crash on recovery + - ath11k: Fix fw assert by setting proper vht cap + - ath11k: Fix rx_filter flags setting for per peer rx_stats + - ath11k: cleanup reo command error code overwritten + - ath11k: Add dynamic tcl ring selection logic with retry mechanism + - ath11k: remove conversion to bool in ath11k_dp_rxdesc_mpdu_valid() + - ath11k: remove conversion to bool in ath11k_debug_fw_stats_process() + - net: qrtr: Add tracepoint support + - mac80211: fix two missing documentation entries + - ath11k: fix reo flush send + - ath11k: use GFP_ATOMIC under spin lock + - Bluetooth: hci_qca: add compatible for QCA9377 + - Bluetooth: hci_qca: allow max-speed to be set for QCA9377 devices + - bus: mhi: core: Add support for MHI suspend and resume + - bus: mhi: core: Fix a NULL vs IS_ERR check in mhi_create_devices() + - mac80211: fix memory overlap due to variable length param + - ath11k: fix error return code in ath11k_dp_alloc() + - ath11k: fix mgmt_tx_wmi cmd sent to FW for deleted vdev + - ath11k: add DBG_MAC prints to track vdev events + - ath11k: use true, false for bool variables + - ath11k: fix resource unavailability for htt stats after peer stats display + - bus: mhi: core: Make sure to powerdown if mhi_sync_power_up fails + - bus: mhi: core: Remove link_status() callback + - bus: mhi: core: Offload register accesses to the controller + - bus: mhi: core: Fix channel device name conflict + - ath11k: add tx hw 802.11 encapsulation offloading support + - ath11k: Add support to reset htt peer stats + - ath11k: fix kernel panic by freeing the msdu received with invalid length + - ath11k: Replace zero-length array with flexible-array + - net: qrtr: Add MHI transport layer + - net: qrtr: Do not depend on ARCH_QCOM + - ath11k: remove stale monitor status descriptor + - ath11k: Add support for multibus support + - ath11k: Add drv private for bus opaque struct + - ath11k: Remove bus layer includes from upper layer + - ath11k: remove redundant initialization of pointer info + - ath11k: convert to devm_platform_get_and_ioremap_resource + - ath11k: fix htt stats module not handle multiple skbs + - bus: mhi: core: Fix some error return code + - Bluetooth: hci_qca: Enable WBS support for wcn3991 + - ath11k: Fix some resource leaks in error path in 'ath11k_thermal_register()' + - Bluetooth: hci_qca: Fix uninitialized access to hdev + - bus: mhi: core: Refactor mhi queue APIs + - bus: mhi: core: Cache intmod from mhi event to mhi channel + - bus: mhi: core: Add range check for channel id received in event ring + - bus: mhi: core: Read transfer length from an event properly + - bus: mhi: core: Handle firmware load using state worker + - bus: mhi: core: Return appropriate error codes for AMSS load failure + - bus: mhi: core: Improve debug logs for loading firmware + - bus: mhi: core: Ensure non-zero session or sequence ID values are used + - bus: mhi: core: Remove the system error worker thread + - bus: mhi: core: Handle disable transitions in state worker + - bus: mhi: core: Skip handling BHI irq if MHI reg access is not allowed + - bus: mhi: core: Do not process SYS_ERROR if RDDM is supported + - bus: mhi: core: Handle write lock properly in mhi_pm_m0_transition + - bus: mhi: core: Handle syserr during power_up + - Bluetooth: hci_qca: Fix suspend/resume functionality failure + - Bluetooth: hci_qca: Fix qca6390 enable failure after warm reboot + - ath11k: reset trigger frame MAC padding duration + - ath11k: clear DCM max constellation tx value + - net: qrtr: Allocate workqueue before kernel_bind + - Bluetooth: hci_qca: Improve controller ID info log level + - Bluetooth: hci_qca: Fix QCA6390 memdump failure + - Bluetooth: hci_qca: Fix an error pointer dereference + - Bluetooth: hci_qca: Simplify determination of serial clock on/off state from + votes + - Bluetooth: hci_qca: Only remove TX clock vote after TX is completed + - Bluetooth: hci_qca: Skip serdev wait when no transfer is pending + - Bluetooth: hci_qca: Refactor error handling in qca_suspend() + - Bluetooth: hci_qca: Bug fix during SSR timeout + - cfg80211: add a helper to identify 6 GHz PSCs + - ieee80211: definitions for reduced neighbor reports + - ieee80211: add code to obtain and parse 6 GHz operation field + - ieee80211: add HE ext EIDs and 6 GHz capability defines + - cfg80211: handle 6 GHz capability of new station + - mac80211: refactor extended element parsing + - mac80211: add HE 6 GHz Band Capabilities into parse extension + - cfg80211: add and expose HE 6 GHz band capabilities + - mac80211: add HE 6 GHz Band Capability element + - mac80211: build HE operation with 6 GHz oper information + - mac80211: do not allow HT/VHT IEs in 6 GHz mesh mode + - mac80211: avoid using ext NSS high BW if not supported + - mac80211: simplify and improve HT/VHT/HE disable code + - mac80211: determine chandef from HE 6 GHz operation + - mac80211: check the correct bit for EMA AP + - mac80211: use HE 6 GHz band capability and pass it to the driver + - mac80211: Add HE 6GHz capabilities element to probe request + - cfg80211: treat 6 GHz channels as valid regardless of capability + - cfg80211: reject HT/VHT capabilities on 6 GHz band + - cfg80211: require HE capabilities for 6 GHz band + - mac80211: accept aggregation sessions on 6 GHz + - mac80211: Consider 6 GHz band when handling power constraint + - mac80211: set short_slot for 6 GHz band + - ath11k: add 6G frequency list supported by driver + - ath11k: add support for 6GHz radio in driver + - ath11k: Use freq instead of channel number in rx path + - ath11k: extend peer_assoc_cmd for 6GHz band + - ath11k: set psc channel flag when sending channel list to firmware. + - ath11k: Add 6G scan dwell time parameter in scan request command + - ath11k: Send multiple scan_chan_list messages if required + - ath11k: Add support for 6g scan hint + - ath11k: build HE 6 GHz capability + - Bluetooth: hci_qca: Disable SoC debug logging for WCN3991 + - Bluetooth: hci_qca: Increase SoC idle timeout to 200ms + - Bluetooth: hci_qca: Request Tx clock vote off only when Tx is pending + - ath11k: Add direct buffer ring support + - ath11k: add support for spectral scan + - ath11k: removing redundant reo unlock followed by immediate lock + - ath11k: Add dp tx err stats + - ath11k: Add support for ring backpressure stats + - ath11k: fix wmi peer flags in peer assoc command + - nl80211: pass HE operation element to the driver + - mac80211: HE: set missing bss_conf fields in AP mode + - cfg80211/mac80211: avoid bss color setting in non-HE modes + - ath11k: update firmware files read path + - ath11k: rename default board file + - ath11k: ahb: call ath11k_core_init() before irq configuration + - ath11k: convert ath11k_hw_params to an array + - ath11k: define max_radios in hw_params + - ath11k: add hw_ops for pdev id to hw_mac mapping + - ath11k: Add bdf-addr in hw_params + - ath11k: create a common function to request all firmware files + - ath11k: don't use defines for hw specific firmware directories + - ath11k: change ath11k_core_fetch_board_data_api_n() to use + ath11k_core_create_firmware_path() + - ath11k: remove useless info messages + - ath11k: qmi: cleanup info messages + - ath11k: don't use defines in hw_params + - ath11k: remove define ATH11K_QMI_DEFAULT_CAL_FILE_NAME + - net: qrtr: free flow in __qrtr_node_release + - net: qrtr: Fix an out of bounds read qrtr_endpoint_post() + - Bluetooth: hci_qca: Bug fixes for SSR + - qrtr: orphan socket in qrtr_release() + - Bluetooth: hci_qca: Stop collecting memdump again for command timeout during + SSR + - cfg80211: invert HE BSS color 'disabled' to 'enabled' + - ath11k: do not depend on ARCH_QCOM for ath11k + - ath11k: add hw_params entry for QCA6390 + - ath11k: move ring mask definitions to hw_params + - ath11k: add simple PCI client driver for QCA6390 chipset + - ath11k: pci: setup resources + - ath11k: pci: add MSI config initialisation + - ath11k: implement ath11k_core_pre_init() + - ath11k: register MHI controller device for QCA6390 + - ath11k: pci: add HAL, CE and core initialisation + - ath11k: use remoteproc only with AHB devices + - ath11k: add support for m3 firmware + - ath11k: add board file support for PCI devices + - ath11k: fill appropriate QMI service instance id for QCA6390 + - ath11k: pci: add read32() and write32() hif operations + - ath11k: configure copy engine msi address in CE srng + - ath11k: setup ce tasklet for control path + - ath11k: allocate smaller chunks of memory for firmware + - ath11k: fix memory OOB access in qmi_decode + - ath11k: fix KASAN warning of ath11k_qmi_wlanfw_wlan_cfg_send + - ath11k: enable internal sleep clock + - ath11k: hal: create hw_srng_config dynamically + - net: qrtr: fix usage of idr in port assignment to socket + - ath11k: hal: create register values dynamically + - ath11k: hal: cleanup dynamic register macros + - ath11k: ce: support different CE configurations + - ath11k: ce: remove host_ce_config_wlan macro + - ath11k: ce: remove CE_COUNT() macro + - ath11k: hal: assign msi_addr and msi_data to srng + - ath11k: ce: get msi_addr and msi_data before srng setup + - ath11k: disable CE interrupt before hif start + - ath11k: force single pdev only for QCA6390 + - ath11k: initialize wmi config based on hw_params + - ath11k: wmi: put hardware to DBS mode + - ath11k: dp: redefine peer_map and peer_unmap + - ath11k: enable DP interrupt setup for QCA6390 + - ath11k: don't initialize rxdma1 related ring + - ath11k: setup QCA6390 rings for both rxdmas + - ath11k: refine the phy_id check in ath11k_reg_chan_list_event + - ath11k: delay vdev_start for QCA6390 + - ath11k: assign correct search flag and type for QCA6390 + - ath11k: process both lmac rings for QCA6390 + - ath11k: use TCL_DATA_RING_0 for QCA6390 + - ath11k: reset MHI during power down and power up + - ath11k: Fix possible memleak in ath11k_qmi_init_service + - ath11k: Use fallthrough pseudo-keyword + - net: ath11k: constify ath11k_thermal_ops + - ath11k: return error if firmware request fails + - ath11k: return -ENOMEM on allocation failure + - mac80211: rename csa counters to countdown counters + - ath11k: convert tasklets to use new tasklet_setup() API + - ath11k: fix spelling mistake "moniter" -> "monitor" + - ath11k: fix missing error check on call to + ath11k_pci_get_user_msi_assignment + - ath11k: fix a double free and a memory leak + - ath11k: fix uninitialized return in ath11k_spectral_process_data() + - mac80211: Add new AMPDU factor macro for HE peer caps + - ath11k: Add peer max mpdu parameter in peer assoc command + - net: qrtr: check skb_put_padto() return value + - Bluetooth: hci_qca: remove redundant null check + - Bluetooth: hci_qca: Remove duplicate power off in proto close + - ath11k: move target ce configs to hw_params + - ath11k: add ipq6018 support + - ath11k: add raw mode and software crypto support + - ath11k: remove calling ath11k_init_hw_params() second time + - ath11k: fix link error when CONFIG_REMOTEPROC is disabled + - ath11k: Remove unused inline function htt_htt_stats_debug_dump() + - mac80211: improve AQL tx airtime estimation + - mac80211: use rate provided via status->rate on ieee80211_tx_status_ext for + AQL + - nl80211: add ability to report TX status for control port TX + - mac80211: support control port TX status reporting + - mac80211: Fix bug in Tx ack status reporting in 802.3 xmit path + - mac80211: Fix dropping broadcast packets in 802.11 encap + - mac80211: reduce packet loss event false positives + - mac80211: add missing queue/hash initialization to 802.3 xmit + - mac80211: check and refresh aggregation session in encap offload tx + - mac80211: skip encap offload for tx multicast/control packets + - mac80211: set info->control.hw_key for encap offload packets + - mac80211: rework tx encapsulation offload API + - mac80211: reduce duplication in tx status functions + - mac80211: remove tx status call to ieee80211_sta_register_airtime + - mac80211: swap NEED_TXPROCESSING and HW_80211_ENCAP tx flags + - mac80211: notify the driver when a sta uses 4-address mode + - mac80211: optimize station connection monitor + - mac80211: unify 802.3 (offload) and 802.11 tx status codepath + - mac80211: support using ieee80211_tx_status_ext to free skbs without status + info + - mac80211: extend ieee80211_tx_status_ext to support bulk free + - mac80211: reorganize code to remove a forward declaration + - ath11k: Remove rproc references from common core layer + - ath11k: Add checked value for ath11k_ahb_remove + - ath11k: refactor debugfs code into debugfs.c + - ath11k: debugfs: use ath11k_debugfs_ prefix + - ath11k: rename debug_htt_stats.[c|h] to debugfs_htt_stats.[c|h] + - ath11k: debugfs: move some function declarations to correct header files + - ath11k: Add support spectral scan for IPQ6018 + - ath11k: wmi: remove redundant configuration values from init + - ath11k: remove redundant num_keep_alive_pattern assignment + - ath11k: Remove unused function ath11k_htc_restore_tx_skb() + - ath11k: fix undefined reference to 'ath11k_debugfs_htt_ext_stats_handler' + - net: qrtr: ns: Protect radix_tree_deref_slot() using rcu read locks + - ath11k: Move non-fatal warn logs to dbg level + - ath11k: mac: fix parenthesis alignment + - ath11k: Correctly check errors for calls to debugfs_create_dir() + - ath11k: support loading ELF board files + - ath11k: fix AP mode for QCA6390 + - ath11k: add interface_modes to hw_params + - ath11k: pci: check TCSR_SOC_HW_VERSION + - ath11k: disable monitor mode on QCA6390 + - ath11k: change to disable softirqs for ath11k_regd_update to solve deadlock + - ath11k: Use GFP_ATOMIC instead of GFP_KERNEL in ath11k_dp_htt_get_ppdu_desc + - ath11k: Use GFP_ATOMIC instead of GFP_KERNEL in idr_alloc + - ath11k: add packet log support for QCA6390 + - ath11k: pci: fix rmmod crash + - ath11k: mac: remove unused conf_mutex to solve a deadlock + - ath11k: fix warning caused by lockdep_assert_held + - ath11k: debugfs: fix crash during rmmod + - ath11k: read and write registers below unwindowed address + - ath11k: enable shadow register configuration and access + - ath11k: set WMI pipe credit to 1 for QCA6390 + - ath11k: start a timer to update TCL HP + - ath11k: start a timer to update REO cmd ring + - ath11k: start a timer to update HP for CE pipe 4 + - ath11k: enable idle power save mode + - ath11k: remove unnecessary casts to u32 + - bus: mhi: core: Remove double occurrence for mhi_ctrl_ev_task() declaration + - bus: mhi: core: Abort suspends due to outgoing pending packets + - bus: mhi: core: Use helper API to trigger a non-blocking host resume + - bus: mhi: core: Trigger host resume if suspended during mhi_device_get() + - bus: mhi: core: Use generic name field for an MHI device + - bus: mhi: core: Introduce helper function to check device state + - bus: mhi: core: Introduce counters to track MHI device state transitions + - bus: mhi: core: Read and save device hardware information from BHI + - bus: mhi: core: Introduce APIs to allocate and free the MHI controller + - bus: mhi: core: Add const qualifier to MHI config information + - bus: mhi: Fix entries based on Kconfig coding style + - bus: mhi: core: Introduce debugfs entries for MHI + - bus: mhi: core: Introduce sysfs entries for MHI + - bus: mhi: core: Allow shared IRQ for event rings + - bus: mhi: Remove unused nr_irqs_req variable + - bus: mhi: core: Fix the building of MHI module + - bus: mhi: debugfs: Print channel context read-pointer + - net: qrtr: ns: Fix the incorrect usage of rcu_read_lock() + - ath11k: Fix memory leak on error path + - ath11k: add 64bit check before reading msi high addr + - SAUCE: ath11k: pci: support platforms with one MSI vector + - SAUCE: ath11k: try to allocate big block of dma memory firstly + - ath11k: dp_rx: fix monitor status dma unmap direction + - SAUCE: ath11k: hook mhi suspend and resume + - SAUCE: ath11k: implement hif suspend and resume functions. + - ath11k: pci: read select_window register to ensure write is finished + - SAUCE: ath11k: implement htc suspend related callbacks + - SAUCE: ath11k: put target to suspend when system enters suspend state + - ath11k: mhi: print a warning if firmware crashed + - SAUCE: ath11k: qmi: print allocated memory segment addresses and sizes + - SAUCE: ath11k: put hw to DBS using WMI_PDEV_SET_HW_MODE_CMDID + - SAUCE: ath11k: fix pcie link unstable issue + - SAUCE: ath11k: fix PCI L1ss clock unstable problem + - SAUCE: ath11k: disable OTP write privilege + - SAUCE: ath11k: disable ASPM L0sLs before downloading firmware + - SAUCE: ath11k: purge rx pktlog when entering suspend + - ath11k: set credit_update flag for flow controlled ep only + - SAUCE: ath11k: implement wow enable and wow wakeup command + - ath11k: hif: add ce irq enable and disable functions + - SAUCE: ath11k: put target to wow state when suspend happens + - ath11k: Fix incorrect tlvs in scan start command + - SAUCE: ath11k: vdev delete synchronization with firmware + - ath11k: peer delete synchronization with firmware + - [Config] enable ath11k WiFi driver + - [Config] updateconfigs for ath11k + + * fib_nexthop_multiprefix.sh from net in ubuntu_kernel_selftests failed on + F-OEM-5.6 (LP: #1880648) + - selftests: fib_nexthop_multiprefix: fix cleanup() netns deletion + + * ip_defrag.sh in net from ubuntu_kernel_selftests failed with Resource + temporarily unavailable on F-oem-5.6 (LP: #1908498) + - selftests: net: ip_defrag: ignore EPERM + + * Sub-tests in kselftest/net/udpgro.sh is failing with "./udpgso_bench_rx: + poll: 0x0 expected 0x1" (LP: #1908501) + - selftests: fix poll error in udpgro.sh + + -- Chia-Lin Kao (AceLan) Mon, 28 Dec 2020 11:53:27 +0800 + +linux-oem-5.6 (5.6.0-1038.42) focal; urgency=medium + + * focal/linux-oem-5.6: 5.6.0-1038.42 -proposed tracker (LP: #1907605) + + * rtwpci driver blocks the system to enter PC10, stuck at PC3 (LP: #1907200) + - SAUCE: rtw88: 8723de: let cpu enter c10 + + * [SRU][F/G/H/U/OEM-5.6] Fix i2c report error on elan trackpoint + (LP: #1908335) + - Input: elan_i2c - add support for high resolution reports + - Input: elan_i2c - add new trackpoint report type 0x5F + - Input: elantech - fix protocol errors for some trackpoints in SMBus mode + + -- Timo Aaltonen Thu, 17 Dec 2020 16:16:11 +0200 + +linux-oem-5.6 (5.6.0-1037.41) focal; urgency=medium + + * focal/linux-oem-5.6: 5.6.0-1037.41 -proposed tracker (LP: #1905925) + + * CVE-2020-28974 + - vt: Disable KD_FONT_OP_COPY + + * Refresh ACPI wakeup power to make Thunderbolt hotplug detection work + (LP: #1906229) + - PM: ACPI: PCI: Drop acpi_pm_set_bridge_wakeup() + - PM: ACPI: Refresh wakeup device power configuration every time + + * Fix no headset sound after S3 on Intel HDA (LP: #1904595) + - ALSA: hda: Workaround for spurious wakeups on some Intel platforms + - ALSA: hda: Refactor codec PM to use direct-complete optimization + - ALSA: hda: Separate runtime and system suspend + - ALSA: hda: Reinstate runtime_allow() for all hda controllers + + * Fix AMD GFX where no HDMI audio when hotplugging different monitors + (LP: #1904430) + - drm/amd/display: Fix EDID parsing after resume from suspend + + * Ask 8821C Bluetooth controller to drop old firmware (LP: #1904221) + - Bluetooth: btrtl: Ask 8821C to drop old firmware + - Bluetooth: btrtl: fix incorrect skb allocation failure check + + * Intel Tiger Lake IDs supplement (LP: #1904521) + - usb: dwc3: pci: add support for the Intel Tiger Lake PCH -H variant + - i2c: i801: Add support for Intel Tiger Lake PCH-H + - mfd: intel-lpss: Add Intel Tiger Lake PCH-H PCI IDs + - spi: pxa2xx: Add support for Intel Tiger Lake PCH-H + - mtd: spi-nor: Prepare core / manufacturer code split + - mtd: spi-nor: Compile files in controllers/ directory + - mtd: spi-nor: intel-spi: Add support for Intel Tiger Lake-H SPI serial flash + - pinctrl: intel: Introduce common flags for GPIO mapping scheme + - pinctrl: tigerlake: Add support for Tiger Lake-H + - intel_th: pci: Add Tiger Lake PCH-H support + + * Add dpcd backlight control for 0x4c83 0x4f41 (LP: #1905663) + - SAUCE: drm/dp: Add dpcd backlight control for 0x4c83 0x4f41 + + -- Timo Aaltonen Thu, 10 Dec 2020 15:00:54 +0200 + +linux-oem-5.6 (5.6.0-1036.39) focal; urgency=medium + + * focal/linux-oem-5.6: 5.6.0-1036.39 -proposed tracker (LP: #1906396) + + * Prevent thermal shutdown during boot process (LP: #1906168) + - SAUCE: thermal: core: Add indication for userspace usage + - SAUCE: thermal: int340x: Indicate userspace usage + - SAUCE: thermal: intel: intel_pch_thermal: Indicate userspace usage + + * alsa/hda: The sound output is abnormal when the balance is on center after + switch from the audio speaker to headset on a Dell AIO (LP: #1905808) + - ALSA: hda/realtek - Fixed Dell AIO wrong sound tone + + * [SRU][OEM-5.6] UBUNTU: SAUCE: Fix brightness control on BOE 2270 panel + (LP: #1904991) + - SAUCE: drm/i915: Force DPCD backlight mode for BOE 2270 panel + + * Use ACPI S5 for reboot (LP: #1904225) + - PM: ACPI: reboot: Use S5 for reboot + + -- Timo Aaltonen Wed, 02 Dec 2020 09:55:46 +0200 + +linux-oem-5.6 (5.6.0-1035.37) focal; urgency=medium + + * focal/linux-oem-5.6: 5.6.0-1035.37 -proposed tracker (LP: #1903149) + + * Packaging resync (LP: #1786013) + - update dkms package versions + + * drm/i915/dp_mst - wait longer during the clock recovery for Display port + (LP: #1902861) + - SAUCE: drm/i915/dp_mst: wait longer during the clock recovery + + * Remove NVMe suspend-to-idle workaround (LP: #1897227) + - Revert "UBUTU: SAUCE: pci: prevent Intel NVMe SSDPEKKF from entering D3" + - Revert "UBUNTU: SAUCE: pci: prevent sk hynix nvme from entering D3" + + * Tiger Lake PMC core driver fixes (LP: #1899883) + - x86/devicetable: Move x86 specific macro out of generic code + - x86/cpu: Add consistent CPU match macros + - platform/x86: Convert to new CPU match macros + - platform/x86: intel_pmc_core: Add Atom based Jasper Lake (JSL) platform + support + - platform/x86: intel_pmc_core: Add debugfs entry to access sub-state + residencies + - platform/x86: intel_pmc_core: Add debugfs entry for low power mode status + registers + - platform/x86: intel_pmc_core: Refactor the driver by removing redundant code + - platform/x86: intel_pmc_core: Remove slp_s0 attributes from tgl_reg_map + - platform/x86: intel_pmc_core: Add an additional parameter to + pmc_core_lpm_display() + - platform/x86: intel_pmc_core: Dump low power status registers on an S0ix.y + failure + - platform/x86: intel_pmc_core: Add debugfs support to access live status + registers + - platform/x86: intel_pmc_core: Relocate pmc_core_*_display() to outside of + CONFIG_DEBUG_FS + - platform/x86: intel_pmc_core: Remove duplicate 'if' to create debugfs entry + - platform/x86: intel_pmc_core: Add slp_s0_offset attribute back to + tgl_reg_map + - platform/x86: intel_pmc_core: Make pmc_core_lpm_display() generic for + platforms that support sub-states + - platform/x86: intel_pmc_core: Make pmc_core_substate_res_show() generic + - platform/x86: intel_pmc_core: Change Jasper Lake S0ix debug reg map back to + ICL + - platform/x86: intel_pmc_core: avoid unused-function warnings + - platform/x86: intel_pmc_core: update TGL's LPM0 reg bit map name + - platform/x86: intel_pmc_core: fix bound check in pmc_core_mphy_pg_show() + - platform/x86: pmc_core: Use descriptive names for LPM registers + - platform/x86: intel_pmc_core: Fix TigerLake power gating status map + - platform/x86: intel_pmc_core: Fix the slp_s0 counter displayed value + + * [SRU][OEM-5.6]Fix no video out from some monitors on amdgpu (LP: #1901135) + - drm/amd/display: Retry AUX write when fail occurs + + * drm/i915/dp_mst - only read the base capability in DPCD. (LP: #1902613) + - Revert "UBUNTU: SAUCE: drm/dp_mst: Retrieve extended DPCD caps for topology + manager" + + * TGL system automatically resumes from s2idle when connecting to a docking + station with a monitor (LP: #1902577) + - SAUCE: ACPI: avoid auto-wakeup with an _OSI string + + * Fix non-working NVMe after S3 (LP: #1895718) + - SAUCE: PCI: Enable ACS quirk on all CML root ports + + * drm/i915/dp_mst - System would hang during the boot up. (LP: #1902469) + - drm/i915: Fix encoder lookup during PSR atomic check + + * kci_test_encap_fou() in rtnetlink.sh from kselftests/net failed with "FAIL: + can't add fou port 7777, skipping test" (LP: #1891421) + - selftests: rtnetlink: load fou module for kci_test_encap_fou() test + + * alsa/hda: mic can't be detect if booting with headset plugged on a HP + machine (LP: #1901971) + - SAUCE: ALSA: hda/realtek - Fixed HP headset Mic can't be detected + + -- Timo Aaltonen Wed, 11 Nov 2020 14:40:51 +0200 + +linux-oem-5.6 (5.6.0-1034.36) focal; urgency=medium + + * Packaging resync (LP: #1786013) + - update dkms package versions + + * Introduce the new NVIDIA 455 series (LP: #1902093) + - [Packaging] NVIDIA -- Add the NVIDIA 455 driver + + -- Stefan Bader Fri, 06 Nov 2020 18:39:23 +0100 + linux-oem-5.6 (5.6.0-1033.35) focal; urgency=medium * CVE-2020-8694 diff -u linux-oem-5.6-5.6.0/debian.oem/config/annotations linux-oem-5.6-5.6.0/debian.oem/config/annotations --- linux-oem-5.6-5.6.0/debian.oem/config/annotations +++ linux-oem-5.6-5.6.0/debian.oem/config/annotations @@ -632,6 +632,7 @@ CONFIG_UNIPHIER_SYSTEM_BUS policy<{'armhf': 'y'}> CONFIG_VEXPRESS_CONFIG policy<{'arm64': 'y', 'armhf': 'y'}> CONFIG_FSL_MC_BUS policy<{'arm64': 'y'}> +CONFIG_MHI_BUS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}> # Menu: Device Drivers >> Character devices CONFIG_DEVMEM policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}> @@ -6062,6 +6063,15 @@ CONFIG_CARL9170_DEBUGFS policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'i386': 'n', 'ppc64el': 'n'}> CONFIG_CARL9170_HWRNG policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}> +# Menu: Device Drivers >> Network device support >> Wireless LAN >> Atheros/Qualcomm devices >> Qualcomm Technologies 802.11ax chipset support +CONFIG_ATH11K policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}> +CONFIG_ATH11K_PCI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}> +CONFIG_ATH11K_AHB policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n'}> +CONFIG_ATH11K_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n'}> +CONFIG_ATH11K_DEBUGFS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}> +CONFIG_ATH11K_SPECTRAL policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}> +CONFIG_ATH11K_TRACING policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}> + # Menu: Device Drivers >> Network device support >> Wireless LAN >> Atheros/Qualcomm devices >> Wilocity 60g WiFi card wil6210 support CONFIG_WIL6210 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm'}> CONFIG_WIL6210_ISR_COR policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y'}> @@ -11296,9 +11306,10 @@ CONFIG_NETLINK_DIAG policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}> CONFIG_NET_NSH policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'm'}> CONFIG_HSR policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'i386': 'm', 'ppc64el': 'm', 's390x': 'n'}> -CONFIG_QRTR policy<{'arm64': 'm', 'armhf': 'm'}> -CONFIG_QRTR_SMD policy<{'arm64': 'm', 'armhf': 'm'}> -CONFIG_QRTR_TUN policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_QRTR policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}> +CONFIG_QRTR_MHI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}> +CONFIG_QRTR_SMD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}> +CONFIG_QRTR_TUN policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}> CONFIG_CGROUP_NET_PRIO policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}> CONFIG_CGROUP_NET_CLASSID policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}> CONFIG_BPF_JIT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'i386': 'y', 'ppc64el': 'y', 's390x': 'y'}> diff -u linux-oem-5.6-5.6.0/debian.oem/config/config.common.ubuntu linux-oem-5.6-5.6.0/debian.oem/config/config.common.ubuntu --- linux-oem-5.6-5.6.0/debian.oem/config/config.common.ubuntu +++ linux-oem-5.6-5.6.0/debian.oem/config/config.common.ubuntu @@ -405,6 +405,13 @@ CONFIG_ATH10K_SPECTRAL=y CONFIG_ATH10K_TRACING=y CONFIG_ATH10K_USB=m +CONFIG_ATH11K=m +# CONFIG_ATH11K_AHB is not set +# CONFIG_ATH11K_DEBUG is not set +CONFIG_ATH11K_DEBUGFS=y +CONFIG_ATH11K_PCI=m +CONFIG_ATH11K_SPECTRAL=y +CONFIG_ATH11K_TRACING=y CONFIG_ATH5K=m # CONFIG_ATH5K_DEBUG is not set CONFIG_ATH5K_PCI=y @@ -4285,6 +4292,8 @@ CONFIG_MFD_WM8994=m CONFIG_MFD_WM8997=y CONFIG_MFD_WM8998=y +CONFIG_MHI_BUS=m +# CONFIG_MHI_BUS_DEBUG is not set CONFIG_MICREL_KS8995MA=m CONFIG_MICREL_PHY=m CONFIG_MICROCHIP_PHY=m @@ -5705,6 +5714,7 @@ CONFIG_QCOM_EMAC=m CONFIG_QCOM_HIDMA=m CONFIG_QCOM_HIDMA_MGMT=m +CONFIG_QCOM_QMI_HELPERS=m CONFIG_QCOM_SPMI_ADC5=m CONFIG_QCOM_SPMI_IADC=m CONFIG_QCOM_SPMI_VADC=m @@ -5730,6 +5740,10 @@ CONFIG_QNX4FS_FS=m # CONFIG_QNX6FS_DEBUG is not set CONFIG_QNX6FS_FS=m +CONFIG_QRTR=m +CONFIG_QRTR_MHI=m +CONFIG_QRTR_SMD=m +CONFIG_QRTR_TUN=m CONFIG_QSEMI_PHY=m CONFIG_QTNFMAC=m CONFIG_QTNFMAC_PCIE=m diff -u linux-oem-5.6-5.6.0/debian.oem/reconstruct linux-oem-5.6-5.6.0/debian.oem/reconstruct --- linux-oem-5.6-5.6.0/debian.oem/reconstruct +++ linux-oem-5.6-5.6.0/debian.oem/reconstruct @@ -1,4 +1,16 @@ # Recreate any symlinks created since the orig. # Remove any files deleted from the orig. +rm -f 'drivers/mtd/spi-nor/aspeed-smc.c' +rm -f 'drivers/mtd/spi-nor/cadence-quadspi.c' +rm -f 'drivers/mtd/spi-nor/hisi-sfc.c' +rm -f 'drivers/mtd/spi-nor/intel-spi-pci.c' +rm -f 'drivers/mtd/spi-nor/intel-spi-platform.c' +rm -f 'drivers/mtd/spi-nor/intel-spi.c' +rm -f 'drivers/mtd/spi-nor/intel-spi.h' +rm -f 'drivers/mtd/spi-nor/mtk-quadspi.c' +rm -f 'drivers/mtd/spi-nor/nxp-spifi.c' +rm -f 'drivers/mtd/spi-nor/spi-nor.c' +rm -f 'drivers/net/wireless/ath/ath11k/debug_htt_stats.c' +rm -f 'drivers/net/wireless/ath/ath11k/debug_htt_stats.h' chmod +x 'update-version-dkms' exit 0 diff -u linux-oem-5.6-5.6.0/debian.oem/tracking-bug linux-oem-5.6-5.6.0/debian.oem/tracking-bug --- linux-oem-5.6-5.6.0/debian.oem/tracking-bug +++ linux-oem-5.6-5.6.0/debian.oem/tracking-bug @@ -1 +1 @@ -1899926 +1909420 diff -u linux-oem-5.6-5.6.0/debian.oem/variants linux-oem-5.6-5.6.0/debian.oem/variants --- linux-oem-5.6-5.6.0/debian.oem/variants +++ linux-oem-5.6-5.6.0/debian.oem/variants @@ -1 +1 @@ --oem-20.04 +-20.04 diff -u linux-oem-5.6-5.6.0/debian/changelog linux-oem-5.6-5.6.0/debian/changelog --- linux-oem-5.6-5.6.0/debian/changelog +++ linux-oem-5.6-5.6.0/debian/changelog @@ -1,3 +1,583 @@ +linux-oem-5.6 (5.6.0-1039.43) focal; urgency=medium + + * focal/linux-oem-5.6: 5.6.0-1039.43 -proposed tracker (LP: #1909420) + + * Fix suspend error of SOF driver (LP: #1908713) + - Revert "ALSA: hda: Refactor codec PM to use direct-complete optimization" + + * Packaging resync (LP: #1786013) + - [Packaging] update variants + + * Killer 500s (QCA6390) WLAN/BT [17cb:1101] unavailable (LP: #1879633) + - Bluetooth: btusb: Add flag to define wideband speech capability + - Bluetooth: Support querying for WBS support through MGMT + - Bluetooth: Enable erroneous data reporting if WBS is supported + - Bluetooth: Increment management interface revision + - Bluetooth: fix off by one in err_data_reporting cmd masks. + - Bluetooth: mgmt: add mgmt_cmd_status in add_advertising + - mac80211: add 802.11 encapsulation offloading support + - mac80211: fix tx status for no ack cases + - nl80211: add handling for BSS color + - mac80211: add handling for BSS color + - mac80211: allow setting queue_len for drivers not using wake_tx_queue + - Bluetooth: hci_qca: Enable clocks required for BT SOC + - Bluetooth: hci_qca: Optimized code while enabling clocks for BT SOC + - mac80211: fix 11w when using encapsulation offloading + - ath11k: Silence clang -Wsometimes-uninitialized in + ath11k_update_per_peer_stats_from_txcompl + - ath11k: drop tx_info from ath11k_sta + - ath11k: add HE rate accounting to driver + - ath11k: fix rcu lock protect in peer assoc confirmation + - ath11k: fix warn-on in disassociation + - ath11k: fix parsing PPDU_CTRL type in pktlog + - ath11k: Fixing dangling pointer issue upon peer delete failure + - ath11k: fix incorrect peer stats counters update + - Bluetooth: hci_qca: Bug fixes while collecting controller memory dump + - net: qrtr: Migrate nameservice to kernel from userspace + - net: qrtr: Fix the local node ID as 1 + - net: qrtr: fix spelling mistake "serivce" -> "service" + - net: qrtr: Fix error pointer vs NULL bugs + - Bluetooth: Replace zero-length array with flexible-array member + - Bluetooth: hci_qca: Not send vendor pre-shutdown command for QCA Rome + - Bluetooth: btqca: Fix the NVM baudrate tag offcet for wcn3991 + - net: qrtr: Respond to HELLO message + - net: qrtr: Fix FIXME related to qrtr_ns_init() + - soc: qcom: Do not depend on ARCH_QCOM for QMI helpers + - Bluetooth: hci_qca: Make bt_en and susclk not mandatory for QCA Rome + - Bluetooth: hci_qca: Replace devm_gpiod_get() with devm_gpiod_get_optional() + - ath11k: config reorder queue for all tids during peer setup + - ath11k: add thermal cooling device support + - ath11k: add thermal sensor device support + - ath11k: Use scnprintf() for avoiding potential buffer overflow + - ath11k: handle RX fragments + - ath11k: enable PN offload + - ath11k: set queue_len to 4096 + - ath11k: add WMI calls required for handling BSS color + - ath11k: add handling for BSS color + - ath11k: Supporting RX ring backpressure HTT event and stats handling + - ath11k: fill channel info from rx channel + - ath11k: dump SRNG stats during FW assert + - ath11k: Adding proper validation before accessing tx_stats + - ath11k: Configure hash based reo destination ring selection + - ath11k: Perform per-msdu rx processing + - cfg80211: fix kernel-doc notation + - bus: mhi: core: Add support for registering MHI controllers + - bus: mhi: core: Add support for registering MHI client drivers + - bus: mhi: core: Add support for creating and destroying MHI devices + - bus: mhi: core: Add support for ringing channel/event ring doorbells + - bus: mhi: core: Add support for PM state transitions + - bus: mhi: core: Add support for basic PM operations + - bus: mhi: core: Add support for downloading firmware over BHIe + - bus: mhi: core: Add support for downloading RDDM image during panic + - bus: mhi: core: Add support for processing events from client device + - bus: mhi: core: Add support for data transfer + - bus: mhi: core: Add uevent support for module autoloading + - MAINTAINERS: Add entry for MHI bus + - bus/mhi: fix printk format for size_t + - bus: mhi: core: Pass module owner during client driver registration + - bus: mhi: core: Add support for reading MHI info from device + - bus: mhi: core: Initialize bhie field in mhi_cntrl for RDDM capture + - bus: mhi: core: Drop the references to mhi_dev in mhi_destroy_device() + - Bluetooth: hci_qca: Add support for Qualcomm Bluetooth SoC QCA6390 + - ath11k: fix compiler warnings without CONFIG_THERMAL + - ath11k: Add sta debugfs support to configure ADDBA and DELBA + - ath11k: add pktlog checksum in trace events to support pktlog + - ath11k: fix error message to correctly report the command that failed + - ath11k: Increase the tx completion ring size + - ath11k: Avoid mgmt tx count underflow + - ath11k: fix duplication peer create on same radio + - ath11k: Modify the interrupt timer threshold + - ath11k: Fix TWT radio count + - ath11k: set IRQ_DISABLE_UNLAZY flag for DP interrupts + - ath11k: rx path optimizations + - ath11k: Cleanup in pdev destroy and mac register during crash on recovery + - ath11k: Fix fw assert by setting proper vht cap + - ath11k: Fix rx_filter flags setting for per peer rx_stats + - ath11k: cleanup reo command error code overwritten + - ath11k: Add dynamic tcl ring selection logic with retry mechanism + - ath11k: remove conversion to bool in ath11k_dp_rxdesc_mpdu_valid() + - ath11k: remove conversion to bool in ath11k_debug_fw_stats_process() + - net: qrtr: Add tracepoint support + - mac80211: fix two missing documentation entries + - ath11k: fix reo flush send + - ath11k: use GFP_ATOMIC under spin lock + - Bluetooth: hci_qca: add compatible for QCA9377 + - Bluetooth: hci_qca: allow max-speed to be set for QCA9377 devices + - bus: mhi: core: Add support for MHI suspend and resume + - bus: mhi: core: Fix a NULL vs IS_ERR check in mhi_create_devices() + - mac80211: fix memory overlap due to variable length param + - ath11k: fix error return code in ath11k_dp_alloc() + - ath11k: fix mgmt_tx_wmi cmd sent to FW for deleted vdev + - ath11k: add DBG_MAC prints to track vdev events + - ath11k: use true, false for bool variables + - ath11k: fix resource unavailability for htt stats after peer stats display + - bus: mhi: core: Make sure to powerdown if mhi_sync_power_up fails + - bus: mhi: core: Remove link_status() callback + - bus: mhi: core: Offload register accesses to the controller + - bus: mhi: core: Fix channel device name conflict + - ath11k: add tx hw 802.11 encapsulation offloading support + - ath11k: Add support to reset htt peer stats + - ath11k: fix kernel panic by freeing the msdu received with invalid length + - ath11k: Replace zero-length array with flexible-array + - net: qrtr: Add MHI transport layer + - net: qrtr: Do not depend on ARCH_QCOM + - ath11k: remove stale monitor status descriptor + - ath11k: Add support for multibus support + - ath11k: Add drv private for bus opaque struct + - ath11k: Remove bus layer includes from upper layer + - ath11k: remove redundant initialization of pointer info + - ath11k: convert to devm_platform_get_and_ioremap_resource + - ath11k: fix htt stats module not handle multiple skbs + - bus: mhi: core: Fix some error return code + - Bluetooth: hci_qca: Enable WBS support for wcn3991 + - ath11k: Fix some resource leaks in error path in 'ath11k_thermal_register()' + - Bluetooth: hci_qca: Fix uninitialized access to hdev + - bus: mhi: core: Refactor mhi queue APIs + - bus: mhi: core: Cache intmod from mhi event to mhi channel + - bus: mhi: core: Add range check for channel id received in event ring + - bus: mhi: core: Read transfer length from an event properly + - bus: mhi: core: Handle firmware load using state worker + - bus: mhi: core: Return appropriate error codes for AMSS load failure + - bus: mhi: core: Improve debug logs for loading firmware + - bus: mhi: core: Ensure non-zero session or sequence ID values are used + - bus: mhi: core: Remove the system error worker thread + - bus: mhi: core: Handle disable transitions in state worker + - bus: mhi: core: Skip handling BHI irq if MHI reg access is not allowed + - bus: mhi: core: Do not process SYS_ERROR if RDDM is supported + - bus: mhi: core: Handle write lock properly in mhi_pm_m0_transition + - bus: mhi: core: Handle syserr during power_up + - Bluetooth: hci_qca: Fix suspend/resume functionality failure + - Bluetooth: hci_qca: Fix qca6390 enable failure after warm reboot + - ath11k: reset trigger frame MAC padding duration + - ath11k: clear DCM max constellation tx value + - net: qrtr: Allocate workqueue before kernel_bind + - Bluetooth: hci_qca: Improve controller ID info log level + - Bluetooth: hci_qca: Fix QCA6390 memdump failure + - Bluetooth: hci_qca: Fix an error pointer dereference + - Bluetooth: hci_qca: Simplify determination of serial clock on/off state from + votes + - Bluetooth: hci_qca: Only remove TX clock vote after TX is completed + - Bluetooth: hci_qca: Skip serdev wait when no transfer is pending + - Bluetooth: hci_qca: Refactor error handling in qca_suspend() + - Bluetooth: hci_qca: Bug fix during SSR timeout + - cfg80211: add a helper to identify 6 GHz PSCs + - ieee80211: definitions for reduced neighbor reports + - ieee80211: add code to obtain and parse 6 GHz operation field + - ieee80211: add HE ext EIDs and 6 GHz capability defines + - cfg80211: handle 6 GHz capability of new station + - mac80211: refactor extended element parsing + - mac80211: add HE 6 GHz Band Capabilities into parse extension + - cfg80211: add and expose HE 6 GHz band capabilities + - mac80211: add HE 6 GHz Band Capability element + - mac80211: build HE operation with 6 GHz oper information + - mac80211: do not allow HT/VHT IEs in 6 GHz mesh mode + - mac80211: avoid using ext NSS high BW if not supported + - mac80211: simplify and improve HT/VHT/HE disable code + - mac80211: determine chandef from HE 6 GHz operation + - mac80211: check the correct bit for EMA AP + - mac80211: use HE 6 GHz band capability and pass it to the driver + - mac80211: Add HE 6GHz capabilities element to probe request + - cfg80211: treat 6 GHz channels as valid regardless of capability + - cfg80211: reject HT/VHT capabilities on 6 GHz band + - cfg80211: require HE capabilities for 6 GHz band + - mac80211: accept aggregation sessions on 6 GHz + - mac80211: Consider 6 GHz band when handling power constraint + - mac80211: set short_slot for 6 GHz band + - ath11k: add 6G frequency list supported by driver + - ath11k: add support for 6GHz radio in driver + - ath11k: Use freq instead of channel number in rx path + - ath11k: extend peer_assoc_cmd for 6GHz band + - ath11k: set psc channel flag when sending channel list to firmware. + - ath11k: Add 6G scan dwell time parameter in scan request command + - ath11k: Send multiple scan_chan_list messages if required + - ath11k: Add support for 6g scan hint + - ath11k: build HE 6 GHz capability + - Bluetooth: hci_qca: Disable SoC debug logging for WCN3991 + - Bluetooth: hci_qca: Increase SoC idle timeout to 200ms + - Bluetooth: hci_qca: Request Tx clock vote off only when Tx is pending + - ath11k: Add direct buffer ring support + - ath11k: add support for spectral scan + - ath11k: removing redundant reo unlock followed by immediate lock + - ath11k: Add dp tx err stats + - ath11k: Add support for ring backpressure stats + - ath11k: fix wmi peer flags in peer assoc command + - nl80211: pass HE operation element to the driver + - mac80211: HE: set missing bss_conf fields in AP mode + - cfg80211/mac80211: avoid bss color setting in non-HE modes + - ath11k: update firmware files read path + - ath11k: rename default board file + - ath11k: ahb: call ath11k_core_init() before irq configuration + - ath11k: convert ath11k_hw_params to an array + - ath11k: define max_radios in hw_params + - ath11k: add hw_ops for pdev id to hw_mac mapping + - ath11k: Add bdf-addr in hw_params + - ath11k: create a common function to request all firmware files + - ath11k: don't use defines for hw specific firmware directories + - ath11k: change ath11k_core_fetch_board_data_api_n() to use + ath11k_core_create_firmware_path() + - ath11k: remove useless info messages + - ath11k: qmi: cleanup info messages + - ath11k: don't use defines in hw_params + - ath11k: remove define ATH11K_QMI_DEFAULT_CAL_FILE_NAME + - net: qrtr: free flow in __qrtr_node_release + - net: qrtr: Fix an out of bounds read qrtr_endpoint_post() + - Bluetooth: hci_qca: Bug fixes for SSR + - qrtr: orphan socket in qrtr_release() + - Bluetooth: hci_qca: Stop collecting memdump again for command timeout during + SSR + - cfg80211: invert HE BSS color 'disabled' to 'enabled' + - ath11k: do not depend on ARCH_QCOM for ath11k + - ath11k: add hw_params entry for QCA6390 + - ath11k: move ring mask definitions to hw_params + - ath11k: add simple PCI client driver for QCA6390 chipset + - ath11k: pci: setup resources + - ath11k: pci: add MSI config initialisation + - ath11k: implement ath11k_core_pre_init() + - ath11k: register MHI controller device for QCA6390 + - ath11k: pci: add HAL, CE and core initialisation + - ath11k: use remoteproc only with AHB devices + - ath11k: add support for m3 firmware + - ath11k: add board file support for PCI devices + - ath11k: fill appropriate QMI service instance id for QCA6390 + - ath11k: pci: add read32() and write32() hif operations + - ath11k: configure copy engine msi address in CE srng + - ath11k: setup ce tasklet for control path + - ath11k: allocate smaller chunks of memory for firmware + - ath11k: fix memory OOB access in qmi_decode + - ath11k: fix KASAN warning of ath11k_qmi_wlanfw_wlan_cfg_send + - ath11k: enable internal sleep clock + - ath11k: hal: create hw_srng_config dynamically + - net: qrtr: fix usage of idr in port assignment to socket + - ath11k: hal: create register values dynamically + - ath11k: hal: cleanup dynamic register macros + - ath11k: ce: support different CE configurations + - ath11k: ce: remove host_ce_config_wlan macro + - ath11k: ce: remove CE_COUNT() macro + - ath11k: hal: assign msi_addr and msi_data to srng + - ath11k: ce: get msi_addr and msi_data before srng setup + - ath11k: disable CE interrupt before hif start + - ath11k: force single pdev only for QCA6390 + - ath11k: initialize wmi config based on hw_params + - ath11k: wmi: put hardware to DBS mode + - ath11k: dp: redefine peer_map and peer_unmap + - ath11k: enable DP interrupt setup for QCA6390 + - ath11k: don't initialize rxdma1 related ring + - ath11k: setup QCA6390 rings for both rxdmas + - ath11k: refine the phy_id check in ath11k_reg_chan_list_event + - ath11k: delay vdev_start for QCA6390 + - ath11k: assign correct search flag and type for QCA6390 + - ath11k: process both lmac rings for QCA6390 + - ath11k: use TCL_DATA_RING_0 for QCA6390 + - ath11k: reset MHI during power down and power up + - ath11k: Fix possible memleak in ath11k_qmi_init_service + - ath11k: Use fallthrough pseudo-keyword + - net: ath11k: constify ath11k_thermal_ops + - ath11k: return error if firmware request fails + - ath11k: return -ENOMEM on allocation failure + - mac80211: rename csa counters to countdown counters + - ath11k: convert tasklets to use new tasklet_setup() API + - ath11k: fix spelling mistake "moniter" -> "monitor" + - ath11k: fix missing error check on call to + ath11k_pci_get_user_msi_assignment + - ath11k: fix a double free and a memory leak + - ath11k: fix uninitialized return in ath11k_spectral_process_data() + - mac80211: Add new AMPDU factor macro for HE peer caps + - ath11k: Add peer max mpdu parameter in peer assoc command + - net: qrtr: check skb_put_padto() return value + - Bluetooth: hci_qca: remove redundant null check + - Bluetooth: hci_qca: Remove duplicate power off in proto close + - ath11k: move target ce configs to hw_params + - ath11k: add ipq6018 support + - ath11k: add raw mode and software crypto support + - ath11k: remove calling ath11k_init_hw_params() second time + - ath11k: fix link error when CONFIG_REMOTEPROC is disabled + - ath11k: Remove unused inline function htt_htt_stats_debug_dump() + - mac80211: improve AQL tx airtime estimation + - mac80211: use rate provided via status->rate on ieee80211_tx_status_ext for + AQL + - nl80211: add ability to report TX status for control port TX + - mac80211: support control port TX status reporting + - mac80211: Fix bug in Tx ack status reporting in 802.3 xmit path + - mac80211: Fix dropping broadcast packets in 802.11 encap + - mac80211: reduce packet loss event false positives + - mac80211: add missing queue/hash initialization to 802.3 xmit + - mac80211: check and refresh aggregation session in encap offload tx + - mac80211: skip encap offload for tx multicast/control packets + - mac80211: set info->control.hw_key for encap offload packets + - mac80211: rework tx encapsulation offload API + - mac80211: reduce duplication in tx status functions + - mac80211: remove tx status call to ieee80211_sta_register_airtime + - mac80211: swap NEED_TXPROCESSING and HW_80211_ENCAP tx flags + - mac80211: notify the driver when a sta uses 4-address mode + - mac80211: optimize station connection monitor + - mac80211: unify 802.3 (offload) and 802.11 tx status codepath + - mac80211: support using ieee80211_tx_status_ext to free skbs without status + info + - mac80211: extend ieee80211_tx_status_ext to support bulk free + - mac80211: reorganize code to remove a forward declaration + - ath11k: Remove rproc references from common core layer + - ath11k: Add checked value for ath11k_ahb_remove + - ath11k: refactor debugfs code into debugfs.c + - ath11k: debugfs: use ath11k_debugfs_ prefix + - ath11k: rename debug_htt_stats.[c|h] to debugfs_htt_stats.[c|h] + - ath11k: debugfs: move some function declarations to correct header files + - ath11k: Add support spectral scan for IPQ6018 + - ath11k: wmi: remove redundant configuration values from init + - ath11k: remove redundant num_keep_alive_pattern assignment + - ath11k: Remove unused function ath11k_htc_restore_tx_skb() + - ath11k: fix undefined reference to 'ath11k_debugfs_htt_ext_stats_handler' + - net: qrtr: ns: Protect radix_tree_deref_slot() using rcu read locks + - ath11k: Move non-fatal warn logs to dbg level + - ath11k: mac: fix parenthesis alignment + - ath11k: Correctly check errors for calls to debugfs_create_dir() + - ath11k: support loading ELF board files + - ath11k: fix AP mode for QCA6390 + - ath11k: add interface_modes to hw_params + - ath11k: pci: check TCSR_SOC_HW_VERSION + - ath11k: disable monitor mode on QCA6390 + - ath11k: change to disable softirqs for ath11k_regd_update to solve deadlock + - ath11k: Use GFP_ATOMIC instead of GFP_KERNEL in ath11k_dp_htt_get_ppdu_desc + - ath11k: Use GFP_ATOMIC instead of GFP_KERNEL in idr_alloc + - ath11k: add packet log support for QCA6390 + - ath11k: pci: fix rmmod crash + - ath11k: mac: remove unused conf_mutex to solve a deadlock + - ath11k: fix warning caused by lockdep_assert_held + - ath11k: debugfs: fix crash during rmmod + - ath11k: read and write registers below unwindowed address + - ath11k: enable shadow register configuration and access + - ath11k: set WMI pipe credit to 1 for QCA6390 + - ath11k: start a timer to update TCL HP + - ath11k: start a timer to update REO cmd ring + - ath11k: start a timer to update HP for CE pipe 4 + - ath11k: enable idle power save mode + - ath11k: remove unnecessary casts to u32 + - bus: mhi: core: Remove double occurrence for mhi_ctrl_ev_task() declaration + - bus: mhi: core: Abort suspends due to outgoing pending packets + - bus: mhi: core: Use helper API to trigger a non-blocking host resume + - bus: mhi: core: Trigger host resume if suspended during mhi_device_get() + - bus: mhi: core: Use generic name field for an MHI device + - bus: mhi: core: Introduce helper function to check device state + - bus: mhi: core: Introduce counters to track MHI device state transitions + - bus: mhi: core: Read and save device hardware information from BHI + - bus: mhi: core: Introduce APIs to allocate and free the MHI controller + - bus: mhi: core: Add const qualifier to MHI config information + - bus: mhi: Fix entries based on Kconfig coding style + - bus: mhi: core: Introduce debugfs entries for MHI + - bus: mhi: core: Introduce sysfs entries for MHI + - bus: mhi: core: Allow shared IRQ for event rings + - bus: mhi: Remove unused nr_irqs_req variable + - bus: mhi: core: Fix the building of MHI module + - bus: mhi: debugfs: Print channel context read-pointer + - net: qrtr: ns: Fix the incorrect usage of rcu_read_lock() + - ath11k: Fix memory leak on error path + - ath11k: add 64bit check before reading msi high addr + - SAUCE: ath11k: pci: support platforms with one MSI vector + - SAUCE: ath11k: try to allocate big block of dma memory firstly + - ath11k: dp_rx: fix monitor status dma unmap direction + - SAUCE: ath11k: hook mhi suspend and resume + - SAUCE: ath11k: implement hif suspend and resume functions. + - ath11k: pci: read select_window register to ensure write is finished + - SAUCE: ath11k: implement htc suspend related callbacks + - SAUCE: ath11k: put target to suspend when system enters suspend state + - ath11k: mhi: print a warning if firmware crashed + - SAUCE: ath11k: qmi: print allocated memory segment addresses and sizes + - SAUCE: ath11k: put hw to DBS using WMI_PDEV_SET_HW_MODE_CMDID + - SAUCE: ath11k: fix pcie link unstable issue + - SAUCE: ath11k: fix PCI L1ss clock unstable problem + - SAUCE: ath11k: disable OTP write privilege + - SAUCE: ath11k: disable ASPM L0sLs before downloading firmware + - SAUCE: ath11k: purge rx pktlog when entering suspend + - ath11k: set credit_update flag for flow controlled ep only + - SAUCE: ath11k: implement wow enable and wow wakeup command + - ath11k: hif: add ce irq enable and disable functions + - SAUCE: ath11k: put target to wow state when suspend happens + - ath11k: Fix incorrect tlvs in scan start command + - SAUCE: ath11k: vdev delete synchronization with firmware + - ath11k: peer delete synchronization with firmware + - [Config] enable ath11k WiFi driver + - [Config] updateconfigs for ath11k + + * fib_nexthop_multiprefix.sh from net in ubuntu_kernel_selftests failed on + F-OEM-5.6 (LP: #1880648) + - selftests: fib_nexthop_multiprefix: fix cleanup() netns deletion + + * ip_defrag.sh in net from ubuntu_kernel_selftests failed with Resource + temporarily unavailable on F-oem-5.6 (LP: #1908498) + - selftests: net: ip_defrag: ignore EPERM + + * Sub-tests in kselftest/net/udpgro.sh is failing with "./udpgso_bench_rx: + poll: 0x0 expected 0x1" (LP: #1908501) + - selftests: fix poll error in udpgro.sh + + -- Chia-Lin Kao (AceLan) Mon, 28 Dec 2020 11:53:27 +0800 + +linux-oem-5.6 (5.6.0-1038.42) focal; urgency=medium + + * focal/linux-oem-5.6: 5.6.0-1038.42 -proposed tracker (LP: #1907605) + + * rtwpci driver blocks the system to enter PC10, stuck at PC3 (LP: #1907200) + - SAUCE: rtw88: 8723de: let cpu enter c10 + + * [SRU][F/G/H/U/OEM-5.6] Fix i2c report error on elan trackpoint + (LP: #1908335) + - Input: elan_i2c - add support for high resolution reports + - Input: elan_i2c - add new trackpoint report type 0x5F + - Input: elantech - fix protocol errors for some trackpoints in SMBus mode + + -- Timo Aaltonen Thu, 17 Dec 2020 16:16:11 +0200 + +linux-oem-5.6 (5.6.0-1037.41) focal; urgency=medium + + * focal/linux-oem-5.6: 5.6.0-1037.41 -proposed tracker (LP: #1905925) + + * CVE-2020-28974 + - vt: Disable KD_FONT_OP_COPY + + * Refresh ACPI wakeup power to make Thunderbolt hotplug detection work + (LP: #1906229) + - PM: ACPI: PCI: Drop acpi_pm_set_bridge_wakeup() + - PM: ACPI: Refresh wakeup device power configuration every time + + * Fix no headset sound after S3 on Intel HDA (LP: #1904595) + - ALSA: hda: Workaround for spurious wakeups on some Intel platforms + - ALSA: hda: Refactor codec PM to use direct-complete optimization + - ALSA: hda: Separate runtime and system suspend + - ALSA: hda: Reinstate runtime_allow() for all hda controllers + + * Fix AMD GFX where no HDMI audio when hotplugging different monitors + (LP: #1904430) + - drm/amd/display: Fix EDID parsing after resume from suspend + + * Ask 8821C Bluetooth controller to drop old firmware (LP: #1904221) + - Bluetooth: btrtl: Ask 8821C to drop old firmware + - Bluetooth: btrtl: fix incorrect skb allocation failure check + + * Intel Tiger Lake IDs supplement (LP: #1904521) + - usb: dwc3: pci: add support for the Intel Tiger Lake PCH -H variant + - i2c: i801: Add support for Intel Tiger Lake PCH-H + - mfd: intel-lpss: Add Intel Tiger Lake PCH-H PCI IDs + - spi: pxa2xx: Add support for Intel Tiger Lake PCH-H + - mtd: spi-nor: Prepare core / manufacturer code split + - mtd: spi-nor: Compile files in controllers/ directory + - mtd: spi-nor: intel-spi: Add support for Intel Tiger Lake-H SPI serial flash + - pinctrl: intel: Introduce common flags for GPIO mapping scheme + - pinctrl: tigerlake: Add support for Tiger Lake-H + - intel_th: pci: Add Tiger Lake PCH-H support + + * Add dpcd backlight control for 0x4c83 0x4f41 (LP: #1905663) + - SAUCE: drm/dp: Add dpcd backlight control for 0x4c83 0x4f41 + + -- Timo Aaltonen Thu, 10 Dec 2020 15:00:54 +0200 + +linux-oem-5.6 (5.6.0-1036.39) focal; urgency=medium + + * focal/linux-oem-5.6: 5.6.0-1036.39 -proposed tracker (LP: #1906396) + + * Prevent thermal shutdown during boot process (LP: #1906168) + - SAUCE: thermal: core: Add indication for userspace usage + - SAUCE: thermal: int340x: Indicate userspace usage + - SAUCE: thermal: intel: intel_pch_thermal: Indicate userspace usage + + * alsa/hda: The sound output is abnormal when the balance is on center after + switch from the audio speaker to headset on a Dell AIO (LP: #1905808) + - ALSA: hda/realtek - Fixed Dell AIO wrong sound tone + + * [SRU][OEM-5.6] UBUNTU: SAUCE: Fix brightness control on BOE 2270 panel + (LP: #1904991) + - SAUCE: drm/i915: Force DPCD backlight mode for BOE 2270 panel + + * Use ACPI S5 for reboot (LP: #1904225) + - PM: ACPI: reboot: Use S5 for reboot + + -- Timo Aaltonen Wed, 02 Dec 2020 09:55:46 +0200 + +linux-oem-5.6 (5.6.0-1035.37) focal; urgency=medium + + * focal/linux-oem-5.6: 5.6.0-1035.37 -proposed tracker (LP: #1903149) + + * Packaging resync (LP: #1786013) + - update dkms package versions + + * drm/i915/dp_mst - wait longer during the clock recovery for Display port + (LP: #1902861) + - SAUCE: drm/i915/dp_mst: wait longer during the clock recovery + + * Remove NVMe suspend-to-idle workaround (LP: #1897227) + - Revert "UBUTU: SAUCE: pci: prevent Intel NVMe SSDPEKKF from entering D3" + - Revert "UBUNTU: SAUCE: pci: prevent sk hynix nvme from entering D3" + + * Tiger Lake PMC core driver fixes (LP: #1899883) + - x86/devicetable: Move x86 specific macro out of generic code + - x86/cpu: Add consistent CPU match macros + - platform/x86: Convert to new CPU match macros + - platform/x86: intel_pmc_core: Add Atom based Jasper Lake (JSL) platform + support + - platform/x86: intel_pmc_core: Add debugfs entry to access sub-state + residencies + - platform/x86: intel_pmc_core: Add debugfs entry for low power mode status + registers + - platform/x86: intel_pmc_core: Refactor the driver by removing redundant code + - platform/x86: intel_pmc_core: Remove slp_s0 attributes from tgl_reg_map + - platform/x86: intel_pmc_core: Add an additional parameter to + pmc_core_lpm_display() + - platform/x86: intel_pmc_core: Dump low power status registers on an S0ix.y + failure + - platform/x86: intel_pmc_core: Add debugfs support to access live status + registers + - platform/x86: intel_pmc_core: Relocate pmc_core_*_display() to outside of + CONFIG_DEBUG_FS + - platform/x86: intel_pmc_core: Remove duplicate 'if' to create debugfs entry + - platform/x86: intel_pmc_core: Add slp_s0_offset attribute back to + tgl_reg_map + - platform/x86: intel_pmc_core: Make pmc_core_lpm_display() generic for + platforms that support sub-states + - platform/x86: intel_pmc_core: Make pmc_core_substate_res_show() generic + - platform/x86: intel_pmc_core: Change Jasper Lake S0ix debug reg map back to + ICL + - platform/x86: intel_pmc_core: avoid unused-function warnings + - platform/x86: intel_pmc_core: update TGL's LPM0 reg bit map name + - platform/x86: intel_pmc_core: fix bound check in pmc_core_mphy_pg_show() + - platform/x86: pmc_core: Use descriptive names for LPM registers + - platform/x86: intel_pmc_core: Fix TigerLake power gating status map + - platform/x86: intel_pmc_core: Fix the slp_s0 counter displayed value + + * [SRU][OEM-5.6]Fix no video out from some monitors on amdgpu (LP: #1901135) + - drm/amd/display: Retry AUX write when fail occurs + + * drm/i915/dp_mst - only read the base capability in DPCD. (LP: #1902613) + - Revert "UBUNTU: SAUCE: drm/dp_mst: Retrieve extended DPCD caps for topology + manager" + + * TGL system automatically resumes from s2idle when connecting to a docking + station with a monitor (LP: #1902577) + - SAUCE: ACPI: avoid auto-wakeup with an _OSI string + + * Fix non-working NVMe after S3 (LP: #1895718) + - SAUCE: PCI: Enable ACS quirk on all CML root ports + + * drm/i915/dp_mst - System would hang during the boot up. (LP: #1902469) + - drm/i915: Fix encoder lookup during PSR atomic check + + * kci_test_encap_fou() in rtnetlink.sh from kselftests/net failed with "FAIL: + can't add fou port 7777, skipping test" (LP: #1891421) + - selftests: rtnetlink: load fou module for kci_test_encap_fou() test + + * alsa/hda: mic can't be detect if booting with headset plugged on a HP + machine (LP: #1901971) + - SAUCE: ALSA: hda/realtek - Fixed HP headset Mic can't be detected + + -- Timo Aaltonen Wed, 11 Nov 2020 14:40:51 +0200 + +linux-oem-5.6 (5.6.0-1034.36) focal; urgency=medium + + * Packaging resync (LP: #1786013) + - update dkms package versions + + * Introduce the new NVIDIA 455 series (LP: #1902093) + - [Packaging] NVIDIA -- Add the NVIDIA 455 driver + + -- Stefan Bader Fri, 06 Nov 2020 18:39:23 +0100 + linux-oem-5.6 (5.6.0-1033.35) focal; urgency=medium * CVE-2020-8694 diff -u linux-oem-5.6-5.6.0/debian/control linux-oem-5.6-5.6.0/debian/control --- linux-oem-5.6-5.6.0/debian/control +++ linux-oem-5.6-5.6.0/debian/control @@ -53,7 +53,7 @@ XS-Testsuite: autopkgtest #XS-Testsuite-Depends: gcc-4.7 binutils -Package: linux-oem-5.6-headers-5.6.0-1033 +Package: linux-oem-5.6-headers-5.6.0-1039 Build-Profiles: Architecture: all Multi-Arch: foreign @@ -63,20 +63,20 @@ Description: Header files related to Linux kernel version 5.6.0 This package provides kernel header files for version 5.6.0, for sites that want the latest kernel headers. Please read - /usr/share/doc/linux-oem-5.6-headers-5.6.0-1033/debian.README.gz for details + /usr/share/doc/linux-oem-5.6-headers-5.6.0-1039/debian.README.gz for details -Package: linux-oem-5.6-tools-5.6.0-1033 +Package: linux-oem-5.6-tools-5.6.0-1039 Build-Profiles: Architecture: amd64 Section: devel Priority: optional Depends: ${misc:Depends}, ${shlibs:Depends}, linux-tools-common -Description: Linux kernel version specific tools for version 5.6.0-1033 +Description: Linux kernel version specific tools for version 5.6.0-1039 This package provides the architecture dependant parts for kernel version locked tools (such as perf and x86_energy_perf_policy) for - version 5.6.0-1033 on + version 5.6.0-1039 on 64 bit x86. - You probably want to install linux-tools-5.6.0-1033-. + You probably want to install linux-tools-5.6.0-1039-. Package: linux-oem-5.6-tools-host Build-Profiles: @@ -90,17 +90,17 @@ -Package: linux-image-unsigned-5.6.0-1033-oem +Package: linux-image-unsigned-5.6.0-1039-oem Build-Profiles: Architecture: amd64 Section: kernel Priority: optional Provides: linux-image, fuse-module, aufs-dkms, kvm-api-4, redhat-cluster-modules, ivtv-modules, virtualbox-guest-modules [amd64], ${linux:rprovides} -Depends: ${misc:Depends}, ${shlibs:Depends}, kmod, linux-base (>= 4.5ubuntu1~16.04.1), linux-modules-5.6.0-1033-oem +Depends: ${misc:Depends}, ${shlibs:Depends}, kmod, linux-base (>= 4.5ubuntu1~16.04.1), linux-modules-5.6.0-1039-oem Recommends: grub-pc [amd64] | grub-efi-amd64 [amd64] | grub-efi-ia32 [amd64] | grub [amd64] | lilo [amd64] | flash-kernel [armhf arm64] | grub-ieee1275 [ppc64el], initramfs-tools | linux-initramfs-tool Breaks: flash-kernel (<< 3.90ubuntu2) [arm64 armhf], s390-tools (<< 2.3.0-0ubuntu3) [s390x] -Conflicts: linux-image-5.6.0-1033-oem -Suggests: fdutils, linux-oem-5.6-tools, linux-headers-5.6.0-1033-oem +Conflicts: linux-image-5.6.0-1039-oem +Suggests: fdutils, linux-oem-5.6-tools, linux-headers-5.6.0-1039-oem Description: Linux kernel image for version 5.6.0 on 64 bit x86 SMP This package contains the unsigned Linux kernel image for version 5.6.0 on 64 bit x86 SMP. @@ -113,7 +113,7 @@ the linux-oem meta-package, which will ensure that upgrades work correctly, and that supporting packages are also installed. -Package: linux-modules-5.6.0-1033-oem +Package: linux-modules-5.6.0-1039-oem Build-Profiles: Architecture: amd64 Section: kernel @@ -133,12 +133,12 @@ the linux-oem meta-package, which will ensure that upgrades work correctly, and that supporting packages are also installed. -Package: linux-modules-extra-5.6.0-1033-oem +Package: linux-modules-extra-5.6.0-1039-oem Build-Profiles: Architecture: amd64 Section: kernel Priority: optional -Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-5.6.0-1033-oem | linux-image-unsigned-5.6.0-1033-oem, crda | wireless-crda +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-5.6.0-1039-oem | linux-image-unsigned-5.6.0-1039-oem, crda | wireless-crda Description: Linux kernel extra modules for version 5.6.0 on 64 bit x86 SMP This package contains the Linux kernel extra modules for version 5.6.0 on 64 bit x86 SMP. @@ -155,21 +155,21 @@ the linux-oem meta-package, which will ensure that upgrades work correctly, and that supporting packages are also installed. -Package: linux-headers-5.6.0-1033-oem +Package: linux-headers-5.6.0-1039-oem Build-Profiles: Architecture: amd64 Section: devel Priority: optional -Depends: ${misc:Depends}, linux-oem-5.6-headers-5.6.0-1033, ${shlibs:Depends} +Depends: ${misc:Depends}, linux-oem-5.6-headers-5.6.0-1039, ${shlibs:Depends} Provides: linux-headers, linux-headers-3.0 Description: Linux kernel headers for version 5.6.0 on 64 bit x86 SMP This package provides kernel header files for version 5.6.0 on 64 bit x86 SMP. . This is for sites that want the latest kernel headers. Please read - /usr/share/doc/linux-headers-5.6.0-1033/debian.README.gz for details. + /usr/share/doc/linux-headers-5.6.0-1039/debian.README.gz for details. -Package: linux-image-unsigned-5.6.0-1033-oem-dbgsym +Package: linux-image-unsigned-5.6.0-1039-oem-dbgsym Build-Profiles: Architecture: amd64 Section: devel @@ -186,27 +186,27 @@ is uncompressed, and unstripped. This package also includes the unstripped modules. -Package: linux-tools-5.6.0-1033-oem +Package: linux-tools-5.6.0-1039-oem Build-Profiles: Architecture: amd64 Section: devel Priority: optional -Depends: ${misc:Depends}, linux-oem-5.6-tools-5.6.0-1033 -Description: Linux kernel version specific tools for version 5.6.0-1033 +Depends: ${misc:Depends}, linux-oem-5.6-tools-5.6.0-1039 +Description: Linux kernel version specific tools for version 5.6.0-1039 This package provides the architecture dependant parts for kernel version locked tools (such as perf and x86_energy_perf_policy) for - version 5.6.0-1033 on + version 5.6.0-1039 on 64 bit x86. -Package: linux-cloud-tools-5.6.0-1033-oem +Package: linux-cloud-tools-5.6.0-1039-oem Build-Profiles: Architecture: amd64 Section: devel Priority: optional -Depends: ${misc:Depends}, linux-oem-5.6-cloud-tools-5.6.0-1033 -Description: Linux kernel version specific cloud tools for version 5.6.0-1033 +Depends: ${misc:Depends}, linux-oem-5.6-cloud-tools-5.6.0-1039 +Description: Linux kernel version specific cloud tools for version 5.6.0-1039 This package provides the architecture dependant parts for kernel - version locked tools for cloud for version 5.6.0-1033 on + version locked tools for cloud for version 5.6.0-1039 on 64 bit x86. Package: linux-udebs-oem @@ -220,7 +220,7 @@ for easier version and migration tracking. -Package: linux-buildinfo-5.6.0-1033-oem +Package: linux-buildinfo-5.6.0-1039-oem Build-Profiles: Architecture: amd64 Section: kernel diff -u linux-oem-5.6-5.6.0/debian/dkms-versions linux-oem-5.6-5.6.0/debian/dkms-versions --- linux-oem-5.6-5.6.0/debian/dkms-versions +++ linux-oem-5.6-5.6.0/debian/dkms-versions @@ -1,3 +1,4 @@ -zfs-linux 0.8.3-1ubuntu12.4 +zfs-linux 0.8.4-1ubuntu11 nvidia-graphics-drivers-450 450.80.02-0ubuntu0.20.04.2 +nvidia-graphics-drivers-455 455.38-0ubuntu0.20.04.1 virtualbox 6.1.10-dfsg-1~ubuntu1.20.04.1 diff -u linux-oem-5.6-5.6.0/debian/rules linux-oem-5.6-5.6.0/debian/rules --- linux-oem-5.6-5.6.0/debian/rules +++ linux-oem-5.6-5.6.0/debian/rules @@ -121,6 +121,7 @@ # Versions of dkms packages. dkms_zfs_linux_version=$(shell gawk '/^zfs-linux / { print $$2; }' debian/dkms-versions) dkms_nvidia_450_version=$(shell gawk '/^nvidia-graphics-drivers-450/ { print $$2; }' debian/dkms-versions) +dkms_nvidia_455_version=$(shell gawk '/^nvidia-graphics-drivers-455/ { print $$2; }' debian/dkms-versions) dkms_vbox_guest_version=$(shell gawk '/^virtualbox/ { print $$2; }' debian/dkms-versions) # Debian Build System targets diff -u linux-oem-5.6-5.6.0/debian/rules.d/2-binary-arch.mk linux-oem-5.6-5.6.0/debian/rules.d/2-binary-arch.mk --- linux-oem-5.6-5.6.0/debian/rules.d/2-binary-arch.mk +++ linux-oem-5.6-5.6.0/debian/rules.d/2-binary-arch.mk @@ -402,6 +402,7 @@ ifeq ($(do_dkms_nvidia),true) $(call build_dkms, $(bldinfo_pkg_name)-$*, $(pkgdir_bldinfo)/usr/lib/linux/$(abi_release)-$*/signatures, "", nvidia-450, pool/restricted/n/nvidia-graphics-drivers-450/nvidia-kernel-source-450_$(dkms_nvidia_450_version)_$(arch).deb pool/restricted/n/nvidia-graphics-drivers-450/nvidia-dkms-450_$(dkms_nvidia_450_version)_$(arch).deb) + $(call build_dkms, $(bldinfo_pkg_name)-$*, $(pkgdir_bldinfo)/usr/lib/linux/$(abi_release)-$*/signatures, "", nvidia-455, pool/restricted/n/nvidia-graphics-drivers-455/nvidia-kernel-source-455_$(dkms_nvidia_455_version)_$(arch).deb pool/restricted/n/nvidia-graphics-drivers-455/nvidia-dkms-455_$(dkms_nvidia_455_version)_$(arch).deb) endif ifeq ($(do_extras_package),true) diff -u linux-oem-5.6-5.6.0/drivers/acpi/device_pm.c linux-oem-5.6-5.6.0/drivers/acpi/device_pm.c --- linux-oem-5.6-5.6.0/drivers/acpi/device_pm.c +++ linux-oem-5.6-5.6.0/drivers/acpi/device_pm.c @@ -749,7 +749,7 @@ static DEFINE_MUTEX(acpi_wakeup_lock); static int __acpi_device_wakeup_enable(struct acpi_device *adev, - u32 target_state, int max_count) + u32 target_state) { struct acpi_device_wakeup *wakeup = &adev->wakeup; acpi_status status; @@ -757,15 +757,26 @@ mutex_lock(&acpi_wakeup_lock); - if (wakeup->enable_count >= max_count) - goto out; - + /* + * If the device wakeup power is already enabled, disable it and enable + * it again in case it depends on the configuration of subordinate + * devices and the conditions have changed since it was enabled last + * time. + */ if (wakeup->enable_count > 0) - goto inc; + acpi_disable_wakeup_device_power(adev); error = acpi_enable_wakeup_device_power(adev, target_state); - if (error) + if (error) { + if (wakeup->enable_count > 0) { + acpi_disable_gpe(wakeup->gpe_device, wakeup->gpe_number); + wakeup->enable_count = 0; + } goto out; + } + + if (wakeup->enable_count > 0) + goto inc; status = acpi_enable_gpe(wakeup->gpe_device, wakeup->gpe_number); if (ACPI_FAILURE(status)) { @@ -778,7 +789,10 @@ (unsigned int)wakeup->gpe_number); inc: - wakeup->enable_count++; + if (wakeup->enable_count < INT_MAX) + wakeup->enable_count++; + else + acpi_handle_info(adev->handle, "Wakeup enable count out of bounds!\n"); out: mutex_unlock(&acpi_wakeup_lock); @@ -799,7 +813,7 @@ */ static int acpi_device_wakeup_enable(struct acpi_device *adev, u32 target_state) { - return __acpi_device_wakeup_enable(adev, target_state, 1); + return __acpi_device_wakeup_enable(adev, target_state); } /** @@ -829,8 +843,12 @@ mutex_unlock(&acpi_wakeup_lock); } -static int __acpi_pm_set_device_wakeup(struct device *dev, bool enable, - int max_count) +/** + * acpi_pm_set_device_wakeup - Enable/disable remote wakeup for given device. + * @dev: Device to enable/disable to generate wakeup events. + * @enable: Whether to enable or disable the wakeup functionality. + */ +int acpi_pm_set_device_wakeup(struct device *dev, bool enable) { struct acpi_device *adev; int error; @@ -850,37 +868,15 @@ return 0; } - error = __acpi_device_wakeup_enable(adev, acpi_target_system_state(), - max_count); + error = __acpi_device_wakeup_enable(adev, acpi_target_system_state()); if (!error) dev_dbg(dev, "Wakeup enabled by ACPI\n"); return error; } - -/** - * acpi_pm_set_device_wakeup - Enable/disable remote wakeup for given device. - * @dev: Device to enable/disable to generate wakeup events. - * @enable: Whether to enable or disable the wakeup functionality. - */ -int acpi_pm_set_device_wakeup(struct device *dev, bool enable) -{ - return __acpi_pm_set_device_wakeup(dev, enable, 1); -} EXPORT_SYMBOL_GPL(acpi_pm_set_device_wakeup); /** - * acpi_pm_set_bridge_wakeup - Enable/disable remote wakeup for given bridge. - * @dev: Bridge device to enable/disable to generate wakeup events. - * @enable: Whether to enable or disable the wakeup functionality. - */ -int acpi_pm_set_bridge_wakeup(struct device *dev, bool enable) -{ - return __acpi_pm_set_device_wakeup(dev, enable, INT_MAX); -} -EXPORT_SYMBOL_GPL(acpi_pm_set_bridge_wakeup); - -/** * acpi_dev_pm_low_power - Put ACPI device into a low-power state. * @dev: Device to put into a low-power state. * @adev: ACPI device node corresponding to @dev. diff -u linux-oem-5.6-5.6.0/drivers/acpi/osi.c linux-oem-5.6-5.6.0/drivers/acpi/osi.c --- linux-oem-5.6-5.6.0/drivers/acpi/osi.c +++ linux-oem-5.6-5.6.0/drivers/acpi/osi.c @@ -68,6 +68,12 @@ * hybrid graphics supports. */ {"Linux-HPI-Hybrid-Graphics", true}, + /* + * Linux-Dell-USB4-Wakeup is used by BIOS to workaround auto wakeup + * on Tigerlake. This is done by skipping ALL_MONITOR_OFF when systems + * are going to s2idle. + */ + {"Linux-Dell-USB4-Wakeup", true}, }; static u32 acpi_osi_handler(acpi_string interface, u32 supported) diff -u linux-oem-5.6-5.6.0/drivers/bluetooth/btusb.c linux-oem-5.6-5.6.0/drivers/bluetooth/btusb.c --- linux-oem-5.6-5.6.0/drivers/bluetooth/btusb.c +++ linux-oem-5.6-5.6.0/drivers/bluetooth/btusb.c @@ -58,6 +58,7 @@ #define BTUSB_IFNUM_2 0x80000 #define BTUSB_CW6622 0x100000 #define BTUSB_MEDIATEK 0x200000 +#define BTUSB_WIDEBAND_SPEECH 0x400000 static const struct usb_device_id btusb_table[] = { /* Generic Bluetooth USB device */ @@ -334,15 +335,21 @@ { USB_DEVICE(0x1286, 0x204e), .driver_info = BTUSB_MARVELL }, /* Intel Bluetooth devices */ - { USB_DEVICE(0x8087, 0x0025), .driver_info = BTUSB_INTEL_NEW }, - { USB_DEVICE(0x8087, 0x0026), .driver_info = BTUSB_INTEL_NEW }, - { USB_DEVICE(0x8087, 0x0029), .driver_info = BTUSB_INTEL_NEW }, + { USB_DEVICE(0x8087, 0x0025), .driver_info = BTUSB_INTEL_NEW | + BTUSB_WIDEBAND_SPEECH }, + { USB_DEVICE(0x8087, 0x0026), .driver_info = BTUSB_INTEL_NEW | + BTUSB_WIDEBAND_SPEECH }, + { USB_DEVICE(0x8087, 0x0029), .driver_info = BTUSB_INTEL_NEW | + BTUSB_WIDEBAND_SPEECH }, { USB_DEVICE(0x8087, 0x07da), .driver_info = BTUSB_CSR }, { USB_DEVICE(0x8087, 0x07dc), .driver_info = BTUSB_INTEL }, { USB_DEVICE(0x8087, 0x0a2a), .driver_info = BTUSB_INTEL }, - { USB_DEVICE(0x8087, 0x0a2b), .driver_info = BTUSB_INTEL_NEW }, - { USB_DEVICE(0x8087, 0x0aa7), .driver_info = BTUSB_INTEL }, - { USB_DEVICE(0x8087, 0x0aaa), .driver_info = BTUSB_INTEL_NEW }, + { USB_DEVICE(0x8087, 0x0a2b), .driver_info = BTUSB_INTEL_NEW | + BTUSB_WIDEBAND_SPEECH }, + { USB_DEVICE(0x8087, 0x0aa7), .driver_info = BTUSB_INTEL | + BTUSB_WIDEBAND_SPEECH }, + { USB_DEVICE(0x8087, 0x0aaa), .driver_info = BTUSB_INTEL_NEW | + BTUSB_WIDEBAND_SPEECH }, /* Other Intel Bluetooth devices */ { USB_VENDOR_AND_INTERFACE_INFO(0x8087, 0xe0, 0x01, 0x01), @@ -3899,6 +3906,9 @@ if (id->driver_info & BTUSB_BROKEN_ISOC) data->isoc = NULL; + if (id->driver_info & BTUSB_WIDEBAND_SPEECH) + set_bit(HCI_QUIRK_WIDEBAND_SPEECH_SUPPORTED, &hdev->quirks); + if (id->driver_info & BTUSB_DIGIANSWER) { data->cmdreq_type = USB_TYPE_VENDOR; set_bit(HCI_QUIRK_RESET_ON_CLOSE, &hdev->quirks); diff -u linux-oem-5.6-5.6.0/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c linux-oem-5.6-5.6.0/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c --- linux-oem-5.6-5.6.0/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +++ linux-oem-5.6-5.6.0/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c @@ -1948,6 +1948,7 @@ drm_connector_update_edid_property(connector, aconnector->edid); + drm_add_edid_modes(connector, aconnector->edid); if (aconnector->dc_link->aux_mode) drm_dp_cec_set_edid(&aconnector->dm_dp_aux.aux, diff -u linux-oem-5.6-5.6.0/drivers/gpu/drm/drm_dp_helper.c linux-oem-5.6-5.6.0/drivers/gpu/drm/drm_dp_helper.c --- linux-oem-5.6-5.6.0/drivers/gpu/drm/drm_dp_helper.c +++ linux-oem-5.6-5.6.0/drivers/gpu/drm/drm_dp_helper.c @@ -131,6 +131,24 @@ } EXPORT_SYMBOL(drm_dp_get_adjust_request_post_cursor); +void drm_dp_link_train_clock_recovery_larger_delay(const u8 dpcd[DP_RECEIVER_CAP_SIZE]) +{ + unsigned long rd_interval = dpcd[DP_TRAINING_AUX_RD_INTERVAL] & + DP_TRAINING_AUX_RD_MASK; + + if (rd_interval > 4) + DRM_DEBUG_KMS("AUX interval %lu, out of range (max 4)\n", + rd_interval); + + if (rd_interval == 0 || dpcd[DP_DPCD_REV] >= DP_DPCD_REV_14) + rd_interval = 100; + else + rd_interval *= 4 * USEC_PER_MSEC; + + usleep_range(rd_interval, rd_interval * 4); +} +EXPORT_SYMBOL(drm_dp_link_train_clock_recovery_larger_delay); + void drm_dp_link_train_clock_recovery_delay(const u8 dpcd[DP_RECEIVER_CAP_SIZE]) { unsigned long rd_interval = dpcd[DP_TRAINING_AUX_RD_INTERVAL] & @@ -1448,11 +1466,13 @@ { MFG(0x4d, 0x10), PROD_ID(0xc7, 0x14), BIT(DP_QUIRK_FORCE_DPCD_BACKLIGHT) }, { MFG(0x4d, 0x10), PROD_ID(0xe6, 0x14), BIT(DP_QUIRK_FORCE_DPCD_BACKLIGHT) }, { MFG(0x4c, 0x83), PROD_ID(0x47, 0x41), BIT(DP_QUIRK_FORCE_DPCD_BACKLIGHT) }, + { MFG(0x4c, 0x83), PROD_ID(0x4f, 0x41), BIT(DP_QUIRK_FORCE_DPCD_BACKLIGHT) }, /* * Some HP ZBook Studio G7 systems have panels support and relies on * PSR being enabled. */ { MFG(0x0d, 0xae), PROD_ID(0x19, 0x15), BIT(DP_QUIRK_FORCE_PSR_CHIP_DEFAULT) }, + { MFG(0x09, 0xe5), PROD_ID(0xde, 0x08), BIT(DP_QUIRK_FORCE_DPCD_BACKLIGHT) }, }; #undef MFG diff -u linux-oem-5.6-5.6.0/drivers/gpu/drm/drm_dp_mst_topology.c linux-oem-5.6-5.6.0/drivers/gpu/drm/drm_dp_mst_topology.c --- linux-oem-5.6-5.6.0/drivers/gpu/drm/drm_dp_mst_topology.c +++ linux-oem-5.6-5.6.0/drivers/gpu/drm/drm_dp_mst_topology.c @@ -3517,9 +3517,9 @@ WARN_ON(mgr->mst_primary); /* get dpcd info */ - ret = drm_dp_read_dpcd_caps(mgr->aux, mgr->dpcd); - if (ret < 0) { - drm_dbg_kms(mgr->dev, "failed to read DPCD, ret %d\n", ret); + ret = drm_dp_dpcd_read(mgr->aux, DP_DPCD_REV, mgr->dpcd, DP_RECEIVER_CAP_SIZE); + if (ret != DP_RECEIVER_CAP_SIZE) { + DRM_DEBUG_KMS("failed to read DPCD\n"); goto out_unlock; } diff -u linux-oem-5.6-5.6.0/drivers/gpu/drm/i915/display/intel_psr.c linux-oem-5.6-5.6.0/drivers/gpu/drm/i915/display/intel_psr.c --- linux-oem-5.6-5.6.0/drivers/gpu/drm/i915/display/intel_psr.c +++ linux-oem-5.6-5.6.0/drivers/gpu/drm/i915/display/intel_psr.c @@ -1595,7 +1595,7 @@ return; intel_connector = to_intel_connector(connector); - dig_port = enc_to_dig_port(intel_attached_encoder(intel_connector)); + dig_port = enc_to_dig_port(to_intel_encoder(new_state->best_encoder)); if (dev_priv->psr.dp != &dig_port->dp) return; diff -u linux-oem-5.6-5.6.0/drivers/net/wireless/mac80211_hwsim.c linux-oem-5.6-5.6.0/drivers/net/wireless/mac80211_hwsim.c --- linux-oem-5.6-5.6.0/drivers/net/wireless/mac80211_hwsim.c +++ linux-oem-5.6-5.6.0/drivers/net/wireless/mac80211_hwsim.c @@ -1595,7 +1595,7 @@ mac80211_hwsim_tx_frame(hw, skb, rcu_dereference(vif->chanctx_conf)->def.chan); - if (vif->csa_active && ieee80211_csa_is_complete(vif)) + if (vif->csa_active && ieee80211_beacon_cntdwn_is_complete(vif)) ieee80211_csa_finish(vif); } diff -u linux-oem-5.6-5.6.0/drivers/net/wireless/realtek/rtw88/rtw8723d.c linux-oem-5.6-5.6.0/drivers/net/wireless/realtek/rtw88/rtw8723d.c --- linux-oem-5.6-5.6.0/drivers/net/wireless/realtek/rtw88/rtw8723d.c +++ linux-oem-5.6-5.6.0/drivers/net/wireless/realtek/rtw88/rtw8723d.c @@ -59,8 +59,8 @@ #define WLAN_MAX_AGG_NR 0x0A #define WLAN_AMPDU_MAX_TIME 0x1C #define WLAN_ANT_SEL 0x82 -#define WLAN_LTR_IDLE_LAT 0x883C883C -#define WLAN_LTR_ACT_LAT 0x880B880B +#define WLAN_LTR_IDLE_LAT 0x90039003 +#define WLAN_LTR_ACT_LAT 0x883c883c #define WLAN_LTR_CTRL1 0xCB004010 #define WLAN_LTR_CTRL2 0x01233425 diff -u linux-oem-5.6-5.6.0/drivers/pci/quirks.c linux-oem-5.6-5.6.0/drivers/pci/quirks.c --- linux-oem-5.6-5.6.0/drivers/pci/quirks.c +++ linux-oem-5.6-5.6.0/drivers/pci/quirks.c @@ -1370,8 +1370,6 @@ occur when mode detecting */ DECLARE_PCI_FIXUP_CLASS_EARLY(PCI_VENDOR_ID_VIA, PCI_ANY_ID, PCI_CLASS_STORAGE_IDE, 8, quirk_no_ata_d3); -DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SK_HYNIX, 0x1527, quirk_no_ata_d3); -DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0xf1a6, quirk_no_ata_d3); /* * This was originally an Alpha-specific thing, but it really fits here. @@ -4651,7 +4649,7 @@ return false; switch (dev->device) { - case 0x06ac: /* Comet Lake */ + case 0x06ac ... 0x06c3: /* Comet Lake */ case 0xa110 ... 0xa11f: case 0xa167 ... 0xa16a: /* Sunrise Point */ case 0xa290 ... 0xa29f: case 0xa2e7 ... 0xa2ee: /* Union Point */ case 0x9d10 ... 0x9d1b: /* 7th & 8th Gen Mobile */ diff -u linux-oem-5.6-5.6.0/drivers/platform/x86/intel_int0002_vgpio.c linux-oem-5.6-5.6.0/drivers/platform/x86/intel_int0002_vgpio.c --- linux-oem-5.6-5.6.0/drivers/platform/x86/intel_int0002_vgpio.c +++ linux-oem-5.6-5.6.0/drivers/platform/x86/intel_int0002_vgpio.c @@ -156,8 +156,8 @@ }; static const struct x86_cpu_id int0002_cpu_ids[] = { - INTEL_CPU_FAM6(ATOM_SILVERMONT, int0002_byt_irqchip), /* Valleyview, Bay Trail */ - INTEL_CPU_FAM6(ATOM_AIRMONT, int0002_cht_irqchip), /* Braswell, Cherry Trail */ + X86_MATCH_INTEL_FAM6_MODEL(ATOM_SILVERMONT, &int0002_byt_irqchip), + X86_MATCH_INTEL_FAM6_MODEL(ATOM_AIRMONT, &int0002_cht_irqchip), {} }; diff -u linux-oem-5.6-5.6.0/drivers/spi/spi-pxa2xx.c linux-oem-5.6-5.6.0/drivers/spi/spi-pxa2xx.c --- linux-oem-5.6-5.6.0/drivers/spi/spi-pxa2xx.c +++ linux-oem-5.6-5.6.0/drivers/spi/spi-pxa2xx.c @@ -1479,6 +1479,11 @@ { PCI_VDEVICE(INTEL, 0x4daa), LPSS_CNL_SSP }, { PCI_VDEVICE(INTEL, 0x4dab), LPSS_CNL_SSP }, { PCI_VDEVICE(INTEL, 0x4dfb), LPSS_CNL_SSP }, + /* TGL-H */ + { PCI_VDEVICE(INTEL, 0x43aa), LPSS_CNL_SSP }, + { PCI_VDEVICE(INTEL, 0x43ab), LPSS_CNL_SSP }, + { PCI_VDEVICE(INTEL, 0x43fb), LPSS_CNL_SSP }, + { PCI_VDEVICE(INTEL, 0x43fd), LPSS_CNL_SSP }, /* APL */ { PCI_VDEVICE(INTEL, 0x5ac2), LPSS_BXT_SSP }, { PCI_VDEVICE(INTEL, 0x5ac4), LPSS_BXT_SSP }, diff -u linux-oem-5.6-5.6.0/drivers/thermal/intel/int340x_thermal/int3400_thermal.c linux-oem-5.6-5.6.0/drivers/thermal/intel/int340x_thermal/int3400_thermal.c --- linux-oem-5.6-5.6.0/drivers/thermal/intel/int340x_thermal/int3400_thermal.c +++ linux-oem-5.6-5.6.0/drivers/thermal/intel/int340x_thermal/int3400_thermal.c @@ -276,6 +276,7 @@ static struct thermal_zone_params int3400_thermal_params = { .governor_name = "user_space", .no_hwmon = true, + .userspace = true, }; static int int3400_thermal_probe(struct platform_device *pdev) diff -u linux-oem-5.6-5.6.0/drivers/tty/vt/vt.c linux-oem-5.6-5.6.0/drivers/tty/vt/vt.c --- linux-oem-5.6-5.6.0/drivers/tty/vt/vt.c +++ linux-oem-5.6-5.6.0/drivers/tty/vt/vt.c @@ -4639,27 +4639,6 @@ return rc; } -static int con_font_copy(struct vc_data *vc, struct console_font_op *op) -{ - int con = op->height; - int rc; - - - console_lock(); - if (vc->vc_mode != KD_TEXT) - rc = -EINVAL; - else if (!vc->vc_sw->con_font_copy) - rc = -ENOSYS; - else if (con < 0 || !vc_cons_allocated(con)) - rc = -ENOTTY; - else if (con == vc->vc_num) /* nothing to do */ - rc = 0; - else - rc = vc->vc_sw->con_font_copy(vc, con); - console_unlock(); - return rc; -} - int con_font_op(struct vc_data *vc, struct console_font_op *op) { switch (op->op) { @@ -4670,7 +4649,8 @@ case KD_FONT_OP_SET_DEFAULT: return con_font_default(vc, op); case KD_FONT_OP_COPY: - return con_font_copy(vc, op); + /* was buggy and never really used */ + return -EINVAL; } return -ENOSYS; } diff -u linux-oem-5.6-5.6.0/drivers/usb/dwc3/dwc3-pci.c linux-oem-5.6-5.6.0/drivers/usb/dwc3/dwc3-pci.c --- linux-oem-5.6-5.6.0/drivers/usb/dwc3/dwc3-pci.c +++ linux-oem-5.6-5.6.0/drivers/usb/dwc3/dwc3-pci.c @@ -38,6 +38,7 @@ #define PCI_DEVICE_ID_INTEL_ICLLP 0x34ee #define PCI_DEVICE_ID_INTEL_EHLLP 0x4b7e #define PCI_DEVICE_ID_INTEL_TGPLP 0xa0ee +#define PCI_DEVICE_ID_INTEL_TGPH 0x43ee #define PCI_INTEL_BXT_DSM_GUID "732b85d5-b7a7-4a1b-9ba0-4bbd00ffd511" #define PCI_INTEL_BXT_FUNC_PMU_PWR 4 @@ -356,6 +357,9 @@ { PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_TGPLP), (kernel_ulong_t) &dwc3_pci_intel_properties, }, + { PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_TGPH), + (kernel_ulong_t) &dwc3_pci_intel_properties, }, + { PCI_VDEVICE(AMD, PCI_DEVICE_ID_AMD_NL_USB), (kernel_ulong_t) &dwc3_pci_amd_properties, }, { } /* Terminating Entry */ diff -u linux-oem-5.6-5.6.0/include/drm/drm_dp_helper.h linux-oem-5.6-5.6.0/include/drm/drm_dp_helper.h --- linux-oem-5.6-5.6.0/include/drm/drm_dp_helper.h +++ linux-oem-5.6-5.6.0/include/drm/drm_dp_helper.h @@ -1143,6 +1143,7 @@ #define EDP_PSR_RECEIVER_CAP_SIZE 2 #define EDP_DISPLAY_CTL_CAP_SIZE 3 +void drm_dp_link_train_clock_recovery_larger_delay(const u8 dpcd[DP_RECEIVER_CAP_SIZE]); void drm_dp_link_train_clock_recovery_delay(const u8 dpcd[DP_RECEIVER_CAP_SIZE]); void drm_dp_link_train_channel_eq_delay(const u8 dpcd[DP_RECEIVER_CAP_SIZE]); diff -u linux-oem-5.6-5.6.0/include/linux/ieee80211.h linux-oem-5.6-5.6.0/include/linux/ieee80211.h --- linux-oem-5.6-5.6.0/include/linux/ieee80211.h +++ linux-oem-5.6-5.6.0/include/linux/ieee80211.h @@ -1814,6 +1814,8 @@ #define IEEE80211_HE_MAC_CAP3_FLEX_TWT_SCHED 0x40 #define IEEE80211_HE_MAC_CAP3_RX_CTRL_FRAME_TO_MULTIBSS 0x80 +#define IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_SHIFT 3 + #define IEEE80211_HE_MAC_CAP4_BSRP_BQRP_A_MPDU_AGG 0x01 #define IEEE80211_HE_MAC_CAP4_QTP 0x02 #define IEEE80211_HE_MAC_CAP4_BQR 0x04 @@ -1835,6 +1837,9 @@ #define IEEE80211_HE_MAC_CAP5_PUNCTURED_SOUNDING 0x40 #define IEEE80211_HE_MAC_CAP5_HT_VHT_TRIG_FRAME_RX 0x80 +#define IEEE80211_HE_VHT_MAX_AMPDU_FACTOR 20 +#define IEEE80211_HE_HT_MAX_AMPDU_FACTOR 16 + /* 802.11ax HE PHY capabilities */ #define IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_40MHZ_IN_2G 0x02 #define IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_40MHZ_80MHZ_IN_5G 0x04 @@ -2060,6 +2065,28 @@ #define IEEE80211_HE_OPERATION_PARTIAL_BSS_COLOR 0x40000000 #define IEEE80211_HE_OPERATION_BSS_COLOR_DISABLED 0x80000000 +/** + * ieee80211_he_6ghz_oper - HE 6 GHz operation Information field + * @primary: primary channel + * @control: control flags + * @ccfs0: channel center frequency segment 0 + * @ccfs1: channel center frequency segment 1 + * @minrate: minimum rate (in 1 Mbps units) + */ +struct ieee80211_he_6ghz_oper { + u8 primary; +#define IEEE80211_HE_6GHZ_OPER_CTRL_CHANWIDTH 0x3 +#define IEEE80211_HE_6GHZ_OPER_CTRL_CHANWIDTH_20MHZ 0 +#define IEEE80211_HE_6GHZ_OPER_CTRL_CHANWIDTH_40MHZ 1 +#define IEEE80211_HE_6GHZ_OPER_CTRL_CHANWIDTH_80MHZ 2 +#define IEEE80211_HE_6GHZ_OPER_CTRL_CHANWIDTH_160MHZ 3 +#define IEEE80211_HE_6GHZ_OPER_CTRL_DUP_BEACON 0x4 + u8 control; + u8 ccfs0; + u8 ccfs1; + u8 minrate; +} __packed; + /* * ieee80211_he_oper_size - calculate 802.11ax HE Operations IE size * @he_oper_ie: byte data of the He Operations IE, stating from the the byte @@ -2086,7 +2113,7 @@ if (he_oper_params & IEEE80211_HE_OPERATION_CO_HOSTED_BSS) oper_len++; if (he_oper_params & IEEE80211_HE_OPERATION_6GHZ_OP_INFO) - oper_len += 4; + oper_len += sizeof(struct ieee80211_he_6ghz_oper); /* Add the first byte (extension ID) to the total length */ oper_len++; @@ -2094,6 +2121,34 @@ return oper_len; } +/** + * ieee80211_he_6ghz_oper - obtain 6 GHz operation field + * @he_oper: HE operation element (must be pre-validated for size) + * but may be %NULL + * + * Return: a pointer to the 6 GHz operation field, or %NULL + */ +static inline const struct ieee80211_he_6ghz_oper * +ieee80211_he_6ghz_oper(const struct ieee80211_he_operation *he_oper) +{ + const u8 *ret = (void *)&he_oper->optional; + u32 he_oper_params; + + if (!he_oper) + return NULL; + + he_oper_params = le32_to_cpu(he_oper->he_oper_params); + + if (!(he_oper_params & IEEE80211_HE_OPERATION_6GHZ_OP_INFO)) + return NULL; + if (he_oper_params & IEEE80211_HE_OPERATION_VHT_OPER_INFO) + ret += 3; + if (he_oper_params & IEEE80211_HE_OPERATION_CO_HOSTED_BSS) + ret++; + + return (void *)ret; +} + /* HE Spatial Reuse defines */ #define IEEE80211_HE_SPR_NON_SRG_OFFSET_PRESENT 0x4 #define IEEE80211_HE_SPR_SRG_INFORMATION_PRESENT 0x8 @@ -2525,6 +2580,8 @@ WLAN_EID_QUIET_CHANNEL = 198, WLAN_EID_OPMODE_NOTIF = 199, + WLAN_EID_REDUCED_NEIGHBOR_REPORT = 201, + WLAN_EID_VENDOR_SPECIFIC = 221, WLAN_EID_QOS_PARAMETER = 222, WLAN_EID_CAG_NUMBER = 237, @@ -2553,9 +2610,19 @@ WLAN_EID_EXT_UORA = 37, WLAN_EID_EXT_HE_MU_EDCA = 38, WLAN_EID_EXT_HE_SPR = 39, + WLAN_EID_EXT_NDP_FEEDBACK_REPORT_PARAMSET = 41, + WLAN_EID_EXT_BSS_COLOR_CHG_ANN = 42, + WLAN_EID_EXT_QUIET_TIME_PERIOD_SETUP = 43, + WLAN_EID_EXT_ESS_REPORT = 45, + WLAN_EID_EXT_OPS = 46, + WLAN_EID_EXT_HE_BSS_LOAD = 47, WLAN_EID_EXT_MAX_CHANNEL_SWITCH_TIME = 52, WLAN_EID_EXT_MULTIPLE_BSSID_CONFIGURATION = 55, WLAN_EID_EXT_NON_INHERITANCE = 56, + WLAN_EID_EXT_KNOWN_BSSID = 57, + WLAN_EID_EXT_SHORT_SSID_LIST = 58, + WLAN_EID_EXT_HE_6GHZ_CAPA = 59, + WLAN_EID_EXT_UL_MU_POWER_CAPA = 60, }; /* Action category code */ @@ -2786,7 +2853,7 @@ #define WLAN_EXT_CAPA10_OBSS_NARROW_BW_RU_TOLERANCE_SUPPORT BIT(7) /* Defines support for enhanced multi-bssid advertisement*/ -#define WLAN_EXT_CAPA11_EMA_SUPPORT BIT(1) +#define WLAN_EXT_CAPA11_EMA_SUPPORT BIT(3) /* TDLS specific payload type in the LLC/SNAP header */ #define WLAN_TDLS_SNAP_RFTYPE 0x2 @@ -3097,6 +3164,24 @@ __le16 medium_time; } __packed; +struct ieee80211_he_6ghz_capa { + /* uses IEEE80211_HE_6GHZ_CAP_* below */ + __le16 capa; +} __packed; + +/* HE 6 GHz band capabilities */ +/* uses enum ieee80211_min_mpdu_spacing values */ +#define IEEE80211_HE_6GHZ_CAP_MIN_MPDU_START 0x0007 +/* uses enum ieee80211_vht_max_ampdu_length_exp values */ +#define IEEE80211_HE_6GHZ_CAP_MAX_AMPDU_LEN_EXP 0x0038 +/* uses IEEE80211_VHT_CAP_MAX_MPDU_LENGTH_* values */ +#define IEEE80211_HE_6GHZ_CAP_MAX_MPDU_LEN 0x00c0 +/* WLAN_HT_CAP_SM_PS_* values */ +#define IEEE80211_HE_6GHZ_CAP_SM_PS 0x0600 +#define IEEE80211_HE_6GHZ_CAP_RD_RESPONDER 0x0800 +#define IEEE80211_HE_6GHZ_CAP_RX_ANTPAT_CONS 0x1000 +#define IEEE80211_HE_6GHZ_CAP_TX_ANTPAT_CONS 0x2000 + /** * ieee80211_get_qos_ctl - get pointer to qos control bytes * @hdr: the frame @@ -3423,2 +3508,28 @@ +/* + * reduced neighbor report, based on Draft P802.11ax_D5.0, + * section 9.4.2.170 + */ +#define IEEE80211_AP_INFO_TBTT_HDR_TYPE 0x03 +#define IEEE80211_AP_INFO_TBTT_HDR_FILTERED 0x04 +#define IEEE80211_AP_INFO_TBTT_HDR_COLOC 0x08 +#define IEEE80211_AP_INFO_TBTT_HDR_COUNT 0xF0 +#define IEEE80211_TBTT_INFO_OFFSET_BSSID_BSS_PARAM 8 +#define IEEE80211_TBTT_INFO_OFFSET_BSSID_SSSID_BSS_PARAM 12 + +#define IEEE80211_RNR_TBTT_PARAMS_OCT_RECOMMENDED 0x01 +#define IEEE80211_RNR_TBTT_PARAMS_SAME_SSID 0x02 +#define IEEE80211_RNR_TBTT_PARAMS_MULTI_BSSID 0x04 +#define IEEE80211_RNR_TBTT_PARAMS_TRANSMITTED_BSSID 0x08 +#define IEEE80211_RNR_TBTT_PARAMS_COLOC_ESS 0x10 +#define IEEE80211_RNR_TBTT_PARAMS_PROBE_ACTIVE 0x20 +#define IEEE80211_RNR_TBTT_PARAMS_COLOC_AP 0x40 + +struct ieee80211_neighbor_ap_info { + u8 tbtt_info_hdr; + u8 tbtt_info_len; + u8 op_class; + u8 channel; +} __packed; + #endif /* LINUX_IEEE80211_H */ diff -u linux-oem-5.6-5.6.0/include/linux/mod_devicetable.h linux-oem-5.6-5.6.0/include/linux/mod_devicetable.h --- linux-oem-5.6-5.6.0/include/linux/mod_devicetable.h +++ linux-oem-5.6-5.6.0/include/linux/mod_devicetable.h @@ -672,9 +672,7 @@ __u16 steppings; }; -#define X86_FEATURE_MATCH(x) \ - { X86_VENDOR_ANY, X86_FAMILY_ANY, X86_MODEL_ANY, x } - +/* Wild cards for x86_cpu_id::vendor, family, model and feature */ #define X86_VENDOR_ANY 0xffff #define X86_FAMILY_ANY 0 #define X86_MODEL_ANY 0 @@ -829,2 +827,15 @@ +#define MHI_DEVICE_MODALIAS_FMT "mhi:%s" +#define MHI_NAME_SIZE 32 + +/** + * struct mhi_device_id - MHI device identification + * @chan: MHI channel name + * @driver_data: driver data; + */ +struct mhi_device_id { + const char chan[MHI_NAME_SIZE]; + kernel_ulong_t driver_data; +}; + #endif /* LINUX_MOD_DEVICETABLE_H */ diff -u linux-oem-5.6-5.6.0/include/linux/pci_ids.h linux-oem-5.6-5.6.0/include/linux/pci_ids.h --- linux-oem-5.6-5.6.0/include/linux/pci_ids.h +++ linux-oem-5.6-5.6.0/include/linux/pci_ids.h @@ -3123,4 +3123,2 @@ -#define PCI_VENDOR_ID_SK_HYNIX 0x1c5c - #endif /* _LINUX_PCI_IDS_H */ diff -u linux-oem-5.6-5.6.0/include/net/bluetooth/l2cap.h linux-oem-5.6-5.6.0/include/net/bluetooth/l2cap.h --- linux-oem-5.6-5.6.0/include/net/bluetooth/l2cap.h +++ linux-oem-5.6-5.6.0/include/net/bluetooth/l2cap.h @@ -299,14 +299,14 @@ struct l2cap_conf_req { __le16 dcid; __le16 flags; - __u8 data[0]; + __u8 data[]; } __packed; struct l2cap_conf_rsp { __le16 scid; __le16 flags; __le16 result; - __u8 data[0]; + __u8 data[]; } __packed; #define L2CAP_CONF_SUCCESS 0x0000 @@ -322,7 +322,7 @@ struct l2cap_conf_opt { __u8 type; __u8 len; - __u8 val[0]; + __u8 val[]; } __packed; #define L2CAP_CONF_OPT_SIZE 2 @@ -392,7 +392,7 @@ struct l2cap_info_rsp { __le16 type; __le16 result; - __u8 data[0]; + __u8 data[]; } __packed; struct l2cap_create_chan_req { diff -u linux-oem-5.6-5.6.0/include/net/mac80211.h linux-oem-5.6-5.6.0/include/net/mac80211.h --- linux-oem-5.6-5.6.0/include/net/mac80211.h +++ linux-oem-5.6-5.6.0/include/net/mac80211.h @@ -7,7 +7,7 @@ * Copyright 2007-2010 Johannes Berg * Copyright 2013-2014 Intel Mobile Communications GmbH * Copyright (C) 2015 - 2017 Intel Deutschland GmbH - * Copyright (C) 2018 - 2019 Intel Corporation + * Copyright (C) 2018 - 2020 Intel Corporation */ #ifndef MAC80211_H @@ -316,6 +316,7 @@ * functionality changed for this BSS (AP mode). * @BSS_CHANGED_TWT: TWT status changed * @BSS_CHANGED_HE_OBSS_PD: OBSS Packet Detection status changed. + * @BSS_CHANGED_HE_BSS_COLOR: BSS Color has changed * */ enum ieee80211_bss_change { @@ -348,6 +349,7 @@ BSS_CHANGED_FTM_RESPONDER = 1<<26, BSS_CHANGED_TWT = 1<<27, BSS_CHANGED_HE_OBSS_PD = 1<<28, + BSS_CHANGED_HE_BSS_COLOR = 1<<29, /* when adding here, make sure to change ieee80211_reconfig */ }; @@ -494,7 +496,6 @@ * This structure keeps information about a BSS (and an association * to that BSS) that can change during the lifetime of the BSS. * - * @bss_color: 6-bit value to mark inter-BSS frame, if BSS supports HE * @htc_trig_based_pkt_ext: default PE in 4us units, if BSS supports HE * @multi_sta_back_32bit: supports BA bitmap of 32-bits in Multi-STA BACK * @uora_exists: is the UORA element advertised by AP @@ -602,12 +603,12 @@ * nontransmitted BSSIDs * @profile_periodicity: the least number of beacon frames need to be received * in order to discover all the nontransmitted BSSIDs in the set. - * @he_operation: HE operation information of the AP we are connected to + * @he_oper: HE operation information of the AP we are connected to * @he_obss_pd: OBSS Packet Detection parameters. + * @he_bss_color: BSS coloring settings, if BSS supports HE */ struct ieee80211_bss_conf { const u8 *bssid; - u8 bss_color; u8 htc_trig_based_pkt_ext; bool multi_sta_back_32bit; bool uora_exists; @@ -665,8 +666,12 @@ u8 bssid_indicator; bool ema_ap; u8 profile_periodicity; - struct ieee80211_he_operation he_operation; + struct { + u32 params; + u16 nss_set; + } he_oper; struct ieee80211_he_obss_pd he_obss_pd; + struct cfg80211_he_bss_color he_bss_color; }; /** @@ -713,9 +718,8 @@ * @IEEE80211_TX_INTFL_OFFCHAN_TX_OK: Internal to mac80211. Used to indicate * that a frame can be transmitted while the queues are stopped for * off-channel operation. - * @IEEE80211_TX_INTFL_NEED_TXPROCESSING: completely internal to mac80211, - * used to indicate that a pending frame requires TX processing before - * it can be sent out. + * @IEEE80211_TX_CTL_HW_80211_ENCAP: This frame uses hardware encapsulation + * (header conversion) * @IEEE80211_TX_INTFL_RETRIED: completely internal to mac80211, * used to indicate that a frame was already retried due to PS * @IEEE80211_TX_INTFL_DONT_ENCRYPT: completely internal to mac80211, @@ -784,7 +788,7 @@ IEEE80211_TX_STAT_AMPDU_NO_BACK = BIT(11), IEEE80211_TX_CTL_RATE_CTRL_PROBE = BIT(12), IEEE80211_TX_INTFL_OFFCHAN_TX_OK = BIT(13), - IEEE80211_TX_INTFL_NEED_TXPROCESSING = BIT(14), + IEEE80211_TX_CTL_HW_80211_ENCAP = BIT(14), IEEE80211_TX_INTFL_RETRIED = BIT(15), IEEE80211_TX_INTFL_DONT_ENCRYPT = BIT(16), IEEE80211_TX_CTL_NO_PS_BUFFER = BIT(17), @@ -816,6 +820,9 @@ * @IEEE80211_TX_CTRL_AMSDU: This frame is an A-MSDU frame * @IEEE80211_TX_CTRL_FAST_XMIT: This frame is going through the fast_xmit path * @IEEE80211_TX_CTRL_SKIP_MPATH_LOOKUP: This frame skips mesh path lookup + * @IEEE80211_TX_INTCFL_NEED_TXPROCESSING: completely internal to mac80211, + * used to indicate that a pending frame requires TX processing before + * it can be sent out. * * These flags are used in tx_info->control.flags. */ @@ -826,6 +833,7 @@ IEEE80211_TX_CTRL_AMSDU = BIT(3), IEEE80211_TX_CTRL_FAST_XMIT = BIT(4), IEEE80211_TX_CTRL_SKIP_MPATH_LOOKUP = BIT(5), + IEEE80211_TX_INTCFL_NEED_TXPROCESSING = BIT(6), }; /* @@ -989,7 +997,8 @@ * @status.ampdu_ack_len: AMPDU ack length * @status.ampdu_len: AMPDU length * @status.antenna: (legacy, kept only for iwlegacy) - * @status.tx_time: airtime consumed for transmission + * @status.tx_time: airtime consumed for transmission; note this is only + * used for WMM AC, not for airtime fairness * @status.is_valid_ack_signal: ACK signal is valid * @status.status_driver_data: driver use area * @ack: union part for pure ACK data @@ -1082,12 +1091,14 @@ * @info: Basic tx status information * @skb: Packet skb (can be NULL if not provided by the driver) * @rate: The TX rate that was used when sending the packet + * @free_list: list where processed skbs are stored to be free'd by the driver */ struct ieee80211_tx_status { struct ieee80211_sta *sta; struct ieee80211_tx_info *info; struct sk_buff *skb; struct rate_info *rate; + struct list_head *free_list; }; /** @@ -1585,6 +1596,21 @@ IEEE80211_VIF_GET_NOA_UPDATE = BIT(3), }; + +/** + * enum ieee80211_offload_flags - virtual interface offload flags + * + * @IEEE80211_OFFLOAD_ENCAP_ENABLED: tx encapsulation offload is enabled + * The driver supports sending frames passed as 802.3 frames by mac80211. + * It must also support sending 802.11 packets for the same interface. + * @IEEE80211_OFFLOAD_ENCAP_4ADDR: support 4-address mode encapsulation offload + */ + +enum ieee80211_offload_flags { + IEEE80211_OFFLOAD_ENCAP_ENABLED = BIT(0), + IEEE80211_OFFLOAD_ENCAP_4ADDR = BIT(1), +}; + /** * struct ieee80211_vif - per-interface data * @@ -1605,6 +1631,11 @@ * these need to be set (or cleared) when the interface is added * or, if supported by the driver, the interface type is changed * at runtime, mac80211 will never touch this field + * @offloaad_flags: hardware offload capabilities/flags for this interface. + * These are initialized by mac80211 before calling .add_interface, + * .change_interface or .update_vif_offload and updated by the driver + * within these ops, based on supported features or runtime change + * restrictions. * @hw_queue: hardware queue for each AC * @cab_queue: content-after-beacon (DTIM beacon really) queue, AP mode only * @chanctx_conf: The channel context this interface is assigned to, or %NULL @@ -1639,6 +1670,7 @@ struct ieee80211_chanctx_conf __rcu *chanctx_conf; u32 driver_flags; + u32 offload_flags; #ifdef CONFIG_MAC80211_DEBUGFS struct dentry *debugfs_dir; @@ -1956,6 +1988,7 @@ * @ht_cap: HT capabilities of this STA; restricted to our own capabilities * @vht_cap: VHT capabilities of this STA; restricted to our own capabilities * @he_cap: HE capabilities of this STA + * @he_6ghz_capa: on 6 GHz, holds the HE 6 GHz band capabilities * @max_rx_aggregation_subframes: maximal amount of frames in a single AMPDU * that this station is allowed to transmit to us. * Can be modified by driver. @@ -1994,6 +2027,7 @@ struct ieee80211_sta_ht_cap ht_cap; struct ieee80211_sta_vht_cap vht_cap; struct ieee80211_sta_he_cap he_cap; + struct ieee80211_he_6ghz_capa he_6ghz_capa; u16 max_rx_aggregation_subframes; bool wme; u8 uapsd_queues; @@ -2301,6 +2335,9 @@ * aggregating MPDUs with the same keyid, allowing mac80211 to keep Tx * A-MPDU sessions active while rekeying with Extended Key ID. * + * @IEEE80211_HW_SUPPORTS_TX_ENCAP_OFFLOAD: Hardware supports tx encapsulation + * offload + * * @NUM_IEEE80211_HW_FLAGS: number of hardware flags, used for sizing arrays */ enum ieee80211_hw_flags { @@ -2353,6 +2390,7 @@ IEEE80211_HW_SUPPORTS_MULTI_BSSID, IEEE80211_HW_SUPPORTS_ONLY_HE_MULTI_BSSID, IEEE80211_HW_AMPDU_KEYBORDER_SUPPORT, + IEEE80211_HW_SUPPORTS_TX_ENCAP_OFFLOAD, /* keep last, obviously */ NUM_IEEE80211_HW_FLAGS @@ -3698,7 +3736,7 @@ * decremented, and when they reach 1 the driver must call * ieee80211_csa_finish(). Drivers which use ieee80211_beacon_get() * get the csa counter decremented by mac80211, but must check if it is - * 1 using ieee80211_csa_is_complete() after the beacon has been + * 1 using ieee80211_beacon_counter_is_complete() after the beacon has been * transmitted and then call ieee80211_csa_finish(). * If the CSA count starts as zero or 1, this function will not be called, * since there won't be any time to beacon before the switch anyway. @@ -3773,6 +3811,10 @@ * * @start_pmsr: start peer measurement (e.g. FTM) (this call can sleep) * @abort_pmsr: abort peer measurement (this call can sleep) + * @update_vif_config: Update virtual interface offload flags + * This callback may sleep. + * @sta_set_4addr: Called to notify the driver when a station starts/stops using + * 4-address mode */ struct ieee80211_ops { void (*tx)(struct ieee80211_hw *hw, @@ -4077,6 +4119,10 @@ struct cfg80211_pmsr_request *request); void (*abort_pmsr)(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct cfg80211_pmsr_request *request); + void (*update_vif_offload)(struct ieee80211_hw *hw, + struct ieee80211_vif *vif); + void (*sta_set_4addr)(struct ieee80211_hw *hw, struct ieee80211_vif *vif, + struct ieee80211_sta *sta, bool enabled); }; /** @@ -4660,6 +4706,26 @@ struct sk_buff *skb); /** + * ieee80211_tx_status_8023 - transmit status callback for 802.3 frame format + * + * Call this function for all transmitted data frames after their transmit + * completion. This callback should only be called for data frames which + * are are using driver's (or hardware's) offload capability of encap/decap + * 802.11 frames. + * + * This function may not be called in IRQ context. Calls to this function + * for a single hardware must be synchronized against each other and all + * calls in the same tx status family. + * + * @hw: the hardware the frame was transmitted by + * @vif: the interface for which the frame was transmitted + * @skb: the frame that was transmitted, owned by mac80211 after this call + */ +void ieee80211_tx_status_8023(struct ieee80211_hw *hw, + struct ieee80211_vif *vif, + struct sk_buff *skb); + +/** * ieee80211_report_low_ack - report non-responding station * * When operating in AP-mode, call this function to report a non-responding @@ -4670,21 +4736,21 @@ */ void ieee80211_report_low_ack(struct ieee80211_sta *sta, u32 num_packets); -#define IEEE80211_MAX_CSA_COUNTERS_NUM 2 +#define IEEE80211_MAX_CNTDWN_COUNTERS_NUM 2 /** * struct ieee80211_mutable_offsets - mutable beacon offsets * @tim_offset: position of TIM element * @tim_length: size of TIM element - * @csa_counter_offs: array of IEEE80211_MAX_CSA_COUNTERS_NUM offsets - * to CSA counters. This array can contain zero values which + * @cntdwn_counter_offs: array of IEEE80211_MAX_CNTDWN_COUNTERS_NUM offsets + * to countdown counters. This array can contain zero values which * should be ignored. */ struct ieee80211_mutable_offsets { u16 tim_offset; u16 tim_length; - u16 csa_counter_offs[IEEE80211_MAX_CSA_COUNTERS_NUM]; + u16 cntdwn_counter_offs[IEEE80211_MAX_CNTDWN_COUNTERS_NUM]; }; /** @@ -4753,31 +4819,31 @@ } /** - * ieee80211_csa_update_counter - request mac80211 to decrement the csa counter + * ieee80211_beacon_update_cntdwn - request mac80211 to decrement the beacon countdown * @vif: &struct ieee80211_vif pointer from the add_interface callback. * - * The csa counter should be updated after each beacon transmission. + * The beacon counter should be updated after each beacon transmission. * This function is called implicitly when * ieee80211_beacon_get/ieee80211_beacon_get_tim are called, however if the * beacon frames are generated by the device, the driver should call this - * function after each beacon transmission to sync mac80211's csa counters. + * function after each beacon transmission to sync mac80211's beacon countdown. * - * Return: new csa counter value + * Return: new countdown value */ -u8 ieee80211_csa_update_counter(struct ieee80211_vif *vif); +u8 ieee80211_beacon_update_cntdwn(struct ieee80211_vif *vif); /** - * ieee80211_csa_set_counter - request mac80211 to set csa counter + * ieee80211_beacon_set_cntdwn - request mac80211 to set beacon countdown * @vif: &struct ieee80211_vif pointer from the add_interface callback. * @counter: the new value for the counter * - * The csa counter can be changed by the device, this API should be + * The beacon countdown can be changed by the device, this API should be * used by the device driver to update csa counter in mac80211. * - * It should never be used together with ieee80211_csa_update_counter(), + * It should never be used together with ieee80211_beacon_update_cntdwn(), * as it will cause a race condition around the counter value. */ -void ieee80211_csa_set_counter(struct ieee80211_vif *vif, u8 counter); +void ieee80211_beacon_set_cntdwn(struct ieee80211_vif *vif, u8 counter); /** * ieee80211_csa_finish - notify mac80211 about channel switch @@ -4790,13 +4856,12 @@ void ieee80211_csa_finish(struct ieee80211_vif *vif); /** - * ieee80211_csa_is_complete - find out if counters reached 1 + * ieee80211_beacon_cntdwn_is_complete - find out if countdown reached 1 * @vif: &struct ieee80211_vif pointer from the add_interface callback. * - * This function returns whether the channel switch counters reached zero. + * This function returns whether the countdown reached zero. */ -bool ieee80211_csa_is_complete(struct ieee80211_vif *vif); - +bool ieee80211_beacon_cntdwn_is_complete(struct ieee80211_vif *vif); /** * ieee80211_proberesp_get - retrieve a Probe Response template @@ -5555,7 +5620,7 @@ /** * ieee80211_sta_register_airtime - register airtime usage for a sta/tid * - * Register airtime usage for a given sta on a given tid. The driver can call + * Register airtime usage for a given sta on a given tid. The driver must call * this function to notify mac80211 that a station used a certain amount of * airtime. This information will be used by the TXQ scheduler to schedule * stations in a way that ensures airtime fairness. @@ -6482,4 +6547,15 @@ struct ieee80211_tx_info *info, int len); +/** + * ieee80211_set_hw_80211_encap - enable hardware encapsulation offloading. + * + * This function is used to notify mac80211 that a vif can be passed raw 802.3 + * frames. The driver needs to then handle the 802.11 encapsulation inside the + * hardware or firmware. + * + * @vif: &struct ieee80211_vif pointer from the add_interface callback. + * @enable: indicate if the feature should be turned on or off + */ +bool ieee80211_set_hw_80211_encap(struct ieee80211_vif *vif, bool enable); #endif /* MAC80211_H */ diff -u linux-oem-5.6-5.6.0/net/bluetooth/mgmt.c linux-oem-5.6-5.6.0/net/bluetooth/mgmt.c --- linux-oem-5.6-5.6.0/net/bluetooth/mgmt.c +++ linux-oem-5.6-5.6.0/net/bluetooth/mgmt.c @@ -38,7 +38,7 @@ #include "mgmt_util.h" #define MGMT_VERSION 1 -#define MGMT_REVISION 15 +#define MGMT_REVISION 16 static const u16 mgmt_commands[] = { MGMT_OP_READ_INDEX_LIST, @@ -107,6 +107,7 @@ MGMT_OP_READ_EXT_INFO, MGMT_OP_SET_APPEARANCE, MGMT_OP_SET_BLOCKED_KEYS, + MGMT_OP_SET_WIDEBAND_SPEECH, }; static const u16 mgmt_events[] = { @@ -763,6 +764,10 @@ if (lmp_sc_capable(hdev)) settings |= MGMT_SETTING_SECURE_CONN; + + if (test_bit(HCI_QUIRK_WIDEBAND_SPEECH_SUPPORTED, + &hdev->quirks)) + settings |= MGMT_SETTING_WIDEBAND_SPEECH; } if (lmp_le_capable(hdev)) { @@ -847,6 +852,9 @@ settings |= MGMT_SETTING_STATIC_ADDRESS; } + if (hci_dev_test_flag(hdev, HCI_WIDEBAND_SPEECH_ENABLED)) + settings |= MGMT_SETTING_WIDEBAND_SPEECH; + return settings; } @@ -3594,6 +3602,62 @@ err, NULL, 0); } +static int set_wideband_speech(struct sock *sk, struct hci_dev *hdev, + void *data, u16 len) +{ + struct mgmt_mode *cp = data; + int err; + bool changed = false; + + BT_DBG("request for %s", hdev->name); + + if (!test_bit(HCI_QUIRK_WIDEBAND_SPEECH_SUPPORTED, &hdev->quirks)) + return mgmt_cmd_status(sk, hdev->id, + MGMT_OP_SET_WIDEBAND_SPEECH, + MGMT_STATUS_NOT_SUPPORTED); + + if (cp->val != 0x00 && cp->val != 0x01) + return mgmt_cmd_status(sk, hdev->id, + MGMT_OP_SET_WIDEBAND_SPEECH, + MGMT_STATUS_INVALID_PARAMS); + + hci_dev_lock(hdev); + + if (pending_find(MGMT_OP_SET_WIDEBAND_SPEECH, hdev)) { + err = mgmt_cmd_status(sk, hdev->id, + MGMT_OP_SET_WIDEBAND_SPEECH, + MGMT_STATUS_BUSY); + goto unlock; + } + + if (hdev_is_powered(hdev) && + !!cp->val != hci_dev_test_flag(hdev, + HCI_WIDEBAND_SPEECH_ENABLED)) { + err = mgmt_cmd_status(sk, hdev->id, + MGMT_OP_SET_WIDEBAND_SPEECH, + MGMT_STATUS_REJECTED); + goto unlock; + } + + if (cp->val) + changed = !hci_dev_test_and_set_flag(hdev, + HCI_WIDEBAND_SPEECH_ENABLED); + else + changed = hci_dev_test_and_clear_flag(hdev, + HCI_WIDEBAND_SPEECH_ENABLED); + + err = send_settings_rsp(sk, MGMT_OP_SET_WIDEBAND_SPEECH, hdev); + if (err < 0) + goto unlock; + + if (changed) + err = new_settings(hdev, sk); + +unlock: + hci_dev_unlock(hdev); + return err; +} + static void read_local_oob_data_complete(struct hci_dev *hdev, u8 status, u16 opcode, struct sk_buff *skb) { @@ -6748,8 +6812,11 @@ if (!err) err = hci_req_run(&req, add_advertising_complete); - if (err < 0) + if (err < 0) { + err = mgmt_cmd_status(sk, hdev->id, MGMT_OP_ADD_ADVERTISING, + MGMT_STATUS_FAILED); mgmt_pending_remove(cmd); + } unlock: hci_dev_unlock(hdev); @@ -6995,6 +7062,7 @@ { set_phy_configuration, MGMT_SET_PHY_CONFIGURATION_SIZE }, { set_blocked_keys, MGMT_OP_SET_BLOCKED_KEYS_SIZE, HCI_MGMT_VAR_LEN }, + { set_wideband_speech, MGMT_SETTING_SIZE }, }; void mgmt_index_added(struct hci_dev *hdev) diff -u linux-oem-5.6-5.6.0/net/mac80211/main.c linux-oem-5.6-5.6.0/net/mac80211/main.c --- linux-oem-5.6-5.6.0/net/mac80211/main.c +++ linux-oem-5.6-5.6.0/net/mac80211/main.c @@ -574,6 +574,8 @@ wiphy_ext_feature_set(wiphy, NL80211_EXT_FEATURE_FILS_STA); wiphy_ext_feature_set(wiphy, NL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211); + wiphy_ext_feature_set(wiphy, + NL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211_TX_STATUS); if (!ops->hw_scan) { wiphy->features |= NL80211_FEATURE_LOW_PRIORITY_SCAN | @@ -981,6 +983,11 @@ if (!supp_he) supp_he = !!ieee80211_get_he_sta_cap(sband); + /* HT, VHT, HE require QoS, thus >= 4 queues */ + if (WARN_ON(local->hw.queues < IEEE80211_NUM_ACS && + (supp_ht || supp_vht || supp_he))) + return -EINVAL; + if (!sband->ht_cap.ht_supported) continue; @@ -1137,7 +1144,7 @@ WLAN_EXT_CAPA3_MULTI_BSSID_SUPPORT; } - local->hw.wiphy->max_num_csa_counters = IEEE80211_MAX_CSA_COUNTERS_NUM; + local->hw.wiphy->max_num_csa_counters = IEEE80211_MAX_CNTDWN_COUNTERS_NUM; /* * We use the number of queues for feature tests (QoS, HT) internally diff -u linux-oem-5.6-5.6.0/net/mac80211/mesh.c linux-oem-5.6-5.6.0/net/mac80211/mesh.c --- linux-oem-5.6-5.6.0/net/mac80211/mesh.c +++ linux-oem-5.6-5.6.0/net/mac80211/mesh.c @@ -1,7 +1,7 @@ // SPDX-License-Identifier: GPL-2.0-only /* * Copyright (c) 2008, 2009 open80211s Ltd. - * Copyright (C) 2018 - 2019 Intel Corporation + * Copyright (C) 2018 - 2020 Intel Corporation * Authors: Luis Carlos Cobo * Javier Cardona */ @@ -63,6 +63,7 @@ u32 basic_rates = 0; struct cfg80211_chan_def sta_chan_def; struct ieee80211_supported_band *sband; + u32 vht_cap_info = 0; /* * As support for each feature is added, check for matching @@ -96,9 +97,14 @@ cfg80211_chandef_create(&sta_chan_def, sdata->vif.bss_conf.chandef.chan, NL80211_CHAN_NO_HT); ieee80211_chandef_ht_oper(ie->ht_operation, &sta_chan_def); - ieee80211_chandef_vht_oper(&sdata->local->hw, + + if (ie->vht_cap_elem) + vht_cap_info = le32_to_cpu(ie->vht_cap_elem->vht_cap_info); + + ieee80211_chandef_vht_oper(&sdata->local->hw, vht_cap_info, ie->vht_operation, ie->ht_operation, &sta_chan_def); + ieee80211_chandef_he_6ghz_oper(sdata, ie->he_operation, &sta_chan_def); if (!cfg80211_chandef_compatible(&sdata->vif.bss_conf.chandef, &sta_chan_def)) @@ -415,6 +421,10 @@ if (!sband) return -EINVAL; + /* HT not allowed in 6 GHz */ + if (sband->band == NL80211_BAND_6GHZ) + return 0; + if (!sband->ht_cap.ht_supported || sdata->vif.bss_conf.chandef.width == NL80211_CHAN_WIDTH_20_NOHT || sdata->vif.bss_conf.chandef.width == NL80211_CHAN_WIDTH_5 || @@ -452,6 +462,10 @@ sband = local->hw.wiphy->bands[channel->band]; ht_cap = &sband->ht_cap; + /* HT not allowed in 6 GHz */ + if (sband->band == NL80211_BAND_6GHZ) + return 0; + if (!ht_cap->ht_supported || sdata->vif.bss_conf.chandef.width == NL80211_CHAN_WIDTH_20_NOHT || sdata->vif.bss_conf.chandef.width == NL80211_CHAN_WIDTH_5 || @@ -479,6 +493,10 @@ if (!sband) return -EINVAL; + /* VHT not allowed in 6 GHz */ + if (sband->band == NL80211_BAND_6GHZ) + return 0; + if (!sband->vht_cap.vht_supported || sdata->vif.bss_conf.chandef.width == NL80211_CHAN_WIDTH_20_NOHT || sdata->vif.bss_conf.chandef.width == NL80211_CHAN_WIDTH_5 || @@ -516,6 +534,10 @@ sband = local->hw.wiphy->bands[channel->band]; vht_cap = &sband->vht_cap; + /* VHT not allowed in 6 GHz */ + if (sband->band == NL80211_BAND_6GHZ) + return 0; + if (!vht_cap->vht_supported || sdata->vif.bss_conf.chandef.width == NL80211_CHAN_WIDTH_20_NOHT || sdata->vif.bss_conf.chandef.width == NL80211_CHAN_WIDTH_5 || @@ -565,6 +587,7 @@ { const struct ieee80211_sta_he_cap *he_cap; struct ieee80211_supported_band *sband; + u32 len; u8 *pos; sband = ieee80211_get_sband(sdata); @@ -578,12 +601,23 @@ sdata->vif.bss_conf.chandef.width == NL80211_CHAN_WIDTH_10) return 0; - if (skb_tailroom(skb) < 2 + 1 + sizeof(struct ieee80211_he_operation)) + len = 2 + 1 + sizeof(struct ieee80211_he_operation); + if (sdata->vif.bss_conf.chandef.chan->band == NL80211_BAND_6GHZ) + len += sizeof(struct ieee80211_he_6ghz_oper); + + if (skb_tailroom(skb) < len) return -ENOMEM; - pos = skb_put(skb, 2 + 1 + sizeof(struct ieee80211_he_operation)); - ieee80211_ie_build_he_oper(pos); + pos = skb_put(skb, len); + ieee80211_ie_build_he_oper(pos, &sdata->vif.bss_conf.chandef); + + return 0; +} +int mesh_add_he_6ghz_cap_ie(struct ieee80211_sub_if_data *sdata, + struct sk_buff *skb) +{ + ieee80211_ie_build_he_6ghz_cap(sdata, skb); return 0; } @@ -766,6 +800,8 @@ 2 + sizeof(struct ieee80211_vht_operation) + ie_len_he_cap + 2 + 1 + sizeof(struct ieee80211_he_operation) + + sizeof(struct ieee80211_he_6ghz_oper) + + 2 + 1 + sizeof(struct ieee80211_he_6ghz_capa) + ifmsh->ie_len; bcn = kzalloc(sizeof(*bcn) + head_len + tail_len, GFP_KERNEL); @@ -812,8 +848,8 @@ *pos++ = 0x0; *pos++ = ieee80211_frequency_to_channel( csa->settings.chandef.chan->center_freq); - bcn->csa_current_counter = csa->settings.count; - bcn->csa_counter_offsets[0] = hdr_len + 6; + bcn->cntdwn_current_counter = csa->settings.count; + bcn->cntdwn_counter_offsets[0] = hdr_len + 6; *pos++ = csa->settings.count; *pos++ = WLAN_EID_CHAN_SWITCH_PARAM; *pos++ = 6; @@ -885,6 +921,7 @@ mesh_add_vht_oper_ie(sdata, skb) || mesh_add_he_cap_ie(sdata, skb, ie_len_he_cap) || mesh_add_he_oper_ie(sdata, skb) || + mesh_add_he_6ghz_cap_ie(sdata, skb) || mesh_add_vendor_ies(sdata, skb)) goto out_free; @@ -1044,7 +1081,7 @@ struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; struct ieee80211_supported_band *sband; int err; - u32 sta_flags; + u32 sta_flags, vht_cap_info = 0; sdata_assert_lock(sdata); @@ -1067,8 +1104,13 @@ break; } + if (elems->vht_cap_elem) + vht_cap_info = + le32_to_cpu(elems->vht_cap_elem->vht_cap_info); + memset(¶ms, 0, sizeof(params)); err = ieee80211_parse_ch_switch_ie(sdata, elems, sband->band, + vht_cap_info, sta_flags, sdata->vif.addr, &csa_ie); if (err < 0) diff -u linux-oem-5.6-5.6.0/net/mac80211/mesh_hwmp.c linux-oem-5.6-5.6.0/net/mac80211/mesh_hwmp.c --- linux-oem-5.6-5.6.0/net/mac80211/mesh_hwmp.c +++ linux-oem-5.6-5.6.0/net/mac80211/mesh_hwmp.c @@ -212,7 +212,7 @@ skb->priority = 7; info->control.vif = &sdata->vif; - info->flags |= IEEE80211_TX_INTFL_NEED_TXPROCESSING; + info->control.flags |= IEEE80211_TX_INTCFL_NEED_TXPROCESSING; ieee80211_set_qos_hdr(sdata, skb); ieee80211_mps_set_frame_flags(sdata, NULL, hdr); } @@ -1166,7 +1166,7 @@ if (skb_queue_len(&mpath->frame_queue) >= MESH_FRAME_QUEUE_LEN) skb_to_free = skb_dequeue(&mpath->frame_queue); - info->flags |= IEEE80211_TX_INTFL_NEED_TXPROCESSING; + info->control.flags |= IEEE80211_TX_INTCFL_NEED_TXPROCESSING; ieee80211_set_qos_hdr(sdata, skb); skb_queue_tail(&mpath->frame_queue, skb); if (skb_to_free) diff -u linux-oem-5.6-5.6.0/net/mac80211/mlme.c linux-oem-5.6-5.6.0/net/mac80211/mlme.c --- linux-oem-5.6-5.6.0/net/mac80211/mlme.c +++ linux-oem-5.6-5.6.0/net/mac80211/mlme.c @@ -145,6 +145,7 @@ ieee80211_determine_chantype(struct ieee80211_sub_if_data *sdata, struct ieee80211_supported_band *sband, struct ieee80211_channel *channel, + u32 vht_cap_info, const struct ieee80211_ht_operation *ht_oper, const struct ieee80211_vht_operation *vht_oper, const struct ieee80211_he_operation *he_oper, @@ -155,16 +156,27 @@ struct ieee80211_sta_ht_cap sta_ht_cap; u32 ht_cfreq, ret; - memcpy(&sta_ht_cap, &sband->ht_cap, sizeof(sta_ht_cap)); - ieee80211_apply_htcap_overrides(sdata, &sta_ht_cap); - memset(chandef, 0, sizeof(struct cfg80211_chan_def)); chandef->chan = channel; chandef->width = NL80211_CHAN_WIDTH_20_NOHT; chandef->center_freq1 = channel->center_freq; + if (channel->band == NL80211_BAND_6GHZ) { + if (!ieee80211_chandef_he_6ghz_oper(sdata, he_oper, chandef)) + ret = IEEE80211_STA_DISABLE_HT | + IEEE80211_STA_DISABLE_VHT | + IEEE80211_STA_DISABLE_HE; + vht_chandef = *chandef; + goto out; + } + + memcpy(&sta_ht_cap, &sband->ht_cap, sizeof(sta_ht_cap)); + ieee80211_apply_htcap_overrides(sdata, &sta_ht_cap); + if (!ht_oper || !sta_ht_cap.ht_supported) { - ret = IEEE80211_STA_DISABLE_HT | IEEE80211_STA_DISABLE_VHT; + ret = IEEE80211_STA_DISABLE_HT | + IEEE80211_STA_DISABLE_VHT | + IEEE80211_STA_DISABLE_HE; goto out; } @@ -185,7 +197,9 @@ "Wrong control channel: center-freq: %d ht-cfreq: %d ht->primary_chan: %d band: %d - Disabling HT\n", channel->center_freq, ht_cfreq, ht_oper->primary_chan, channel->band); - ret = IEEE80211_STA_DISABLE_HT | IEEE80211_STA_DISABLE_VHT; + ret = IEEE80211_STA_DISABLE_HT | + IEEE80211_STA_DISABLE_VHT | + IEEE80211_STA_DISABLE_HE; goto out; } @@ -218,7 +232,7 @@ memcpy(&he_oper_vht_cap, he_oper->optional, 3); he_oper_vht_cap.basic_mcs_set = cpu_to_le16(0); - if (!ieee80211_chandef_vht_oper(&sdata->local->hw, + if (!ieee80211_chandef_vht_oper(&sdata->local->hw, vht_cap_info, &he_oper_vht_cap, ht_oper, &vht_chandef)) { if (!(ifmgd->flags & IEEE80211_STA_DISABLE_HE)) @@ -227,8 +241,10 @@ ret = IEEE80211_STA_DISABLE_HE; goto out; } - } else if (!ieee80211_chandef_vht_oper(&sdata->local->hw, vht_oper, - ht_oper, &vht_chandef)) { + } else if (!ieee80211_chandef_vht_oper(&sdata->local->hw, + vht_cap_info, + vht_oper, ht_oper, + &vht_chandef)) { if (!(ifmgd->flags & IEEE80211_STA_DISABLE_VHT)) sdata_info(sdata, "AP VHT information is invalid, disable VHT\n"); @@ -301,7 +317,8 @@ IEEE80211_CHAN_DISABLED)) { if (WARN_ON(chandef->width == NL80211_CHAN_WIDTH_20_NOHT)) { ret = IEEE80211_STA_DISABLE_HT | - IEEE80211_STA_DISABLE_VHT; + IEEE80211_STA_DISABLE_VHT | + IEEE80211_STA_DISABLE_HE; break; } @@ -319,6 +336,7 @@ static int ieee80211_config_bw(struct ieee80211_sub_if_data *sdata, struct sta_info *sta, const struct ieee80211_ht_cap *ht_cap, + const struct ieee80211_vht_cap *vht_cap, const struct ieee80211_ht_operation *ht_oper, const struct ieee80211_vht_operation *vht_oper, const struct ieee80211_he_operation *he_oper, @@ -333,6 +351,7 @@ u16 ht_opmode; u32 flags; enum ieee80211_sta_rx_bandwidth new_sta_bw; + u32 vht_cap_info = 0; int ret; /* if HT was/is disabled, don't track any bandwidth changes */ @@ -361,8 +380,11 @@ sdata->vif.bss_conf.ht_operation_mode = ht_opmode; } + if (vht_cap) + vht_cap_info = le32_to_cpu(vht_cap->vht_cap_info); + /* calculate new channel (type) based on HT/VHT/HE operation IEs */ - flags = ieee80211_determine_chantype(sdata, sband, chan, + flags = ieee80211_determine_chantype(sdata, sband, chan, vht_cap_info, ht_oper, vht_oper, he_oper, &chandef, true); @@ -393,6 +415,7 @@ if (flags != (ifmgd->flags & (IEEE80211_STA_DISABLE_HT | IEEE80211_STA_DISABLE_VHT | + IEEE80211_STA_DISABLE_HE | IEEE80211_STA_DISABLE_40MHZ | IEEE80211_STA_DISABLE_80P80MHZ | IEEE80211_STA_DISABLE_160MHZ)) || @@ -633,6 +656,8 @@ he_cap->he_cap_elem.phy_cap_info); pos = skb_put(skb, he_cap_size); ieee80211_ie_build_he_cap(pos, he_cap, pos + he_cap_size); + + ieee80211_ie_build_he_6ghz_cap(sdata, skb); } static void ieee80211_send_assoc(struct ieee80211_sub_if_data *sdata) @@ -699,6 +724,7 @@ 2 + 1 + sizeof(struct ieee80211_he_cap_elem) + /* HE */ sizeof(struct ieee80211_he_mcs_nss_supp) + IEEE80211_HE_PPE_THRES_MAX_LEN + + 2 + 1 + sizeof(struct ieee80211_he_6ghz_capa) + assoc_data->ie_len + /* extra IEs */ (assoc_data->fils_kek_len ? 16 /* AES-SIV */ : 0) + 9, /* WMM */ @@ -872,7 +898,8 @@ !(ifmgd->flags & IEEE80211_STA_DISABLE_VHT))) ifmgd->flags |= IEEE80211_STA_DISABLE_VHT; - if (!(ifmgd->flags & IEEE80211_STA_DISABLE_HT)) + if (sband->band != NL80211_BAND_6GHZ && + !(ifmgd->flags & IEEE80211_STA_DISABLE_HT)) ieee80211_add_ht_ie(sdata, skb, assoc_data->ap_ht_param, sband, chan, sdata->smps_mode); @@ -926,7 +953,8 @@ offset = noffset; } - if (!(ifmgd->flags & IEEE80211_STA_DISABLE_VHT)) + if (sband->band != NL80211_BAND_6GHZ && + !(ifmgd->flags & IEEE80211_STA_DISABLE_VHT)) ieee80211_add_vht_ie(sdata, skb, sband, &assoc_data->ap_vht_cap); @@ -1293,6 +1321,7 @@ enum nl80211_band current_band; struct ieee80211_csa_ie csa_ie; struct ieee80211_channel_switch ch_switch; + struct ieee80211_bss *bss; int res; sdata_assert_lock(sdata); @@ -1304,7 +1333,9 @@ return; current_band = cbss->channel->band; + bss = (void *)cbss->priv; res = ieee80211_parse_ch_switch_ie(sdata, elems, current_band, + bss->vht_cap_info, ifmgd->flags, ifmgd->associated->bssid, &csa_ie); @@ -1473,6 +1504,7 @@ chan_increment = 1; break; case NL80211_BAND_5GHZ: + case NL80211_BAND_6GHZ: chan_increment = 4; break; } @@ -2110,7 +2142,8 @@ } use_short_slot = !!(capab & WLAN_CAPABILITY_SHORT_SLOT_TIME); - if (sband->band == NL80211_BAND_5GHZ) + if (sband->band == NL80211_BAND_5GHZ || + sband->band == NL80211_BAND_6GHZ) use_short_slot = true; if (use_protection != bss_conf->use_cts_prot) { @@ -2368,23 +2401,6 @@ sdata->encrypt_headroom = IEEE80211_ENCRYPT_HEADROOM; } -void ieee80211_sta_rx_notify(struct ieee80211_sub_if_data *sdata, - struct ieee80211_hdr *hdr) -{ - /* - * We can postpone the mgd.timer whenever receiving unicast frames - * from AP because we know that the connection is working both ways - * at that time. But multicast frames (and hence also beacons) must - * be ignored here, because we need to trigger the timer during - * data idle periods for sending the periodic probe request to the - * AP we're connected to. - */ - if (is_multicast_ether_addr(hdr->addr1)) - return; - - ieee80211_sta_reset_conn_monitor(sdata); -} - static void ieee80211_reset_ap_probe(struct ieee80211_sub_if_data *sdata) { struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; @@ -2457,21 +2473,13 @@ { ieee80211_sta_tx_wmm_ac_notify(sdata, hdr, tx_time); - if (!ieee80211_is_data(hdr->frame_control)) - return; - - if (ieee80211_is_any_nullfunc(hdr->frame_control) && - sdata->u.mgd.probe_send_count > 0) { - if (ack) - ieee80211_sta_reset_conn_monitor(sdata); - else - sdata->u.mgd.nullfunc_failed = true; - ieee80211_queue_work(&sdata->local->hw, &sdata->work); + if (!ieee80211_is_any_nullfunc(hdr->frame_control) || + !sdata->u.mgd.probe_send_count) return; - } - if (ack) - ieee80211_sta_reset_conn_monitor(sdata); + if (!ack) + sdata->u.mgd.nullfunc_failed = true; + ieee80211_queue_work(&sdata->local->hw, &sdata->work); } static void ieee80211_mlme_send_probe_req(struct ieee80211_sub_if_data *sdata, @@ -3193,6 +3201,7 @@ struct ieee80211_bss_conf *bss_conf = &sdata->vif.bss_conf; const struct cfg80211_bss_ies *bss_ies = NULL; struct ieee80211_mgd_assoc_data *assoc_data = ifmgd->assoc_data; + bool is_6ghz = cbss->channel->band == NL80211_BAND_6GHZ; u32 changed = 0; int err; bool ret; @@ -3234,11 +3243,12 @@ * 2G/3G/4G wifi routers, reported models include the "Onda PN51T", * "Vodafone PocketWiFi 2", "ZTE MF60" and a similar T-Mobile device. */ - if ((assoc_data->wmm && !elems->wmm_param) || - (!(ifmgd->flags & IEEE80211_STA_DISABLE_HT) && - (!elems->ht_cap_elem || !elems->ht_operation)) || - (!(ifmgd->flags & IEEE80211_STA_DISABLE_VHT) && - (!elems->vht_cap_elem || !elems->vht_operation))) { + if (!is_6ghz && + ((assoc_data->wmm && !elems->wmm_param) || + (!(ifmgd->flags & IEEE80211_STA_DISABLE_HT) && + (!elems->ht_cap_elem || !elems->ht_operation)) || + (!(ifmgd->flags & IEEE80211_STA_DISABLE_VHT) && + (!elems->vht_cap_elem || !elems->vht_operation)))) { const struct cfg80211_bss_ies *ies; struct ieee802_11_elems bss_elems; @@ -3296,7 +3306,7 @@ * We previously checked these in the beacon/probe response, so * they should be present here. This is just a safety net. */ - if (!(ifmgd->flags & IEEE80211_STA_DISABLE_HT) && + if (!is_6ghz && !(ifmgd->flags & IEEE80211_STA_DISABLE_HT) && (!elems->wmm_param || !elems->ht_cap_elem || !elems->ht_operation)) { sdata_info(sdata, "HT AP is missing WMM params or HT capability/operation\n"); @@ -3304,7 +3314,7 @@ goto out; } - if (!(ifmgd->flags & IEEE80211_STA_DISABLE_VHT) && + if (!is_6ghz && !(ifmgd->flags & IEEE80211_STA_DISABLE_VHT) && (!elems->vht_cap_elem || !elems->vht_operation)) { sdata_info(sdata, "VHT AP is missing VHT capability/operation\n"); @@ -3312,6 +3322,14 @@ goto out; } + if (is_6ghz && !(ifmgd->flags & IEEE80211_STA_DISABLE_HE) && + !elems->he_6ghz_capa) { + sdata_info(sdata, + "HE 6 GHz AP is missing HE 6 GHz band capability\n"); + ret = false; + goto out; + } + mutex_lock(&sdata->local->sta_mtx); /* * station info was already allocated and inserted before @@ -3354,6 +3372,7 @@ ieee80211_he_cap_ie_to_sta_he_cap(sdata, sband, elems->he_cap, elems->he_cap_len, + elems->he_6ghz_capa, sta); bss_conf->he_support = sta->sta.he_cap.has_he; @@ -3364,9 +3383,18 @@ } if (bss_conf->he_support) { - bss_conf->bss_color = + bss_conf->he_bss_color.color = le32_get_bits(elems->he_operation->he_oper_params, IEEE80211_HE_OPERATION_BSS_COLOR_MASK); + bss_conf->he_bss_color.partial = + le32_get_bits(elems->he_operation->he_oper_params, + IEEE80211_HE_OPERATION_PARTIAL_BSS_COLOR); + bss_conf->he_bss_color.enabled = + !le32_get_bits(elems->he_operation->he_oper_params, + IEEE80211_HE_OPERATION_BSS_COLOR_DISABLED); + + if (bss_conf->he_bss_color.enabled) + changed |= BSS_CHANGED_HE_BSS_COLOR; bss_conf->htc_trig_based_pkt_ext = le32_get_bits(elems->he_operation->he_oper_params, @@ -3446,6 +3474,9 @@ goto out; } + if (sdata->wdev.use_4addr) + drv_sta_set_4addr(local, sdata, &sta->sta, true); + mutex_unlock(&sdata->local->sta_mtx); /* @@ -3504,8 +3535,8 @@ * Start timer to probe the connection to the AP now. * Also start the timer that will detect beacon loss. */ - ieee80211_sta_rx_notify(sdata, (struct ieee80211_hdr *)mgmt); ieee80211_sta_reset_beacon_monitor(sdata); + ieee80211_sta_reset_conn_monitor(sdata); ret = true; out: @@ -4021,8 +4052,8 @@ changed |= ieee80211_recalc_twt_req(sdata, sta, &elems); - if (ieee80211_config_bw(sdata, sta, - elems.ht_cap_elem, elems.ht_operation, + if (ieee80211_config_bw(sdata, sta, elems.ht_cap_elem, + elems.vht_cap_elem, elems.ht_operation, elems.vht_operation, elems.he_operation, bssid, &changed)) { mutex_unlock(&local->sta_mtx); @@ -4456,10 +4487,26 @@ from_timer(sdata, t, u.mgd.conn_mon_timer); struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; struct ieee80211_local *local = sdata->local; + struct sta_info *sta; + unsigned long timeout; if (sdata->vif.csa_active && !ifmgd->csa_waiting_bcn) return; + sta = sta_info_get(sdata, ifmgd->bssid); + if (!sta) + return; + + timeout = sta->status_stats.last_ack; + if (time_before(sta->status_stats.last_ack, sta->rx_stats.last_rx)) + timeout = sta->rx_stats.last_rx; + timeout += IEEE80211_CONNECTION_IDLE_TIME; + + if (time_is_before_jiffies(timeout)) { + mod_timer(&ifmgd->conn_mon_timer, round_jiffies_up(timeout)); + return; + } + ieee80211_queue_work(&local->hw, &ifmgd->monitor_work); } @@ -4739,6 +4786,8 @@ const struct ieee80211_he_operation *he_oper = NULL; struct ieee80211_supported_band *sband; struct cfg80211_chan_def chandef; + bool is_6ghz = cbss->channel->band == NL80211_BAND_6GHZ; + struct ieee80211_bss *bss = (void *)cbss->priv; int ret; u32 i; bool have_80mhz; @@ -4749,10 +4798,24 @@ IEEE80211_STA_DISABLE_80P80MHZ | IEEE80211_STA_DISABLE_160MHZ); + /* disable HT/VHT/HE if we don't support them */ + if (!sband->ht_cap.ht_supported && !is_6ghz) { + ifmgd->flags |= IEEE80211_STA_DISABLE_HT; + ifmgd->flags |= IEEE80211_STA_DISABLE_VHT; + ifmgd->flags |= IEEE80211_STA_DISABLE_HE; + } + + if (!sband->vht_cap.vht_supported && !is_6ghz) { + ifmgd->flags |= IEEE80211_STA_DISABLE_VHT; + ifmgd->flags |= IEEE80211_STA_DISABLE_HE; + } + + if (!ieee80211_get_he_sta_cap(sband)) + ifmgd->flags |= IEEE80211_STA_DISABLE_HE; + rcu_read_lock(); - if (!(ifmgd->flags & IEEE80211_STA_DISABLE_HT) && - sband->ht_cap.ht_supported) { + if (!(ifmgd->flags & IEEE80211_STA_DISABLE_HT) && !is_6ghz) { const u8 *ht_oper_ie, *ht_cap_ie; ht_oper_ie = ieee80211_bss_get_ie(cbss, WLAN_EID_HT_OPERATION); @@ -4769,8 +4832,7 @@ } } - if (!(ifmgd->flags & IEEE80211_STA_DISABLE_VHT) && - sband->vht_cap.vht_supported) { + if (!(ifmgd->flags & IEEE80211_STA_DISABLE_VHT) && !is_6ghz) { const u8 *vht_oper_ie, *vht_cap; vht_oper_ie = ieee80211_bss_get_ie(cbss, @@ -4780,9 +4842,10 @@ if (vht_oper && !ht_oper) { vht_oper = NULL; sdata_info(sdata, - "AP advertised VHT without HT, disabling both\n"); + "AP advertised VHT without HT, disabling HT/VHT/HE\n"); ifmgd->flags |= IEEE80211_STA_DISABLE_HT; ifmgd->flags |= IEEE80211_STA_DISABLE_VHT; + ifmgd->flags |= IEEE80211_STA_DISABLE_HE; } vht_cap = ieee80211_bss_get_ie(cbss, WLAN_EID_VHT_CAPABILITY); @@ -4792,9 +4855,6 @@ } } - if (!ieee80211_get_he_sta_cap(sband)) - ifmgd->flags |= IEEE80211_STA_DISABLE_HE; - if (!(ifmgd->flags & IEEE80211_STA_DISABLE_HE)) { const struct cfg80211_bss_ies *ies; const u8 *he_oper_ie; @@ -4828,6 +4888,7 @@ ifmgd->flags |= ieee80211_determine_chantype(sdata, sband, cbss->channel, + bss->vht_cap_info, ht_oper, vht_oper, he_oper, &chandef, false); @@ -4836,6 +4897,11 @@ rcu_read_unlock(); + if (ifmgd->flags & IEEE80211_STA_DISABLE_HE && is_6ghz) { + sdata_info(sdata, "Rejecting non-HE 6/7 GHz connection"); + return -EINVAL; + } + /* will change later if needed */ sdata->smps_mode = IEEE80211_SMPS_OFF; @@ -5209,6 +5275,7 @@ int ieee80211_mgd_assoc(struct ieee80211_sub_if_data *sdata, struct cfg80211_assoc_request *req) { + bool is_6ghz = req->bss->channel->band == NL80211_BAND_6GHZ; struct ieee80211_local *local = sdata->local; struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; struct ieee80211_bss *bss = (void *)req->bss->priv; @@ -5293,27 +5360,15 @@ } } - /* Also disable HT if we don't support it or the AP doesn't use WMM */ sband = local->hw.wiphy->bands[req->bss->channel->band]; - if (!sband->ht_cap.ht_supported || - local->hw.queues < IEEE80211_NUM_ACS || !bss->wmm_used || - ifmgd->flags & IEEE80211_STA_DISABLE_WMM) { - ifmgd->flags |= IEEE80211_STA_DISABLE_HT; - if (!bss->wmm_used && - !(ifmgd->flags & IEEE80211_STA_DISABLE_WMM)) - netdev_info(sdata->dev, - "disabling HT as WMM/QoS is not supported by the AP\n"); - } - /* disable VHT if we don't support it or the AP doesn't use WMM */ - if (!sband->vht_cap.vht_supported || - local->hw.queues < IEEE80211_NUM_ACS || !bss->wmm_used || - ifmgd->flags & IEEE80211_STA_DISABLE_WMM) { + /* also disable HT/VHT/HE if the AP doesn't use WMM */ + if (!bss->wmm_used) { + ifmgd->flags |= IEEE80211_STA_DISABLE_HT; ifmgd->flags |= IEEE80211_STA_DISABLE_VHT; - if (!bss->wmm_used && - !(ifmgd->flags & IEEE80211_STA_DISABLE_WMM)) - netdev_info(sdata->dev, - "disabling VHT as WMM/QoS is not supported by the AP\n"); + ifmgd->flags |= IEEE80211_STA_DISABLE_HE; + netdev_info(sdata->dev, + "disabling HT/VHT/HE as WMM/QoS is not supported by the AP\n"); } memcpy(&ifmgd->ht_capa, &req->ht_capa, sizeof(ifmgd->ht_capa)); @@ -5363,14 +5418,15 @@ if (ht_ie && ht_ie[1] >= sizeof(struct ieee80211_ht_operation)) assoc_data->ap_ht_param = ((struct ieee80211_ht_operation *)(ht_ie + 2))->ht_param; - else + else if (!is_6ghz) ifmgd->flags |= IEEE80211_STA_DISABLE_HT; vht_ie = ieee80211_bss_get_ie(req->bss, WLAN_EID_VHT_CAPABILITY); if (vht_ie && vht_ie[1] >= sizeof(struct ieee80211_vht_cap)) memcpy(&assoc_data->ap_vht_cap, vht_ie + 2, sizeof(struct ieee80211_vht_cap)); - else - ifmgd->flags |= IEEE80211_STA_DISABLE_VHT; + else if (!is_6ghz) + ifmgd->flags |= IEEE80211_STA_DISABLE_VHT | + IEEE80211_STA_DISABLE_HE; rcu_read_unlock(); if (WARN((sdata->vif.driver_flags & IEEE80211_VIF_SUPPORTS_UAPSD) && @@ -5445,6 +5501,7 @@ if (req->flags & ASSOC_REQ_DISABLE_HT) { ifmgd->flags |= IEEE80211_STA_DISABLE_HT; ifmgd->flags |= IEEE80211_STA_DISABLE_VHT; + ifmgd->flags |= IEEE80211_STA_DISABLE_HE; } if (req->flags & ASSOC_REQ_DISABLE_VHT) @@ -5469,7 +5526,7 @@ assoc_data->timeout_started = true; assoc_data->need_beacon = true; } else if (beacon_ies) { - const u8 *ie; + const struct element *elem; u8 dtim_count = 0; ieee80211_get_dtim(beacon_ies, &dtim_count, @@ -5486,15 +5543,15 @@ sdata->vif.bss_conf.sync_dtim_count = dtim_count; } - ie = cfg80211_find_ext_ie(WLAN_EID_EXT_MULTIPLE_BSSID_CONFIGURATION, - beacon_ies->data, beacon_ies->len); - if (ie && ie[1] >= 3) - sdata->vif.bss_conf.profile_periodicity = ie[4]; + elem = cfg80211_find_ext_elem(WLAN_EID_EXT_MULTIPLE_BSSID_CONFIGURATION, + beacon_ies->data, beacon_ies->len); + if (elem && elem->datalen >= 3) + sdata->vif.bss_conf.profile_periodicity = elem->data[2]; - ie = cfg80211_find_ie(WLAN_EID_EXT_CAPABILITY, - beacon_ies->data, beacon_ies->len); - if (ie && ie[1] >= 11 && - (ie[10] & WLAN_EXT_CAPA11_EMA_SUPPORT)) + elem = cfg80211_find_elem(WLAN_EID_EXT_CAPABILITY, + beacon_ies->data, beacon_ies->len); + if (elem && elem->datalen >= 11 && + (elem->data[10] & WLAN_EXT_CAPA11_EMA_SUPPORT)) sdata->vif.bss_conf.ema_ap = true; } else { assoc_data->timeout = jiffies; diff -u linux-oem-5.6-5.6.0/net/mac80211/rx.c linux-oem-5.6-5.6.0/net/mac80211/rx.c --- linux-oem-5.6-5.6.0/net/mac80211/rx.c +++ linux-oem-5.6-5.6.0/net/mac80211/rx.c @@ -1779,9 +1779,6 @@ sta->rx_stats.last_rate = sta_stats_encode_rate(status); } - if (rx->sdata->vif.type == NL80211_IFTYPE_STATION) - ieee80211_sta_rx_notify(rx->sdata, hdr); - sta->rx_stats.fragments++; u64_stats_update_begin(&rx->sta->rx_stats.syncp); @@ -2774,7 +2771,7 @@ fwd_hdr->frame_control &= ~cpu_to_le16(IEEE80211_FCTL_RETRY); info = IEEE80211_SKB_CB(fwd_skb); memset(info, 0, sizeof(*info)); - info->flags |= IEEE80211_TX_INTFL_NEED_TXPROCESSING; + info->control.flags |= IEEE80211_TX_INTCFL_NEED_TXPROCESSING; info->control.vif = &rx->sdata->vif; info->control.jiffies = jiffies; if (is_multicast_ether_addr(fwd_hdr->addr1)) { @@ -3995,7 +3992,6 @@ fastrx.sa_offs = offsetof(struct ieee80211_hdr, addr2); fastrx.expected_ds_bits = 0; } else { - fastrx.sta_notify = sdata->u.mgd.probe_send_count > 0; fastrx.da_offs = offsetof(struct ieee80211_hdr, addr1); fastrx.sa_offs = offsetof(struct ieee80211_hdr, addr3); fastrx.expected_ds_bits = @@ -4225,11 +4221,6 @@ pskb_trim(skb, skb->len - fast_rx->icv_len)) goto drop; - if (unlikely(fast_rx->sta_notify)) { - ieee80211_sta_rx_notify(rx->sdata, hdr); - fast_rx->sta_notify = false; - } - /* statistics part of ieee80211_rx_h_sta_process() */ if (!(status->flag & RX_FLAG_NO_SIGNAL_VAL)) { stats->last_signal = status->signal; diff -u linux-oem-5.6-5.6.0/net/mac80211/status.c linux-oem-5.6-5.6.0/net/mac80211/status.c --- linux-oem-5.6-5.6.0/net/mac80211/status.c +++ linux-oem-5.6-5.6.0/net/mac80211/status.c @@ -66,8 +66,8 @@ info->control.jiffies = jiffies; info->control.vif = &sta->sdata->vif; - info->flags |= IEEE80211_TX_INTFL_NEED_TXPROCESSING | - IEEE80211_TX_INTFL_RETRANSMISSION; + info->control.flags |= IEEE80211_TX_INTCFL_NEED_TXPROCESSING; + info->flags |= IEEE80211_TX_INTFL_RETRANSMISSION; info->flags &= ~IEEE80211_TX_TEMPORARY_FLAGS; sta->status_stats.filtered++; @@ -184,18 +184,6 @@ struct ieee80211_mgmt *mgmt = (void *) skb->data; struct ieee80211_local *local = sta->local; struct ieee80211_sub_if_data *sdata = sta->sdata; - struct ieee80211_tx_info *txinfo = IEEE80211_SKB_CB(skb); - - if (ieee80211_hw_check(&local->hw, REPORTS_TX_ACK_STATUS)) { - sta->status_stats.last_ack = jiffies; - if (txinfo->status.is_valid_ack_signal) { - sta->status_stats.last_ack_signal = - (s8)txinfo->status.ack_signal; - sta->status_stats.ack_signal_filled = true; - ewma_avg_signal_add(&sta->status_stats.avg_ack_signal, - -txinfo->status.ack_signal); - } - } if (ieee80211_is_data_qos(mgmt->frame_control)) { struct ieee80211_hdr *hdr = (void *) skb->data; @@ -649,10 +637,17 @@ info->status.ack_signal, info->status.is_valid_ack_signal, GFP_ATOMIC); - else + else if (ieee80211_is_mgmt(hdr->frame_control)) cfg80211_mgmt_tx_status(&sdata->wdev, cookie, skb->data, skb->len, acked, GFP_ATOMIC); + else + cfg80211_control_port_tx_status(&sdata->wdev, + cookie, + skb->data, + skb->len, + acked, + GFP_ATOMIC); } rcu_read_unlock(); @@ -740,12 +735,16 @@ * - current throughput (higher value for higher tpt)? */ #define STA_LOST_PKT_THRESHOLD 50 +#define STA_LOST_PKT_TIME HZ /* 1 sec since last ACK */ #define STA_LOST_TDLS_PKT_THRESHOLD 10 #define STA_LOST_TDLS_PKT_TIME (10*HZ) /* 10secs since last ACK */ static void ieee80211_lost_packet(struct sta_info *sta, struct ieee80211_tx_info *info) { + unsigned long pkt_time = STA_LOST_PKT_TIME; + unsigned int pkt_thr = STA_LOST_PKT_THRESHOLD; + /* If driver relies on its own algorithm for station kickout, skip * mac80211 packet loss mechanism. */ @@ -758,21 +757,20 @@ return; sta->status_stats.lost_packets++; - if (!sta->sta.tdls && - sta->status_stats.lost_packets < STA_LOST_PKT_THRESHOLD) - return; + if (sta->sta.tdls) { + pkt_time = STA_LOST_TDLS_PKT_TIME; + pkt_thr = STA_LOST_PKT_THRESHOLD; + } /* * If we're in TDLS mode, make sure that all STA_LOST_TDLS_PKT_THRESHOLD * of the last packets were lost, and that no ACK was received in the * last STA_LOST_TDLS_PKT_TIME ms, before triggering the CQM packet-loss * mechanism. + * For non-TDLS, use STA_LOST_PKT_THRESHOLD and STA_LOST_PKT_TIME */ - if (sta->sta.tdls && - (sta->status_stats.lost_packets < STA_LOST_TDLS_PKT_THRESHOLD || - time_before(jiffies, - sta->status_stats.last_tdls_pkt_time + - STA_LOST_TDLS_PKT_TIME))) + if (sta->status_stats.lost_packets < pkt_thr || + !time_after(jiffies, sta->status_stats.last_pkt_time + pkt_time)) return; cfg80211_cqm_pktloss_notify(sta->sdata->dev, sta->sta.addr, @@ -874,7 +872,8 @@ } static void __ieee80211_tx_status(struct ieee80211_hw *hw, - struct ieee80211_tx_status *status) + struct ieee80211_tx_status *status, + int rates_idx, int retry_count) { struct sk_buff *skb = status->skb; struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) skb->data; @@ -883,16 +882,12 @@ struct sta_info *sta; __le16 fc; struct ieee80211_supported_band *sband; - int retry_count; - int rates_idx; bool send_to_cooked; bool acked; + bool noack_success; struct ieee80211_bar *bar; int shift = 0; int tid = IEEE80211_NUM_TIDS; - u16 tx_time_est; - - rates_idx = ieee80211_tx_get_rates(hw, info, &retry_count); sband = local->hw.wiphy->bands[info->band]; fc = hdr->frame_control; @@ -905,6 +900,8 @@ clear_sta_flag(sta, WLAN_STA_SP); acked = !!(info->flags & IEEE80211_TX_STAT_ACK); + noack_success = !!(info->flags & + IEEE80211_TX_STAT_NOACK_TRANSMITTED); /* mesh Peer Service Period support */ if (ieee80211_vif_is_mesh(&sta->sdata->vif) && @@ -968,24 +965,14 @@ if (info->flags & IEEE80211_TX_STAT_TX_FILTERED) { ieee80211_handle_filtered_frame(local, sta, skb); return; - } else { - if (!acked) - sta->status_stats.retry_failed++; - sta->status_stats.retry_count += retry_count; - - if (ieee80211_is_data_present(fc)) { - if (!acked) - sta->status_stats.msdu_failed[tid]++; + } else if (ieee80211_is_data_present(fc)) { + if (!acked && !noack_success) + sta->status_stats.msdu_failed[tid]++; - sta->status_stats.msdu_retries[tid] += - retry_count; - } + sta->status_stats.msdu_retries[tid] += + retry_count; } - rate_control_tx_status(local, sband, status); - if (ieee80211_vif_is_mesh(&sta->sdata->vif)) - ieee80211s_update_metric(local, sta, status); - if (!(info->flags & IEEE80211_TX_CTL_INJECTED) && acked) ieee80211_frame_acked(sta, skb); @@ -993,37 +980,6 @@ ieee80211_hw_check(&local->hw, REPORTS_TX_ACK_STATUS)) ieee80211_sta_tx_notify(sta->sdata, (void *) skb->data, acked, info->status.tx_time); - - if (info->status.tx_time && - wiphy_ext_feature_isset(local->hw.wiphy, - NL80211_EXT_FEATURE_AIRTIME_FAIRNESS)) - ieee80211_sta_register_airtime(&sta->sta, tid, - info->status.tx_time, 0); - - if ((tx_time_est = ieee80211_info_get_tx_time_est(info)) > 0) { - /* Do this here to avoid the expensive lookup of the sta - * in ieee80211_report_used_skb(). - */ - ieee80211_sta_update_pending_airtime(local, sta, - skb_get_queue_mapping(skb), - tx_time_est, - true); - ieee80211_info_set_tx_time_est(info, 0); - } - - if (ieee80211_hw_check(&local->hw, REPORTS_TX_ACK_STATUS)) { - if (info->flags & IEEE80211_TX_STAT_ACK) { - if (sta->status_stats.lost_packets) - sta->status_stats.lost_packets = 0; - - /* Track when last TDLS packet was ACKed */ - if (test_sta_flag(sta, WLAN_STA_TDLS_PEER_AUTH)) - sta->status_stats.last_tdls_pkt_time = - jiffies; - } else { - ieee80211_lost_packet(sta, info); - } - } } /* SNMP counters @@ -1082,7 +1038,10 @@ * with this test... */ if (!local->monitors && (!send_to_cooked || !local->cooked_mntrs)) { - dev_kfree_skb(skb); + if (status->free_list) + list_add_tail(&skb->list, status->free_list); + else + dev_kfree_skb(skb); return; } @@ -1107,7 +1066,7 @@ if (sta) status.sta = &sta->sta; - __ieee80211_tx_status(hw, &status); + ieee80211_tx_status_ext(hw, &status); rcu_read_unlock(); } EXPORT_SYMBOL(ieee80211_tx_status); @@ -1118,17 +1077,36 @@ struct ieee80211_local *local = hw_to_local(hw); struct ieee80211_tx_info *info = status->info; struct ieee80211_sta *pubsta = status->sta; + struct sk_buff *skb = status->skb; struct ieee80211_supported_band *sband; - int retry_count; + struct sta_info *sta = NULL; + int rates_idx, retry_count; bool acked, noack_success; + u16 tx_time_est; - if (status->skb) - return __ieee80211_tx_status(hw, status); + if (pubsta) { + sta = container_of(pubsta, struct sta_info, sta); - if (!status->sta) - return; + if (status->rate) + sta->tx_stats.last_rate_info = *status->rate; + } + + if (skb && (tx_time_est = + ieee80211_info_get_tx_time_est(IEEE80211_SKB_CB(skb))) > 0) { + /* Do this here to avoid the expensive lookup of the sta + * in ieee80211_report_used_skb(). + */ + ieee80211_sta_update_pending_airtime(local, sta, + skb_get_queue_mapping(skb), + tx_time_est, + true); + ieee80211_info_set_tx_time_est(IEEE80211_SKB_CB(skb), 0); + } + + if (!status->info) + goto free; - ieee80211_tx_get_rates(hw, info, &retry_count); + rates_idx = ieee80211_tx_get_rates(hw, info, &retry_count); sband = hw->wiphy->bands[info->band]; @@ -1136,27 +1114,34 @@ noack_success = !!(info->flags & IEEE80211_TX_STAT_NOACK_TRANSMITTED); if (pubsta) { - struct sta_info *sta; - - sta = container_of(pubsta, struct sta_info, sta); - - if (!acked) + if (!acked && !noack_success) sta->status_stats.retry_failed++; sta->status_stats.retry_count += retry_count; - if (acked) { - sta->status_stats.last_ack = jiffies; + if (ieee80211_hw_check(&local->hw, REPORTS_TX_ACK_STATUS)) { + if (acked) { + sta->status_stats.last_ack = jiffies; - if (sta->status_stats.lost_packets) - sta->status_stats.lost_packets = 0; + if (sta->status_stats.lost_packets) + sta->status_stats.lost_packets = 0; - /* Track when last TDLS packet was ACKed */ - if (test_sta_flag(sta, WLAN_STA_TDLS_PEER_AUTH)) - sta->status_stats.last_tdls_pkt_time = jiffies; - } else if (test_sta_flag(sta, WLAN_STA_PS_STA)) { - return; - } else { - ieee80211_lost_packet(sta, info); + /* Track when last packet was ACKed */ + sta->status_stats.last_pkt_time = jiffies; + + if (info->status.is_valid_ack_signal) { + sta->status_stats.last_ack_signal = + (s8)info->status.ack_signal; + sta->status_stats.ack_signal_filled = true; + ewma_avg_signal_add(&sta->status_stats.avg_ack_signal, + -info->status.ack_signal); + } + } else if (test_sta_flag(sta, WLAN_STA_PS_STA)) { + return; + } else if (noack_success) { + /* nothing to do here, do not account as lost */ + } else { + ieee80211_lost_packet(sta, info); + } } rate_control_tx_status(local, sband, status); @@ -1164,6 +1149,10 @@ ieee80211s_update_metric(local, sta, status); } + if (skb && !(info->flags & IEEE80211_TX_CTL_HW_80211_ENCAP)) + return __ieee80211_tx_status(hw, status, rates_idx, + retry_count); + if (acked || noack_success) { I802_DEBUG_INC(local->dot11TransmittedFrameCount); if (!pubsta) @@ -1175,6 +1164,16 @@ } else { I802_DEBUG_INC(local->dot11FailedCount); } + +free: + if (!skb) + return; + + ieee80211_report_used_skb(local, skb, false); + if (status->free_list) + list_add_tail(&skb->list, status->free_list); + else + dev_kfree_skb(skb); } EXPORT_SYMBOL(ieee80211_tx_status_ext); @@ -1197,6 +1196,30 @@ } EXPORT_SYMBOL(ieee80211_tx_rate_update); +void ieee80211_tx_status_8023(struct ieee80211_hw *hw, + struct ieee80211_vif *vif, + struct sk_buff *skb) +{ + struct ieee80211_sub_if_data *sdata; + struct ieee80211_tx_status status = { + .skb = skb, + .info = IEEE80211_SKB_CB(skb), + }; + struct sta_info *sta; + + sdata = vif_to_sdata(vif); + + rcu_read_lock(); + + if (!ieee80211_lookup_ra_sta(sdata, skb, &sta) && !IS_ERR(sta)) + status.sta = &sta->sta; + + ieee80211_tx_status_ext(hw, &status); + + rcu_read_unlock(); +} +EXPORT_SYMBOL(ieee80211_tx_status_8023); + void ieee80211_report_low_ack(struct ieee80211_sta *pubsta, u32 num_packets) { struct sta_info *sta = container_of(pubsta, struct sta_info, sta); diff -u linux-oem-5.6-5.6.0/net/mac80211/tx.c linux-oem-5.6-5.6.0/net/mac80211/tx.c --- linux-oem-5.6-5.6.0/net/mac80211/tx.c +++ linux-oem-5.6-5.6.0/net/mac80211/tx.c @@ -530,7 +530,7 @@ info->control.jiffies = jiffies; info->control.vif = &tx->sdata->vif; - info->flags |= IEEE80211_TX_INTFL_NEED_TXPROCESSING; + info->control.flags |= IEEE80211_TX_INTCFL_NEED_TXPROCESSING; info->flags &= ~IEEE80211_TX_TEMPORARY_FLAGS; skb_queue_tail(&sta->ps_tx_buf[ac], tx->skb); spin_unlock(&sta->ps_lock); @@ -1132,7 +1132,7 @@ tx->sta->sta.addr, tx->sta->sta.aid); } info->control.vif = &tx->sdata->vif; - info->flags |= IEEE80211_TX_INTFL_NEED_TXPROCESSING; + info->control.flags |= IEEE80211_TX_INTCFL_NEED_TXPROCESSING; info->flags &= ~IEEE80211_TX_TEMPORARY_FLAGS; __skb_queue_tail(&tid_tx->pending, skb); if (skb_queue_len(&tid_tx->pending) > STA_MAX_TX_BUFFER) @@ -1177,7 +1177,7 @@ * we are doing the needed processing, so remove the flag * now. */ - info->flags &= ~IEEE80211_TX_INTFL_NEED_TXPROCESSING; + info->control.flags &= ~IEEE80211_TX_INTCFL_NEED_TXPROCESSING; hdr = (struct ieee80211_hdr *) skb->data; @@ -1256,7 +1256,8 @@ (info->control.flags & IEEE80211_TX_CTRL_PS_RESPONSE)) return NULL; - if (unlikely(!ieee80211_is_data_present(hdr->frame_control))) { + if (!(info->flags & IEEE80211_TX_CTL_HW_80211_ENCAP) && + unlikely(!ieee80211_is_data_present(hdr->frame_control))) { if ((!ieee80211_is_mgmt(hdr->frame_control) || ieee80211_is_bufferable_mmpdu(hdr->frame_control) || vif->type == NL80211_IFTYPE_STATION) && @@ -2366,9 +2367,9 @@ skb->data[14] == WLAN_TDLS_SNAP_RFTYPE; } -static int ieee80211_lookup_ra_sta(struct ieee80211_sub_if_data *sdata, - struct sk_buff *skb, - struct sta_info **sta_out) +int ieee80211_lookup_ra_sta(struct ieee80211_sub_if_data *sdata, + struct sk_buff *skb, + struct sta_info **sta_out) { struct sta_info *sta; @@ -2435,13 +2436,19 @@ return 0; } -static int ieee80211_store_ack_skb(struct ieee80211_local *local, +static u16 ieee80211_store_ack_skb(struct ieee80211_local *local, struct sk_buff *skb, - u32 *info_flags) + u32 *info_flags, + u64 *cookie) { - struct sk_buff *ack_skb = skb_clone_sk(skb); + struct sk_buff *ack_skb; u16 info_id = 0; + if (skb->sk) + ack_skb = skb_clone_sk(skb); + else + ack_skb = skb_clone(skb, GFP_ATOMIC); + if (ack_skb) { unsigned long flags; int id; @@ -2454,6 +2461,10 @@ if (id >= 0) { info_id = id; *info_flags |= IEEE80211_TX_CTL_REQ_TX_STATUS; + if (cookie) { + *cookie = ieee80211_mgmt_tx_cookie(local); + IEEE80211_SKB_CB(ack_skb)->ack.cookie = *cookie; + } } else { kfree_skb(ack_skb); } @@ -2483,7 +2494,8 @@ */ static struct sk_buff *ieee80211_build_hdr(struct ieee80211_sub_if_data *sdata, struct sk_buff *skb, u32 info_flags, - struct sta_info *sta, u32 ctrl_flags) + struct sta_info *sta, u32 ctrl_flags, + u64 *cookie) { struct ieee80211_local *local = sdata->local; struct ieee80211_tx_info *info; @@ -2754,9 +2766,11 @@ goto free; } - if (unlikely(!multicast && skb->sk && - skb_shinfo(skb)->tx_flags & SKBTX_WIFI_STATUS)) - info_id = ieee80211_store_ack_skb(local, skb, &info_flags); + if (unlikely(!multicast && ((skb->sk && + skb_shinfo(skb)->tx_flags & SKBTX_WIFI_STATUS) || + ctrl_flags & IEEE80211_TX_CTL_REQ_TX_STATUS))) + info_id = ieee80211_store_ack_skb(local, skb, &info_flags, + cookie); /* * If the skb is shared we need to obtain our own copy. @@ -3640,6 +3654,9 @@ else info->flags &= ~IEEE80211_TX_CTL_AMPDU; + if (info->flags & IEEE80211_TX_CTL_HW_80211_ENCAP) + goto encap_out; + if (info->control.flags & IEEE80211_TX_CTRL_FAST_XMIT) { struct sta_info *sta = container_of(txq->sta, struct sta_info, sta); @@ -3699,13 +3716,15 @@ break; } +encap_out: IEEE80211_SKB_CB(skb)->control.vif = vif; if (wiphy_ext_feature_isset(local->hw.wiphy, NL80211_EXT_FEATURE_AQL)) { + bool ampdu = txq->ac != IEEE80211_AC_VO; u32 airtime; airtime = ieee80211_calc_expected_tx_airtime(hw, vif, txq->sta, - skb->len); + skb->len, ampdu); if (airtime) { airtime = ieee80211_info_set_tx_time_est(info, airtime); ieee80211_sta_update_pending_airtime(local, tx.sta, @@ -3907,7 +3926,8 @@ void __ieee80211_subif_start_xmit(struct sk_buff *skb, struct net_device *dev, u32 info_flags, - u32 ctrl_flags) + u32 ctrl_flags, + u64 *cookie) { struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); struct ieee80211_local *local = sdata->local; @@ -3977,7 +3997,7 @@ skb_mark_not_on_list(skb); skb = ieee80211_build_hdr(sdata, skb, info_flags, - sta, ctrl_flags); + sta, ctrl_flags, cookie); if (IS_ERR(skb)) { kfree_skb_list(next); goto out; @@ -4119,11 +4139,158 @@ __skb_queue_head_init(&queue); ieee80211_convert_to_unicast(skb, dev, &queue); while ((skb = __skb_dequeue(&queue))) - __ieee80211_subif_start_xmit(skb, dev, 0, 0); + __ieee80211_subif_start_xmit(skb, dev, 0, 0, NULL); } else { - __ieee80211_subif_start_xmit(skb, dev, 0, 0); + __ieee80211_subif_start_xmit(skb, dev, 0, 0, NULL); + } + + return NETDEV_TX_OK; +} + +static bool ieee80211_tx_8023(struct ieee80211_sub_if_data *sdata, + struct sk_buff *skb, int led_len, + struct sta_info *sta, + bool txpending) +{ + struct ieee80211_local *local = sdata->local; + struct ieee80211_tx_control control = {}; + struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb); + struct ieee80211_sta *pubsta = NULL; + unsigned long flags; + int q = info->hw_queue; + + if (ieee80211_queue_skb(local, sdata, sta, skb)) + return true; + + spin_lock_irqsave(&local->queue_stop_reason_lock, flags); + + if (local->queue_stop_reasons[q] || + (!txpending && !skb_queue_empty(&local->pending[q]))) { + if (txpending) + skb_queue_head(&local->pending[q], skb); + else + skb_queue_tail(&local->pending[q], skb); + + spin_unlock_irqrestore(&local->queue_stop_reason_lock, flags); + + return false; + } + + spin_unlock_irqrestore(&local->queue_stop_reason_lock, flags); + + if (sta && sta->uploaded) + pubsta = &sta->sta; + + control.sta = pubsta; + + drv_tx(local, &control, skb); + + return true; +} + +static void ieee80211_8023_xmit(struct ieee80211_sub_if_data *sdata, + struct net_device *dev, struct sta_info *sta, + struct ieee80211_key *key, struct sk_buff *skb) +{ + struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb); + struct ieee80211_local *local = sdata->local; + struct tid_ampdu_tx *tid_tx; + u8 tid; + + if (local->ops->wake_tx_queue) { + u16 queue = __ieee80211_select_queue(sdata, sta, skb); + skb_set_queue_mapping(skb, queue); + skb_get_hash(skb); + } + + if (unlikely(test_bit(SCAN_SW_SCANNING, &local->scanning)) && + test_bit(SDATA_STATE_OFFCHANNEL, &sdata->state)) + goto out_free; + + memset(info, 0, sizeof(*info)); + + tid = skb->priority & IEEE80211_QOS_CTL_TAG1D_MASK; + tid_tx = rcu_dereference(sta->ampdu_mlme.tid_tx[tid]); + if (tid_tx) { + if (!test_bit(HT_AGG_STATE_OPERATIONAL, &tid_tx->state)) { + /* fall back to non-offload slow path */ + __ieee80211_subif_start_xmit(skb, dev, 0, 0, NULL); + return; + } + + info->flags |= IEEE80211_TX_CTL_AMPDU; + if (tid_tx->timeout) + tid_tx->last_tx = jiffies; + } + + if (unlikely(skb->sk && + skb_shinfo(skb)->tx_flags & SKBTX_WIFI_STATUS)) + info->ack_frame_id = ieee80211_store_ack_skb(local, skb, + &info->flags, NULL); + + info->hw_queue = sdata->vif.hw_queue[skb_get_queue_mapping(skb)]; + + ieee80211_tx_stats(dev, skb->len); + + sta->tx_stats.bytes[skb_get_queue_mapping(skb)] += skb->len; + sta->tx_stats.packets[skb_get_queue_mapping(skb)]++; + + if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN) + sdata = container_of(sdata->bss, + struct ieee80211_sub_if_data, u.ap); + + info->flags |= IEEE80211_TX_CTL_HW_80211_ENCAP; + info->control.vif = &sdata->vif; + + if (key) + info->control.hw_key = &key->conf; + + ieee80211_tx_8023(sdata, skb, skb->len, sta, false); + + return; + +out_free: + kfree_skb(skb); +} + +netdev_tx_t ieee80211_subif_start_xmit_8023(struct sk_buff *skb, + struct net_device *dev) +{ + struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); + struct ethhdr *ehdr = (struct ethhdr *)skb->data; + struct ieee80211_key *key; + struct sta_info *sta; + bool offload = true; + + if (unlikely(skb->len < ETH_HLEN)) { + kfree_skb(skb); + return NETDEV_TX_OK; + } + + rcu_read_lock(); + + if (ieee80211_lookup_ra_sta(sdata, skb, &sta)) { + kfree_skb(skb); + goto out; } + if (unlikely(IS_ERR_OR_NULL(sta) || !sta->uploaded || + !test_sta_flag(sta, WLAN_STA_AUTHORIZED) || + sdata->control_port_protocol == ehdr->h_proto)) + offload = false; + else if ((key = rcu_dereference(sta->ptk[sta->ptk_idx])) && + (!(key->flags & KEY_FLAG_UPLOADED_TO_HARDWARE) || + key->conf.cipher == WLAN_CIPHER_SUITE_TKIP)) + offload = false; + + if (offload) + ieee80211_8023_xmit(sdata, dev, sta, key, skb); + else + ieee80211_subif_start_xmit(skb, dev); + +out: + rcu_read_unlock(); + return NETDEV_TX_OK; } @@ -4146,7 +4313,7 @@ goto out; } - skb = ieee80211_build_hdr(sdata, skb, info_flags, sta, 0); + skb = ieee80211_build_hdr(sdata, skb, info_flags, sta, 0, NULL); if (IS_ERR(skb)) goto out; @@ -4197,7 +4364,7 @@ sdata = vif_to_sdata(info->control.vif); - if (info->flags & IEEE80211_TX_INTFL_NEED_TXPROCESSING) { + if (info->control.flags & IEEE80211_TX_INTCFL_NEED_TXPROCESSING) { chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); if (unlikely(!chanctx_conf)) { dev_kfree_skb(skb); @@ -4205,6 +4372,16 @@ } info->band = chanctx_conf->def.chan->band; result = ieee80211_tx(sdata, NULL, skb, true, 0); + } else if (info->flags & IEEE80211_TX_CTL_HW_80211_ENCAP) { + if (ieee80211_lookup_ra_sta(sdata, skb, &sta)) { + dev_kfree_skb(skb); + return true; + } + + if (IS_ERR(sta) || (sta && !sta->uploaded)) + sta = NULL; + + result = ieee80211_tx_8023(sdata, skb, skb->len, sta, true); } else { struct sk_buff_head skbs; @@ -4360,14 +4537,14 @@ return 0; } -static void ieee80211_set_csa(struct ieee80211_sub_if_data *sdata, - struct beacon_data *beacon) +static void ieee80211_set_beacon_cntdwn(struct ieee80211_sub_if_data *sdata, + struct beacon_data *beacon) { struct probe_resp *resp; u8 *beacon_data; size_t beacon_data_len; int i; - u8 count = beacon->csa_current_counter; + u8 count = beacon->cntdwn_current_counter; switch (sdata->vif.type) { case NL80211_IFTYPE_AP: @@ -4387,36 +4564,36 @@ } rcu_read_lock(); - for (i = 0; i < IEEE80211_MAX_CSA_COUNTERS_NUM; ++i) { + for (i = 0; i < IEEE80211_MAX_CNTDWN_COUNTERS_NUM; ++i) { resp = rcu_dereference(sdata->u.ap.probe_resp); - if (beacon->csa_counter_offsets[i]) { - if (WARN_ON_ONCE(beacon->csa_counter_offsets[i] >= + if (beacon->cntdwn_counter_offsets[i]) { + if (WARN_ON_ONCE(beacon->cntdwn_counter_offsets[i] >= beacon_data_len)) { rcu_read_unlock(); return; } - beacon_data[beacon->csa_counter_offsets[i]] = count; + beacon_data[beacon->cntdwn_counter_offsets[i]] = count; } if (sdata->vif.type == NL80211_IFTYPE_AP && resp) - resp->data[resp->csa_counter_offsets[i]] = count; + resp->data[resp->cntdwn_counter_offsets[i]] = count; } rcu_read_unlock(); } -static u8 __ieee80211_csa_update_counter(struct beacon_data *beacon) +static u8 __ieee80211_beacon_update_cntdwn(struct beacon_data *beacon) { - beacon->csa_current_counter--; + beacon->cntdwn_current_counter--; /* the counter should never reach 0 */ - WARN_ON_ONCE(!beacon->csa_current_counter); + WARN_ON_ONCE(!beacon->cntdwn_current_counter); - return beacon->csa_current_counter; + return beacon->cntdwn_current_counter; } -u8 ieee80211_csa_update_counter(struct ieee80211_vif *vif) +u8 ieee80211_beacon_update_cntdwn(struct ieee80211_vif *vif) { struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif); struct beacon_data *beacon = NULL; @@ -4434,15 +4611,15 @@ if (!beacon) goto unlock; - count = __ieee80211_csa_update_counter(beacon); + count = __ieee80211_beacon_update_cntdwn(beacon); unlock: rcu_read_unlock(); return count; } -EXPORT_SYMBOL(ieee80211_csa_update_counter); +EXPORT_SYMBOL(ieee80211_beacon_update_cntdwn); -void ieee80211_csa_set_counter(struct ieee80211_vif *vif, u8 counter) +void ieee80211_beacon_set_cntdwn(struct ieee80211_vif *vif, u8 counter) { struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif); struct beacon_data *beacon = NULL; @@ -4459,15 +4636,15 @@ if (!beacon) goto unlock; - if (counter < beacon->csa_current_counter) - beacon->csa_current_counter = counter; + if (counter < beacon->cntdwn_current_counter) + beacon->cntdwn_current_counter = counter; unlock: rcu_read_unlock(); } -EXPORT_SYMBOL(ieee80211_csa_set_counter); +EXPORT_SYMBOL(ieee80211_beacon_set_cntdwn); -bool ieee80211_csa_is_complete(struct ieee80211_vif *vif) +bool ieee80211_beacon_cntdwn_is_complete(struct ieee80211_vif *vif) { struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif); struct beacon_data *beacon = NULL; @@ -4510,20 +4687,21 @@ goto out; } - if (!beacon->csa_counter_offsets[0]) + if (!beacon->cntdwn_counter_offsets[0]) goto out; - if (WARN_ON_ONCE(beacon->csa_counter_offsets[0] > beacon_data_len)) + if (WARN_ON_ONCE(beacon->cntdwn_counter_offsets[0] > beacon_data_len)) goto out; - if (beacon_data[beacon->csa_counter_offsets[0]] == 1) + if (beacon_data[beacon->cntdwn_counter_offsets[0]] == 1) ret = true; + out: rcu_read_unlock(); return ret; } -EXPORT_SYMBOL(ieee80211_csa_is_complete); +EXPORT_SYMBOL(ieee80211_beacon_cntdwn_is_complete); static struct sk_buff * __ieee80211_beacon_get(struct ieee80211_hw *hw, @@ -4557,11 +4735,11 @@ beacon = rcu_dereference(ap->beacon); if (beacon) { - if (beacon->csa_counter_offsets[0]) { + if (beacon->cntdwn_counter_offsets[0]) { if (!is_template) - __ieee80211_csa_update_counter(beacon); + ieee80211_beacon_update_cntdwn(vif); - ieee80211_set_csa(sdata, beacon); + ieee80211_set_beacon_cntdwn(sdata, beacon); } /* @@ -4602,11 +4780,11 @@ if (!beacon) goto out; - if (beacon->csa_counter_offsets[0]) { + if (beacon->cntdwn_counter_offsets[0]) { if (!is_template) - __ieee80211_csa_update_counter(beacon); + __ieee80211_beacon_update_cntdwn(beacon); - ieee80211_set_csa(sdata, beacon); + ieee80211_set_beacon_cntdwn(sdata, beacon); } skb = dev_alloc_skb(local->tx_headroom + beacon->head_len + @@ -4626,16 +4804,16 @@ if (!beacon) goto out; - if (beacon->csa_counter_offsets[0]) { + if (beacon->cntdwn_counter_offsets[0]) { if (!is_template) /* TODO: For mesh csa_counter is in TU, so * decrementing it by one isn't correct, but * for now we leave it consistent with overall * mac80211's behavior. */ - __ieee80211_csa_update_counter(beacon); + __ieee80211_beacon_update_cntdwn(beacon); - ieee80211_set_csa(sdata, beacon); + ieee80211_set_beacon_cntdwn(sdata, beacon); } if (ifmsh->sync_ops) @@ -4667,13 +4845,13 @@ if (offs && beacon) { int i; - for (i = 0; i < IEEE80211_MAX_CSA_COUNTERS_NUM; i++) { - u16 csa_off = beacon->csa_counter_offsets[i]; + for (i = 0; i < IEEE80211_MAX_CNTDWN_COUNTERS_NUM; i++) { + u16 csa_off = beacon->cntdwn_counter_offsets[i]; if (!csa_off) continue; - offs->csa_counter_offs[i] = csa_off_base + csa_off; + offs->cntdwn_counter_offs[i] = csa_off_base + csa_off; } } @@ -5144,14 +5322,15 @@ int ieee80211_tx_control_port(struct wiphy *wiphy, struct net_device *dev, const u8 *buf, size_t len, - const u8 *dest, __be16 proto, bool unencrypted) + const u8 *dest, __be16 proto, bool unencrypted, + u64 *cookie) { struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); struct ieee80211_local *local = sdata->local; struct sk_buff *skb; struct ethhdr *ehdr; u32 ctrl_flags = 0; - u32 flags; + u32 flags = 0; /* Only accept CONTROL_PORT_PROTOCOL configured in CONNECT/ASSOCIATE * or Pre-Authentication @@ -5164,9 +5343,13 @@ ctrl_flags |= IEEE80211_TX_CTRL_PORT_CTRL_PROTO; if (unencrypted) - flags = IEEE80211_TX_INTFL_DONT_ENCRYPT; - else - flags = 0; + flags |= IEEE80211_TX_INTFL_DONT_ENCRYPT; + + if (cookie) + ctrl_flags |= IEEE80211_TX_CTL_REQ_TX_STATUS; + + flags |= IEEE80211_TX_INTFL_NL80211_FRAME_TX | + IEEE80211_TX_CTL_INJECTED; skb = dev_alloc_skb(local->hw.extra_tx_headroom + sizeof(struct ethhdr) + len); @@ -5187,10 +5370,15 @@ skb_reset_network_header(skb); skb_reset_mac_header(skb); + /* mutex lock is only needed for incrementing the cookie counter */ + mutex_lock(&local->mtx); + local_bh_disable(); - __ieee80211_subif_start_xmit(skb, skb->dev, flags, ctrl_flags); + __ieee80211_subif_start_xmit(skb, skb->dev, flags, ctrl_flags, cookie); local_bh_enable(); + mutex_unlock(&local->mtx); + return 0; } @@ -5217,7 +5405,8 @@ local_bh_disable(); __ieee80211_subif_start_xmit(skb, skb->dev, 0, - IEEE80211_TX_CTRL_SKIP_MPATH_LOOKUP); + IEEE80211_TX_CTRL_SKIP_MPATH_LOOKUP, + NULL); local_bh_enable(); return 0; diff -u linux-oem-5.6-5.6.0/net/qrtr/qrtr.c linux-oem-5.6-5.6.0/net/qrtr/qrtr.c --- linux-oem-5.6-5.6.0/net/qrtr/qrtr.c +++ linux-oem-5.6-5.6.0/net/qrtr/qrtr.c @@ -7,7 +7,6 @@ #include #include #include /* For TIOCINQ/OUTQ */ -#include #include #include @@ -96,7 +95,7 @@ return container_of(sk, struct qrtr_sock, sk); } -static unsigned int qrtr_local_nid = NUMA_NO_NODE; +static unsigned int qrtr_local_nid = 1; /* for node ids */ static RADIX_TREE(qrtr_nodes, GFP_ATOMIC); @@ -167,6 +166,7 @@ { struct qrtr_node *node = container_of(kref, struct qrtr_node, ref); struct radix_tree_iter iter; + struct qrtr_tx_flow *flow; unsigned long flags; void __rcu **slot; @@ -182,8 +182,9 @@ /* Free tx flow counters */ radix_tree_for_each_slot(slot, &node->qrtr_tx_flow, &iter, 0) { + flow = *slot; radix_tree_iter_delete(&node->qrtr_tx_flow, &iter, slot); - kfree(*slot); + kfree(flow); } kfree(node); } @@ -331,8 +332,7 @@ { struct qrtr_hdr_v1 *hdr; size_t len = skb->len; - int rc = -ENODEV; - int confirm_rx; + int rc, confirm_rx; confirm_rx = qrtr_tx_wait(node, to->sq_node, to->sq_port, type); if (confirm_rx < 0) { @@ -356,15 +356,17 @@ hdr->size = cpu_to_le32(len); hdr->confirm_rx = !!confirm_rx; - skb_put_padto(skb, ALIGN(len, 4) + sizeof(*hdr)); - - mutex_lock(&node->ep_lock); - if (node->ep) - rc = node->ep->xmit(node->ep, skb); - else - kfree_skb(skb); - mutex_unlock(&node->ep_lock); + rc = skb_put_padto(skb, ALIGN(len, 4) + sizeof(*hdr)); + if (!rc) { + mutex_lock(&node->ep_lock); + rc = -ENODEV; + if (node->ep) + rc = node->ep->xmit(node->ep, skb); + else + kfree_skb(skb); + mutex_unlock(&node->ep_lock); + } /* Need to ensure that a subsequent message carries the otherwise lost * confirm_rx flag if we dropped this one */ if (rc && confirm_rx) @@ -428,7 +430,7 @@ unsigned int ver; size_t hdrlen; - if (len & 3) + if (len == 0 || len & 3) return -EINVAL; skb = netdev_alloc_skb(NULL, len); @@ -442,6 +444,8 @@ switch (ver) { case QRTR_PROTO_VER_1: + if (len < sizeof(*v1)) + goto err; v1 = data; hdrlen = sizeof(*v1); @@ -455,6 +459,8 @@ size = le32_to_cpu(v1->size); break; case QRTR_PROTO_VER_2: + if (len < sizeof(*v2)) + goto err; v2 = data; hdrlen = sizeof(*v2) + v2->optlen; @@ -687,23 +693,25 @@ */ static int qrtr_port_assign(struct qrtr_sock *ipc, int *port) { + u32 min_port; int rc; mutex_lock(&qrtr_port_lock); if (!*port) { - rc = idr_alloc(&qrtr_ports, ipc, - QRTR_MIN_EPH_SOCKET, QRTR_MAX_EPH_SOCKET + 1, - GFP_ATOMIC); - if (rc >= 0) - *port = rc; + min_port = QRTR_MIN_EPH_SOCKET; + rc = idr_alloc_u32(&qrtr_ports, ipc, &min_port, QRTR_MAX_EPH_SOCKET, GFP_ATOMIC); + if (!rc) + *port = min_port; } else if (*port < QRTR_MIN_EPH_SOCKET && !capable(CAP_NET_ADMIN)) { rc = -EACCES; } else if (*port == QRTR_PORT_CTRL) { - rc = idr_alloc(&qrtr_ports, ipc, 0, 1, GFP_ATOMIC); + min_port = 0; + rc = idr_alloc_u32(&qrtr_ports, ipc, &min_port, 0, GFP_ATOMIC); } else { - rc = idr_alloc(&qrtr_ports, ipc, *port, *port + 1, GFP_ATOMIC); - if (rc >= 0) - *port = rc; + min_port = *port; + rc = idr_alloc_u32(&qrtr_ports, ipc, &min_port, *port, GFP_ATOMIC); + if (!rc) + *port = min_port; } mutex_unlock(&qrtr_port_lock); @@ -1175,6 +1183,7 @@ sk->sk_state_change(sk); sock_set_flag(sk, SOCK_DEAD); + sock_orphan(sk); sock->sk = NULL; if (!sock_flag(sk, SOCK_ZAPPED)) @@ -1242,38 +1251,6 @@ return 0; } -static const struct nla_policy qrtr_policy[IFA_MAX + 1] = { - [IFA_LOCAL] = { .type = NLA_U32 }, -}; - -static int qrtr_addr_doit(struct sk_buff *skb, struct nlmsghdr *nlh, - struct netlink_ext_ack *extack) -{ - struct nlattr *tb[IFA_MAX + 1]; - struct ifaddrmsg *ifm; - int rc; - - if (!netlink_capable(skb, CAP_NET_ADMIN)) - return -EPERM; - - if (!netlink_capable(skb, CAP_SYS_ADMIN)) - return -EPERM; - - ASSERT_RTNL(); - - rc = nlmsg_parse_deprecated(nlh, sizeof(*ifm), tb, IFA_MAX, - qrtr_policy, extack); - if (rc < 0) - return rc; - - ifm = nlmsg_data(nlh); - if (!tb[IFA_LOCAL]) - return -EINVAL; - - qrtr_local_nid = nla_get_u32(tb[IFA_LOCAL]); - return 0; -} - static const struct net_proto_family qrtr_family = { .owner = THIS_MODULE, .family = AF_QIPCRTR, @@ -1294,11 +1271,7 @@ return rc; } - rc = rtnl_register_module(THIS_MODULE, PF_QIPCRTR, RTM_NEWADDR, qrtr_addr_doit, NULL, 0); - if (rc) { - sock_unregister(qrtr_family.family); - proto_unregister(&qrtr_proto); - } + qrtr_ns_init(); return rc; } @@ -1306,7 +1279,7 @@ static void __exit qrtr_proto_fini(void) { - rtnl_unregister(PF_QIPCRTR, RTM_NEWADDR); + qrtr_ns_remove(); sock_unregister(qrtr_family.family); proto_unregister(&qrtr_proto); } diff -u linux-oem-5.6-5.6.0/net/wireless/core.c linux-oem-5.6-5.6.0/net/wireless/core.c --- linux-oem-5.6-5.6.0/net/wireless/core.c +++ linux-oem-5.6-5.6.0/net/wireless/core.c @@ -5,7 +5,7 @@ * Copyright 2006-2010 Johannes Berg * Copyright 2013-2014 Intel Mobile Communications GmbH * Copyright 2015-2017 Intel Deutschland GmbH - * Copyright (C) 2018-2019 Intel Corporation + * Copyright (C) 2018-2020 Intel Corporation */ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt @@ -788,6 +788,7 @@ /* sanity check supported bands/channels */ for (band = 0; band < NUM_NL80211_BANDS; band++) { u16 types = 0; + bool have_he = false; sband = wiphy->bands[band]; if (!sband) @@ -804,6 +805,11 @@ !sband->n_bitrates)) return -EINVAL; + if (WARN_ON(band == NL80211_BAND_6GHZ && + (sband->ht_cap.ht_supported || + sband->vht_cap.vht_supported))) + return -EINVAL; + /* * Since cfg80211_disable_40mhz_24ghz is global, we can * modify the sband's ht data even if the driver uses a @@ -848,8 +854,17 @@ return -EINVAL; types |= iftd->types_mask; + + if (i == 0) + have_he = iftd->he_cap.has_he; + else + have_he = have_he && + iftd->he_cap.has_he; } + if (WARN_ON(!have_he && band == NL80211_BAND_6GHZ)) + return -EINVAL; + have_band = true; } diff -u linux-oem-5.6-5.6.0/net/wireless/nl80211.c linux-oem-5.6-5.6.0/net/wireless/nl80211.c --- linux-oem-5.6-5.6.0/net/wireless/nl80211.c +++ linux-oem-5.6-5.6.0/net/wireless/nl80211.c @@ -5,7 +5,7 @@ * Copyright 2006-2010 Johannes Berg * Copyright 2013-2014 Intel Mobile Communications GmbH * Copyright 2015-2017 Intel Deutschland GmbH - * Copyright (C) 2018-2019 Intel Corporation + * Copyright (C) 2018-2020 Intel Corporation */ #include @@ -322,6 +322,13 @@ NLA_POLICY_RANGE(NLA_U8, 1, 20), }; +static const struct nla_policy +he_bss_color_policy[NL80211_HE_BSS_COLOR_ATTR_MAX + 1] = { + [NL80211_HE_BSS_COLOR_ATTR_COLOR] = NLA_POLICY_RANGE(NLA_U8, 1, 63), + [NL80211_HE_BSS_COLOR_ATTR_DISABLED] = { .type = NLA_FLAG }, + [NL80211_HE_BSS_COLOR_ATTR_PARTIAL] = { .type = NLA_FLAG }, +}; + const struct nla_policy nl80211_policy[NUM_NL80211_ATTR] = { [0] = { .strict_start_type = NL80211_ATTR_HE_OBSS_PD }, [NL80211_ATTR_WIPHY] = { .type = NLA_U32 }, @@ -630,6 +637,11 @@ [NL80211_ATTR_TWT_RESPONDER] = { .type = NLA_FLAG }, [NL80211_ATTR_HE_OBSS_PD] = NLA_POLICY_NESTED(he_obss_pd_policy), [NL80211_ATTR_VLAN_ID] = NLA_POLICY_RANGE(NLA_U16, 1, VLAN_N_VID - 2), + [NL80211_ATTR_HE_BSS_COLOR] = NLA_POLICY_NESTED(he_bss_color_policy), + [NL80211_ATTR_HE_6GHZ_CAPABILITY] = { + .type = NLA_EXACT_LEN, + .len = sizeof(struct ieee80211_he_6ghz_capa), + }, }; /* policy for the key attributes */ @@ -1538,6 +1550,7 @@ static int nl80211_send_iftype_data(struct sk_buff *msg, + const struct ieee80211_supported_band *sband, const struct ieee80211_sband_iftype_data *iftdata) { const struct ieee80211_sta_he_cap *he_cap = &iftdata->he_cap; @@ -1561,6 +1574,12 @@ return -ENOBUFS; } + if (sband->band == NL80211_BAND_6GHZ && + nla_put(msg, NL80211_BAND_IFTYPE_ATTR_HE_6GHZ_CAPA, + sizeof(iftdata->he_6ghz_capa), + &iftdata->he_6ghz_capa)) + return -ENOBUFS; + return 0; } @@ -1609,7 +1628,7 @@ if (!iftdata) return -ENOBUFS; - err = nl80211_send_iftype_data(msg, + err = nl80211_send_iftype_data(msg, sband, &sband->iftype_data[i]); if (err) return err; @@ -4516,6 +4535,30 @@ return 0; } +static int nl80211_parse_he_bss_color(struct nlattr *attrs, + struct cfg80211_he_bss_color *he_bss_color) +{ + struct nlattr *tb[NL80211_HE_BSS_COLOR_ATTR_MAX + 1]; + int err; + + err = nla_parse_nested(tb, NL80211_HE_BSS_COLOR_ATTR_MAX, attrs, + he_bss_color_policy, NULL); + if (err) + return err; + + if (!tb[NL80211_HE_BSS_COLOR_ATTR_COLOR]) + return -EINVAL; + + he_bss_color->color = + nla_get_u8(tb[NL80211_HE_BSS_COLOR_ATTR_COLOR]); + he_bss_color->enabled = + !nla_get_flag(tb[NL80211_HE_BSS_COLOR_ATTR_DISABLED]); + he_bss_color->partial = + nla_get_flag(tb[NL80211_HE_BSS_COLOR_ATTR_PARTIAL]); + + return 0; +} + static void nl80211_check_ap_rate_selectors(struct cfg80211_ap_settings *params, const u8 *rates) { @@ -4560,6 +4603,9 @@ cap = cfg80211_find_ext_ie(WLAN_EID_EXT_HE_CAPABILITY, ies, ies_len); if (cap && cap[1] >= sizeof(*params->he_cap) + 1) params->he_cap = (void *)(cap + 3); + cap = cfg80211_find_ext_ie(WLAN_EID_EXT_HE_OPERATION, ies, ies_len); + if (cap && cap[1] >= sizeof(*params->he_oper) + 1) + params->he_oper = (void *)(cap + 3); } static bool nl80211_get_ap_channel(struct cfg80211_registered_device *rdev, @@ -4807,6 +4853,14 @@ goto out; } + if (info->attrs[NL80211_ATTR_HE_BSS_COLOR]) { + err = nl80211_parse_he_bss_color( + info->attrs[NL80211_ATTR_HE_BSS_COLOR], + ¶ms.he_bss_color); + if (err) + return err; + } + nl80211_calculate_ap_params(¶ms); if (info->attrs[NL80211_ATTR_EXTERNAL_AUTH_SUPPORT]) @@ -5787,6 +5841,10 @@ nla_get_u8(info->attrs[NL80211_ATTR_OPMODE_NOTIF]); } + if (info->attrs[NL80211_ATTR_HE_6GHZ_CAPABILITY]) + params.he_6ghz_capa = + nla_data(info->attrs[NL80211_ATTR_HE_CAPABILITY]); + if (info->attrs[NL80211_ATTR_AIRTIME_WEIGHT]) params.airtime_weight = nla_get_u16(info->attrs[NL80211_ATTR_AIRTIME_WEIGHT]); @@ -5921,6 +5979,10 @@ return -EINVAL; } + if (info->attrs[NL80211_ATTR_HE_6GHZ_CAPABILITY]) + params.he_6ghz_capa = + nla_data(info->attrs[NL80211_ATTR_HE_6GHZ_CAPABILITY]); + if (info->attrs[NL80211_ATTR_OPMODE_NOTIF]) { params.opmode_notif_used = true; params.opmode_notif = @@ -5965,10 +6027,14 @@ params.vht_capa = NULL; /* HE requires WME */ - if (params.he_capa_len) + if (params.he_capa_len || params.he_6ghz_capa) return -EINVAL; } + /* Ensure that HT/VHT capabilities are not set for 6 GHz HE STA */ + if (params.he_6ghz_capa && (params.ht_capa || params.vht_capa)) + return -EINVAL; + /* When you run into this, adjust the code below for the new flag */ BUILD_BUG_ON(NL80211_STA_FLAG_MAX != 7); @@ -13607,6 +13673,7 @@ static int nl80211_tx_control_port(struct sk_buff *skb, struct genl_info *info) { + bool dont_wait_for_ack = info->attrs[NL80211_ATTR_DONT_WAIT_FOR_ACK]; struct cfg80211_registered_device *rdev = info->user_ptr[0]; struct net_device *dev = info->user_ptr[1]; struct wireless_dev *wdev = dev->ieee80211_ptr; @@ -13615,6 +13682,7 @@ u8 *dest; u16 proto; bool noencrypt; + u64 cookie = 0; int err; if (!wiphy_ext_feature_isset(&rdev->wiphy, @@ -13659,9 +13727,12 @@ noencrypt = nla_get_flag(info->attrs[NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT]); - return rdev_tx_control_port(rdev, dev, buf, len, - dest, cpu_to_be16(proto), noencrypt); - + err = rdev_tx_control_port(rdev, dev, buf, len, + dest, cpu_to_be16(proto), noencrypt, + dont_wait_for_ack ? NULL : &cookie); + if (!err && !dont_wait_for_ack) + nl_set_extack_cookie_u64(info->extack, cookie); + return err; out: wdev_unlock(wdev); return err; @@ -15867,8 +15938,9 @@ return -ENOBUFS; } -void cfg80211_mgmt_tx_status(struct wireless_dev *wdev, u64 cookie, - const u8 *buf, size_t len, bool ack, gfp_t gfp) +static void nl80211_frame_tx_status(struct wireless_dev *wdev, u64 cookie, + const u8 *buf, size_t len, bool ack, + gfp_t gfp, enum nl80211_commands command) { struct wiphy *wiphy = wdev->wiphy; struct cfg80211_registered_device *rdev = wiphy_to_rdev(wiphy); @@ -15876,13 +15948,16 @@ struct sk_buff *msg; void *hdr; - trace_cfg80211_mgmt_tx_status(wdev, cookie, ack); + if (command == NL80211_CMD_FRAME_TX_STATUS) + trace_cfg80211_mgmt_tx_status(wdev, cookie, ack); + else + trace_cfg80211_control_port_tx_status(wdev, cookie, ack); msg = nlmsg_new(100 + len, gfp); if (!msg) return; - hdr = nl80211hdr_put(msg, 0, 0, 0, NL80211_CMD_FRAME_TX_STATUS); + hdr = nl80211hdr_put(msg, 0, 0, 0, command); if (!hdr) { nlmsg_free(msg); return; @@ -15905,9 +15980,25 @@ NL80211_MCGRP_MLME, gfp); return; - nla_put_failure: +nla_put_failure: nlmsg_free(msg); } + +void cfg80211_control_port_tx_status(struct wireless_dev *wdev, u64 cookie, + const u8 *buf, size_t len, bool ack, + gfp_t gfp) +{ + nl80211_frame_tx_status(wdev, cookie, buf, len, ack, gfp, + NL80211_CMD_CONTROL_PORT_FRAME_TX_STATUS); +} +EXPORT_SYMBOL(cfg80211_control_port_tx_status); + +void cfg80211_mgmt_tx_status(struct wireless_dev *wdev, u64 cookie, + const u8 *buf, size_t len, bool ack, gfp_t gfp) +{ + nl80211_frame_tx_status(wdev, cookie, buf, len, ack, gfp, + NL80211_CMD_FRAME_TX_STATUS); +} EXPORT_SYMBOL(cfg80211_mgmt_tx_status); static int __nl80211_rx_control_port(struct net_device *dev, diff -u linux-oem-5.6-5.6.0/sound/pci/hda/hda_intel.c linux-oem-5.6-5.6.0/sound/pci/hda/hda_intel.c --- linux-oem-5.6-5.6.0/sound/pci/hda/hda_intel.c +++ linux-oem-5.6-5.6.0/sound/pci/hda/hda_intel.c @@ -985,7 +985,7 @@ display_power(chip, false); } -static void __azx_runtime_resume(struct azx *chip, bool from_rt) +static void __azx_runtime_resume(struct azx *chip) { struct hda_intel *hda = container_of(chip, struct hda_intel, chip); struct hdac_bus *bus = azx_bus(chip); @@ -1002,7 +1002,8 @@ azx_init_pci(chip); hda_intel_init_chip(chip, true); - if (from_rt) { + /* Avoid codec resume if runtime resume is for system suspend */ + if (!chip->pm_prepared) { list_for_each_codec(codec, &chip->bus) { if (codec->relaxed_resume) continue; @@ -1018,6 +1019,29 @@ } #ifdef CONFIG_PM_SLEEP +static int azx_prepare(struct device *dev) +{ + struct snd_card *card = dev_get_drvdata(dev); + struct azx *chip; + + chip = card->private_data; + chip->pm_prepared = 1; + + /* HDA controller always requires different WAKEEN for runtime suspend + * and system suspend, so don't use direct-complete here. + */ + return 0; +} + +static void azx_complete(struct device *dev) +{ + struct snd_card *card = dev_get_drvdata(dev); + struct azx *chip; + + chip = card->private_data; + chip->pm_prepared = 0; +} + static int azx_suspend(struct device *dev) { struct snd_card *card = dev_get_drvdata(dev); @@ -1029,8 +1053,7 @@ chip = card->private_data; bus = azx_bus(chip); - snd_power_change_state(card, SNDRV_CTL_POWER_D3hot); - pm_runtime_force_suspend(dev); + __azx_runtime_suspend(chip); if (bus->irq >= 0) { free_irq(bus->irq, chip); bus->irq = -1; @@ -1059,8 +1082,7 @@ if (azx_acquire_irq(chip, 1) < 0) return -EIO; - pm_runtime_force_resume(dev); - snd_power_change_state(card, SNDRV_CTL_POWER_D0); + __azx_runtime_resume(chip); trace_azx_resume(chip); return 0; @@ -1108,10 +1130,7 @@ chip = card->private_data; /* enable controller wake up event */ - if (snd_power_get_state(card) == SNDRV_CTL_POWER_D0) { - azx_writew(chip, WAKEEN, azx_readw(chip, WAKEEN) | - STATESTS_INT_MASK); - } + azx_writew(chip, WAKEEN, azx_readw(chip, WAKEEN) | STATESTS_INT_MASK); __azx_runtime_suspend(chip); trace_azx_runtime_suspend(chip); @@ -1122,18 +1141,14 @@ { struct snd_card *card = dev_get_drvdata(dev); struct azx *chip; - bool from_rt = snd_power_get_state(card) == SNDRV_CTL_POWER_D0; if (!azx_is_pm_ready(card)) return 0; chip = card->private_data; - __azx_runtime_resume(chip, from_rt); + __azx_runtime_resume(chip); /* disable controller Wake Up event*/ - if (from_rt) { - azx_writew(chip, WAKEEN, azx_readw(chip, WAKEEN) & - ~STATESTS_INT_MASK); - } + azx_writew(chip, WAKEEN, azx_readw(chip, WAKEEN) & ~STATESTS_INT_MASK); trace_azx_runtime_resume(chip); return 0; @@ -1167,6 +1182,8 @@ static const struct dev_pm_ops azx_pm = { SET_SYSTEM_SLEEP_PM_OPS(azx_suspend, azx_resume) #ifdef CONFIG_PM_SLEEP + .prepare = azx_prepare, + .complete = azx_complete, .freeze_noirq = azx_freeze_noirq, .thaw_noirq = azx_thaw_noirq, #endif @@ -2345,6 +2362,7 @@ if (azx_has_pm_runtime(chip)) { pm_runtime_use_autosuspend(&pci->dev); + pm_runtime_allow(&pci->dev); pm_runtime_put_autosuspend(&pci->dev); } diff -u linux-oem-5.6-5.6.0/sound/pci/hda/patch_realtek.c linux-oem-5.6-5.6.0/sound/pci/hda/patch_realtek.c --- linux-oem-5.6-5.6.0/sound/pci/hda/patch_realtek.c +++ linux-oem-5.6-5.6.0/sound/pci/hda/patch_realtek.c @@ -119,6 +119,7 @@ unsigned int no_shutup_pins:1; unsigned int ultra_low_power:1; unsigned int has_hs_key:1; + unsigned int no_internal_mic_pin:1; /* for PLL fix */ hda_nid_t pll_nid; @@ -4464,6 +4465,7 @@ static void alc_headset_mode_unplugged(struct hda_codec *codec) { + struct alc_spec *spec = codec->spec; static const struct coef_fw coef0255[] = { WRITE_COEF(0x1b, 0x0c0b), /* LDO and MISC control */ WRITE_COEF(0x45, 0xd089), /* UAJ function set to menual mode */ @@ -4538,6 +4540,11 @@ {} }; + if (spec->no_internal_mic_pin) { + alc_update_coef_idx(codec, 0x45, 0xf<<12 | 1<<10, 5<<12); + return; + } + switch (codec->core.vendor_id) { case 0x10ec0255: alc_process_coef_fw(codec, coef0255); @@ -5104,6 +5111,11 @@ {} }; + if (spec->no_internal_mic_pin) { + alc_update_coef_idx(codec, 0x45, 0xf<<12 | 1<<10, 5<<12); + return; + } + switch (codec->core.vendor_id) { case 0x10ec0255: alc_process_coef_fw(codec, coef0255); @@ -5932,6 +5944,27 @@ snd_hda_override_wcaps(codec, 0x03, 0); } +static void alc_combo_jack_hp_jd_restart(struct hda_codec *codec) +{ + switch (codec->core.vendor_id) { + case 0x10ec0274: + case 0x10ec0294: + case 0x10ec0225: + case 0x10ec0295: + case 0x10ec0299: + alc_update_coef_idx(codec, 0x4a, 0x8000, 1 << 15); /* Reset HP JD */ + alc_update_coef_idx(codec, 0x4a, 0x8000, 0 << 15); + break; + case 0x10ec0235: + case 0x10ec0236: + case 0x10ec0255: + case 0x10ec0256: + alc_update_coef_idx(codec, 0x1b, 0x8000, 1 << 15); /* Reset HP JD */ + alc_update_coef_idx(codec, 0x1b, 0x8000, 0 << 15); + break; + } +} + static void alc295_fixup_chromebook(struct hda_codec *codec, const struct hda_fixup *fix, int action) { @@ -5942,16 +5975,7 @@ spec->ultra_low_power = true; break; case HDA_FIXUP_ACT_INIT: - switch (codec->core.vendor_id) { - case 0x10ec0295: - alc_update_coef_idx(codec, 0x4a, 0x8000, 1 << 15); /* Reset HP JD */ - alc_update_coef_idx(codec, 0x4a, 0x8000, 0 << 15); - break; - case 0x10ec0236: - alc_update_coef_idx(codec, 0x1b, 0x8000, 1 << 15); /* Reset HP JD */ - alc_update_coef_idx(codec, 0x1b, 0x8000, 0 << 15); - break; - } + alc_combo_jack_hp_jd_restart(codec); break; } } @@ -5973,6 +5997,33 @@ alc_write_coef_idx(codec, 0x65, 0x0); } +static void alc274_fixup_hp_headset_mic(struct hda_codec *codec, + const struct hda_fixup *fix, int action) +{ + switch (action) { + case HDA_FIXUP_ACT_INIT: + alc_combo_jack_hp_jd_restart(codec); + break; + } +} + +static void alc_fixup_no_int_mic(struct hda_codec *codec, + const struct hda_fixup *fix, int action) +{ + struct alc_spec *spec = codec->spec; + + switch (action) { + case HDA_FIXUP_ACT_PRE_PROBE: + /* Mic RING SLEEVE swap for combo jack */ + alc_update_coef_idx(codec, 0x45, 0xf<<12 | 1<<10, 5<<12); + spec->no_internal_mic_pin = true; + break; + case HDA_FIXUP_ACT_INIT: + alc_combo_jack_hp_jd_restart(codec); + break; + } +} + /* for hda_fixup_thinkpad_acpi() */ #include "thinkpad_helper.c" @@ -6149,6 +6200,8 @@ ALC295_FIXUP_ASUS_MIC_NO_PRESENCE, ALC285_FIXUP_HP_GPIO_AMP_INIT, ALC274_FIXUP_HP_MIC, + ALC274_FIXUP_HP_HEADSET_MIC, + ALC236_FIXUP_DELL_AIO_HEADSET_MIC, }; static const struct hda_fixup alc269_fixups[] = { @@ -7341,6 +7394,18 @@ { } }, }, + [ALC274_FIXUP_HP_HEADSET_MIC] = { + .type = HDA_FIXUP_FUNC, + .v.func = alc274_fixup_hp_headset_mic, + .chained = true, + .chain_id = ALC274_FIXUP_HP_MIC + }, + [ALC236_FIXUP_DELL_AIO_HEADSET_MIC] = { + .type = HDA_FIXUP_FUNC, + .v.func = alc_fixup_no_int_mic, + .chained = true, + .chain_id = ALC255_FIXUP_DELL1_MIC_NO_PRESENCE + }, }; static const struct snd_pci_quirk alc269_fixup_tbl[] = { @@ -7414,6 +7479,8 @@ SND_PCI_QUIRK(0x1028, 0x097d, "Dell Precision", ALC289_FIXUP_DUAL_SPK), SND_PCI_QUIRK(0x1028, 0x098d, "Dell Precision", ALC233_FIXUP_ASUS_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1028, 0x09bf, "Dell Precision", ALC233_FIXUP_ASUS_MIC_NO_PRESENCE), + SND_PCI_QUIRK(0x1028, 0x0a2e, "Dell", ALC236_FIXUP_DELL_AIO_HEADSET_MIC), + SND_PCI_QUIRK(0x1028, 0x0a30, "Dell", ALC236_FIXUP_DELL_AIO_HEADSET_MIC), SND_PCI_QUIRK(0x1028, 0x164a, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1028, 0x164b, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x103c, 0x1586, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC2), @@ -7488,7 +7555,6 @@ SND_PCI_QUIRK(0x103c, 0x869d, "HP", ALC236_FIXUP_HP_MUTE_LED), SND_PCI_QUIRK(0x103c, 0x8729, "HP", ALC285_FIXUP_HP_GPIO_LED), SND_PCI_QUIRK(0x103c, 0x8736, "HP", ALC285_FIXUP_HP_GPIO_AMP_INIT), - SND_PCI_QUIRK(0x103c, 0x874e, "HP", ALC274_FIXUP_HP_MIC), SND_PCI_QUIRK(0x103c, 0x877a, "HP", ALC285_FIXUP_HP_MUTE_LED), SND_PCI_QUIRK(0x103c, 0x877d, "HP", ALC236_FIXUP_HP_MUTE_LED), SND_PCI_QUIRK(0x1043, 0x103e, "ASUS X540SA", ALC256_FIXUP_ASUS_MIC), @@ -7892,6 +7958,8 @@ {0x19, 0x02a11020}, {0x1a, 0x02a11030}, {0x21, 0x0221101f}), + SND_HDA_PIN_QUIRK(0x10ec0236, 0x1028, "Dell", ALC236_FIXUP_DELL_AIO_HEADSET_MIC, + {0x21, 0x02211010}), SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, "Dell", ALC255_FIXUP_DELL2_MIC_NO_PRESENCE, {0x14, 0x90170110}, {0x21, 0x02211020}), @@ -7994,6 +8062,10 @@ {0x1a, 0x90a70130}, {0x1b, 0x90170110}, {0x21, 0x03211020}), + SND_HDA_PIN_QUIRK(0x10ec0274, 0x103c, "HP", ALC274_FIXUP_HP_HEADSET_MIC, + {0x17, 0x90170110}, + {0x19, 0x03a11030}, + {0x21, 0x03211020}), SND_HDA_PIN_QUIRK(0x10ec0280, 0x103c, "HP", ALC280_FIXUP_HP_GPIO4, {0x12, 0x90a60130}, {0x14, 0x90170110}, only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/Documentation/ABI/stable/sysfs-bus-mhi +++ linux-oem-5.6-5.6.0/Documentation/ABI/stable/sysfs-bus-mhi @@ -0,0 +1,21 @@ +What: /sys/bus/mhi/devices/.../serialnumber +Date: Sept 2020 +KernelVersion: 5.10 +Contact: Bhaumik Bhatt +Description: The file holds the serial number of the client device obtained + using a BHI (Boot Host Interface) register read after at least + one attempt to power up the device has been done. If read + without having the device power on at least once, the file will + read all 0's. +Users: Any userspace application or clients interested in device info. + +What: /sys/bus/mhi/devices/.../oem_pk_hash +Date: Sept 2020 +KernelVersion: 5.10 +Contact: Bhaumik Bhatt +Description: The file holds the OEM PK Hash value of the endpoint device + obtained using a BHI (Boot Host Interface) register read after + at least one attempt to power up the device has been done. If + read without having the device power on at least once, the file + will read all 0's. +Users: Any userspace application or clients interested in device info. only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/arch/x86/include/asm/intel-family.h +++ linux-oem-5.6-5.6.0/arch/x86/include/asm/intel-family.h @@ -35,6 +35,9 @@ * The #define line may optionally include a comment including platform names. */ +/* Wildcard match for FAM6 so X86_MATCH_INTEL_FAM6_MODEL(ANY) works */ +#define INTEL_FAM6_ANY X86_MODEL_ANY + #define INTEL_FAM6_CORE_YONAH 0x0E #define INTEL_FAM6_CORE2_MEROM 0x0F @@ -118,6 +121,9 @@ #define INTEL_FAM6_XEON_PHI_KNL 0x57 /* Knights Landing */ #define INTEL_FAM6_XEON_PHI_KNM 0x85 /* Knights Mill */ +/* Family 5 */ +#define INTEL_FAM5_QUARK_X1000 0x09 /* Quark X1000 SoC */ + /* Useful macros */ #define INTEL_CPU_FAM_ANY(_family, _model, _driver_data) \ { \ only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/debian.oem/abi/5.6.0-1038.42/abiname +++ linux-oem-5.6-5.6.0/debian.oem/abi/5.6.0-1038.42/abiname @@ -0,0 +1 @@ +1038 only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/debian.oem/abi/5.6.0-1038.42/amd64/oem +++ linux-oem-5.6-5.6.0/debian.oem/abi/5.6.0-1038.42/amd64/oem @@ -0,0 +1,23972 @@ +EXPORT_SYMBOL arch/x86/crypto/blake2s-x86_64 0x00000000 blake2s_compress_arch +EXPORT_SYMBOL arch/x86/crypto/chacha-x86_64 0x00000000 chacha_crypt_arch +EXPORT_SYMBOL arch/x86/crypto/chacha-x86_64 0x00000000 chacha_init_arch +EXPORT_SYMBOL arch/x86/crypto/chacha-x86_64 0x00000000 hchacha_block_arch +EXPORT_SYMBOL arch/x86/crypto/curve25519-x86_64 0x00000000 curve25519_arch +EXPORT_SYMBOL arch/x86/crypto/curve25519-x86_64 0x00000000 curve25519_base_arch +EXPORT_SYMBOL arch/x86/crypto/poly1305-x86_64 0x00000000 poly1305_final_arch +EXPORT_SYMBOL arch/x86/crypto/poly1305-x86_64 0x00000000 poly1305_init_arch +EXPORT_SYMBOL arch/x86/crypto/poly1305-x86_64 0x00000000 poly1305_update_arch +EXPORT_SYMBOL arch/x86/kvm/kvm 0x00000000 kvm_cpu_has_pending_timer +EXPORT_SYMBOL crypto/ecc 0x00000000 crypto_ecdh_shared_secret +EXPORT_SYMBOL crypto/ecc 0x00000000 ecc_gen_privkey +EXPORT_SYMBOL crypto/ecc 0x00000000 ecc_is_key_valid +EXPORT_SYMBOL crypto/ecc 0x00000000 ecc_is_pubkey_valid_partial +EXPORT_SYMBOL crypto/ecc 0x00000000 ecc_make_pub_key +EXPORT_SYMBOL crypto/ecc 0x00000000 ecc_point_mult_shamir +EXPORT_SYMBOL crypto/ecc 0x00000000 vli_cmp +EXPORT_SYMBOL crypto/ecc 0x00000000 vli_from_be64 +EXPORT_SYMBOL crypto/ecc 0x00000000 vli_from_le64 +EXPORT_SYMBOL crypto/ecc 0x00000000 vli_is_zero +EXPORT_SYMBOL crypto/ecc 0x00000000 vli_mod_inv +EXPORT_SYMBOL crypto/ecc 0x00000000 vli_mod_mult_slow +EXPORT_SYMBOL crypto/ecc 0x00000000 vli_sub +EXPORT_SYMBOL crypto/nhpoly1305 0x00000000 crypto_nhpoly1305_final +EXPORT_SYMBOL crypto/nhpoly1305 0x00000000 crypto_nhpoly1305_final_helper +EXPORT_SYMBOL crypto/nhpoly1305 0x00000000 crypto_nhpoly1305_init +EXPORT_SYMBOL crypto/nhpoly1305 0x00000000 crypto_nhpoly1305_setkey +EXPORT_SYMBOL crypto/nhpoly1305 0x00000000 crypto_nhpoly1305_update +EXPORT_SYMBOL crypto/nhpoly1305 0x00000000 crypto_nhpoly1305_update_helper +EXPORT_SYMBOL crypto/sha3_generic 0x00000000 crypto_sha3_final +EXPORT_SYMBOL crypto/sha3_generic 0x00000000 crypto_sha3_init +EXPORT_SYMBOL crypto/sha3_generic 0x00000000 crypto_sha3_update +EXPORT_SYMBOL crypto/sm3_generic 0x00000000 crypto_sm3_finup +EXPORT_SYMBOL crypto/sm3_generic 0x00000000 crypto_sm3_update +EXPORT_SYMBOL crypto/xor 0x00000000 xor_blocks +EXPORT_SYMBOL drivers/acpi/nfit/nfit 0x00000000 to_nfit_uuid +EXPORT_SYMBOL drivers/acpi/video 0x00000000 acpi_video_get_backlight_type +EXPORT_SYMBOL drivers/acpi/video 0x00000000 acpi_video_get_edid +EXPORT_SYMBOL drivers/acpi/video 0x00000000 acpi_video_get_levels +EXPORT_SYMBOL drivers/acpi/video 0x00000000 acpi_video_handles_brightness_key_presses +EXPORT_SYMBOL drivers/acpi/video 0x00000000 acpi_video_register +EXPORT_SYMBOL drivers/acpi/video 0x00000000 acpi_video_set_dmi_backlight_type +EXPORT_SYMBOL drivers/acpi/video 0x00000000 acpi_video_unregister +EXPORT_SYMBOL drivers/atm/suni 0x00000000 suni_init +EXPORT_SYMBOL drivers/atm/uPD98402 0x00000000 uPD98402_init +EXPORT_SYMBOL drivers/bcma/bcma 0x00000000 bcma_core_dma_translation +EXPORT_SYMBOL drivers/bcma/bcma 0x00000000 bcma_core_irq +EXPORT_SYMBOL drivers/block/drbd/drbd 0x00000000 drbd_conn_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0x00000000 drbd_disk_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0x00000000 drbd_role_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0x00000000 drbd_set_st_err_str +EXPORT_SYMBOL drivers/block/paride/paride 0x00000000 paride_register +EXPORT_SYMBOL drivers/block/paride/paride 0x00000000 paride_unregister +EXPORT_SYMBOL drivers/block/paride/paride 0x00000000 pi_connect +EXPORT_SYMBOL drivers/block/paride/paride 0x00000000 pi_disconnect +EXPORT_SYMBOL drivers/block/paride/paride 0x00000000 pi_do_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0x00000000 pi_init +EXPORT_SYMBOL drivers/block/paride/paride 0x00000000 pi_read_block +EXPORT_SYMBOL drivers/block/paride/paride 0x00000000 pi_read_regr +EXPORT_SYMBOL drivers/block/paride/paride 0x00000000 pi_register_driver +EXPORT_SYMBOL drivers/block/paride/paride 0x00000000 pi_release +EXPORT_SYMBOL drivers/block/paride/paride 0x00000000 pi_schedule_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0x00000000 pi_unregister_driver +EXPORT_SYMBOL drivers/block/paride/paride 0x00000000 pi_write_block +EXPORT_SYMBOL drivers/block/paride/paride 0x00000000 pi_write_regr +EXPORT_SYMBOL drivers/bluetooth/btbcm 0x00000000 btbcm_patchram +EXPORT_SYMBOL drivers/bluetooth/btrsi 0x00000000 rsi_bt_ops +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_add_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_addr_length +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_addr_src_to_str +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_alloc_smi_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_create_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_destroy_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_free_recv_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_get_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_get_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_get_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_get_smi_info +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_get_version +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_poll_interface +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_register_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_request_settime +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_request_supply_msgs +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_set_gets_events +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_set_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_set_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_set_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_smi_msg_received +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_smi_watchdog_pretimeout +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_smi_watcher_register +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_smi_watcher_unregister +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_unregister_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_unregister_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00000000 ipmi_validate_addr +EXPORT_SYMBOL drivers/char/nvram 0x00000000 arch_nvram_ops +EXPORT_SYMBOL drivers/char/tpm/st33zp24/tpm_st33zp24 0x00000000 st33zp24_pm_resume +EXPORT_SYMBOL drivers/char/tpm/st33zp24/tpm_st33zp24 0x00000000 st33zp24_pm_suspend +EXPORT_SYMBOL drivers/char/tpm/st33zp24/tpm_st33zp24 0x00000000 st33zp24_probe +EXPORT_SYMBOL drivers/char/tpm/st33zp24/tpm_st33zp24 0x00000000 st33zp24_remove +EXPORT_SYMBOL drivers/char/xillybus/xillybus_core 0x00000000 xillybus_endpoint_discovery +EXPORT_SYMBOL drivers/char/xillybus/xillybus_core 0x00000000 xillybus_endpoint_remove +EXPORT_SYMBOL drivers/char/xillybus/xillybus_core 0x00000000 xillybus_init_endpoint +EXPORT_SYMBOL drivers/char/xillybus/xillybus_core 0x00000000 xillybus_isr +EXPORT_SYMBOL drivers/crypto/atmel-i2c 0x00000000 atmel_i2c_enqueue +EXPORT_SYMBOL drivers/crypto/atmel-i2c 0x00000000 atmel_i2c_init_ecdh_cmd +EXPORT_SYMBOL drivers/crypto/atmel-i2c 0x00000000 atmel_i2c_init_genkey_cmd +EXPORT_SYMBOL drivers/crypto/atmel-i2c 0x00000000 atmel_i2c_init_random_cmd +EXPORT_SYMBOL drivers/crypto/atmel-i2c 0x00000000 atmel_i2c_init_read_cmd +EXPORT_SYMBOL drivers/crypto/atmel-i2c 0x00000000 atmel_i2c_probe +EXPORT_SYMBOL drivers/crypto/atmel-i2c 0x00000000 atmel_i2c_send_receive +EXPORT_SYMBOL drivers/crypto/ccp/ccp 0x00000000 psp_check_tee_status +EXPORT_SYMBOL drivers/crypto/ccp/ccp 0x00000000 psp_tee_process_cmd +EXPORT_SYMBOL drivers/firewire/firewire-core 0x00000000 fw_bus_type +EXPORT_SYMBOL drivers/firewire/firewire-core 0x00000000 fw_cancel_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0x00000000 fw_card_add +EXPORT_SYMBOL drivers/firewire/firewire-core 0x00000000 fw_card_initialize +EXPORT_SYMBOL drivers/firewire/firewire-core 0x00000000 fw_core_add_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0x00000000 fw_core_add_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x00000000 fw_core_handle_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0x00000000 fw_core_handle_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0x00000000 fw_core_handle_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x00000000 fw_core_remove_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0x00000000 fw_core_remove_card +EXPORT_SYMBOL drivers/firewire/firewire-core 0x00000000 fw_core_remove_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x00000000 fw_csr_iterator_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0x00000000 fw_csr_iterator_next +EXPORT_SYMBOL drivers/firewire/firewire-core 0x00000000 fw_csr_string +EXPORT_SYMBOL drivers/firewire/firewire-core 0x00000000 fw_device_enable_phys_dma +EXPORT_SYMBOL drivers/firewire/firewire-core 0x00000000 fw_fill_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x00000000 fw_get_request_speed +EXPORT_SYMBOL drivers/firewire/firewire-core 0x00000000 fw_high_memory_region +EXPORT_SYMBOL drivers/firewire/firewire-core 0x00000000 fw_iso_buffer_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0x00000000 fw_iso_buffer_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0x00000000 fw_iso_context_create +EXPORT_SYMBOL drivers/firewire/firewire-core 0x00000000 fw_iso_context_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0x00000000 fw_iso_context_flush_completions +EXPORT_SYMBOL drivers/firewire/firewire-core 0x00000000 fw_iso_context_queue +EXPORT_SYMBOL drivers/firewire/firewire-core 0x00000000 fw_iso_context_queue_flush +EXPORT_SYMBOL drivers/firewire/firewire-core 0x00000000 fw_iso_context_start +EXPORT_SYMBOL drivers/firewire/firewire-core 0x00000000 fw_iso_context_stop +EXPORT_SYMBOL drivers/firewire/firewire-core 0x00000000 fw_iso_resource_manage +EXPORT_SYMBOL drivers/firewire/firewire-core 0x00000000 fw_rcode_string +EXPORT_SYMBOL drivers/firewire/firewire-core 0x00000000 fw_run_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0x00000000 fw_schedule_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0x00000000 fw_send_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0x00000000 fw_send_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x00000000 fw_workqueue +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 __drm_atomic_helper_disable_plane +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 __drm_atomic_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 __drm_atomic_state_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 __drm_crtc_commit_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 __drm_dbg +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 __drm_debug +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 __drm_err +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 __drm_get_edid_firmware_path +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 __drm_mm_interval_first +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 __drm_printfn_coredump +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 __drm_printfn_debug +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 __drm_printfn_err +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 __drm_printfn_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 __drm_printfn_seq_file +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 __drm_puts_coredump +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 __drm_puts_seq_file +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 __drm_set_edid_firmware_path +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 devm_drm_dev_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_add_edid_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_add_modes_noedid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_add_override_edid_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_agp_acquire +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_agp_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_agp_bind +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_agp_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_agp_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_agp_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_agp_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_agp_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_agp_unbind +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_any_plane_has_format +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_atomic_add_affected_connectors +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_atomic_add_affected_planes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_atomic_bridge_chain_disable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_atomic_bridge_chain_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_atomic_bridge_chain_post_disable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_atomic_bridge_chain_pre_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_atomic_check_only +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_atomic_commit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_atomic_get_connector_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_atomic_get_crtc_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_atomic_get_new_connector_for_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_atomic_get_new_private_obj_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_atomic_get_old_connector_for_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_atomic_get_old_private_obj_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_atomic_get_plane_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_atomic_get_private_obj_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_atomic_nonblocking_commit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_atomic_normalize_zpos +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_atomic_private_obj_fini +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_atomic_private_obj_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_atomic_set_crtc_for_connector +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_atomic_set_crtc_for_plane +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_atomic_set_fb_for_plane +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_atomic_set_fence_for_plane +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_atomic_set_mode_for_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_atomic_set_mode_prop_for_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_atomic_state_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_atomic_state_clear +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_atomic_state_default_clear +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_atomic_state_default_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_atomic_state_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_av_sync_delay +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_bridge_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_bridge_attach +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_bridge_chain_disable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_bridge_chain_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_bridge_chain_mode_fixup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_bridge_chain_mode_set +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_bridge_chain_mode_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_bridge_chain_post_disable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_bridge_chain_pre_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_bridge_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_calc_timestamping_constants +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_calc_vbltimestamp_from_scanoutpos +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_clflush_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_clflush_sg +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_clflush_virt_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_client_buffer_vmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_client_buffer_vunmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_client_dev_hotplug +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_client_framebuffer_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_client_framebuffer_delete +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_client_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_client_modeset_commit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_client_modeset_commit_force +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_client_modeset_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_client_modeset_probe +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_client_register +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_client_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_client_rotation +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_cma_gem_create_object_default_funcs +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_color_ctm_s31_32_to_qm_n +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_color_lut_check +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_compat_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_connector_attach_content_protection_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_connector_attach_content_type_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_connector_attach_edid_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_connector_attach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_connector_attach_max_bpc_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_connector_attach_scaling_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_connector_attach_tv_margin_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_connector_attach_vrr_capable_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_connector_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_connector_has_possible_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_connector_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_connector_init_panel_orientation_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_connector_init_with_ddc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_connector_list_iter_begin +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_connector_list_iter_end +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_connector_list_iter_next +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_connector_list_update +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_connector_register +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_connector_set_link_status_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_connector_set_path_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_connector_set_tile_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_connector_set_vrr_capable_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_connector_unregister +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_connector_update_edid_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_crtc_accurate_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_crtc_arm_vblank_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_crtc_check_viewport +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_crtc_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_crtc_enable_color_mgmt +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_crtc_from_index +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_crtc_handle_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_crtc_init_with_planes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_crtc_send_vblank_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_crtc_set_max_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_crtc_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_crtc_vblank_count_and_time +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_crtc_vblank_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_crtc_vblank_off +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_crtc_vblank_on +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_crtc_vblank_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_crtc_vblank_reset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_crtc_vblank_restore +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_crtc_vblank_waitqueue +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_crtc_wait_one_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_cvt_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_debugfs_create_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_debugfs_remove_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_default_rgb_quant_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_detect_hdmi_monitor +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_detect_monitor_audio +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_dev_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_dev_dbg +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_dev_enter +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_dev_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_dev_fini +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_dev_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_dev_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_dev_printk +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_dev_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_dev_register +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_dev_set_unique +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_dev_unplug +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_dev_unregister +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_display_info_set_bus_formats +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_driver_legacy_fb_format +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_edid_block_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_edid_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_edid_get_monitor_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_edid_header_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_edid_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_edid_to_sad +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_edid_to_speaker_allocation +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_encoder_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_event_cancel_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_event_reserve_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_event_reserve_init_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_flip_work_allocate_task +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_flip_work_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_flip_work_commit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_flip_work_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_flip_work_queue +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_flip_work_queue_task +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_format_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_format_info_block_height +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_format_info_block_width +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_format_info_min_pitch +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_framebuffer_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_framebuffer_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_framebuffer_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_framebuffer_plane_height +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_framebuffer_plane_width +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_framebuffer_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_framebuffer_unregister_private +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_cma_prime_import_sg_table_vmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_cma_print_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_create_mmap_offset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_create_mmap_offset_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_dma_resv_wait +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_dmabuf_export +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_dmabuf_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_dmabuf_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_dmabuf_vmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_dmabuf_vunmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_dumb_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_fence_array_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_fence_array_add_implicit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_free_mmap_offset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_get_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_handle_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_handle_delete +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_lock_reservations +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_map_attach +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_map_detach +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_map_dma_buf +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_mmap_obj +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_object_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_object_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_object_put_unlocked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_object_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_objects_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_prime_export +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_prime_fd_to_handle +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_prime_handle_to_fd +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_prime_import +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_prime_import_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_prime_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_private_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_put_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_shmem_create_with_handle +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_shmem_get_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_shmem_madvise +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_shmem_pin +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_shmem_print_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_shmem_purge +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_shmem_purge_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_shmem_put_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_shmem_unpin +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_shmem_vmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_shmem_vunmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_unlock_reservations +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_unmap_dma_buf +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_vm_close +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gem_vm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_get_connector_status_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_get_edid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_get_edid_switcheroo +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_get_format_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_get_format_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_get_pci_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_get_subpixel_order_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gtf_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_gtf_mode_complex +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_handle_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_hdcp_update_content_protection +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_hdmi_avi_infoframe_bars +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_hdmi_avi_infoframe_colorspace +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_hdmi_avi_infoframe_content_type +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_hdmi_avi_infoframe_from_display_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_hdmi_avi_infoframe_quant_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_hdmi_infoframe_set_hdr_metadata +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_hdmi_vendor_infoframe_from_display_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_ht_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_ht_find_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_ht_insert_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_ht_just_insert_please +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_ht_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_ht_remove_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_i2c_encoder_commit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_i2c_encoder_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_i2c_encoder_detect +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_i2c_encoder_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_i2c_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_i2c_encoder_mode_fixup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_i2c_encoder_mode_set +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_i2c_encoder_prepare +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_i2c_encoder_restore +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_i2c_encoder_save +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_invalid_op +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_ioctl_flags +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_ioctl_kernel +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_ioctl_permit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_irq_install +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_irq_uninstall +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_is_current_master +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_legacy_ioremap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_legacy_ioremap_wc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_legacy_ioremapfree +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_master_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_master_internal_acquire +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_master_internal_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_master_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_match_cea_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mm_insert_node_in_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mm_print +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mm_remove_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mm_replace_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mm_reserve_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mm_scan_add_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mm_scan_color_evict +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mm_scan_init_with_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mm_scan_remove_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mm_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_config_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_config_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_config_reset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_copy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_create_aspect_ratio_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_create_content_type_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_create_dp_colorspace_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_create_dvi_i_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_create_from_cmdline_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_create_hdmi_colorspace_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_create_scaling_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_create_suggested_offset_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_create_tile_group +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_create_tv_margin_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_create_tv_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_crtc_set_gamma_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_debug_printmodeline +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_equal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_equal_no_clocks +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_equal_no_clocks_no_stereo +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_find_dmt +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_get_hv_timing +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_get_tile_group +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_hsync +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_is_420 +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_is_420_also +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_is_420_only +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_legacy_fb_format +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_match +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_object_find +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_object_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_object_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_parse_command_line_for_connector +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_plane_set_obj_prop +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_probed_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_prune_invalid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_put_tile_group +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_set_config_internal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_set_crtcinfo +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_set_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_sort +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_validate_driver +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_validate_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_validate_ycbcr420 +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_mode_vrefresh +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_modeset_acquire_fini +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_modeset_acquire_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_modeset_backoff +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_modeset_drop_locks +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_modeset_lock +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_modeset_lock_all +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_modeset_lock_all_ctx +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_modeset_lock_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_modeset_lock_single_interruptible +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_modeset_unlock +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_modeset_unlock_all +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_need_swiotlb +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_noop +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_object_attach_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_object_property_get_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_object_property_set_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_panel_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_panel_attach +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_panel_detach +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_panel_disable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_panel_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_panel_get_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_panel_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_panel_of_backlight +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_panel_prepare +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_panel_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_panel_unprepare +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_pci_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_pci_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_plane_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_plane_create_alpha_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_plane_create_blend_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_plane_create_color_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_plane_create_rotation_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_plane_create_zpos_immutable_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_plane_create_zpos_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_plane_force_disable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_plane_from_index +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_plane_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_poll +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_prime_gem_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_prime_pages_to_sg +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_prime_sg_to_page_addr_arrays +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_print_bits +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_print_regset32 +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_printf +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_probe_ddc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_property_add_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_property_blob_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_property_blob_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_property_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_property_create_bitmask +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_property_create_blob +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_property_create_bool +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_property_create_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_property_create_object +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_property_create_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_property_create_signed_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_property_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_property_lookup_blob +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_property_replace_blob +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_property_replace_global_blob +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_put_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_puts +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_read +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_rect_calc_hscale +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_rect_calc_vscale +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_rect_clip_scaled +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_rect_debug_print +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_rect_intersect +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_rect_rotate +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_rect_rotate_inv +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_rotation_simplify +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_send_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_send_event_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_set_preferred_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_state_dump +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_syncobj_add_point +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_syncobj_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_syncobj_find +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_syncobj_find_fence +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_syncobj_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_syncobj_get_fd +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_syncobj_get_handle +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_syncobj_replace_fence +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_sysfs_connector_status_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_sysfs_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_timeout_abs_to_jiffies +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_universal_plane_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_vblank_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_vblank_restore +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_vma_node_allow +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_vma_node_is_allowed +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_vma_node_revoke +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_vma_offset_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_vma_offset_lookup_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_vma_offset_manager_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_vma_offset_manager_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_vma_offset_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_wait_one_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_warn_on_modeset_not_all_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_writeback_cleanup_job +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_writeback_connector_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_writeback_get_out_fence +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_writeback_prepare_job +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_writeback_queue_job +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00000000 drm_writeback_signal_completion +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 __drm_atomic_helper_connector_destroy_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 __drm_atomic_helper_connector_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 __drm_atomic_helper_connector_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 __drm_atomic_helper_connector_state_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 __drm_atomic_helper_crtc_destroy_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 __drm_atomic_helper_crtc_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 __drm_atomic_helper_crtc_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 __drm_atomic_helper_crtc_state_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 __drm_atomic_helper_plane_destroy_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 __drm_atomic_helper_plane_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 __drm_atomic_helper_plane_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 __drm_atomic_helper_plane_state_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 __drm_atomic_helper_private_obj_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 devm_drm_panel_bridge_add +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 devm_drm_panel_bridge_add_typed +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_get_mst_topology_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_async_check +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_async_commit +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_check +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_check_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_check_plane_damage +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_check_plane_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_check_planes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_cleanup_planes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_commit +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_commit_cleanup_done +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_commit_duplicated_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_commit_hw_done +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_commit_modeset_disables +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_commit_modeset_enables +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_commit_planes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_commit_planes_on_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_commit_tail +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_commit_tail_rpm +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_connector_destroy_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_connector_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_connector_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_connector_tv_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_crtc_destroy_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_crtc_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_crtc_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_damage_iter_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_damage_iter_next +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_damage_merged +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_dirtyfb +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_disable_all +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_disable_plane +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_disable_planes_on_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_fake_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_legacy_gamma_set +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_page_flip +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_page_flip_target +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_plane_destroy_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_plane_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_plane_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_prepare_planes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_resume +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_setup_commit +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_shutdown +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_suspend +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_swap_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_update_legacy_modeset_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_update_plane +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_wait_for_dependencies +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_wait_for_fences +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_wait_for_flip_done +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_atomic_helper_wait_for_vblanks +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_crtc_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_crtc_helper_set_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_crtc_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_atomic_find_vcpi_slots +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_atomic_release_vcpi_slots +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_aux_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_aux_register +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_aux_unregister +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_bw_code_to_link_rate +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_calc_pbn_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_cec_irq +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_cec_register_connector +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_cec_set_edid +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_cec_unregister_connector +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_cec_unset_edid +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_channel_eq_ok +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_check_act_status +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_clock_recovery_ok +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_downstream_debug +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_downstream_id +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_downstream_max_bpc +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_downstream_max_clock +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_dpcd_read +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_dpcd_read_link_status +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_dpcd_write +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_dsc_sink_line_buf_depth +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_dsc_sink_max_slice_count +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_dsc_sink_supported_input_bpcs +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_dual_mode_detect +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_dual_mode_get_tmds_output +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_dual_mode_max_tmds_clock +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_dual_mode_read +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_dual_mode_set_tmds_output +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_dual_mode_write +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_find_vcpi_slots +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_get_adjust_request_post_cursor +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_get_adjust_request_pre_emphasis +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_get_adjust_request_voltage +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_get_dual_mode_type_name +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_get_edid_quirks +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_link_rate_to_bw_code +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_link_train_channel_eq_delay +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_link_train_clock_recovery_delay +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_link_train_clock_recovery_larger_delay +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_mst_add_affected_dsc_crtcs +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_mst_allocate_vcpi +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_mst_atomic_check +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_mst_atomic_enable_dsc +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_mst_connector_early_unregister +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_mst_connector_late_register +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_mst_deallocate_vcpi +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_mst_detect_port +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_mst_dsc_aux_for_port +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_mst_dump_topology +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_mst_get_edid +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_mst_get_port_malloc +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_mst_get_vcpi_slots +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_mst_hpd_irq +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_mst_port_has_audio +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_mst_put_port_malloc +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_mst_reset_vcpi_slots +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_mst_topology_mgr_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_mst_topology_mgr_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_mst_topology_mgr_resume +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_mst_topology_mgr_set_mst +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_mst_topology_mgr_suspend +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_mst_topology_state_funcs +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_psr_setup_time +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_read_desc +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_read_downstream_info +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_read_dpcd_caps +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_remote_aux_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_send_power_updown_phy +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_send_real_edid_checksum +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_start_crc +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_stop_crc +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_update_payload_part1 +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dp_update_payload_part2 +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dsc_compute_rc_parameters +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dsc_dp_pps_header_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_dsc_pps_payload_pack +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_helper_alloc_fbi +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_helper_blank +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_helper_cfb_copyarea +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_helper_cfb_fillrect +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_helper_cfb_imageblit +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_helper_check_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_helper_debug_enter +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_helper_debug_leave +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_helper_deferred_io +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_helper_fill_info +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_helper_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_helper_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_helper_initial_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_helper_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_helper_lastclose +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_helper_modinit +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_helper_output_poll_changed +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_helper_pan_display +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_helper_prepare +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_helper_restore_fbdev_mode_unlocked +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_helper_set_par +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_helper_set_suspend +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_helper_set_suspend_unlocked +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_helper_setcmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_helper_sys_copyarea +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_helper_sys_fillrect +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_helper_sys_imageblit +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_helper_sys_read +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_helper_sys_write +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_helper_unregister_fbi +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_memcpy +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_memcpy_dstclip +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_swab16 +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_xrgb8888_to_gray8 +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_xrgb8888_to_rgb565 +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_xrgb8888_to_rgb565_dstclip +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_xrgb8888_to_rgb888_dstclip +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fbdev_generic_setup +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_gem_fb_create_handle +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_gem_fb_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_gem_fb_simple_display_pipe_prepare_fb +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_helper_connector_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_helper_crtc_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_helper_disable_unused_functions +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_helper_encoder_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_helper_force_disable_all +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_helper_hpd_irq_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_helper_mode_fill_fb_struct +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_helper_move_panel_connectors_to_head +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_helper_probe_detect +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_helper_probe_single_connector_modes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_helper_resume_force_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_kms_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_kms_helper_is_poll_worker +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_kms_helper_poll_disable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_kms_helper_poll_enable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_kms_helper_poll_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_kms_helper_poll_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_lspcon_get_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_lspcon_set_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_mode_config_helper_resume +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_mode_config_helper_suspend +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_panel_bridge_add +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_panel_bridge_add_typed +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_panel_bridge_connector +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_panel_bridge_remove +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_plane_enable_fb_damage_clips +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_primary_helper_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_primary_helper_funcs +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_scdc_get_scrambling_status +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_scdc_read +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_scdc_set_high_tmds_clock_ratio +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_scdc_set_scrambling +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_scdc_write +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_self_refresh_helper_alter_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_self_refresh_helper_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_self_refresh_helper_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_self_refresh_helper_update_avg_times +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_simple_display_pipe_attach_bridge +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_simple_display_pipe_init +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x00000000 mipi_dbi_buf_copy +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x00000000 mipi_dbi_command_buf +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x00000000 mipi_dbi_command_read +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x00000000 mipi_dbi_command_stackbuf +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x00000000 mipi_dbi_debugfs_init +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x00000000 mipi_dbi_dev_init +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x00000000 mipi_dbi_dev_init_with_formats +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x00000000 mipi_dbi_display_is_on +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x00000000 mipi_dbi_enable_flush +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x00000000 mipi_dbi_hw_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x00000000 mipi_dbi_pipe_disable +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x00000000 mipi_dbi_pipe_update +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x00000000 mipi_dbi_poweron_conditional_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x00000000 mipi_dbi_poweron_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x00000000 mipi_dbi_release +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x00000000 mipi_dbi_spi_cmd_max_speed +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x00000000 mipi_dbi_spi_init +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x00000000 mipi_dbi_spi_transfer +EXPORT_SYMBOL drivers/gpu/drm/drm_ttm_helper 0x00000000 drm_gem_ttm_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm_ttm_helper 0x00000000 drm_gem_ttm_print_info +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x00000000 drm_gem_vram_create +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x00000000 drm_gem_vram_driver_dumb_create +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x00000000 drm_gem_vram_driver_dumb_mmap_offset +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x00000000 drm_gem_vram_fill_create_dumb +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x00000000 drm_gem_vram_kmap +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x00000000 drm_gem_vram_kunmap +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x00000000 drm_gem_vram_mmap_offset +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x00000000 drm_gem_vram_offset +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x00000000 drm_gem_vram_pin +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x00000000 drm_gem_vram_plane_helper_cleanup_fb +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x00000000 drm_gem_vram_plane_helper_prepare_fb +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x00000000 drm_gem_vram_put +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x00000000 drm_gem_vram_simple_display_pipe_cleanup_fb +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x00000000 drm_gem_vram_simple_display_pipe_prepare_fb +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x00000000 drm_gem_vram_unpin +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x00000000 drm_gem_vram_vmap +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x00000000 drm_gem_vram_vunmap +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x00000000 drm_vram_helper_alloc_mm +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x00000000 drm_vram_helper_release_mm +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x00000000 drm_vram_mm_debugfs_init +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x00000000 drm_sched_dependency_optimized +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x00000000 drm_sched_entity_destroy +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x00000000 drm_sched_entity_fini +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x00000000 drm_sched_entity_flush +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x00000000 drm_sched_entity_init +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x00000000 drm_sched_entity_push_job +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x00000000 drm_sched_entity_set_priority +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x00000000 drm_sched_fault +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x00000000 drm_sched_fini +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x00000000 drm_sched_increase_karma +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x00000000 drm_sched_init +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x00000000 drm_sched_job_cleanup +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x00000000 drm_sched_job_init +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x00000000 drm_sched_resubmit_jobs +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x00000000 drm_sched_resume_timeout +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x00000000 drm_sched_start +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x00000000 drm_sched_stop +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x00000000 drm_sched_suspend_timeout +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x00000000 to_drm_sched_fence +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_agp_tt_create +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_agp_tt_populate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_agp_tt_unpopulate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_acc_size +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_bulk_move_lru_tail +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_clean_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_create +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_dma_acc_size +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_evict_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_eviction_valuable +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_glob +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_init_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_init_reserved +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_kmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_kunmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_lock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_manager_func +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_mem_compat +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_mem_put +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_mem_space +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_mmap_obj +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_move_accel_cleanup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_move_memcpy +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_move_to_lru_tail +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_move_ttm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_pipeline_move +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_put +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_swapout +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_swapout_all +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_unlock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_unmap_virtual +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_validate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_vm_access +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_vm_close +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_vm_fault +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_vm_fault_reserved +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_vm_open +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_vm_reserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_bo_wait +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_check_under_lowerlimit +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_dma_tt_fini +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_dma_tt_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_eu_backoff_reservation +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_eu_fence_buffer_objects +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_eu_reserve_buffers +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_get_kernel_zone_memory_size +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_io_prot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_kmap_atomic_prot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_kunmap_atomic_prot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_mem_glob +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_mem_global_alloc +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_mem_global_free +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_page_alloc_debugfs +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_pool_populate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_pool_unpopulate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_populate_and_map_pages +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_round_pot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_sg_tt_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_tt_bind +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_tt_fini +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_tt_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_tt_set_placement_caching +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_unmap_and_unpopulate_pages +EXPORT_SYMBOL drivers/gpu/drm/vmwgfx/vmwgfx 0x00000000 ttm_base_object_noref_lookup +EXPORT_SYMBOL drivers/hid/hid 0x00000000 hid_bus_type +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ish_hw_reset +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_bus_remove_all_clients +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_cl_allocate +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_cl_connect +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_cl_disconnect +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_cl_driver_register +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_cl_driver_unregister +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_cl_flush_queues +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_cl_free +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_cl_get_tx_free_buffer_size +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_cl_get_tx_free_rings +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_cl_io_rb_recycle +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_cl_link +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_cl_rx_get_rb +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_cl_send +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_cl_set_fw_client_id +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_cl_tx_empty +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_cl_unlink +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_dev_to_cl_device +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_device +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_device_init +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_fw_cl_by_uuid +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_fw_cl_get_client +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_get_client_data +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_get_device +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_get_drvdata +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_get_fw_client_id +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_get_ishtp_device +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_get_pci_device +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_put_device +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_recv +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_register_event_cb +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_reset_compl_handler +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_reset_handler +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_send_resume +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_send_suspend +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_set_client_data +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_set_connection_state +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_set_drvdata +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_set_rx_ring_size +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_set_tx_ring_size +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_start +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x00000000 ishtp_trace_callback +EXPORT_SYMBOL drivers/hv/hv_vmbus 0x00000000 vmbus_recvpacket +EXPORT_SYMBOL drivers/hv/hv_vmbus 0x00000000 vmbus_sendpacket +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0x00000000 vid_from_reg +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0x00000000 vid_which_vrm +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x00000000 sch56xx_read_virtual_reg +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x00000000 sch56xx_read_virtual_reg12 +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x00000000 sch56xx_read_virtual_reg16 +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x00000000 sch56xx_watchdog_register +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x00000000 sch56xx_watchdog_unregister +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x00000000 sch56xx_write_virtual_reg +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x00000000 i2c_bit_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x00000000 i2c_bit_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x00000000 i2c_bit_algo +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x00000000 i2c_pca_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x00000000 i2c_pca_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/busses/i2c-amd756 0x00000000 amd756_smbus +EXPORT_SYMBOL drivers/iio/accel/bma400_core 0x00000000 bma400_probe +EXPORT_SYMBOL drivers/iio/accel/bma400_core 0x00000000 bma400_regmap_config +EXPORT_SYMBOL drivers/iio/accel/bma400_core 0x00000000 bma400_remove +EXPORT_SYMBOL drivers/iio/accel/kxsd9 0x00000000 kxsd9_common_probe +EXPORT_SYMBOL drivers/iio/accel/kxsd9 0x00000000 kxsd9_common_remove +EXPORT_SYMBOL drivers/iio/accel/kxsd9 0x00000000 kxsd9_dev_pm_ops +EXPORT_SYMBOL drivers/iio/accel/mma9551_core 0x00000000 mma9551_app_reset +EXPORT_SYMBOL drivers/iio/accel/mma9551_core 0x00000000 mma9551_gpio_config +EXPORT_SYMBOL drivers/iio/accel/mma9551_core 0x00000000 mma9551_read_accel_chan +EXPORT_SYMBOL drivers/iio/accel/mma9551_core 0x00000000 mma9551_read_accel_scale +EXPORT_SYMBOL drivers/iio/accel/mma9551_core 0x00000000 mma9551_read_config_byte +EXPORT_SYMBOL drivers/iio/accel/mma9551_core 0x00000000 mma9551_read_config_word +EXPORT_SYMBOL drivers/iio/accel/mma9551_core 0x00000000 mma9551_read_config_words +EXPORT_SYMBOL drivers/iio/accel/mma9551_core 0x00000000 mma9551_read_status_byte +EXPORT_SYMBOL drivers/iio/accel/mma9551_core 0x00000000 mma9551_read_status_word +EXPORT_SYMBOL drivers/iio/accel/mma9551_core 0x00000000 mma9551_read_status_words +EXPORT_SYMBOL drivers/iio/accel/mma9551_core 0x00000000 mma9551_read_version +EXPORT_SYMBOL drivers/iio/accel/mma9551_core 0x00000000 mma9551_set_device_state +EXPORT_SYMBOL drivers/iio/accel/mma9551_core 0x00000000 mma9551_set_power_state +EXPORT_SYMBOL drivers/iio/accel/mma9551_core 0x00000000 mma9551_sleep +EXPORT_SYMBOL drivers/iio/accel/mma9551_core 0x00000000 mma9551_update_config_bits +EXPORT_SYMBOL drivers/iio/accel/mma9551_core 0x00000000 mma9551_write_config_byte +EXPORT_SYMBOL drivers/iio/accel/mma9551_core 0x00000000 mma9551_write_config_word +EXPORT_SYMBOL drivers/iio/accel/mma9551_core 0x00000000 mma9551_write_config_words +EXPORT_SYMBOL drivers/iio/accel/st_accel 0x00000000 st_accel_common_probe +EXPORT_SYMBOL drivers/iio/accel/st_accel 0x00000000 st_accel_common_remove +EXPORT_SYMBOL drivers/iio/accel/st_accel 0x00000000 st_accel_get_settings +EXPORT_SYMBOL drivers/iio/adc/qcom-vadc-common 0x00000000 qcom_adc5_hw_scale +EXPORT_SYMBOL drivers/iio/adc/qcom-vadc-common 0x00000000 qcom_vadc_decimation_from_dt +EXPORT_SYMBOL drivers/iio/adc/qcom-vadc-common 0x00000000 qcom_vadc_scale +EXPORT_SYMBOL drivers/iio/buffer/industrialio-triggered-buffer 0x00000000 iio_triggered_buffer_cleanup +EXPORT_SYMBOL drivers/iio/buffer/industrialio-triggered-buffer 0x00000000 iio_triggered_buffer_setup +EXPORT_SYMBOL drivers/iio/buffer/kfifo_buf 0x00000000 devm_iio_kfifo_allocate +EXPORT_SYMBOL drivers/iio/buffer/kfifo_buf 0x00000000 devm_iio_kfifo_free +EXPORT_SYMBOL drivers/iio/buffer/kfifo_buf 0x00000000 iio_kfifo_allocate +EXPORT_SYMBOL drivers/iio/buffer/kfifo_buf 0x00000000 iio_kfifo_free +EXPORT_SYMBOL drivers/iio/chemical/bme680_core 0x00000000 bme680_regmap_config +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x00000000 hid_sensor_batch_mode_supported +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x00000000 hid_sensor_convert_timestamp +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x00000000 hid_sensor_format_scale +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x00000000 hid_sensor_get_report_latency +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x00000000 hid_sensor_parse_common_attributes +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x00000000 hid_sensor_read_poll_value +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x00000000 hid_sensor_read_raw_hyst_value +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x00000000 hid_sensor_read_samp_freq_value +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x00000000 hid_sensor_set_report_latency +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x00000000 hid_sensor_write_raw_hyst_value +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x00000000 hid_sensor_write_samp_freq_value +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-trigger 0x00000000 hid_sensor_pm_ops +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-trigger 0x00000000 hid_sensor_power_state +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-trigger 0x00000000 hid_sensor_remove_trigger +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-trigger 0x00000000 hid_sensor_setup_trigger +EXPORT_SYMBOL drivers/iio/common/ms_sensors/ms_sensors_i2c 0x00000000 ms_sensors_convert_and_read +EXPORT_SYMBOL drivers/iio/common/ms_sensors/ms_sensors_i2c 0x00000000 ms_sensors_ht_read_humidity +EXPORT_SYMBOL drivers/iio/common/ms_sensors/ms_sensors_i2c 0x00000000 ms_sensors_ht_read_temperature +EXPORT_SYMBOL drivers/iio/common/ms_sensors/ms_sensors_i2c 0x00000000 ms_sensors_read_prom_word +EXPORT_SYMBOL drivers/iio/common/ms_sensors/ms_sensors_i2c 0x00000000 ms_sensors_read_serial +EXPORT_SYMBOL drivers/iio/common/ms_sensors/ms_sensors_i2c 0x00000000 ms_sensors_read_temp_and_pressure +EXPORT_SYMBOL drivers/iio/common/ms_sensors/ms_sensors_i2c 0x00000000 ms_sensors_reset +EXPORT_SYMBOL drivers/iio/common/ms_sensors/ms_sensors_i2c 0x00000000 ms_sensors_show_battery_low +EXPORT_SYMBOL drivers/iio/common/ms_sensors/ms_sensors_i2c 0x00000000 ms_sensors_show_heater +EXPORT_SYMBOL drivers/iio/common/ms_sensors/ms_sensors_i2c 0x00000000 ms_sensors_tp_read_prom +EXPORT_SYMBOL drivers/iio/common/ms_sensors/ms_sensors_i2c 0x00000000 ms_sensors_write_heater +EXPORT_SYMBOL drivers/iio/common/ms_sensors/ms_sensors_i2c 0x00000000 ms_sensors_write_resolution +EXPORT_SYMBOL drivers/iio/common/ssp_sensors/sensorhub 0x00000000 ssp_change_delay +EXPORT_SYMBOL drivers/iio/common/ssp_sensors/sensorhub 0x00000000 ssp_disable_sensor +EXPORT_SYMBOL drivers/iio/common/ssp_sensors/sensorhub 0x00000000 ssp_enable_sensor +EXPORT_SYMBOL drivers/iio/common/ssp_sensors/sensorhub 0x00000000 ssp_get_sensor_delay +EXPORT_SYMBOL drivers/iio/common/ssp_sensors/sensorhub 0x00000000 ssp_register_consumer +EXPORT_SYMBOL drivers/iio/common/ssp_sensors/ssp_iio 0x00000000 ssp_common_buffer_postdisable +EXPORT_SYMBOL drivers/iio/common/ssp_sensors/ssp_iio 0x00000000 ssp_common_buffer_postenable +EXPORT_SYMBOL drivers/iio/common/ssp_sensors/ssp_iio 0x00000000 ssp_common_process_data +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x00000000 st_sensors_allocate_trigger +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x00000000 st_sensors_deallocate_trigger +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x00000000 st_sensors_debugfs_reg_access +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x00000000 st_sensors_dev_name_probe +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x00000000 st_sensors_get_settings_index +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x00000000 st_sensors_init_sensor +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x00000000 st_sensors_power_disable +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x00000000 st_sensors_power_enable +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x00000000 st_sensors_read_info_raw +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x00000000 st_sensors_set_axis_enable +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x00000000 st_sensors_set_dataready_irq +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x00000000 st_sensors_set_enable +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x00000000 st_sensors_set_fullscale_by_gain +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x00000000 st_sensors_set_odr +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x00000000 st_sensors_sysfs_sampling_frequency_avail +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x00000000 st_sensors_sysfs_scale_avail +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x00000000 st_sensors_trigger_handler +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x00000000 st_sensors_validate_device +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x00000000 st_sensors_verify_id +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors_i2c 0x00000000 st_sensors_i2c_configure +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors_spi 0x00000000 st_sensors_spi_configure +EXPORT_SYMBOL drivers/iio/gyro/mpu3050 0x00000000 mpu3050_common_probe +EXPORT_SYMBOL drivers/iio/gyro/mpu3050 0x00000000 mpu3050_common_remove +EXPORT_SYMBOL drivers/iio/gyro/mpu3050 0x00000000 mpu3050_dev_pm_ops +EXPORT_SYMBOL drivers/iio/gyro/st_gyro 0x00000000 st_gyro_common_probe +EXPORT_SYMBOL drivers/iio/gyro/st_gyro 0x00000000 st_gyro_common_remove +EXPORT_SYMBOL drivers/iio/gyro/st_gyro 0x00000000 st_gyro_get_settings +EXPORT_SYMBOL drivers/iio/humidity/hts221 0x00000000 hts221_pm_ops +EXPORT_SYMBOL drivers/iio/humidity/hts221 0x00000000 hts221_probe +EXPORT_SYMBOL drivers/iio/imu/adis_lib 0x00000000 adis_debugfs_reg_access +EXPORT_SYMBOL drivers/iio/imu/adis_lib 0x00000000 adis_enable_irq +EXPORT_SYMBOL drivers/iio/imu/bmi160/bmi160_core 0x00000000 bmi160_enable_irq +EXPORT_SYMBOL drivers/iio/imu/bmi160/bmi160_core 0x00000000 bmi160_regmap_config +EXPORT_SYMBOL drivers/iio/imu/fxos8700_core 0x00000000 fxos8700_regmap_config +EXPORT_SYMBOL drivers/iio/imu/st_lsm6dsx/st_lsm6dsx 0x00000000 st_lsm6dsx_pm_ops +EXPORT_SYMBOL drivers/iio/imu/st_lsm6dsx/st_lsm6dsx 0x00000000 st_lsm6dsx_probe +EXPORT_SYMBOL drivers/iio/industrialio 0x00000000 __iio_device_register +EXPORT_SYMBOL drivers/iio/industrialio 0x00000000 __iio_trigger_register +EXPORT_SYMBOL drivers/iio/industrialio 0x00000000 iio_buffer_init +EXPORT_SYMBOL drivers/iio/industrialio 0x00000000 iio_bus_type +EXPORT_SYMBOL drivers/iio/industrialio 0x00000000 iio_device_alloc +EXPORT_SYMBOL drivers/iio/industrialio 0x00000000 iio_device_free +EXPORT_SYMBOL drivers/iio/industrialio 0x00000000 iio_device_unregister +EXPORT_SYMBOL drivers/iio/industrialio 0x00000000 iio_get_time_ns +EXPORT_SYMBOL drivers/iio/industrialio 0x00000000 iio_get_time_res +EXPORT_SYMBOL drivers/iio/industrialio 0x00000000 iio_pollfunc_store_time +EXPORT_SYMBOL drivers/iio/industrialio 0x00000000 iio_push_event +EXPORT_SYMBOL drivers/iio/industrialio 0x00000000 iio_read_const_attr +EXPORT_SYMBOL drivers/iio/industrialio 0x00000000 iio_read_mount_matrix +EXPORT_SYMBOL drivers/iio/industrialio 0x00000000 iio_trigger_alloc +EXPORT_SYMBOL drivers/iio/industrialio 0x00000000 iio_trigger_free +EXPORT_SYMBOL drivers/iio/industrialio 0x00000000 iio_trigger_generic_data_rdy_poll +EXPORT_SYMBOL drivers/iio/industrialio 0x00000000 iio_trigger_notify_done +EXPORT_SYMBOL drivers/iio/industrialio 0x00000000 iio_trigger_poll +EXPORT_SYMBOL drivers/iio/industrialio 0x00000000 iio_trigger_poll_chained +EXPORT_SYMBOL drivers/iio/industrialio 0x00000000 iio_trigger_set_immutable +EXPORT_SYMBOL drivers/iio/industrialio 0x00000000 iio_trigger_unregister +EXPORT_SYMBOL drivers/iio/industrialio 0x00000000 iio_trigger_using_own +EXPORT_SYMBOL drivers/iio/industrialio 0x00000000 iio_trigger_validate_own_device +EXPORT_SYMBOL drivers/iio/industrialio 0x00000000 iio_triggered_buffer_postenable +EXPORT_SYMBOL drivers/iio/industrialio 0x00000000 iio_triggered_buffer_predisable +EXPORT_SYMBOL drivers/iio/industrialio-configfs 0x00000000 iio_configfs_subsys +EXPORT_SYMBOL drivers/iio/industrialio-sw-device 0x00000000 iio_register_sw_device_type +EXPORT_SYMBOL drivers/iio/industrialio-sw-device 0x00000000 iio_sw_device_create +EXPORT_SYMBOL drivers/iio/industrialio-sw-device 0x00000000 iio_sw_device_destroy +EXPORT_SYMBOL drivers/iio/industrialio-sw-device 0x00000000 iio_unregister_sw_device_type +EXPORT_SYMBOL drivers/iio/industrialio-sw-trigger 0x00000000 iio_register_sw_trigger_type +EXPORT_SYMBOL drivers/iio/industrialio-sw-trigger 0x00000000 iio_sw_trigger_create +EXPORT_SYMBOL drivers/iio/industrialio-sw-trigger 0x00000000 iio_sw_trigger_destroy +EXPORT_SYMBOL drivers/iio/industrialio-sw-trigger 0x00000000 iio_unregister_sw_trigger_type +EXPORT_SYMBOL drivers/iio/industrialio-triggered-event 0x00000000 iio_triggered_event_cleanup +EXPORT_SYMBOL drivers/iio/industrialio-triggered-event 0x00000000 iio_triggered_event_setup +EXPORT_SYMBOL drivers/iio/light/st_uvis25_core 0x00000000 st_uvis25_pm_ops +EXPORT_SYMBOL drivers/iio/light/st_uvis25_core 0x00000000 st_uvis25_probe +EXPORT_SYMBOL drivers/iio/magnetometer/bmc150_magn 0x00000000 bmc150_magn_pm_ops +EXPORT_SYMBOL drivers/iio/magnetometer/bmc150_magn 0x00000000 bmc150_magn_probe +EXPORT_SYMBOL drivers/iio/magnetometer/bmc150_magn 0x00000000 bmc150_magn_regmap_config +EXPORT_SYMBOL drivers/iio/magnetometer/bmc150_magn 0x00000000 bmc150_magn_remove +EXPORT_SYMBOL drivers/iio/magnetometer/hmc5843_core 0x00000000 hmc5843_common_probe +EXPORT_SYMBOL drivers/iio/magnetometer/hmc5843_core 0x00000000 hmc5843_common_remove +EXPORT_SYMBOL drivers/iio/magnetometer/hmc5843_core 0x00000000 hmc5843_common_resume +EXPORT_SYMBOL drivers/iio/magnetometer/hmc5843_core 0x00000000 hmc5843_common_suspend +EXPORT_SYMBOL drivers/iio/magnetometer/st_magn 0x00000000 st_magn_common_probe +EXPORT_SYMBOL drivers/iio/magnetometer/st_magn 0x00000000 st_magn_common_remove +EXPORT_SYMBOL drivers/iio/magnetometer/st_magn 0x00000000 st_magn_get_settings +EXPORT_SYMBOL drivers/iio/pressure/bmp280 0x00000000 bmp180_regmap_config +EXPORT_SYMBOL drivers/iio/pressure/bmp280 0x00000000 bmp280_common_probe +EXPORT_SYMBOL drivers/iio/pressure/bmp280 0x00000000 bmp280_dev_pm_ops +EXPORT_SYMBOL drivers/iio/pressure/bmp280 0x00000000 bmp280_regmap_config +EXPORT_SYMBOL drivers/iio/pressure/ms5611_core 0x00000000 ms5611_probe +EXPORT_SYMBOL drivers/iio/pressure/ms5611_core 0x00000000 ms5611_remove +EXPORT_SYMBOL drivers/iio/pressure/st_pressure 0x00000000 st_press_common_probe +EXPORT_SYMBOL drivers/iio/pressure/st_pressure 0x00000000 st_press_common_remove +EXPORT_SYMBOL drivers/iio/pressure/st_pressure 0x00000000 st_press_get_settings +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x00000000 cm_class +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x00000000 ib_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x00000000 ib_cm_insert_listen +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x00000000 ib_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x00000000 ib_cm_notify +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x00000000 ib_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x00000000 ib_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x00000000 ib_send_cm_drep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x00000000 ib_send_cm_dreq +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x00000000 ib_send_cm_mra +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x00000000 ib_send_cm_rej +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x00000000 ib_send_cm_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x00000000 ib_send_cm_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x00000000 ib_send_cm_rtu +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x00000000 ib_send_cm_sidr_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x00000000 ib_send_cm_sidr_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x00000000 ibcm_reject_msg +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 __ib_alloc_cq_any +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 __ib_alloc_cq_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 __ib_alloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 __ib_alloc_xrcd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 __ib_create_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 __rdma_block_iter_next +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 __rdma_block_iter_start +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 _ib_alloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_advise_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_alloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_alloc_mr_integrity +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_alloc_mr_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_attach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_cache_gid_parse_type_str +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_cache_gid_type_str +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_cancel_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_check_mr_status +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_close_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_create_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_create_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_create_qp_security +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_create_qp_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_create_rwq_ind_table +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_create_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_create_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_create_wq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_dealloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_dealloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_dealloc_pd_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_dealloc_xrcd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_dereg_mr_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_destroy_cq_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_destroy_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_destroy_qp_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_destroy_rwq_ind_table +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_destroy_srq_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_destroy_wq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_detach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_device_get_by_name +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_device_get_by_netdev +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_device_put +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_device_set_netdev +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_dispatch_event +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_drain_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_drain_rq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_drain_sq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_event_msg +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_find_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_find_exact_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_find_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_find_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_flush_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_fmr_pool_map_phys +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_fmr_pool_unmap +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_free_cq_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_free_recv_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_free_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_get_cached_lmc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_get_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_get_cached_port_state +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_get_cached_subnet_prefix +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_get_device_fw_str +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_get_eth_speed +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_get_gids_from_rdma_hdr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_get_mad_data_offset +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_get_net_dev_by_params +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_get_rdma_header_version +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_get_rmpp_segment +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_get_vf_config +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_get_vf_guid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_get_vf_stats +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_init_ah_attr_from_path +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_init_ah_attr_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_init_ah_from_mcmember +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_is_mad_class_rmpp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_mad_kernel_rmpp_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_map_mr_sg +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_map_mr_sg_pi +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_modify_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_modify_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_modify_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_modify_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_modify_qp_is_ok +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_modify_qp_with_udata +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_modify_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_modify_wq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_mr_pool_destroy +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_mr_pool_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_mr_pool_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_mr_pool_put +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_open_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_port_register_module_stat +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_port_unregister_module_stat +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_post_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_process_cq_direct +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_query_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_query_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_query_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_query_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_rate_to_mbps +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_rate_to_mult +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_rdmacg_try_charge +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_rdmacg_uncharge +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_reg_user_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_register_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_register_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_register_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_register_mad_snoop +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_resize_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_response_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_sa_cancel_query +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_sa_free_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_sa_get_mcmember_rec +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_sa_guid_info_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_sa_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_sa_pack_path +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_sa_path_rec_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_sa_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_sa_sendonly_fullmem_support +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_sa_service_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_sa_unpack_path +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_sa_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_set_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_set_device_ops +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_set_vf_guid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_set_vf_link_state +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_sg_to_pages +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_ud_header_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_ud_header_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_ud_header_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_ud_ip4_csum +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_unmap_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_unregister_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_unregister_device_and_put +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_unregister_device_queued +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_unregister_driver +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_unregister_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_unregister_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ib_wc_status_msg +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ibdev_alert +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ibdev_crit +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ibdev_emerg +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ibdev_err +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ibdev_info +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ibdev_notice +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ibdev_printk +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ibdev_warn +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ibnl_put_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 ibnl_put_msg +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 mult_to_ib_rate +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_addr_cancel +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_addr_size +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_addr_size_in6 +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_addr_size_kss +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_alloc_netdev +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_copy_ah_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_copy_src_l2_addr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_create_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_create_user_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_destroy_ah_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_destroy_ah_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_dev_access_netns +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_find_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_find_gid_by_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_get_gid_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_hold_gid_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_init_netdev +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_is_zero_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_link_register +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_link_unregister +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_modify_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_move_ah_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_move_grh_sgid_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_nl_chk_listeners +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_nl_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_nl_put_driver_string +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_nl_put_driver_u32 +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_nl_put_driver_u32_hex +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_nl_put_driver_u64 +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_nl_put_driver_u64_hex +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_nl_register +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_nl_stat_hwcounter_entry +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_nl_unicast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_nl_unicast_wait +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_nl_unregister +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_node_get_transport +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_port_get_link_layer +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_put_gid_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_query_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_query_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_read_gid_attr_ndev_rcu +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_read_gid_l2_fields +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_replace_ah_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_resolve_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_restrack_count +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_restrack_del +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_restrack_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_restrack_get_byid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_restrack_kadd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_restrack_put +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_restrack_set_task +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_restrack_uadd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_roce_rescan_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_rw_ctx_destroy +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_rw_ctx_destroy_signature +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_rw_ctx_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_rw_ctx_post +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_rw_ctx_signature_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_rw_ctx_wrs +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_rw_mr_factor +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_set_cq_moderation +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_translate_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_umap_priv_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_user_mmap_entry_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_user_mmap_entry_get_pgoff +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_user_mmap_entry_insert +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_user_mmap_entry_insert_range +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_user_mmap_entry_put +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_user_mmap_entry_remove +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 rdma_user_mmap_io +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 roce_gid_type_mask_support +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00000000 zgid +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x00000000 _uverbs_alloc +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x00000000 _uverbs_get_const +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x00000000 flow_resources_add +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x00000000 flow_resources_alloc +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x00000000 ib_copy_ah_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x00000000 ib_copy_path_rec_from_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x00000000 ib_copy_path_rec_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x00000000 ib_copy_qp_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x00000000 ib_umem_copy_from +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x00000000 ib_umem_find_best_pgsz +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x00000000 ib_umem_get +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x00000000 ib_umem_odp_alloc_child +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x00000000 ib_umem_odp_alloc_implicit +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x00000000 ib_umem_odp_get +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x00000000 ib_umem_odp_map_dma_pages +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x00000000 ib_umem_odp_release +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x00000000 ib_umem_odp_unmap_dma_pages +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x00000000 ib_umem_page_count +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x00000000 ib_umem_release +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x00000000 ib_uverbs_flow_resources_free +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x00000000 ib_uverbs_get_ucontext_file +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x00000000 uverbs_copy_to +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x00000000 uverbs_destroy_def_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x00000000 uverbs_fd_class +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x00000000 uverbs_get_flags32 +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x00000000 uverbs_get_flags64 +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x00000000 uverbs_idr_class +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x00000000 uverbs_uobject_fd_release +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x00000000 uverbs_uobject_put +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x00000000 iw_cm_accept +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x00000000 iw_cm_connect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x00000000 iw_cm_disconnect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x00000000 iw_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x00000000 iw_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x00000000 iw_cm_reject +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x00000000 iw_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x00000000 iw_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x00000000 iwcm_reject_msg +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x00000000 __rdma_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x00000000 __rdma_create_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x00000000 rdma_bind_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x00000000 rdma_connect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x00000000 rdma_consumer_reject_data +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x00000000 rdma_create_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x00000000 rdma_destroy_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x00000000 rdma_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x00000000 rdma_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x00000000 rdma_event_msg +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x00000000 rdma_get_service_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x00000000 rdma_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x00000000 rdma_is_consumer_reject +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x00000000 rdma_iw_cm_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x00000000 rdma_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x00000000 rdma_leave_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x00000000 rdma_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x00000000 rdma_notify +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x00000000 rdma_read_gids +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x00000000 rdma_reject +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x00000000 rdma_reject_msg +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x00000000 rdma_res_to_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x00000000 rdma_resolve_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x00000000 rdma_resolve_route +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x00000000 rdma_set_ack_timeout +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x00000000 rdma_set_afonly +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x00000000 rdma_set_ib_path +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x00000000 rdma_set_reuseaddr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x00000000 rdma_set_service_type +EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x00000000 ib_rvt_state_ops +EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x00000000 rvt_add_retry_timer_ext +EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x00000000 rvt_add_rnr_timer +EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x00000000 rvt_alloc_device +EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x00000000 rvt_check_ah +EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x00000000 rvt_comm_est +EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x00000000 rvt_compute_aeth +EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x00000000 rvt_copy_sge +EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x00000000 rvt_cq_enter +EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x00000000 rvt_dealloc_device +EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x00000000 rvt_del_timers_sync +EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x00000000 rvt_error_qp +EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x00000000 rvt_fast_reg_mr +EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x00000000 rvt_get_credit +EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x00000000 rvt_get_rwqe +EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x00000000 rvt_init_port +EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x00000000 rvt_invalidate_rkey +EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x00000000 rvt_lkey_ok +EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x00000000 rvt_mcast_find +EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x00000000 rvt_qp_iter +EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x00000000 rvt_qp_iter_init +EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x00000000 rvt_qp_iter_next +EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x00000000 rvt_rc_error +EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x00000000 rvt_rc_rnr_retry +EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x00000000 rvt_register_device +EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x00000000 rvt_restart_sge +EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x00000000 rvt_rkey_ok +EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x00000000 rvt_rnr_tbl_to_usec +EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x00000000 rvt_ruc_loopback +EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x00000000 rvt_send_complete +EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x00000000 rvt_stop_rc_timers +EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x00000000 rvt_unregister_device +EXPORT_SYMBOL drivers/input/gameport/gameport 0x00000000 __gameport_register_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0x00000000 __gameport_register_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0x00000000 gameport_close +EXPORT_SYMBOL drivers/input/gameport/gameport 0x00000000 gameport_open +EXPORT_SYMBOL drivers/input/gameport/gameport 0x00000000 gameport_set_phys +EXPORT_SYMBOL drivers/input/gameport/gameport 0x00000000 gameport_start_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x00000000 gameport_stop_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x00000000 gameport_unregister_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0x00000000 gameport_unregister_port +EXPORT_SYMBOL drivers/input/input-polldev 0x00000000 devm_input_allocate_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x00000000 input_allocate_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x00000000 input_free_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x00000000 input_register_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x00000000 input_unregister_polled_device +EXPORT_SYMBOL drivers/input/joystick/iforce/iforce 0x00000000 iforce_init_device +EXPORT_SYMBOL drivers/input/joystick/iforce/iforce 0x00000000 iforce_process_packet +EXPORT_SYMBOL drivers/input/joystick/iforce/iforce 0x00000000 iforce_send_packet +EXPORT_SYMBOL drivers/input/matrix-keymap 0x00000000 matrix_keypad_build_keymap +EXPORT_SYMBOL drivers/input/misc/ad714x 0x00000000 ad714x_disable +EXPORT_SYMBOL drivers/input/misc/ad714x 0x00000000 ad714x_enable +EXPORT_SYMBOL drivers/input/misc/ad714x 0x00000000 ad714x_probe +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x00000000 cma3000_exit +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x00000000 cma3000_init +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x00000000 cma3000_resume +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x00000000 cma3000_suspend +EXPORT_SYMBOL drivers/input/rmi4/rmi_core 0x00000000 rmi_unregister_transport_device +EXPORT_SYMBOL drivers/input/sparse-keymap 0x00000000 sparse_keymap_entry_from_keycode +EXPORT_SYMBOL drivers/input/sparse-keymap 0x00000000 sparse_keymap_entry_from_scancode +EXPORT_SYMBOL drivers/input/sparse-keymap 0x00000000 sparse_keymap_report_entry +EXPORT_SYMBOL drivers/input/sparse-keymap 0x00000000 sparse_keymap_report_event +EXPORT_SYMBOL drivers/input/sparse-keymap 0x00000000 sparse_keymap_setup +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x00000000 ad7879_pm_ops +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x00000000 ad7879_probe +EXPORT_SYMBOL drivers/iommu/amd_iommu_v2 0x00000000 amd_iommu_bind_pasid +EXPORT_SYMBOL drivers/iommu/amd_iommu_v2 0x00000000 amd_iommu_free_device +EXPORT_SYMBOL drivers/iommu/amd_iommu_v2 0x00000000 amd_iommu_init_device +EXPORT_SYMBOL drivers/iommu/amd_iommu_v2 0x00000000 amd_iommu_set_invalid_ppr_cb +EXPORT_SYMBOL drivers/iommu/amd_iommu_v2 0x00000000 amd_iommu_set_invalidate_ctx_cb +EXPORT_SYMBOL drivers/iommu/amd_iommu_v2 0x00000000 amd_iommu_unbind_pasid +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x00000000 attach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x00000000 capi_ctr_down +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x00000000 capi_ctr_handle_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x00000000 capi_ctr_ready +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x00000000 detach_capi_ctr +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/isdnhdlc 0x00000000 isdnhdlc_decode +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/isdnhdlc 0x00000000 isdnhdlc_encode +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/isdnhdlc 0x00000000 isdnhdlc_out_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/isdnhdlc 0x00000000 isdnhdlc_rcv_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x00000000 mISDNipac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x00000000 mISDNipac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x00000000 mISDNisac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x00000000 mISDNisac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x00000000 mISDNisar_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x00000000 mISDNisar_irq +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x00000000 bchannel_get_rxbuf +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x00000000 bchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x00000000 create_l1 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x00000000 dchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x00000000 get_next_bframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x00000000 get_next_dframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x00000000 l1_event +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x00000000 mISDNDevName4ch +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x00000000 mISDN_FsmAddTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x00000000 mISDN_FsmChangeState +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x00000000 mISDN_FsmDelTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x00000000 mISDN_FsmEvent +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x00000000 mISDN_FsmFree +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x00000000 mISDN_FsmInitTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x00000000 mISDN_FsmNew +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x00000000 mISDN_FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x00000000 mISDN_clear_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x00000000 mISDN_clock_get +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x00000000 mISDN_clock_update +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x00000000 mISDN_ctrl_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x00000000 mISDN_freebchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x00000000 mISDN_freedchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x00000000 mISDN_initbchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x00000000 mISDN_initdchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x00000000 mISDN_register_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x00000000 mISDN_register_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x00000000 mISDN_register_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x00000000 mISDN_unregister_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x00000000 mISDN_unregister_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x00000000 mISDN_unregister_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x00000000 queue_ch_frame +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x00000000 recv_Bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x00000000 recv_Bchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x00000000 recv_Dchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x00000000 recv_Dchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x00000000 recv_Echannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x00000000 dsp_audio_law_to_s32 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x00000000 dsp_audio_s16_to_law +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x00000000 mISDN_dsp_element_register +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x00000000 mISDN_dsp_element_unregister +EXPORT_SYMBOL drivers/leds/leds-ti-lmu-common 0x00000000 ti_lmu_common_get_brt_res +EXPORT_SYMBOL drivers/leds/leds-ti-lmu-common 0x00000000 ti_lmu_common_get_ramp_params +EXPORT_SYMBOL drivers/leds/leds-ti-lmu-common 0x00000000 ti_lmu_common_set_brightness +EXPORT_SYMBOL drivers/leds/leds-ti-lmu-common 0x00000000 ti_lmu_common_set_ramp +EXPORT_SYMBOL drivers/md/dm-log 0x00000000 dm_dirty_log_create +EXPORT_SYMBOL drivers/md/dm-log 0x00000000 dm_dirty_log_destroy +EXPORT_SYMBOL drivers/md/dm-log 0x00000000 dm_dirty_log_type_register +EXPORT_SYMBOL drivers/md/dm-log 0x00000000 dm_dirty_log_type_unregister +EXPORT_SYMBOL drivers/md/dm-snapshot 0x00000000 dm_exception_store_create +EXPORT_SYMBOL drivers/md/dm-snapshot 0x00000000 dm_exception_store_destroy +EXPORT_SYMBOL drivers/md/dm-snapshot 0x00000000 dm_exception_store_type_register +EXPORT_SYMBOL drivers/md/dm-snapshot 0x00000000 dm_exception_store_type_unregister +EXPORT_SYMBOL drivers/md/dm-snapshot 0x00000000 dm_snap_cow +EXPORT_SYMBOL drivers/md/dm-snapshot 0x00000000 dm_snap_origin +EXPORT_SYMBOL drivers/md/raid456 0x00000000 r5c_journal_mode_set +EXPORT_SYMBOL drivers/md/raid456 0x00000000 raid5_set_cache_size +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x00000000 flexcop_device_exit +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x00000000 flexcop_device_initialize +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x00000000 flexcop_device_kfree +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x00000000 flexcop_device_kmalloc +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x00000000 flexcop_dump_reg +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x00000000 flexcop_eeprom_check_mac_addr +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x00000000 flexcop_i2c_request +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x00000000 flexcop_pass_dmx_data +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x00000000 flexcop_pass_dmx_packets +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x00000000 flexcop_pid_feed_control +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x00000000 flexcop_sram_ctrl +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x00000000 flexcop_sram_set_dest +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x00000000 flexcop_wan_set_speed +EXPORT_SYMBOL drivers/media/common/cx2341x 0x00000000 cx2341x_ctrl_get_menu +EXPORT_SYMBOL drivers/media/common/cx2341x 0x00000000 cx2341x_ctrl_query +EXPORT_SYMBOL drivers/media/common/cx2341x 0x00000000 cx2341x_ext_ctrls +EXPORT_SYMBOL drivers/media/common/cx2341x 0x00000000 cx2341x_fill_defaults +EXPORT_SYMBOL drivers/media/common/cx2341x 0x00000000 cx2341x_handler_init +EXPORT_SYMBOL drivers/media/common/cx2341x 0x00000000 cx2341x_handler_set_50hz +EXPORT_SYMBOL drivers/media/common/cx2341x 0x00000000 cx2341x_handler_set_busy +EXPORT_SYMBOL drivers/media/common/cx2341x 0x00000000 cx2341x_handler_setup +EXPORT_SYMBOL drivers/media/common/cx2341x 0x00000000 cx2341x_log_status +EXPORT_SYMBOL drivers/media/common/cx2341x 0x00000000 cx2341x_mpeg_ctrls +EXPORT_SYMBOL drivers/media/common/cx2341x 0x00000000 cx2341x_update +EXPORT_SYMBOL drivers/media/common/cypress_firmware 0x00000000 cypress_load_firmware +EXPORT_SYMBOL drivers/media/common/tveeprom 0x00000000 tveeprom_hauppauge_analog +EXPORT_SYMBOL drivers/media/common/tveeprom 0x00000000 tveeprom_read +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-common 0x00000000 vb2_buffer_in_use +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-common 0x00000000 vb2_verify_memory_type +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-dvb 0x00000000 vb2_dvb_alloc_frontend +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-dvb 0x00000000 vb2_dvb_dealloc_frontends +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-dvb 0x00000000 vb2_dvb_find_frontend +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-dvb 0x00000000 vb2_dvb_get_frontend +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-dvb 0x00000000 vb2_dvb_register_bus +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-dvb 0x00000000 vb2_dvb_unregister_bus +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-memops 0x00000000 vb2_create_framevec +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-memops 0x00000000 vb2_destroy_framevec +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-v4l2 0x00000000 vb2_querybuf +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_ca_en50221_camchange_irq +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_ca_en50221_camready_irq +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_ca_en50221_frda_irq +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_ca_en50221_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_ca_en50221_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_dmx_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_dmx_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_dmx_swfilter +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_dmx_swfilter_204 +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_dmx_swfilter_packets +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_dmx_swfilter_raw +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_dmxdev_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_dmxdev_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_free_device +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_frontend_detach +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_frontend_reinitialise +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_frontend_resume +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_frontend_sleep_until +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_frontend_suspend +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_generic_ioctl +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_generic_open +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_generic_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_net_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_net_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_register_adapter +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_register_device +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_register_frontend +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_remove_device +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_ringbuffer_avail +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_ringbuffer_empty +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_ringbuffer_flush +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_ringbuffer_flush_spinlock_wakeup +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_ringbuffer_free +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_ringbuffer_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_ringbuffer_read +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_ringbuffer_read_user +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_ringbuffer_write +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_ringbuffer_write_user +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_unregister_adapter +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_unregister_device +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 dvb_unregister_frontend +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 intlog10 +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00000000 intlog2 +EXPORT_SYMBOL drivers/media/dvb-frontends/ascot2e 0x00000000 ascot2e_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/atbm8830 0x00000000 atbm8830_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x00000000 au8522_analog_i2c_gate_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x00000000 au8522_get_state +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x00000000 au8522_i2c_gate_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x00000000 au8522_init +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x00000000 au8522_led_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x00000000 au8522_readreg +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x00000000 au8522_release_state +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x00000000 au8522_sleep +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x00000000 au8522_writereg +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_dig 0x00000000 au8522_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/bcm3510 0x00000000 bcm3510_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx22700 0x00000000 cx22700_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx22702 0x00000000 cx22702_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24110 0x00000000 cx24110_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24113 0x00000000 cx24113_agc_callback +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24113 0x00000000 cx24113_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24116 0x00000000 cx24116_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24120 0x00000000 cx24120_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24123 0x00000000 cx24123_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24123 0x00000000 cx24123_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/cxd2820r 0x00000000 cxd2820r_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cxd2841er 0x00000000 cxd2841er_attach_s +EXPORT_SYMBOL drivers/media/dvb-frontends/cxd2841er 0x00000000 cxd2841er_attach_t_c +EXPORT_SYMBOL drivers/media/dvb-frontends/cxd2880/cxd2880 0x00000000 cxd2880_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x00000000 dib0070_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x00000000 dib0070_ctrl_agc_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x00000000 dib0070_get_rf_output +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x00000000 dib0070_set_rf_output +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x00000000 dib0070_wbd_offset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x00000000 dib0090_dcc_freq +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x00000000 dib0090_fw_register +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x00000000 dib0090_gain_control +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x00000000 dib0090_get_current_gain +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x00000000 dib0090_get_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x00000000 dib0090_get_wbd_offset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x00000000 dib0090_get_wbd_target +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x00000000 dib0090_pwm_gain_reset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x00000000 dib0090_register +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x00000000 dib0090_set_dc_servo +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x00000000 dib0090_set_switch +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x00000000 dib0090_set_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x00000000 dib0090_set_vga +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x00000000 dib0090_update_rframp_7090 +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x00000000 dib0090_update_tuning_table_7090 +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mb 0x00000000 dib3000mb_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x00000000 dib3000mc_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x00000000 dib3000mc_get_tuner_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x00000000 dib3000mc_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x00000000 dib3000mc_pid_control +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x00000000 dib3000mc_pid_parse +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x00000000 dib3000mc_set_config +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0x00000000 dib7000m_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0x00000000 dib7000m_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0x00000000 dib7000m_pid_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0x00000000 dib7000m_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x00000000 dib7000p_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x00000000 dib8000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x00000000 dib9000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x00000000 dib9000_firmware_post_pll_init +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x00000000 dib9000_fw_pid_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x00000000 dib9000_fw_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x00000000 dib9000_fw_set_component_bus_speed +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x00000000 dib9000_get_component_bus_interface +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x00000000 dib9000_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x00000000 dib9000_get_slave_frontend +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x00000000 dib9000_get_tuner_interface +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x00000000 dib9000_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x00000000 dib9000_set_gpio +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x00000000 dib9000_set_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x00000000 dib9000_set_slave_frontend +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x00000000 dibx000_exit_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x00000000 dibx000_get_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x00000000 dibx000_i2c_set_speed +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x00000000 dibx000_init_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x00000000 dibx000_reset_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/drx39xyj/drx39xyj 0x00000000 drx39xxj_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/drxd 0x00000000 drxd_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/drxk 0x00000000 drxk_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ds3000 0x00000000 ds3000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dvb-pll 0x00000000 dvb_pll_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dvb_dummy_fe 0x00000000 dvb_dummy_fe_ofdm_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dvb_dummy_fe 0x00000000 dvb_dummy_fe_qam_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dvb_dummy_fe 0x00000000 dvb_dummy_fe_qpsk_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ec100 0x00000000 ec100_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/helene 0x00000000 helene_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/helene 0x00000000 helene_attach_s +EXPORT_SYMBOL drivers/media/dvb-frontends/horus3a 0x00000000 horus3a_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/isl6405 0x00000000 isl6405_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/isl6421 0x00000000 isl6421_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/isl6423 0x00000000 isl6423_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/itd1000 0x00000000 itd1000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ix2505v 0x00000000 ix2505v_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/l64781 0x00000000 l64781_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lg2160 0x00000000 lg2160_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgdt3305 0x00000000 lgdt3305_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgdt3306a 0x00000000 lgdt3306a_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgdt330x 0x00000000 lgdt330x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgs8gl5 0x00000000 lgs8gl5_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgs8gxx 0x00000000 lgs8gxx_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbh25 0x00000000 lnbh25_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbh29 0x00000000 lnbh29_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbp21 0x00000000 lnbh24_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbp21 0x00000000 lnbp21_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbp22 0x00000000 lnbp22_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/m88ds3103 0x00000000 m88ds3103_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/m88ds3103 0x00000000 m88ds3103_get_agc_pwm +EXPORT_SYMBOL drivers/media/dvb-frontends/m88rs2000 0x00000000 m88rs2000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mb86a16 0x00000000 mb86a16_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mb86a20s 0x00000000 mb86a20s_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mt312 0x00000000 mt312_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mt352 0x00000000 mt352_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/nxt200x 0x00000000 nxt200x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/nxt6000 0x00000000 nxt6000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/or51132 0x00000000 or51132_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/or51211 0x00000000 or51211_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1409 0x00000000 s5h1409_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1411 0x00000000 s5h1411_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1420 0x00000000 s5h1420_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1420 0x00000000 s5h1420_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1432 0x00000000 s5h1432_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s921 0x00000000 s921_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/si21xx 0x00000000 si21xx_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/sp8870 0x00000000 sp8870_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/sp887x 0x00000000 sp887x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stb0899 0x00000000 stb0899_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stb6000 0x00000000 stb6000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stb6100 0x00000000 stb6100_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0288 0x00000000 stv0288_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0297 0x00000000 stv0297_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0299 0x00000000 stv0299_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0367 0x00000000 stv0367cab_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0367 0x00000000 stv0367ddb_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0367 0x00000000 stv0367ter_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0900 0x00000000 stv0900_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv090x 0x00000000 stv090x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv6110 0x00000000 stv6110_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv6110x 0x00000000 stv6110x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10021 0x00000000 tda10021_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10023 0x00000000 tda10023_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10048 0x00000000 tda10048_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda1004x 0x00000000 tda10045_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda1004x 0x00000000 tda10046_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10086 0x00000000 tda10086_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda665x 0x00000000 tda665x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda8083 0x00000000 tda8083_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda8261 0x00000000 tda8261_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda826x 0x00000000 tda826x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ts2020 0x00000000 ts2020_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tua6100 0x00000000 tua6100_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ves1820 0x00000000 ves1820_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ves1x93 0x00000000 ves1x93_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/zd1301_demod 0x00000000 zd1301_demod_get_dvb_frontend +EXPORT_SYMBOL drivers/media/dvb-frontends/zd1301_demod 0x00000000 zd1301_demod_get_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/zl10036 0x00000000 zl10036_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/zl10039 0x00000000 zl10039_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/zl10353 0x00000000 zl10353_attach +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x00000000 flexcop_dma_allocate +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x00000000 flexcop_dma_config +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x00000000 flexcop_dma_config_timer +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x00000000 flexcop_dma_control_size_irq +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x00000000 flexcop_dma_control_timer_irq +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x00000000 flexcop_dma_free +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x00000000 flexcop_dma_xfer_control +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0x00000000 bt878 +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0x00000000 bt878_device_control +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0x00000000 bt878_num +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0x00000000 bt878_start +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0x00000000 bt878_stop +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x00000000 bttv_get_pcidev +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x00000000 bttv_gpio_enable +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x00000000 bttv_read_gpio +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x00000000 bttv_sub_register +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x00000000 bttv_sub_unregister +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x00000000 bttv_write_gpio +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x00000000 dst_attach +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x00000000 dst_check_sum +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x00000000 dst_comm_init +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x00000000 dst_error_bailout +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x00000000 dst_error_recovery +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x00000000 dst_pio_disable +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x00000000 dst_wait_dst_ready +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x00000000 rdc_reset_state +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x00000000 read_dst +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x00000000 write_dst +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst_ca 0x00000000 dst_ca_attach +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x00000000 cx18_claim_stream +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x00000000 cx18_ext_init +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x00000000 cx18_release_stream +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x00000000 cx18_reset_ir_gpio +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x00000000 cx18_start_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x00000000 cx18_stop_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x00000000 altera_ci_init +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x00000000 altera_ci_irq +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x00000000 altera_ci_release +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x00000000 altera_ci_tuner_reset +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x00000000 cx25821_dev_get +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x00000000 cx25821_dev_unregister +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x00000000 cx25821_print_irqbits +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x00000000 cx25821_risc_databuffer_audio +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x00000000 cx25821_riscmem_alloc +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x00000000 cx25821_set_gpiopin_direction +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x00000000 cx25821_sram_channel_dump_audio +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x00000000 cx25821_sram_channel_setup_audio +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x00000000 cx25821_sram_channels +EXPORT_SYMBOL drivers/media/pci/cx88/cx88-vp3054-i2c 0x00000000 vp3054_i2c_probe +EXPORT_SYMBOL drivers/media/pci/cx88/cx88-vp3054-i2c 0x00000000 vp3054_i2c_remove +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0x00000000 cx88_enum_input +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0x00000000 cx88_querycap +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0x00000000 cx88_set_freq +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0x00000000 cx88_video_mux +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x00000000 cx8802_buf_prepare +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x00000000 cx8802_buf_queue +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x00000000 cx8802_cancel_buffers +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x00000000 cx8802_get_driver +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x00000000 cx8802_register_driver +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x00000000 cx8802_start_dma +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x00000000 cx8802_unregister_driver +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x00000000 cx88_audio_thread +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x00000000 cx88_core_get +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x00000000 cx88_core_irq +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x00000000 cx88_core_put +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x00000000 cx88_dsp_detect_stereo_sap +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x00000000 cx88_get_stereo +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x00000000 cx88_ir_start +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x00000000 cx88_ir_stop +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x00000000 cx88_newstation +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x00000000 cx88_print_irqbits +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x00000000 cx88_reset +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x00000000 cx88_risc_buffer +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x00000000 cx88_risc_databuffer +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x00000000 cx88_set_scale +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x00000000 cx88_set_stereo +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x00000000 cx88_set_tvaudio +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x00000000 cx88_set_tvnorm +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x00000000 cx88_shutdown +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x00000000 cx88_sram_channel_dump +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x00000000 cx88_sram_channel_setup +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x00000000 cx88_sram_channels +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x00000000 cx88_tuner_callback +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x00000000 cx88_vdev_init +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x00000000 cx88_wakeup +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x00000000 ivtv_api +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x00000000 ivtv_claim_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x00000000 ivtv_clear_irq_mask +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x00000000 ivtv_debug +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x00000000 ivtv_ext_init +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x00000000 ivtv_firmware_check +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x00000000 ivtv_init_on_first_open +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x00000000 ivtv_release_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x00000000 ivtv_reset_ir_gpio +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x00000000 ivtv_set_irq_mask +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x00000000 ivtv_start_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x00000000 ivtv_stop_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x00000000 ivtv_udma_alloc +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x00000000 ivtv_udma_prepare +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x00000000 ivtv_udma_setup +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x00000000 ivtv_udma_unmap +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x00000000 ivtv_vapi +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x00000000 ivtv_vapi_result +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x00000000 saa7134_boards +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x00000000 saa7134_devlist +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x00000000 saa7134_devlist_lock +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x00000000 saa7134_dmasound_exit +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x00000000 saa7134_dmasound_init +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x00000000 saa7134_pgtable_alloc +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x00000000 saa7134_pgtable_build +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x00000000 saa7134_pgtable_free +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x00000000 saa7134_set_dmabits +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x00000000 saa7134_set_gpio +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x00000000 saa7134_ts_register +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x00000000 saa7134_ts_unregister +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x00000000 saa7134_tuner_callback +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x00000000 saa7134_tvaudio_setmute +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x00000000 saa_dsp_writel +EXPORT_SYMBOL drivers/media/pci/ttpci/ttpci-eeprom 0x00000000 ttpci_eeprom_decode_mac +EXPORT_SYMBOL drivers/media/pci/ttpci/ttpci-eeprom 0x00000000 ttpci_eeprom_parse_mac +EXPORT_SYMBOL drivers/media/radio/tea575x 0x00000000 snd_tea575x_enum_freq_bands +EXPORT_SYMBOL drivers/media/radio/tea575x 0x00000000 snd_tea575x_exit +EXPORT_SYMBOL drivers/media/radio/tea575x 0x00000000 snd_tea575x_g_tuner +EXPORT_SYMBOL drivers/media/radio/tea575x 0x00000000 snd_tea575x_hw_init +EXPORT_SYMBOL drivers/media/radio/tea575x 0x00000000 snd_tea575x_init +EXPORT_SYMBOL drivers/media/radio/tea575x 0x00000000 snd_tea575x_s_hw_freq_seek +EXPORT_SYMBOL drivers/media/radio/tea575x 0x00000000 snd_tea575x_set_freq +EXPORT_SYMBOL drivers/media/rc/rc-core 0x00000000 ir_raw_encode_carrier +EXPORT_SYMBOL drivers/media/rc/rc-core 0x00000000 ir_raw_encode_scancode +EXPORT_SYMBOL drivers/media/rc/rc-core 0x00000000 ir_raw_gen_manchester +EXPORT_SYMBOL drivers/media/rc/rc-core 0x00000000 ir_raw_gen_pd +EXPORT_SYMBOL drivers/media/rc/rc-core 0x00000000 ir_raw_gen_pl +EXPORT_SYMBOL drivers/media/rc/rc-core 0x00000000 ir_raw_handler_register +EXPORT_SYMBOL drivers/media/rc/rc-core 0x00000000 ir_raw_handler_unregister +EXPORT_SYMBOL drivers/media/tuners/fc0011 0x00000000 fc0011_attach +EXPORT_SYMBOL drivers/media/tuners/fc0012 0x00000000 fc0012_attach +EXPORT_SYMBOL drivers/media/tuners/fc0013 0x00000000 fc0013_attach +EXPORT_SYMBOL drivers/media/tuners/fc0013 0x00000000 fc0013_rc_cal_add +EXPORT_SYMBOL drivers/media/tuners/fc0013 0x00000000 fc0013_rc_cal_reset +EXPORT_SYMBOL drivers/media/tuners/max2165 0x00000000 max2165_attach +EXPORT_SYMBOL drivers/media/tuners/mc44s803 0x00000000 mc44s803_attach +EXPORT_SYMBOL drivers/media/tuners/mt2060 0x00000000 mt2060_attach +EXPORT_SYMBOL drivers/media/tuners/mt2131 0x00000000 mt2131_attach +EXPORT_SYMBOL drivers/media/tuners/mt2266 0x00000000 mt2266_attach +EXPORT_SYMBOL drivers/media/tuners/mxl5005s 0x00000000 mxl5005s_attach +EXPORT_SYMBOL drivers/media/tuners/qt1010 0x00000000 qt1010_attach +EXPORT_SYMBOL drivers/media/tuners/tda18218 0x00000000 tda18218_attach +EXPORT_SYMBOL drivers/media/tuners/tuner-types 0x00000000 tuner_count +EXPORT_SYMBOL drivers/media/tuners/tuner-types 0x00000000 tuners +EXPORT_SYMBOL drivers/media/tuners/tuner-xc2028 0x00000000 xc2028_attach +EXPORT_SYMBOL drivers/media/tuners/xc4000 0x00000000 xc4000_attach +EXPORT_SYMBOL drivers/media/tuners/xc5000 0x00000000 xc5000_attach +EXPORT_SYMBOL drivers/media/usb/cx231xx/cx231xx 0x00000000 cx231xx_register_extension +EXPORT_SYMBOL drivers/media/usb/cx231xx/cx231xx 0x00000000 cx231xx_unregister_extension +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x00000000 dvb_usbv2_disconnect +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x00000000 dvb_usbv2_generic_rw +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x00000000 dvb_usbv2_generic_rw_locked +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x00000000 dvb_usbv2_generic_write +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x00000000 dvb_usbv2_generic_write_locked +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x00000000 dvb_usbv2_probe +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x00000000 dvb_usbv2_reset_resume +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x00000000 dvb_usbv2_resume +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x00000000 dvb_usbv2_suspend +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x00000000 dvb_usb_device_exit +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x00000000 dvb_usb_device_init +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x00000000 dvb_usb_generic_rw +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x00000000 dvb_usb_generic_write +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x00000000 dvb_usb_get_hexline +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x00000000 dvb_usb_nec_rc_key_to_event +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x00000000 usb_cypress_load_firmware +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0x00000000 af9005_rc_decode +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0x00000000 rc_map_af9005_table +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0x00000000 rc_map_af9005_table_size +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x00000000 dibusb2_0_power_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x00000000 dibusb2_0_streaming_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x00000000 dibusb_i2c_algo +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x00000000 dibusb_pid_filter +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x00000000 dibusb_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x00000000 dibusb_power_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x00000000 dibusb_rc_query +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x00000000 dibusb_read_eeprom_byte +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x00000000 dibusb_streaming_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x00000000 rc_map_dibusb_table +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-mc-common 0x00000000 dibusb_dib3000mc_frontend_attach +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-mc-common 0x00000000 dibusb_dib3000mc_tuner_attach +EXPORT_SYMBOL drivers/media/usb/em28xx/em28xx 0x00000000 em28xx_register_extension +EXPORT_SYMBOL drivers/media/usb/em28xx/em28xx 0x00000000 em28xx_unregister_extension +EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0x00000000 go7007_alloc +EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0x00000000 go7007_boot_encoder +EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0x00000000 go7007_parse_video_stream +EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0x00000000 go7007_read_addr +EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0x00000000 go7007_read_interrupt +EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0x00000000 go7007_register_encoder +EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0x00000000 go7007_snd_init +EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0x00000000 go7007_snd_remove +EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0x00000000 go7007_update_board +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x00000000 gspca_coarse_grained_expo_autogain +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x00000000 gspca_debug +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x00000000 gspca_dev_probe +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x00000000 gspca_dev_probe2 +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x00000000 gspca_disconnect +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x00000000 gspca_expo_autogain +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x00000000 gspca_frame_add +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x00000000 gspca_resume +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x00000000 gspca_suspend +EXPORT_SYMBOL drivers/media/usb/tm6000/tm6000 0x00000000 tm6000_init_digital_mode +EXPORT_SYMBOL drivers/media/usb/tm6000/tm6000 0x00000000 tm6000_register_extension +EXPORT_SYMBOL drivers/media/usb/tm6000/tm6000 0x00000000 tm6000_unregister_extension +EXPORT_SYMBOL drivers/media/usb/ttusb-dec/ttusbdecfe 0x00000000 ttusbdecfe_dvbs_attach +EXPORT_SYMBOL drivers/media/usb/ttusb-dec/ttusbdecfe 0x00000000 ttusbdecfe_dvbt_attach +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_buf_done_and_job_finish +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_get_curr_priv +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_get_vq +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_job_finish +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_mmap +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 __v4l2_clk_register_fixed +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 __v4l2_ctrl_grab +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 __v4l2_ctrl_modify_range +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 __v4l2_ctrl_s_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 __v4l2_ctrl_s_ctrl_area +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 __v4l2_ctrl_s_ctrl_int64 +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 __v4l2_ctrl_s_ctrl_string +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 __video_register_device +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_async_notifier_init +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_async_notifier_register +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_async_notifier_unregister +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_async_register_subdev +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_async_subdev_notifier_register +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_async_unregister_subdev +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_clk_disable +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_clk_enable +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_clk_get +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_clk_get_rate +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_clk_put +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_clk_register +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_clk_set_rate +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_clk_unregister +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_clk_unregister_fixed +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_ctrl_activate +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_ctrl_add_handler +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_ctrl_auto_cluster +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_ctrl_cluster +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_ctrl_fill +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_ctrl_find +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_ctrl_g_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_ctrl_g_ctrl_int64 +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_ctrl_get_int_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_ctrl_get_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_ctrl_get_name +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_ctrl_handler_free +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_ctrl_handler_init_class +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_ctrl_handler_log_status +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_ctrl_handler_setup +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_ctrl_log_status +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_ctrl_merge +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_ctrl_new_custom +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_ctrl_new_int_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_ctrl_new_std +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_ctrl_new_std_compound +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_ctrl_new_std_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_ctrl_new_std_menu_items +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_ctrl_notify +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_ctrl_poll +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_ctrl_query_fill +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_ctrl_radio_filter +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_ctrl_replace +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_ctrl_request_complete +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_ctrl_request_setup +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_ctrl_sub_ev_ops +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_ctrl_subdev_log_status +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_ctrl_subdev_subscribe_event +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_ctrl_subscribe_event +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_field_names +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_format_info +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_g_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_g_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_norm_to_name +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_prio_change +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_prio_check +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_prio_close +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_prio_init +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_prio_max +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_prio_open +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_query_ext_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_queryctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_querymenu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_s_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_s_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_subdev_call_wrappers +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_subdev_init +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_try_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_type_names +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_video_std_construct +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l2_video_std_frame_period +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 v4l_printk_ioctl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 video_devdata +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 video_device_alloc +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 video_device_release +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 video_device_release_empty +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 video_ioctl2 +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x00000000 video_unregister_device +EXPORT_SYMBOL drivers/memstick/core/memstick 0x00000000 memstick_add_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x00000000 memstick_alloc_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x00000000 memstick_detect_change +EXPORT_SYMBOL drivers/memstick/core/memstick 0x00000000 memstick_free_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x00000000 memstick_init_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x00000000 memstick_init_req_sg +EXPORT_SYMBOL drivers/memstick/core/memstick 0x00000000 memstick_new_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x00000000 memstick_next_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x00000000 memstick_register_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0x00000000 memstick_remove_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x00000000 memstick_resume_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x00000000 memstick_set_rw_addr +EXPORT_SYMBOL drivers/memstick/core/memstick 0x00000000 memstick_suspend_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x00000000 memstick_unregister_driver +EXPORT_SYMBOL drivers/memstick/host/r592 0x00000000 memstick_debug_get_tpc_name +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00000000 ioc_list +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00000000 mpt_GetIocState +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00000000 mpt_HardResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00000000 mpt_Soft_Hard_ResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00000000 mpt_alloc_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00000000 mpt_attach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00000000 mpt_clear_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00000000 mpt_config +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00000000 mpt_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00000000 mpt_detach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00000000 mpt_device_driver_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00000000 mpt_device_driver_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00000000 mpt_event_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00000000 mpt_event_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00000000 mpt_findImVolumes +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00000000 mpt_free_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00000000 mpt_free_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00000000 mpt_fwfault_debug +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00000000 mpt_get_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00000000 mpt_halt_firmware +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00000000 mpt_print_ioc_summary +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00000000 mpt_put_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00000000 mpt_put_msg_frame_hi_pri +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00000000 mpt_raid_phys_disk_get_num_paths +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00000000 mpt_raid_phys_disk_pg0 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00000000 mpt_raid_phys_disk_pg1 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00000000 mpt_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00000000 mpt_reset_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00000000 mpt_reset_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00000000 mpt_resume +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00000000 mpt_send_handshake_request +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00000000 mpt_set_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00000000 mpt_suspend +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00000000 mpt_verify_adapter +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00000000 mptbase_sas_persist_operation +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x00000000 mptscsih_IssueTaskMgmt +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x00000000 mptscsih_abort +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x00000000 mptscsih_bios_param +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x00000000 mptscsih_bus_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x00000000 mptscsih_change_queue_depth +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x00000000 mptscsih_dev_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x00000000 mptscsih_event_process +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x00000000 mptscsih_flush_running_cmds +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x00000000 mptscsih_get_scsi_lookup +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x00000000 mptscsih_host_attrs +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x00000000 mptscsih_host_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x00000000 mptscsih_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x00000000 mptscsih_io_done +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x00000000 mptscsih_ioc_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x00000000 mptscsih_is_phys_disk +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x00000000 mptscsih_qcmd +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x00000000 mptscsih_raid_id_to_num +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x00000000 mptscsih_remove +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x00000000 mptscsih_resume +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x00000000 mptscsih_scandv_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x00000000 mptscsih_show_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x00000000 mptscsih_shutdown +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x00000000 mptscsih_slave_configure +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x00000000 mptscsih_slave_destroy +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x00000000 mptscsih_suspend +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x00000000 mptscsih_taskmgmt_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x00000000 mptscsih_taskmgmt_response_code +EXPORT_SYMBOL drivers/mfd/axp20x 0x00000000 axp20x_device_probe +EXPORT_SYMBOL drivers/mfd/axp20x 0x00000000 axp20x_device_remove +EXPORT_SYMBOL drivers/mfd/axp20x 0x00000000 axp20x_match_device +EXPORT_SYMBOL drivers/mfd/dln2 0x00000000 dln2_register_event_cb +EXPORT_SYMBOL drivers/mfd/dln2 0x00000000 dln2_transfer +EXPORT_SYMBOL drivers/mfd/dln2 0x00000000 dln2_unregister_event_cb +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x00000000 pasic3_read_register +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x00000000 pasic3_write_register +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x00000000 mc13xxx_get_flags +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x00000000 mc13xxx_irq_free +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x00000000 mc13xxx_irq_mask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x00000000 mc13xxx_irq_request +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x00000000 mc13xxx_irq_status +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x00000000 mc13xxx_irq_unmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x00000000 mc13xxx_lock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x00000000 mc13xxx_reg_read +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x00000000 mc13xxx_reg_rmw +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x00000000 mc13xxx_reg_write +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x00000000 mc13xxx_unlock +EXPORT_SYMBOL drivers/mfd/tps65010 0x00000000 tps65010_config_vdcdc2 +EXPORT_SYMBOL drivers/mfd/tps65010 0x00000000 tps65010_config_vregs1 +EXPORT_SYMBOL drivers/mfd/tps65010 0x00000000 tps65010_set_gpio_out_value +EXPORT_SYMBOL drivers/mfd/tps65010 0x00000000 tps65010_set_led +EXPORT_SYMBOL drivers/mfd/tps65010 0x00000000 tps65010_set_low_pwr +EXPORT_SYMBOL drivers/mfd/tps65010 0x00000000 tps65010_set_vbus_draw +EXPORT_SYMBOL drivers/mfd/tps65010 0x00000000 tps65010_set_vib +EXPORT_SYMBOL drivers/mfd/tps65010 0x00000000 tps65013_set_low_pwr +EXPORT_SYMBOL drivers/mfd/wm8994 0x00000000 wm1811_regmap_config +EXPORT_SYMBOL drivers/mfd/wm8994 0x00000000 wm8958_regmap_config +EXPORT_SYMBOL drivers/mfd/wm8994 0x00000000 wm8994_base_regmap_config +EXPORT_SYMBOL drivers/mfd/wm8994 0x00000000 wm8994_irq_exit +EXPORT_SYMBOL drivers/mfd/wm8994 0x00000000 wm8994_irq_init +EXPORT_SYMBOL drivers/mfd/wm8994 0x00000000 wm8994_regmap_config +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x00000000 ad_dpot_probe +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x00000000 ad_dpot_remove +EXPORT_SYMBOL drivers/misc/altera-stapl/altera-stapl 0x00000000 altera_init +EXPORT_SYMBOL drivers/misc/c2port/core 0x00000000 c2port_device_register +EXPORT_SYMBOL drivers/misc/c2port/core 0x00000000 c2port_device_unregister +EXPORT_SYMBOL drivers/misc/mei/mei 0x00000000 __tracepoint_mei_pci_cfg_read +EXPORT_SYMBOL drivers/misc/mei/mei 0x00000000 __tracepoint_mei_reg_read +EXPORT_SYMBOL drivers/misc/mei/mei 0x00000000 __tracepoint_mei_reg_write +EXPORT_SYMBOL drivers/misc/tifm_core 0x00000000 tifm_add_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x00000000 tifm_alloc_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x00000000 tifm_alloc_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x00000000 tifm_eject +EXPORT_SYMBOL drivers/misc/tifm_core 0x00000000 tifm_free_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x00000000 tifm_free_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x00000000 tifm_has_ms_pif +EXPORT_SYMBOL drivers/misc/tifm_core 0x00000000 tifm_map_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0x00000000 tifm_queue_work +EXPORT_SYMBOL drivers/misc/tifm_core 0x00000000 tifm_register_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0x00000000 tifm_remove_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x00000000 tifm_unmap_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0x00000000 tifm_unregister_driver +EXPORT_SYMBOL drivers/mmc/host/cqhci 0x00000000 cqhci_init +EXPORT_SYMBOL drivers/mmc/host/cqhci 0x00000000 cqhci_irq +EXPORT_SYMBOL drivers/mmc/host/cqhci 0x00000000 cqhci_pltfm_init +EXPORT_SYMBOL drivers/mmc/host/cqhci 0x00000000 cqhci_resume +EXPORT_SYMBOL drivers/mmc/host/cqhci 0x00000000 cqhci_suspend +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x00000000 cfi_build_cmd +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x00000000 cfi_build_cmd_addr +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x00000000 cfi_fixup +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x00000000 cfi_merge_status +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x00000000 cfi_read_pri +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x00000000 cfi_send_gen_cmd +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x00000000 cfi_udelay +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x00000000 cfi_varsize_frob +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x00000000 do_map_probe +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x00000000 map_destroy +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x00000000 register_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x00000000 unregister_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0x00000000 mtd_do_chip_probe +EXPORT_SYMBOL drivers/mtd/lpddr/lpddr_cmds 0x00000000 lpddr_cmdset +EXPORT_SYMBOL drivers/mtd/maps/map_funcs 0x00000000 simple_map_init +EXPORT_SYMBOL drivers/mtd/mtd 0x00000000 mtd_concat_create +EXPORT_SYMBOL drivers/mtd/mtd 0x00000000 mtd_concat_destroy +EXPORT_SYMBOL drivers/mtd/nand/onenand/onenand 0x00000000 flexonenand_region +EXPORT_SYMBOL drivers/mtd/nand/onenand/onenand 0x00000000 onenand_addr +EXPORT_SYMBOL drivers/mtd/nand/raw/denali 0x00000000 denali_calc_ecc_bytes +EXPORT_SYMBOL drivers/mtd/nand/raw/denali 0x00000000 denali_init +EXPORT_SYMBOL drivers/mtd/nand/raw/denali 0x00000000 denali_remove +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x00000000 nand_bch_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x00000000 nand_bch_correct_data +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x00000000 nand_bch_free +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x00000000 nand_bch_init +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x00000000 nand_check_erased_ecc_chunk +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x00000000 nand_create_bbt +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x00000000 nand_get_set_features_notsupp +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x00000000 nand_read_oob_std +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x00000000 nand_read_page_raw +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x00000000 nand_scan_with_ids +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x00000000 nand_write_oob_std +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x00000000 nand_write_page_raw +EXPORT_SYMBOL drivers/mtd/nand/raw/nand_ecc 0x00000000 __nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/raw/nand_ecc 0x00000000 __nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/raw/nand_ecc 0x00000000 nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/raw/nand_ecc 0x00000000 nand_correct_data +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x00000000 alloc_arcdev +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x00000000 arc_bcast_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x00000000 arc_proto_default +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x00000000 arc_proto_map +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x00000000 arc_raw_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x00000000 arcnet_close +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x00000000 arcnet_debug +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x00000000 arcnet_interrupt +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x00000000 arcnet_open +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x00000000 arcnet_send_packet +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x00000000 arcnet_timeout +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x00000000 arcnet_unregister_proto +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x00000000 com20020_check +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x00000000 com20020_found +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x00000000 com20020_netdev_ops +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_br_egress_floods +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_br_fast_age +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_br_join +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_br_leave +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_br_set_stp_state +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_brcm_hdr_setup +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_configure_vlan +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_disable_port +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_eee_enable_set +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_eee_init +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_enable_port +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_fdb_add +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_fdb_del +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_fdb_dump +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_get_ethtool_phy_stats +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_get_ethtool_stats +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_get_mac_eee +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_get_sset_count +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_get_strings +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_get_tag_protocol +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_imp_vlan_setup +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_mdb_add +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_mdb_del +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_mdb_prepare +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_mirror_add +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_mirror_del +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_phylink_mac_an_restart +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_phylink_mac_config +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_phylink_mac_link_down +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_phylink_mac_link_state +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_phylink_mac_link_up +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_phylink_validate +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_port_event +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_set_mac_eee +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_switch_alloc +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_switch_detect +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_switch_register +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_vlan_add +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_vlan_del +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_vlan_filtering +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x00000000 b53_vlan_prepare +EXPORT_SYMBOL drivers/net/dsa/b53/b53_serdes 0x00000000 b53_serdes_an_restart +EXPORT_SYMBOL drivers/net/dsa/b53/b53_serdes 0x00000000 b53_serdes_config +EXPORT_SYMBOL drivers/net/dsa/b53/b53_serdes 0x00000000 b53_serdes_init +EXPORT_SYMBOL drivers/net/dsa/b53/b53_serdes 0x00000000 b53_serdes_link_set +EXPORT_SYMBOL drivers/net/dsa/b53/b53_serdes 0x00000000 b53_serdes_link_state +EXPORT_SYMBOL drivers/net/dsa/b53/b53_serdes 0x00000000 b53_serdes_phylink_validate +EXPORT_SYMBOL drivers/net/dsa/lan9303-core 0x00000000 lan9303_probe +EXPORT_SYMBOL drivers/net/dsa/lan9303-core 0x00000000 lan9303_register_set +EXPORT_SYMBOL drivers/net/dsa/lan9303-core 0x00000000 lan9303_remove +EXPORT_SYMBOL drivers/net/dsa/microchip/ksz8795 0x00000000 ksz8795_switch_register +EXPORT_SYMBOL drivers/net/dsa/microchip/ksz9477 0x00000000 ksz9477_switch_register +EXPORT_SYMBOL drivers/net/dsa/microchip/ksz_common 0x00000000 ksz_switch_alloc +EXPORT_SYMBOL drivers/net/dsa/microchip/ksz_common 0x00000000 ksz_switch_register +EXPORT_SYMBOL drivers/net/dsa/microchip/ksz_common 0x00000000 ksz_switch_remove +EXPORT_SYMBOL drivers/net/dsa/vitesse-vsc73xx-core 0x00000000 vsc73xx_is_addr_valid +EXPORT_SYMBOL drivers/net/dsa/vitesse-vsc73xx-core 0x00000000 vsc73xx_probe +EXPORT_SYMBOL drivers/net/dsa/vitesse-vsc73xx-core 0x00000000 vsc73xx_remove +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x00000000 NS8390_init +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x00000000 __alloc_ei_netdev +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x00000000 ei_close +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x00000000 ei_get_stats +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x00000000 ei_interrupt +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x00000000 ei_netdev_ops +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x00000000 ei_open +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x00000000 ei_poll +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x00000000 ei_set_multicast_list +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x00000000 ei_start_xmit +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x00000000 ei_tx_timeout +EXPORT_SYMBOL drivers/net/ethernet/broadcom/cnic 0x00000000 cnic_register_driver +EXPORT_SYMBOL drivers/net/ethernet/broadcom/cnic 0x00000000 cnic_unregister_driver +EXPORT_SYMBOL drivers/net/ethernet/cavium/common/cavium_ptp 0x00000000 cavium_ptp_get +EXPORT_SYMBOL drivers/net/ethernet/cavium/common/cavium_ptp 0x00000000 cavium_ptp_put +EXPORT_SYMBOL drivers/net/ethernet/cavium/thunder/thunder_bgx 0x00000000 bgx_config_timestamping +EXPORT_SYMBOL drivers/net/ethernet/cavium/thunder/thunder_bgx 0x00000000 bgx_get_lmac_count +EXPORT_SYMBOL drivers/net/ethernet/cavium/thunder/thunder_bgx 0x00000000 bgx_get_lmac_link_state +EXPORT_SYMBOL drivers/net/ethernet/cavium/thunder/thunder_bgx 0x00000000 bgx_get_lmac_mac +EXPORT_SYMBOL drivers/net/ethernet/cavium/thunder/thunder_bgx 0x00000000 bgx_get_map +EXPORT_SYMBOL drivers/net/ethernet/cavium/thunder/thunder_bgx 0x00000000 bgx_get_rx_stats +EXPORT_SYMBOL drivers/net/ethernet/cavium/thunder/thunder_bgx 0x00000000 bgx_get_tx_stats +EXPORT_SYMBOL drivers/net/ethernet/cavium/thunder/thunder_bgx 0x00000000 bgx_lmac_get_pfc +EXPORT_SYMBOL drivers/net/ethernet/cavium/thunder/thunder_bgx 0x00000000 bgx_lmac_internal_loopback +EXPORT_SYMBOL drivers/net/ethernet/cavium/thunder/thunder_bgx 0x00000000 bgx_lmac_rx_tx_enable +EXPORT_SYMBOL drivers/net/ethernet/cavium/thunder/thunder_bgx 0x00000000 bgx_lmac_set_pfc +EXPORT_SYMBOL drivers/net/ethernet/cavium/thunder/thunder_bgx 0x00000000 bgx_reset_xcast_mode +EXPORT_SYMBOL drivers/net/ethernet/cavium/thunder/thunder_bgx 0x00000000 bgx_set_dmac_cam_filter +EXPORT_SYMBOL drivers/net/ethernet/cavium/thunder/thunder_bgx 0x00000000 bgx_set_lmac_mac +EXPORT_SYMBOL drivers/net/ethernet/cavium/thunder/thunder_bgx 0x00000000 bgx_set_xcast_mode +EXPORT_SYMBOL drivers/net/ethernet/cavium/thunder/thunder_xcv 0x00000000 xcv_init_hw +EXPORT_SYMBOL drivers/net/ethernet/cavium/thunder/thunder_xcv 0x00000000 xcv_setup_link +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x00000000 cxgb3_alloc_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x00000000 cxgb3_alloc_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x00000000 cxgb3_free_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x00000000 cxgb3_free_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x00000000 cxgb3_insert_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x00000000 cxgb3_ofld_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x00000000 cxgb3_queue_tid_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x00000000 cxgb3_register_client +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x00000000 cxgb3_remove_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x00000000 cxgb3_unregister_client +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x00000000 dev2t3cdev +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x00000000 t3_l2e_free +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x00000000 t3_l2t_get +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x00000000 t3_l2t_send_event +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x00000000 t3_l2t_send_slow +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x00000000 t3_register_cpl_handler +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_alloc_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_alloc_sftid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_alloc_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_bar2_sge_qregs +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_best_aligned_mtu +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_best_mtu +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_clip_get +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_clip_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_create_server +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_create_server6 +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_create_server_filter +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_crypto_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_dbfifo_count +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_flush_eq_cache +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_free_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_free_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_get_srq_entry +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_get_tcp_stats +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_immdata_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_inline_tx_skb +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_iscsi_init +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_l2t_alloc_switching +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_l2t_get +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_l2t_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_l2t_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_map_skb +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_ofld_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_pktgl_to_skb +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_port_chan +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_port_e2cchan +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_port_idx +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_port_viid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_read_sge_timestamp +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_read_tpte +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_reclaim_completed_tx +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_register_uld +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_remove_server +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_remove_server_filter +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_remove_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_ring_tx_db +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_select_ntuple +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_smt_alloc_switching +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_smt_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_sync_txq_pidx +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_unregister_uld +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_update_root_dev_clip +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 cxgb4_write_sgl +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x00000000 t4_cleanup_clip_tbl +EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x00000000 cxgb_find_route +EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x00000000 cxgb_find_route6 +EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x00000000 cxgb_get_4tuple +EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x00000000 cxgbi_ppm_init +EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x00000000 cxgbi_ppm_make_ppod_hdr +EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x00000000 cxgbi_ppm_ppod_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x00000000 cxgbi_ppm_ppods_reserve +EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x00000000 cxgbi_ppm_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x00000000 cxgbi_tagmask_set +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x00000000 enic_api_devcmd_proxy_by_index +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x00000000 vnic_dev_get_pdev +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x00000000 vnic_dev_get_res +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x00000000 vnic_dev_get_res_count +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x00000000 vnic_dev_register +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x00000000 vnic_dev_unregister +EXPORT_SYMBOL drivers/net/ethernet/emulex/benet/be2net 0x00000000 be_roce_mcc_cmd +EXPORT_SYMBOL drivers/net/ethernet/emulex/benet/be2net 0x00000000 be_roce_register_driver +EXPORT_SYMBOL drivers/net/ethernet/emulex/benet/be2net 0x00000000 be_roce_unregister_driver +EXPORT_SYMBOL drivers/net/ethernet/intel/i40e/i40e 0x00000000 i40e_register_client +EXPORT_SYMBOL drivers/net/ethernet/intel/i40e/i40e 0x00000000 i40e_unregister_client +EXPORT_SYMBOL drivers/net/ethernet/intel/iavf/iavf 0x00000000 iavf_register_client +EXPORT_SYMBOL drivers/net/ethernet/intel/iavf/iavf 0x00000000 iavf_unregister_client +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 get_phv_bit +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_ALLOCATE_VPP_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_ALLOCATE_VPP_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_SET_MCAST_FLTR +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_SET_PORT_BEACON +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_SET_PORT_PRIO2TC +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_SET_PORT_SCHEDULER +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_SET_PORT_VXLAN +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_SET_PORT_fcs_check +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_SET_PORT_general +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_SET_PORT_qpn_calc +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_SET_PORT_user_mac +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_SET_PORT_user_mtu +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_SET_VPORT_QOS_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_SET_VPORT_QOS_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_assign_eq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_eq_get_irq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_gen_guid_change_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_gen_pkey_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_gen_port_state_change_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_gen_slaves_port_mgt_ev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_get_cpu_rmap +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_get_eqs_per_port +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_get_is_vlan_offload_disabled +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_get_module_info +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_get_parav_qkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_get_roce_gid_from_slave +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_get_slave_from_roce_gid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_get_slave_node_guid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_get_slave_pkey_gid_tbl_len +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_get_slave_port_state +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_handle_eth_header_mcast_prio +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_is_eq_shared +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_is_eq_vector_valid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_is_slave_active +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_max_tc +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_put_slave_node_guid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_query_diag_counters +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_release_eq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_sync_pkey_table +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_test_async +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_test_interrupt +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_tunnel_steer_add +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 set_and_calc_slave_port_state +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 set_phv_bit +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 __tracepoint_mlx5_fs_add_fg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 __tracepoint_mlx5_fs_add_ft +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 __tracepoint_mlx5_fs_add_rule +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 __tracepoint_mlx5_fs_del_fg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 __tracepoint_mlx5_fs_del_ft +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 __tracepoint_mlx5_fs_del_fte +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 __tracepoint_mlx5_fs_del_rule +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 __tracepoint_mlx5_fs_set_fte +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 __tracepoint_mlx5_fw +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_add_flow_rules +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_alloc_bfreg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_buf_alloc +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_cmd_alloc_uar +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_cmd_cleanup +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_cmd_cleanup_async_ctx +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_cmd_create_vport_lag +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_cmd_destroy_vport_lag +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_cmd_exec +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_cmd_exec_cb +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_cmd_exec_polling +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_cmd_free_uar +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_cmd_init +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_cmd_init_async_ctx +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_cmd_set_state +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_comp_irq_get_affinity_mask +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_comp_vectors_count +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_alloc_pd +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_alloc_transport_domain +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_attach_mcg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_create_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_create_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_create_mkey_cb +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_create_psv +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_create_rq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_create_rq_tracked +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_create_rqt +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_create_sq_tracked +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_create_tir +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_create_tir_out +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_create_tis +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_dealloc_pd +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_dealloc_transport_domain +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_destroy_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_destroy_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_destroy_psv +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_destroy_rq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_destroy_rq_tracked +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_destroy_rqt +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_destroy_sq_tracked +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_destroy_tir +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_destroy_tis +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_detach_mcg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_modify_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_modify_cq_moderation +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_modify_rq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_modify_sq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_modify_tis +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_query_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_query_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_query_rq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_query_sq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_query_vendor_id +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_roce_gid_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_create_auto_grouped_flow_table +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_create_lag_demux_flow_table +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_debugfs_root +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_del_flow_rules +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_destroy_flow_table +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_eq_create_generic +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_eq_destroy_generic +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_eq_disable +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_eq_enable +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_eq_get_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_eq_notifier_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_eq_notifier_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_eq_update_ci +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_eswitch_add_send_to_vport_rule +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_eswitch_get_encap_mode +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_eswitch_get_proto_dev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_eswitch_get_total_vports +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_eswitch_get_vport_metadata_for_match +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_eswitch_register_vport_reps +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_eswitch_unregister_vport_reps +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_eswitch_uplink_get_proto_dev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_eswitch_vport_match_metadata_enabled +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_eswitch_vport_rep +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_fc_create +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_fc_destroy +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_fc_id +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_fc_query +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_fpga_get_sbu_caps +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_fpga_mem_read +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_fpga_mem_write +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_fpga_sbu_conn_create +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_fpga_sbu_conn_destroy +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_fpga_sbu_conn_sendmsg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_free_bfreg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_fs_add_rx_underlay_qpn +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_fs_remove_rx_underlay_qpn +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_get_fdb_sub_ns +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_get_flow_namespace +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_get_uars_page +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_lag_get_roce_netdev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_lag_is_active +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_lag_is_roce +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_lag_is_sriov +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_lag_query_cong_counters +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_modify_header_alloc +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_modify_header_dealloc +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_notifier_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_notifier_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_packet_reformat_alloc +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_packet_reformat_dealloc +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_put_uars_page +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_query_port_ib_proto_oper +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_rdma_rn_get_params +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_register_interface +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_rl_add_rate +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_rl_are_equal +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_rl_is_in_range +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_rl_remove_rate +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_unregister_interface +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_vector2eqn +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxfw/mlxfw 0x00000000 mlxfw_firmware_flash +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_afa_block_activity_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_afa_block_append_allocated_counter +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_afa_block_append_counter +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_afa_block_append_drop +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_afa_block_append_fid_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_afa_block_append_fwd +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_afa_block_append_mcrouter +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_afa_block_append_mirror +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_afa_block_append_trap +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_afa_block_append_trap_and_forward +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_afa_block_append_vlan_modify +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_afa_block_commit +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_afa_block_continue +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_afa_block_create +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_afa_block_cur_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_afa_block_destroy +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_afa_block_first_kvdl_index +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_afa_block_first_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_afa_block_jump +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_afa_block_terminate +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_afa_create +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_afa_destroy +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_afk_clear +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_afk_create +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_afk_destroy +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_afk_encode +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_afk_key_info_block_encoding_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_afk_key_info_blocks_count_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_afk_key_info_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_afk_key_info_put +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_afk_key_info_subset +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_afk_values_add_buf +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_afk_values_add_u32 +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_cmd_exec +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_bus_device_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_bus_device_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_cpu_port_fini +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_cpu_port_init +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_driver_priv +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_driver_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_driver_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_emad_string_tlv_enable +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_event_listener_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_event_listener_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_flush_owq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_fw_flash_end +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_fw_flash_start +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_fw_rev_minor_subminor_validate +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_kvd_sizes_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_lag_mapping_clear +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_lag_mapping_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_lag_mapping_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_max_ports +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_module_max_width +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_port_clear +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_port_devlink_port_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_port_driver_priv +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_port_eth_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_port_fini +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_port_ib_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_port_init +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_port_type_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_ptp_transmitted +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_read_frc_h +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_read_frc_l +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_res_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_res_query_enabled +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_res_valid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_resources_query +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_rx_listener_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_rx_listener_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_schedule_dw +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_schedule_work +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_skb_receive +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_skb_transmit +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_skb_transmit_busy +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_trap_action_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_trap_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_core_trap_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_env_get_module_eeprom +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_env_get_module_info +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_reg_query +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_reg_trans_bulk_wait +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_reg_trans_query +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_reg_trans_write +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x00000000 mlxsw_reg_write +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_i2c 0x00000000 mlxsw_i2c_driver_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_i2c 0x00000000 mlxsw_i2c_driver_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_pci 0x00000000 mlxsw_pci_driver_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_pci 0x00000000 mlxsw_pci_driver_unregister +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_common 0x00000000 __ocelot_read_ix +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_common 0x00000000 __ocelot_rmw_ix +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_common 0x00000000 __ocelot_write_ix +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_common 0x00000000 ocelot_adjust_link +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_common 0x00000000 ocelot_bridge_stp_state_set +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_common 0x00000000 ocelot_chip_init +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_common 0x00000000 ocelot_deinit +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_common 0x00000000 ocelot_fdb_add +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_common 0x00000000 ocelot_fdb_del +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_common 0x00000000 ocelot_fdb_dump +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_common 0x00000000 ocelot_get_ethtool_stats +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_common 0x00000000 ocelot_get_sset_count +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_common 0x00000000 ocelot_get_strings +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_common 0x00000000 ocelot_get_ts_info +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_common 0x00000000 ocelot_get_txtstamp +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_common 0x00000000 ocelot_hwstamp_get +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_common 0x00000000 ocelot_hwstamp_set +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_common 0x00000000 ocelot_init +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_common 0x00000000 ocelot_init_port +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_common 0x00000000 ocelot_netdevice_nb +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_common 0x00000000 ocelot_port_add_txtstamp_skb +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_common 0x00000000 ocelot_port_bridge_join +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_common 0x00000000 ocelot_port_bridge_leave +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_common 0x00000000 ocelot_port_disable +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_common 0x00000000 ocelot_port_enable +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_common 0x00000000 ocelot_port_readl +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_common 0x00000000 ocelot_port_vlan_filtering +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_common 0x00000000 ocelot_port_writel +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_common 0x00000000 ocelot_probe_port +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_common 0x00000000 ocelot_ptp_gettime64 +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_common 0x00000000 ocelot_regfields_init +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_common 0x00000000 ocelot_regmap_init +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_common 0x00000000 ocelot_set_ageing_time +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_common 0x00000000 ocelot_set_cpu_port +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_common 0x00000000 ocelot_switchdev_blocking_nb +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_common 0x00000000 ocelot_switchdev_nb +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_common 0x00000000 ocelot_vlan_add +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_common 0x00000000 ocelot_vlan_del +EXPORT_SYMBOL drivers/net/ethernet/qlogic/qed/qed 0x00000000 qed_get_eth_ops +EXPORT_SYMBOL drivers/net/ethernet/qlogic/qed/qed 0x00000000 qed_get_fcoe_ops +EXPORT_SYMBOL drivers/net/ethernet/qlogic/qed/qed 0x00000000 qed_get_iscsi_ops +EXPORT_SYMBOL drivers/net/ethernet/qlogic/qed/qed 0x00000000 qed_get_rdma_ops +EXPORT_SYMBOL drivers/net/ethernet/qlogic/qed/qed 0x00000000 qed_put_eth_ops +EXPORT_SYMBOL drivers/net/ethernet/qlogic/qed/qed 0x00000000 qed_put_fcoe_ops +EXPORT_SYMBOL drivers/net/ethernet/qlogic/qed/qed 0x00000000 qed_put_iscsi_ops +EXPORT_SYMBOL drivers/net/ethernet/qlogic/qede/qede 0x00000000 qede_rdma_register_driver +EXPORT_SYMBOL drivers/net/ethernet/qlogic/qede/qede 0x00000000 qede_rdma_unregister_driver +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x00000000 hdlcdrv_arbitrate +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x00000000 hdlcdrv_receiver +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x00000000 hdlcdrv_register +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x00000000 hdlcdrv_transmitter +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x00000000 hdlcdrv_unregister +EXPORT_SYMBOL drivers/net/mdio 0x00000000 mdio45_ethtool_gset_npage +EXPORT_SYMBOL drivers/net/mdio 0x00000000 mdio45_ethtool_ksettings_get_npage +EXPORT_SYMBOL drivers/net/mdio 0x00000000 mdio45_links_ok +EXPORT_SYMBOL drivers/net/mdio 0x00000000 mdio45_nway_restart +EXPORT_SYMBOL drivers/net/mdio 0x00000000 mdio45_probe +EXPORT_SYMBOL drivers/net/mdio 0x00000000 mdio_mii_ioctl +EXPORT_SYMBOL drivers/net/mdio 0x00000000 mdio_set_flag +EXPORT_SYMBOL drivers/net/mii 0x00000000 generic_mii_ioctl +EXPORT_SYMBOL drivers/net/mii 0x00000000 mii_check_gmii_support +EXPORT_SYMBOL drivers/net/mii 0x00000000 mii_check_link +EXPORT_SYMBOL drivers/net/mii 0x00000000 mii_check_media +EXPORT_SYMBOL drivers/net/mii 0x00000000 mii_ethtool_get_link_ksettings +EXPORT_SYMBOL drivers/net/mii 0x00000000 mii_ethtool_gset +EXPORT_SYMBOL drivers/net/mii 0x00000000 mii_ethtool_set_link_ksettings +EXPORT_SYMBOL drivers/net/mii 0x00000000 mii_ethtool_sset +EXPORT_SYMBOL drivers/net/mii 0x00000000 mii_link_ok +EXPORT_SYMBOL drivers/net/mii 0x00000000 mii_nway_restart +EXPORT_SYMBOL drivers/net/phy/bcm-phy-lib 0x00000000 bcm54xx_auxctl_write +EXPORT_SYMBOL drivers/net/phy/mdio-bitbang 0x00000000 alloc_mdio_bitbang +EXPORT_SYMBOL drivers/net/phy/mdio-bitbang 0x00000000 free_mdio_bitbang +EXPORT_SYMBOL drivers/net/phy/mdio-cavium 0x00000000 cavium_mdiobus_read +EXPORT_SYMBOL drivers/net/phy/mdio-cavium 0x00000000 cavium_mdiobus_write +EXPORT_SYMBOL drivers/net/ppp/pppox 0x00000000 pppox_compat_ioctl +EXPORT_SYMBOL drivers/net/ppp/pppox 0x00000000 pppox_ioctl +EXPORT_SYMBOL drivers/net/ppp/pppox 0x00000000 pppox_unbind_sock +EXPORT_SYMBOL drivers/net/ppp/pppox 0x00000000 register_pppox_proto +EXPORT_SYMBOL drivers/net/ppp/pppox 0x00000000 unregister_pppox_proto +EXPORT_SYMBOL drivers/net/sungem_phy 0x00000000 sungem_phy_probe +EXPORT_SYMBOL drivers/net/team/team 0x00000000 team_mode_register +EXPORT_SYMBOL drivers/net/team/team 0x00000000 team_mode_unregister +EXPORT_SYMBOL drivers/net/team/team 0x00000000 team_modeop_port_change_dev_addr +EXPORT_SYMBOL drivers/net/team/team 0x00000000 team_modeop_port_enter +EXPORT_SYMBOL drivers/net/team/team 0x00000000 team_option_inst_set_change +EXPORT_SYMBOL drivers/net/team/team 0x00000000 team_options_change_check +EXPORT_SYMBOL drivers/net/team/team 0x00000000 team_options_register +EXPORT_SYMBOL drivers/net/team/team 0x00000000 team_options_unregister +EXPORT_SYMBOL drivers/net/usb/usbnet 0x00000000 usbnet_device_suggests_idle +EXPORT_SYMBOL drivers/net/usb/usbnet 0x00000000 usbnet_link_change +EXPORT_SYMBOL drivers/net/usb/usbnet 0x00000000 usbnet_manage_power +EXPORT_SYMBOL drivers/net/wan/hdlc 0x00000000 alloc_hdlcdev +EXPORT_SYMBOL drivers/net/wan/hdlc 0x00000000 attach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x00000000 detach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x00000000 hdlc_close +EXPORT_SYMBOL drivers/net/wan/hdlc 0x00000000 hdlc_ioctl +EXPORT_SYMBOL drivers/net/wan/hdlc 0x00000000 hdlc_open +EXPORT_SYMBOL drivers/net/wan/hdlc 0x00000000 hdlc_start_xmit +EXPORT_SYMBOL drivers/net/wan/hdlc 0x00000000 register_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x00000000 unregister_hdlc_device +EXPORT_SYMBOL drivers/net/wan/hdlc 0x00000000 unregister_hdlc_protocol +EXPORT_SYMBOL drivers/net/wimax/i2400m/i2400m 0x00000000 i2400m_unknown_barker +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x00000000 ath_bus_type_strings +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x00000000 ath_hw_cycle_counters_update +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x00000000 ath_hw_get_listen_time +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x00000000 ath_hw_keyreset +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x00000000 ath_hw_setbssidmask +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x00000000 ath_is_49ghz_allowed +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x00000000 ath_is_mybeacon +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x00000000 ath_is_world_regd +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x00000000 ath_key_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x00000000 ath_key_delete +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x00000000 ath_printk +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x00000000 ath_reg_notifier_apply +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x00000000 ath_regd_find_country_by_name +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x00000000 ath_regd_get_band_ctl +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x00000000 ath_regd_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x00000000 ath_rxbuf_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x00000000 dfs_pattern_detector_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 __ath10k_ce_rx_num_free_bufs +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 __ath10k_ce_send_revert +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 __tracepoint_ath10k_log_dbg +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_ce_alloc_pipe +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_ce_alloc_rri +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_ce_cancel_send_next +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_ce_completed_recv_next +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_ce_completed_recv_next_nolock +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_ce_completed_send_next +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_ce_completed_send_next_nolock +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_ce_deinit_pipe +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_ce_disable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_ce_dump_registers +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_ce_enable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_ce_free_pipe +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_ce_free_rri +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_ce_init_pipe +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_ce_num_free_src_entries +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_ce_per_engine_service +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_ce_per_engine_service_any +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_ce_revoke_recv_next +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_ce_rx_post_buf +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_ce_rx_update_write_idx +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_ce_send +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_ce_send_nolock +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_core_create +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_core_destroy +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_core_fetch_board_file +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_core_free_board_files +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_core_register +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_core_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_core_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_core_unregister +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_coredump_get_mem_layout +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_coredump_new +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_debug_mask +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_err +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_htc_notify_tx_completion +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_htc_process_trailer +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_htc_rx_completion_handler +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_htc_tx_completion_handler +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_htt_hif_tx_complete +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_htt_rx_hl_indication +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_htt_rx_pktlog_completion_handler +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_htt_t2h_msg_handler +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_htt_txrx_compl_task +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_mac_tx_push_pending +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_print_driver_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x00000000 ath10k_warn +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x00000000 ath6kl_cfg80211_resume +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x00000000 ath6kl_cfg80211_suspend +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x00000000 ath6kl_core_cleanup +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x00000000 ath6kl_core_create +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x00000000 ath6kl_core_destroy +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x00000000 ath6kl_core_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x00000000 ath6kl_core_rx_complete +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x00000000 ath6kl_core_tx_complete +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x00000000 ath6kl_err +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x00000000 ath6kl_hif_intr_bh_handler +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x00000000 ath6kl_hif_rw_comp_handler +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x00000000 ath6kl_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x00000000 ath6kl_printk +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x00000000 ath6kl_read_tgt_stats +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x00000000 ath6kl_stop_txrx +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x00000000 ath6kl_warn +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x00000000 ath9k_cmn_beacon_config_adhoc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x00000000 ath9k_cmn_beacon_config_ap +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x00000000 ath9k_cmn_beacon_config_sta +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x00000000 ath9k_cmn_count_streams +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x00000000 ath9k_cmn_debug_base_eeprom +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x00000000 ath9k_cmn_debug_modal_eeprom +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x00000000 ath9k_cmn_debug_phy_err +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x00000000 ath9k_cmn_debug_recv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x00000000 ath9k_cmn_debug_stat_rx +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x00000000 ath9k_cmn_get_channel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x00000000 ath9k_cmn_get_hw_crypto_keytype +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x00000000 ath9k_cmn_init_channels_rates +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x00000000 ath9k_cmn_init_crypto +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x00000000 ath9k_cmn_process_rate +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x00000000 ath9k_cmn_process_rssi +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x00000000 ath9k_cmn_reload_chainmask +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x00000000 ath9k_cmn_rx_accept +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x00000000 ath9k_cmn_rx_skb_postprocess +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x00000000 ath9k_cmn_setup_ht_cap +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x00000000 ath9k_cmn_spectral_deinit_debug +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x00000000 ath9k_cmn_spectral_init_debug +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x00000000 ath9k_cmn_spectral_scan_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x00000000 ath9k_cmn_spectral_scan_trigger +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x00000000 ath9k_cmn_update_txpow +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x00000000 ath_cmn_process_fft +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ar9003_get_pll_sqsum_dvc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ar9003_hw_bb_watchdog_check +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ar9003_hw_bb_watchdog_dbg_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ar9003_hw_disable_phy_restart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ar9003_is_paprd_enabled +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ar9003_mci_cleanup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ar9003_mci_get_interrupt +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ar9003_mci_get_next_gpm_offset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ar9003_mci_send_message +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ar9003_mci_send_wlan_channels +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ar9003_mci_set_bt_version +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ar9003_mci_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ar9003_mci_state +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ar9003_paprd_create_curve +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ar9003_paprd_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ar9003_paprd_init_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ar9003_paprd_is_done +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ar9003_paprd_populate_single_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ar9003_paprd_setup_gain_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_abort_tx_dma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_abortpcurecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_addrxbuf_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_ani_monitor +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_beaconinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_beaconq_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_bstuck_nfcal +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_btcoex_bt_stomp +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_btcoex_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_btcoex_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_btcoex_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_btcoex_init_2wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_btcoex_init_3wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_btcoex_init_mci +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_btcoex_init_scheme +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_btcoex_set_concur_txprio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_btcoex_set_weight +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_check_alive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_check_nav +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_computetxtime +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_disable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_disable_mib_counters +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_enable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_gen_timer_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_gen_timer_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_get_tsf_offset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_get_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_getchan_noise +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_getnf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_getrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_gettsf32 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_gettsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_gettxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_gpio_free +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_gpio_get +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_gpio_request_in +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_gpio_request_out +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_init_btcoex_hw +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_init_global_settings +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_intrpend +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_kill_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_loadnf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_name +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_numtxpending +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_phy_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_process_rxdesc_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_putrxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_puttxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_releasetxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_reset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_reset_calvalid +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_resettxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_resume_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_rxprocdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_set_gpio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_set_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_set_rx_bufsize +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_set_sta_beacon_timers +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_set_tsfadjust +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_set_tx_filter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_set_txpowerlimit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_set_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_setantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_setmcastfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_setopmode +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_setpower +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_setrxabort +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_setrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_settsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_setup_statusring +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_setuprxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_setuptxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_startpcureceive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_stop_dma_queue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_stopdmarecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_txstart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_updatetxtriglevel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_wait +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_wow_apply_pattern +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_wow_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_wow_wakeup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath9k_hw_write_associd +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath_gen_timer_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath_gen_timer_free +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00000000 ath_gen_timer_isr +EXPORT_SYMBOL drivers/net/wireless/atmel/atmel 0x00000000 atmel_open +EXPORT_SYMBOL drivers/net/wireless/atmel/atmel 0x00000000 init_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel/atmel 0x00000000 stop_atmel_card +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x00000000 brcmu_boardrev_str +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x00000000 brcmu_d11_attach +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x00000000 brcmu_dotrev_str +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x00000000 brcmu_pkt_buf_free_skb +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x00000000 brcmu_pkt_buf_get_skb +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x00000000 brcmu_pktq_flush +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x00000000 brcmu_pktq_init +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x00000000 brcmu_pktq_mdeq +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x00000000 brcmu_pktq_mlen +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x00000000 brcmu_pktq_pdeq +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x00000000 brcmu_pktq_pdeq_match +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x00000000 brcmu_pktq_pdeq_tail +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x00000000 brcmu_pktq_peek_tail +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x00000000 brcmu_pktq_penq +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x00000000 brcmu_pktq_penq_head +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x00000000 brcmu_pktq_pflush +EXPORT_SYMBOL drivers/net/wireless/cisco/airo 0x00000000 init_airo_card +EXPORT_SYMBOL drivers/net/wireless/cisco/airo 0x00000000 reset_airo_card +EXPORT_SYMBOL drivers/net/wireless/cisco/airo 0x00000000 stop_airo_card +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x00000000 alloc_libipw +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x00000000 free_libipw +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x00000000 libipw_channel_to_freq +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x00000000 libipw_channel_to_index +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x00000000 libipw_freq_to_channel +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x00000000 libipw_get_channel +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x00000000 libipw_get_channel_flags +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x00000000 libipw_get_geo +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x00000000 libipw_is_valid_channel +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x00000000 libipw_networks_age +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x00000000 libipw_rx +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x00000000 libipw_rx_mgt +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x00000000 libipw_set_geo +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x00000000 libipw_txb_free +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x00000000 libipw_wx_get_encode +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x00000000 libipw_wx_get_encodeext +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x00000000 libipw_wx_get_scan +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x00000000 libipw_wx_set_encode +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x00000000 libipw_wx_set_encodeext +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x00000000 libipw_xmit +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 _il_apm_stop +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 _il_poll_bit +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_add_beacon_time +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_add_station_common +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_alloc_txq_mem +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_apm_init +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_apm_stop +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_bcast_addr +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_bg_watchdog +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_cancel_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_check_rxon_cmd +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_chswitch_done +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_clear_bit +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_clear_ucode_stations +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_cmd_queue_free +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_cmd_queue_unmap +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_connection_init_rx_config +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_dbgfs_register +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_dbgfs_unregister +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_debug_level +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_eeprom_free +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_eeprom_init +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_eeprom_query16 +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_eeprom_query_addr +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_fill_probe_req +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_force_reset +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_free_channel_map +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_free_geos +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_free_txq_mem +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_full_rxon_required +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_get_active_dwell_time +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_get_channel_info +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_get_cmd_string +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_get_free_ucode_key_idx +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_get_lowest_plcp +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_get_passive_dwell_time +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_get_single_channel_number +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_hdl_csa +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_hdl_error +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_hdl_pm_debug_stats +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_hdl_pm_sleep +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_hdl_spectrum_measurement +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_init_channel_map +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_init_geos +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_init_scan_params +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_irq_handle_error +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_is_ht40_tx_allowed +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_isr +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_leds_exit +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_leds_init +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_mac_add_interface +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_mac_bss_info_changed +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_mac_change_interface +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_mac_conf_tx +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_mac_config +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_mac_flush +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_mac_hw_scan +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_mac_remove_interface +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_mac_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_mac_sta_remove +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_pm_ops +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_poll_bit +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_power_initialize +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_power_update_mode +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_queue_space +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_rd_prph +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_read_targ_mem +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_restore_stations +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_rx_queue_alloc +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_rx_queue_space +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_rx_queue_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_scan_cancel +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_scan_cancel_timeout +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_send_add_sta +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_send_bt_config +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_send_cmd +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_send_cmd_pdu +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_send_cmd_pdu_async +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_send_cmd_sync +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_send_lq_cmd +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_send_rxon_timing +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_send_stats_request +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_set_bit +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_set_decrypted_flag +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_set_flags_for_band +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_set_rate +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_set_rxon_channel +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_set_rxon_ht +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_set_rxon_hwcrypto +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_set_tx_power +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_setup_rx_scan_handlers +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_setup_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_setup_watchdog +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_tx_cmd_complete +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_tx_cmd_protection +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_tx_queue_free +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_tx_queue_init +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_tx_queue_reset +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_tx_queue_unmap +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_txq_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_update_stats +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_usecs_to_beacons +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_wr_prph +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_write_targ_mem +EXPORT_SYMBOL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 __tracepoint_iwlwifi_dev_ucode_cont_event +EXPORT_SYMBOL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 __tracepoint_iwlwifi_dev_ucode_event +EXPORT_SYMBOL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 __tracepoint_iwlwifi_dev_ucode_wrap_event +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x00000000 hostap_80211_get_hdrlen +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x00000000 hostap_80211_ops +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x00000000 hostap_80211_rx +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x00000000 hostap_add_interface +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x00000000 hostap_check_sta_fw_version +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x00000000 hostap_dump_rx_header +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x00000000 hostap_dump_tx_header +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x00000000 hostap_free_data +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x00000000 hostap_get_porttype +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x00000000 hostap_handle_sta_tx_exc +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x00000000 hostap_info_init +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x00000000 hostap_info_process +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x00000000 hostap_init_ap_proc +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x00000000 hostap_init_data +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x00000000 hostap_init_proc +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x00000000 hostap_master_start_xmit +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x00000000 hostap_remove_interface +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x00000000 hostap_remove_proc +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x00000000 hostap_set_antsel +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x00000000 hostap_set_auth_algs +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x00000000 hostap_set_encryption +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x00000000 hostap_set_hostapd +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x00000000 hostap_set_hostapd_sta +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x00000000 hostap_set_multicast_list_queue +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x00000000 hostap_set_roaming +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x00000000 hostap_set_string +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x00000000 hostap_set_word +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x00000000 hostap_setup_dev +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x00000000 prism2_update_comms_qual +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x00000000 __orinoco_ev_info +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x00000000 __orinoco_ev_rx +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x00000000 alloc_orinocodev +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x00000000 free_orinocodev +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x00000000 hermes_struct_init +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x00000000 orinoco_change_mtu +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x00000000 orinoco_down +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x00000000 orinoco_if_add +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x00000000 orinoco_if_del +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x00000000 orinoco_init +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x00000000 orinoco_interrupt +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x00000000 orinoco_open +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x00000000 orinoco_process_xmit_skb +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x00000000 orinoco_set_multicast_list +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x00000000 orinoco_stop +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x00000000 orinoco_tx_timeout +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x00000000 orinoco_up +EXPORT_SYMBOL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_wcid_key_setup +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/btcoexist/btcoexist 0x00000000 rtl_btc_get_ops_pointer +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 _rtl92c_phy_bb8192c_config_parafile +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 _rtl92c_phy_calculate_bit_shift +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 _rtl92c_phy_dbm_to_txpwr_idx +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 _rtl92c_phy_fw_rf_serial_read +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 _rtl92c_phy_fw_rf_serial_write +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 _rtl92c_phy_init_bb_rf_register_definition +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 _rtl92c_phy_rf_serial_read +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 _rtl92c_phy_rf_serial_write +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 _rtl92c_phy_set_rf_sleep +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 _rtl92c_phy_txpwr_idx_to_dbm +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 _rtl92c_store_pwrindex_diffrate_offset +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 rtl8192_phy_check_is_legal_rfpath +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 rtl92c_bt_rssi_state_change +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 rtl92c_dm_bt_coexist +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 rtl92c_dm_check_txpower_tracking +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 rtl92c_dm_init +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 rtl92c_dm_init_edca_turbo +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 rtl92c_dm_init_rate_adaptive_mask +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 rtl92c_dm_rf_saving +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 rtl92c_dm_watchdog +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 rtl92c_dm_write_dig +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 rtl92c_download_fw +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 rtl92c_fill_h2c_cmd +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 rtl92c_firmware_selfreset +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 rtl92c_phy_ap_calibrate +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 rtl92c_phy_iq_calibrate +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 rtl92c_phy_lc_calibrate +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 rtl92c_phy_query_bb_reg +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 rtl92c_phy_rf_config +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 rtl92c_phy_set_bb_reg +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 rtl92c_phy_set_bw_mode +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 rtl92c_phy_set_io +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 rtl92c_phy_set_io_cmd +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 rtl92c_phy_set_rfpath_switch +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 rtl92c_phy_set_txpower_level +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 rtl92c_phy_sw_chnl +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 rtl92c_phy_sw_chnl_callback +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 rtl92c_phy_update_txpower_dbm +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 rtl92c_set_fw_joinbss_report_cmd +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 rtl92c_set_fw_pwrmode_cmd +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 rtl92c_set_fw_rsvdpagepkt +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 rtl92ce_phy_set_rf_on +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_pci 0x00000000 rtl_pci_disconnect +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_pci 0x00000000 rtl_pci_probe +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_pci 0x00000000 rtl_pci_resume +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_pci 0x00000000 rtl_pci_suspend +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_usb 0x00000000 rtl_usb_disconnect +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_usb 0x00000000 rtl_usb_probe +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_usb 0x00000000 rtl_usb_resume +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_usb 0x00000000 rtl_usb_suspend +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 channel5g +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 channel5g_80m +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 efuse_one_byte_read +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 efuse_power_switch +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 efuse_read_1byte +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 efuse_shadow_read +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_addr_delay +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_bb_delay +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_c2hcmd_enqueue +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_cam_add_one_entry +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_cam_del_entry +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_cam_delete_one_entry +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_cam_empty_entry +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_cam_get_free_entry +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_cam_mark_invalid +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_cam_reset_all_entry +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_cmd_send_packet +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_collect_scan_list +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_dm_diginit +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_efuse_shadow_map_update +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_evm_db_to_percentage +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_fw_cb +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_get_tcb_desc +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_hal_pwrseqcmdparsing +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_init_rfkill +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_mrate_idx_to_arfr_id +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_phy_scan_operation_backup +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_process_phyinfo +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_ps_disable_nic +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_ps_enable_nic +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_query_rxpwrpercentage +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_rfreg_delay +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_rx_ampdu_apply +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_send_smps_action +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_signal_scale_mapping +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_wowlan_fw_cb +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtlwifi_rate_mapping +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88 0x00000000 __rtw_dbg +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88 0x00000000 rtw8723d_hw_spec +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88 0x00000000 rtw8822b_hw_spec +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88 0x00000000 rtw8822c_hw_spec +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88 0x00000000 rtw_chip_info_setup +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88 0x00000000 rtw_core_deinit +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88 0x00000000 rtw_core_init +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88 0x00000000 rtw_debug_mask +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88 0x00000000 rtw_fw_c2h_cmd_rx_irqsafe +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88 0x00000000 rtw_fw_lps_deep_mode +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88 0x00000000 rtw_ops +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88 0x00000000 rtw_power_mode_change +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88 0x00000000 rtw_register_hw +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88 0x00000000 rtw_rx_stats +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88 0x00000000 rtw_tx_fill_tx_desc +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88 0x00000000 rtw_tx_report_enqueue +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88 0x00000000 rtw_tx_write_data_h2c_get +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88 0x00000000 rtw_tx_write_data_rsvd_page_get +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88 0x00000000 rtw_unregister_hw +EXPORT_SYMBOL drivers/net/wireless/rsi/rsi_91x 0x00000000 rsi_config_wowlan +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wl1271_free_tx_id +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wl12xx_is_dummy_packet +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wlcore_calc_packet_alignment +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wlcore_tx_complete +EXPORT_SYMBOL drivers/nfc/fdp/fdp 0x00000000 fdp_nci_probe +EXPORT_SYMBOL drivers/nfc/fdp/fdp 0x00000000 fdp_nci_recv_frame +EXPORT_SYMBOL drivers/nfc/fdp/fdp 0x00000000 fdp_nci_remove +EXPORT_SYMBOL drivers/nfc/microread/microread 0x00000000 microread_probe +EXPORT_SYMBOL drivers/nfc/microread/microread 0x00000000 microread_remove +EXPORT_SYMBOL drivers/nfc/nxp-nci/nxp-nci 0x00000000 nxp_nci_fw_recv_frame +EXPORT_SYMBOL drivers/nfc/nxp-nci/nxp-nci 0x00000000 nxp_nci_probe +EXPORT_SYMBOL drivers/nfc/nxp-nci/nxp-nci 0x00000000 nxp_nci_remove +EXPORT_SYMBOL drivers/nfc/pn533/pn533 0x00000000 pn533_recv_frame +EXPORT_SYMBOL drivers/nfc/pn544/pn544 0x00000000 pn544_hci_probe +EXPORT_SYMBOL drivers/nfc/pn544/pn544 0x00000000 pn544_hci_remove +EXPORT_SYMBOL drivers/nfc/s3fwrn5/s3fwrn5 0x00000000 s3fwrn5_probe +EXPORT_SYMBOL drivers/nfc/s3fwrn5/s3fwrn5 0x00000000 s3fwrn5_recv_frame +EXPORT_SYMBOL drivers/nfc/s3fwrn5/s3fwrn5 0x00000000 s3fwrn5_remove +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0x00000000 ndlc_close +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0x00000000 ndlc_open +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0x00000000 ndlc_probe +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0x00000000 ndlc_recv +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0x00000000 ndlc_remove +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0x00000000 ndlc_send +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0x00000000 st_nci_se_deinit +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0x00000000 st_nci_se_init +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0x00000000 st_nci_se_io +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0x00000000 st_nci_vendor_cmds_init +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x00000000 st21nfca_apdu_reader_event_received +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x00000000 st21nfca_connectivity_event_received +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x00000000 st21nfca_dep_deinit +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x00000000 st21nfca_dep_event_received +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x00000000 st21nfca_dep_init +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x00000000 st21nfca_hci_disable_se +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x00000000 st21nfca_hci_discover_se +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x00000000 st21nfca_hci_enable_se +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x00000000 st21nfca_hci_loopback_event_received +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x00000000 st21nfca_hci_probe +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x00000000 st21nfca_hci_remove +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x00000000 st21nfca_hci_se_io +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x00000000 st21nfca_im_send_atr_req +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x00000000 st21nfca_im_send_dep_req +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x00000000 st21nfca_se_deinit +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x00000000 st21nfca_se_init +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x00000000 st21nfca_tm_send_dep_res +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x00000000 st21nfca_vendor_cmds_init +EXPORT_SYMBOL drivers/ntb/ntb 0x00000000 __ntb_register_client +EXPORT_SYMBOL drivers/ntb/ntb 0x00000000 ntb_clear_ctx +EXPORT_SYMBOL drivers/ntb/ntb 0x00000000 ntb_db_event +EXPORT_SYMBOL drivers/ntb/ntb 0x00000000 ntb_default_peer_port_count +EXPORT_SYMBOL drivers/ntb/ntb 0x00000000 ntb_default_peer_port_idx +EXPORT_SYMBOL drivers/ntb/ntb 0x00000000 ntb_default_peer_port_number +EXPORT_SYMBOL drivers/ntb/ntb 0x00000000 ntb_default_port_number +EXPORT_SYMBOL drivers/ntb/ntb 0x00000000 ntb_link_event +EXPORT_SYMBOL drivers/ntb/ntb 0x00000000 ntb_msg_event +EXPORT_SYMBOL drivers/ntb/ntb 0x00000000 ntb_msi_clear_mws +EXPORT_SYMBOL drivers/ntb/ntb 0x00000000 ntb_msi_init +EXPORT_SYMBOL drivers/ntb/ntb 0x00000000 ntb_msi_peer_addr +EXPORT_SYMBOL drivers/ntb/ntb 0x00000000 ntb_msi_peer_trigger +EXPORT_SYMBOL drivers/ntb/ntb 0x00000000 ntb_msi_setup_mws +EXPORT_SYMBOL drivers/ntb/ntb 0x00000000 ntb_register_device +EXPORT_SYMBOL drivers/ntb/ntb 0x00000000 ntb_set_ctx +EXPORT_SYMBOL drivers/ntb/ntb 0x00000000 ntb_unregister_client +EXPORT_SYMBOL drivers/ntb/ntb 0x00000000 ntb_unregister_device +EXPORT_SYMBOL drivers/ntb/ntb 0x00000000 ntbm_msi_free_irq +EXPORT_SYMBOL drivers/ntb/ntb 0x00000000 ntbm_msi_request_threaded_irq +EXPORT_SYMBOL drivers/nvdimm/nd_btt 0x00000000 nvdimm_namespace_attach_btt +EXPORT_SYMBOL drivers/nvdimm/nd_btt 0x00000000 nvdimm_namespace_detach_btt +EXPORT_SYMBOL drivers/parport/parport 0x00000000 __parport_register_driver +EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_announce_port +EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_claim +EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_claim_or_block +EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_del_port +EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_find_base +EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_find_number +EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_get_port +EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_ieee1284_ecp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_ieee1284_ecp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_ieee1284_ecp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_ieee1284_epp_read_addr +EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_ieee1284_epp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_ieee1284_epp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_ieee1284_epp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_ieee1284_interrupt +EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_ieee1284_read_byte +EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_ieee1284_read_nibble +EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_ieee1284_write_compat +EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_irq_handler +EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_negotiate +EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_put_port +EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_read +EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_register_dev_model +EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_register_device +EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_register_port +EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_release +EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_remove_port +EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_set_timeout +EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_unregister_device +EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_unregister_driver +EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_wait_event +EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_wait_peripheral +EXPORT_SYMBOL drivers/parport/parport 0x00000000 parport_write +EXPORT_SYMBOL drivers/parport/parport_pc 0x00000000 parport_pc_probe_port +EXPORT_SYMBOL drivers/parport/parport_pc 0x00000000 parport_pc_unregister_port +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x00000000 pcmcia_dev_present +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x00000000 pcmcia_disable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x00000000 pcmcia_enable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x00000000 pcmcia_fixup_iowidth +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x00000000 pcmcia_fixup_vpp +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x00000000 pcmcia_get_mac_from_cis +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x00000000 pcmcia_get_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x00000000 pcmcia_loop_config +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x00000000 pcmcia_loop_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x00000000 pcmcia_map_mem_page +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x00000000 pcmcia_parse_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x00000000 pcmcia_read_config_byte +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x00000000 pcmcia_register_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x00000000 pcmcia_release_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x00000000 pcmcia_request_io +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x00000000 pcmcia_request_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x00000000 pcmcia_request_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x00000000 pcmcia_unregister_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x00000000 pcmcia_write_config_byte +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x00000000 dead_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x00000000 pccard_register_pcmcia +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x00000000 pcmcia_get_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x00000000 pcmcia_get_socket_by_nr +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x00000000 pcmcia_parse_events +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x00000000 pcmcia_parse_uevents +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x00000000 pcmcia_put_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x00000000 pcmcia_register_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x00000000 pcmcia_reset_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x00000000 pcmcia_socket_class +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x00000000 pcmcia_socket_list +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x00000000 pcmcia_socket_list_rwsem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x00000000 pcmcia_unregister_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0x00000000 pccard_nonstatic_ops +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0x00000000 pccard_static_ops +EXPORT_SYMBOL drivers/platform/chrome/cros_ec 0x00000000 cros_ec_handle_event +EXPORT_SYMBOL drivers/platform/chrome/cros_ec 0x00000000 cros_ec_register +EXPORT_SYMBOL drivers/platform/chrome/cros_ec 0x00000000 cros_ec_resume +EXPORT_SYMBOL drivers/platform/chrome/cros_ec 0x00000000 cros_ec_suspend +EXPORT_SYMBOL drivers/platform/chrome/cros_ec 0x00000000 cros_ec_unregister +EXPORT_SYMBOL drivers/platform/chrome/cros_ec_lpcs 0x00000000 cros_ec_lpc_io_bytes_mec +EXPORT_SYMBOL drivers/platform/chrome/cros_ec_lpcs 0x00000000 cros_ec_lpc_mec_destroy +EXPORT_SYMBOL drivers/platform/chrome/cros_ec_lpcs 0x00000000 cros_ec_lpc_mec_init +EXPORT_SYMBOL drivers/platform/x86/dcdbas 0x00000000 dcdbas_smi_request +EXPORT_SYMBOL drivers/platform/x86/intel_punit_ipc 0x00000000 intel_punit_ipc_simple_command +EXPORT_SYMBOL drivers/platform/x86/sony-laptop 0x00000000 sony_pic_camera_command +EXPORT_SYMBOL drivers/platform/x86/wmi 0x00000000 __wmi_driver_register +EXPORT_SYMBOL drivers/platform/x86/wmi 0x00000000 wmi_driver_unregister +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x00000000 __register_rpmsg_driver +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x00000000 rpmsg_create_ept +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x00000000 rpmsg_destroy_ept +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x00000000 rpmsg_find_device +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x00000000 rpmsg_poll +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x00000000 rpmsg_register_device +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x00000000 rpmsg_send +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x00000000 rpmsg_send_offchannel +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x00000000 rpmsg_sendto +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x00000000 rpmsg_trysend +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x00000000 rpmsg_trysend_offchannel +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x00000000 rpmsg_trysendto +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x00000000 rpmsg_unregister_device +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x00000000 unregister_rpmsg_driver +EXPORT_SYMBOL drivers/rtc/rtc-ds1685 0x00000000 ds1685_rtc_poweroff +EXPORT_SYMBOL drivers/scsi/53c700 0x00000000 NCR_700_detect +EXPORT_SYMBOL drivers/scsi/53c700 0x00000000 NCR_700_intr +EXPORT_SYMBOL drivers/scsi/53c700 0x00000000 NCR_700_release +EXPORT_SYMBOL drivers/scsi/esp_scsi 0x00000000 scsi_esp_cmd +EXPORT_SYMBOL drivers/scsi/esp_scsi 0x00000000 scsi_esp_intr +EXPORT_SYMBOL drivers/scsi/esp_scsi 0x00000000 scsi_esp_register +EXPORT_SYMBOL drivers/scsi/esp_scsi 0x00000000 scsi_esp_template +EXPORT_SYMBOL drivers/scsi/esp_scsi 0x00000000 scsi_esp_unregister +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_ctlr_destroy +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_ctlr_els_send +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_ctlr_init +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_ctlr_link_down +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_ctlr_link_up +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_ctlr_recv +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_ctlr_recv_flogi +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_ctlr_set_fip_mode +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_fcf_get_selected +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_transport_attach +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_transport_detach +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 _fc_frame_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_cpu_mask +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_disc_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_disc_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_eh_abort +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_eh_device_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_eh_host_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_elsct_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_elsct_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_exch_done +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_exch_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_exch_mgr_add +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_exch_mgr_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_exch_mgr_del +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_exch_mgr_free +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_exch_mgr_list_clone +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_exch_mgr_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_exch_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_exch_seq_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_exch_update_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_fabric_login +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_fabric_logoff +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_fc4_deregister_provider +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_fc4_register_provider +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_fcp_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_fcp_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_fill_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_fill_reply_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_frame_alloc_fill +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_frame_crc_check +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_get_host_port_state +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_get_host_speed +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_get_host_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_linkdown +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_linkup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_lport_bsg_request +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_lport_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_lport_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_lport_flogi_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_lport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_lport_iterate +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_lport_logo_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_lport_notifier_head +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_lport_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_lport_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_lport_set_local_id +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_queuecommand +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_rport_create +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_rport_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_rport_flush_queue +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_rport_login +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_rport_logoff +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_rport_lookup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_rport_recv_req +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_rport_terminate_io +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_seq_assign +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_seq_release +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_seq_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_seq_set_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_seq_start_next +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_set_mfs +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_set_rport_loss_tmo +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_slave_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_vport_id_lookup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 fc_vport_setlink +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00000000 libfc_vport_create +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x00000000 sas_prep_resume_ha +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x00000000 sas_resume_ha +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x00000000 sas_suspend_ha +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x00000000 try_test_sas_gpio_gp_bit +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x00000000 mraid_mm_adapter_app_handle +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x00000000 mraid_mm_register_adp +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x00000000 mraid_mm_unregister_adp +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x00000000 qlt_abort_cmd +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x00000000 qlt_enable_vha +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x00000000 qlt_free_cmd +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x00000000 qlt_free_mcmd +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x00000000 qlt_lport_deregister +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x00000000 qlt_lport_register +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x00000000 qlt_rdy_to_xfer +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x00000000 qlt_stop_phase1 +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x00000000 qlt_stop_phase2 +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x00000000 qlt_unreg_sess +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x00000000 qlt_xmit_response +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x00000000 qlt_xmit_tm_rsp +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x00000000 qlogicfas408_abort +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x00000000 qlogicfas408_biosparam +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x00000000 qlogicfas408_detect +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x00000000 qlogicfas408_disable_ints +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x00000000 qlogicfas408_get_chip_type +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x00000000 qlogicfas408_host_reset +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x00000000 qlogicfas408_ihandl +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x00000000 qlogicfas408_info +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x00000000 qlogicfas408_queuecommand +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x00000000 qlogicfas408_setup +EXPORT_SYMBOL drivers/scsi/raid_class 0x00000000 raid_class_attach +EXPORT_SYMBOL drivers/scsi/raid_class 0x00000000 raid_class_release +EXPORT_SYMBOL drivers/scsi/raid_class 0x00000000 raid_component_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x00000000 fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x00000000 fc_block_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x00000000 fc_block_scsi_eh +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x00000000 fc_eh_timed_out +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x00000000 fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x00000000 fc_host_fpin_rcv +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x00000000 fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x00000000 fc_host_post_fc_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x00000000 fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x00000000 fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x00000000 fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x00000000 fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x00000000 fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x00000000 fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x00000000 fc_vport_create +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x00000000 fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x00000000 scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 sas_get_address +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 sas_port_get_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 sas_rphy_unlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00000000 scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x00000000 spi_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x00000000 spi_display_xfer_agreement +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x00000000 spi_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x00000000 spi_print_msg +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x00000000 spi_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x00000000 spi_schedule_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0x00000000 srp_parse_tmo +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0x00000000 srp_reconnect_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0x00000000 srp_rport_get +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0x00000000 srp_rport_put +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0x00000000 srp_start_tl_fail_timers +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0x00000000 srp_timed_out +EXPORT_SYMBOL drivers/scsi/ufs/tc-dwc-g210 0x00000000 tc_dwc_g210_config_20_bit +EXPORT_SYMBOL drivers/scsi/ufs/tc-dwc-g210 0x00000000 tc_dwc_g210_config_40_bit +EXPORT_SYMBOL drivers/scsi/ufs/ufshcd-core 0x00000000 ufshcd_alloc_host +EXPORT_SYMBOL drivers/scsi/ufs/ufshcd-core 0x00000000 ufshcd_get_local_unipro_ver +EXPORT_SYMBOL drivers/scsi/ufs/ufshcd-core 0x00000000 ufshcd_map_desc_id_to_length +EXPORT_SYMBOL drivers/scsi/ufs/ufshcd-core 0x00000000 ufshcd_runtime_idle +EXPORT_SYMBOL drivers/scsi/ufs/ufshcd-core 0x00000000 ufshcd_runtime_resume +EXPORT_SYMBOL drivers/scsi/ufs/ufshcd-core 0x00000000 ufshcd_runtime_suspend +EXPORT_SYMBOL drivers/scsi/ufs/ufshcd-core 0x00000000 ufshcd_shutdown +EXPORT_SYMBOL drivers/scsi/ufs/ufshcd-core 0x00000000 ufshcd_system_resume +EXPORT_SYMBOL drivers/scsi/ufs/ufshcd-core 0x00000000 ufshcd_system_suspend +EXPORT_SYMBOL drivers/scsi/ufs/ufshcd-dwc 0x00000000 ufshcd_dwc_dme_set_attrs +EXPORT_SYMBOL drivers/scsi/ufs/ufshcd-dwc 0x00000000 ufshcd_dwc_link_startup_notify +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x00000000 sdw_add_bus_master +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x00000000 sdw_alloc_stream +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x00000000 sdw_bus_clk_stop +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x00000000 sdw_bus_exit_clk_stop +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x00000000 sdw_bus_prep_clk_stop +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x00000000 sdw_clear_slave_status +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x00000000 sdw_cols +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x00000000 sdw_delete_bus_master +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x00000000 sdw_deprepare_stream +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x00000000 sdw_disable_stream +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x00000000 sdw_enable_stream +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x00000000 sdw_find_col_index +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x00000000 sdw_find_row_index +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x00000000 sdw_handle_slave_status +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x00000000 sdw_master_read_prop +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x00000000 sdw_nread +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x00000000 sdw_nwrite +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x00000000 sdw_prepare_stream +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x00000000 sdw_read +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x00000000 sdw_release_stream +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x00000000 sdw_rows +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x00000000 sdw_shutdown_stream +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x00000000 sdw_slave_read_prop +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x00000000 sdw_startup_stream +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x00000000 sdw_stream_add_master +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x00000000 sdw_stream_add_slave +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x00000000 sdw_stream_remove_master +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x00000000 sdw_stream_remove_slave +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x00000000 sdw_write +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x00000000 cdns_bus_conf +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x00000000 cdns_reset_page_addr +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x00000000 cdns_set_sdw_stream +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x00000000 cdns_xfer_msg +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x00000000 cdns_xfer_msg_defer +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x00000000 sdw_cdns_alloc_pdi +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x00000000 sdw_cdns_clock_restart +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x00000000 sdw_cdns_clock_stop +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x00000000 sdw_cdns_config_stream +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x00000000 sdw_cdns_enable_interrupt +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x00000000 sdw_cdns_exit_reset +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x00000000 sdw_cdns_init +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x00000000 sdw_cdns_irq +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x00000000 sdw_cdns_is_clock_stop +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x00000000 sdw_cdns_pdi_init +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x00000000 sdw_cdns_probe +EXPORT_SYMBOL drivers/soundwire/soundwire-generic-allocation 0x00000000 sdw_compute_params +EXPORT_SYMBOL drivers/soundwire/soundwire-intel 0x00000000 sdw_intel_thread +EXPORT_SYMBOL drivers/ssb/ssb 0x00000000 __ssb_driver_register +EXPORT_SYMBOL drivers/ssb/ssb 0x00000000 ssb_admatch_base +EXPORT_SYMBOL drivers/ssb/ssb 0x00000000 ssb_admatch_size +EXPORT_SYMBOL drivers/ssb/ssb 0x00000000 ssb_bus_may_powerdown +EXPORT_SYMBOL drivers/ssb/ssb 0x00000000 ssb_bus_powerup +EXPORT_SYMBOL drivers/ssb/ssb 0x00000000 ssb_bus_resume +EXPORT_SYMBOL drivers/ssb/ssb 0x00000000 ssb_bus_sdiobus_register +EXPORT_SYMBOL drivers/ssb/ssb 0x00000000 ssb_bus_suspend +EXPORT_SYMBOL drivers/ssb/ssb 0x00000000 ssb_bus_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x00000000 ssb_chipco_gpio_control +EXPORT_SYMBOL drivers/ssb/ssb 0x00000000 ssb_clockspeed +EXPORT_SYMBOL drivers/ssb/ssb 0x00000000 ssb_commit_settings +EXPORT_SYMBOL drivers/ssb/ssb 0x00000000 ssb_device_disable +EXPORT_SYMBOL drivers/ssb/ssb 0x00000000 ssb_device_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x00000000 ssb_device_is_enabled +EXPORT_SYMBOL drivers/ssb/ssb 0x00000000 ssb_dma_translation +EXPORT_SYMBOL drivers/ssb/ssb 0x00000000 ssb_driver_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x00000000 ssb_pcicore_dev_irqvecs_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x00000000 ssb_pcihost_register +EXPORT_SYMBOL drivers/ssb/ssb 0x00000000 ssb_pmu_set_ldo_paref +EXPORT_SYMBOL drivers/ssb/ssb 0x00000000 ssb_pmu_set_ldo_voltage +EXPORT_SYMBOL drivers/ssb/ssb 0x00000000 ssb_set_devtypedata +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x00000000 fbtft_dbg_hex +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x00000000 fbtft_framebuffer_alloc +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x00000000 fbtft_framebuffer_release +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x00000000 fbtft_init_display +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x00000000 fbtft_probe_common +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x00000000 fbtft_read_spi +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x00000000 fbtft_register_backlight +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x00000000 fbtft_register_framebuffer +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x00000000 fbtft_remove_common +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x00000000 fbtft_unregister_backlight +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x00000000 fbtft_unregister_framebuffer +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x00000000 fbtft_write_buf_dc +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x00000000 fbtft_write_gpio16_wr +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x00000000 fbtft_write_gpio16_wr_latched +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x00000000 fbtft_write_gpio8_wr +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x00000000 fbtft_write_reg16_bus16 +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x00000000 fbtft_write_reg16_bus8 +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x00000000 fbtft_write_reg8_bus8 +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x00000000 fbtft_write_reg8_bus9 +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x00000000 fbtft_write_spi +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x00000000 fbtft_write_spi_emulate_9 +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x00000000 fbtft_write_vmem16_bus16 +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x00000000 fbtft_write_vmem16_bus8 +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x00000000 fbtft_write_vmem16_bus9 +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x00000000 fbtft_write_vmem8_bus8 +EXPORT_SYMBOL drivers/staging/gasket/gasket 0x00000000 gasket_disable_device +EXPORT_SYMBOL drivers/staging/gasket/gasket 0x00000000 gasket_enable_device +EXPORT_SYMBOL drivers/staging/gasket/gasket 0x00000000 gasket_get_ioctl_permissions_cb +EXPORT_SYMBOL drivers/staging/gasket/gasket 0x00000000 gasket_mm_unmap_region +EXPORT_SYMBOL drivers/staging/gasket/gasket 0x00000000 gasket_num_name_lookup +EXPORT_SYMBOL drivers/staging/gasket/gasket 0x00000000 gasket_page_table_are_addrs_bad +EXPORT_SYMBOL drivers/staging/gasket/gasket 0x00000000 gasket_page_table_is_dev_addr_bad +EXPORT_SYMBOL drivers/staging/gasket/gasket 0x00000000 gasket_page_table_map +EXPORT_SYMBOL drivers/staging/gasket/gasket 0x00000000 gasket_page_table_max_size +EXPORT_SYMBOL drivers/staging/gasket/gasket 0x00000000 gasket_page_table_num_active_pages +EXPORT_SYMBOL drivers/staging/gasket/gasket 0x00000000 gasket_page_table_num_entries +EXPORT_SYMBOL drivers/staging/gasket/gasket 0x00000000 gasket_page_table_num_simple_entries +EXPORT_SYMBOL drivers/staging/gasket/gasket 0x00000000 gasket_page_table_partition +EXPORT_SYMBOL drivers/staging/gasket/gasket 0x00000000 gasket_page_table_unmap +EXPORT_SYMBOL drivers/staging/gasket/gasket 0x00000000 gasket_page_table_unmap_all +EXPORT_SYMBOL drivers/staging/gasket/gasket 0x00000000 gasket_pci_add_device +EXPORT_SYMBOL drivers/staging/gasket/gasket 0x00000000 gasket_pci_remove_device +EXPORT_SYMBOL drivers/staging/gasket/gasket 0x00000000 gasket_register_device +EXPORT_SYMBOL drivers/staging/gasket/gasket 0x00000000 gasket_reset +EXPORT_SYMBOL drivers/staging/gasket/gasket 0x00000000 gasket_reset_nolock +EXPORT_SYMBOL drivers/staging/gasket/gasket 0x00000000 gasket_sysfs_create_entries +EXPORT_SYMBOL drivers/staging/gasket/gasket 0x00000000 gasket_sysfs_get_attr +EXPORT_SYMBOL drivers/staging/gasket/gasket 0x00000000 gasket_sysfs_get_device_data +EXPORT_SYMBOL drivers/staging/gasket/gasket 0x00000000 gasket_sysfs_put_attr +EXPORT_SYMBOL drivers/staging/gasket/gasket 0x00000000 gasket_sysfs_put_device_data +EXPORT_SYMBOL drivers/staging/gasket/gasket 0x00000000 gasket_sysfs_register_store +EXPORT_SYMBOL drivers/staging/gasket/gasket 0x00000000 gasket_unregister_device +EXPORT_SYMBOL drivers/staging/gasket/gasket 0x00000000 gasket_wait_with_reschedule +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0x00000000 adt7316_probe +EXPORT_SYMBOL drivers/staging/iio/meter/ade7854 0x00000000 ade7854_probe +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 HT_update_self_and_peer_setting +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 RemovePeerTS +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 alloc_rtllib +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 dot11d_channel_map +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 dot11d_init +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 free_rtllib +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 notify_wx_assoc_event +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rt_global_debug_component +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_DisableIntelPromiscuousMode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_EnableIntelPromiscuousMode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_MgntDisconnect +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_act_scanning +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_get_beacon +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_legal_channel +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_ps_tx_ack +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_reset_queue +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_rx +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_softmac_start_protocol +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_softmac_stop_protocol +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_sta_ps_send_null_frame +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_start_scan_syncro +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_start_send_beacons +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_stop_scan +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_stop_scan_syncro +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_stop_send_beacons +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_wlan_frequencies +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_wx_get_encode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_wx_get_essid +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_wx_get_freq +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_wx_get_mode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_wx_get_name +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_wx_get_power +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_wx_get_rate +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_wx_get_rts +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_wx_get_scan +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_wx_get_wap +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_wx_set_auth +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_wx_set_encode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_wx_set_encode_ext +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_wx_set_essid +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_wx_set_freq +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_wx_set_gen_ie +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_wx_set_mlme +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_wx_set_mode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_wx_set_power +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_wx_set_rate +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_wx_set_rawtx +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_wx_set_rts +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_wx_set_scan +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_wx_set_wap +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00000000 rtllib_xmit +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 HTUpdateSelfAndPeerSetting +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 SendDisassociation_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 dot11d_get_max_tx_pwr_in_dbm +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 dot11d_reset +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 dot11d_scan_complete +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 dot11d_update_country_ie +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_disassociate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_get_beacon_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_is_54g_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_is_shortslot_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_ps_tx_ack_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_reset_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_rx_mgt_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_rx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_softmac_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_softmac_start_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_softmac_stop_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_softmac_xmit_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_start_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_start_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_stop_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_stop_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_stop_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_txb_free_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_wake_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_wlan_frequencies_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_wpa_supplicant_ioctl_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_wx_get_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_wx_get_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_wx_get_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_wx_get_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_wx_get_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_wx_get_name_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_wx_get_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_wx_get_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_wx_get_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_wx_get_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_wx_get_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_wx_set_auth_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_wx_set_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_wx_set_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_wx_set_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_wx_set_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_wx_set_gen_ie_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_wx_set_mlme_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_wx_set_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_wx_set_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_wx_set_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_wx_set_rawtx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_wx_set_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_wx_set_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 ieee80211_wx_set_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 is_legal_channel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 notify_wx_assoc_event_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 rtl8192u_dot11d_init +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00000000 to_legal_channel +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 __iscsit_check_dataout_hdr +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsi_change_param_sprintf +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsi_find_param_from_key +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsi_target_check_login_request +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_aborted_task +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_add_cmd_to_immediate_queue +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_add_reject +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_allocate_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_build_datain_pdu +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_build_logout_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_build_nopin_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_build_r2ts_for_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_build_reject +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_build_rsp_pdu +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_build_task_mgt_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_build_text_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_cause_connection_reinstatement +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_check_dataout_hdr +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_check_dataout_payload +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_find_cmd_from_itt +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_find_cmd_from_itt_or_dump +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_free_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_get_datain_values +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_handle_logout_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_handle_snack +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_handle_task_mgt_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_immediate_queue +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_increment_maxcmdsn +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_logout_post_handler +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_process_nop_out +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_process_scsi_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_process_text_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_queue_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_register_transport +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_reject_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_release_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_response_queue +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_sequence_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_set_unsolicited_dataout +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_setup_nop_out +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_setup_scsi_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_setup_text_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_stop_dataout_timer +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_tmr_post_handler +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00000000 iscsit_unregister_transport +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 __transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 core_allocate_nexus_loss_ua +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 core_alua_check_nonop_delay +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 core_tmr_alloc_req +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 core_tpg_check_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 core_tpg_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 core_tpg_get_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 core_tpg_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 core_tpg_set_initiator_node_queue_depth +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 core_tpg_set_initiator_node_tag +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 passthrough_attrib_attrs +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 passthrough_parse_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 sbc_attrib_attrs +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 sbc_dif_copy_prot +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 sbc_dif_verify +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 sbc_get_device_type +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 sbc_get_write_same_sectors +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 sbc_parse_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 spc_emulate_evpd_83 +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 spc_emulate_inquiry_std +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 spc_emulate_report_luns +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 spc_parse_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 target_alloc_sgl +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 target_backend_unregister +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 target_complete_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 target_complete_cmd_with_length +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 target_configure_unmap_from_queue +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 target_depend_item +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 target_execute_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 target_free_sgl +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 target_get_sess_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 target_lun_is_rdonly +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 target_nacl_find_deve +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 target_put_nacl +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 target_put_sess_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 target_register_template +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 target_remove_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 target_send_busy +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 target_sess_cmd_list_set_waiting +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 target_setup_cmd_from_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 target_setup_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 target_show_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 target_show_dynamic_sessions +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 target_submit_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 target_submit_cmd_map_sgls +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 target_submit_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 target_to_linux_sector +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 target_tpg_has_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 target_undepend_item +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 target_unregister_template +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 target_wait_for_sess_cmds +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_alloc_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_alloc_session_tags +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_backend_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_copy_sense_to_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_deregister_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_deregister_session_configfs +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_free_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_generic_free_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_generic_handle_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_generic_new_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_generic_request_failure +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_handle_cdb_direct +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_init_se_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_init_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_kmap_data_sg +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_kunmap_data_sg +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_lookup_cmd_lun +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_lookup_tmr_lun +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_send_check_condition_and_sense +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_set_vpd_assoc +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_set_vpd_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_set_vpd_ident_type +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_set_vpd_proto_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x00000000 transport_wait_for_tasks +EXPORT_SYMBOL drivers/thermal/intel/int340x_thermal/acpi_thermal_rel 0x00000000 acpi_parse_art +EXPORT_SYMBOL drivers/thermal/intel/int340x_thermal/acpi_thermal_rel 0x00000000 acpi_parse_trt +EXPORT_SYMBOL drivers/thermal/intel/int340x_thermal/acpi_thermal_rel 0x00000000 acpi_thermal_rel_misc_device_add +EXPORT_SYMBOL drivers/thermal/intel/int340x_thermal/acpi_thermal_rel 0x00000000 acpi_thermal_rel_misc_device_remove +EXPORT_SYMBOL drivers/usb/class/cdc-wdm 0x00000000 usb_cdc_wdm_register +EXPORT_SYMBOL drivers/usb/gadget/libcomposite 0x00000000 usb_os_desc_prepare_interf_dir +EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0x00000000 sl811h_driver +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x00000000 usb_wwan_chars_in_buffer +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x00000000 usb_wwan_close +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x00000000 usb_wwan_dtr_rts +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x00000000 usb_wwan_get_serial_info +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x00000000 usb_wwan_open +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x00000000 usb_wwan_port_remove +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x00000000 usb_wwan_resume +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x00000000 usb_wwan_set_serial_info +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x00000000 usb_wwan_suspend +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x00000000 usb_wwan_tiocmget +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x00000000 usb_wwan_tiocmset +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x00000000 usb_wwan_write +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x00000000 usb_wwan_write_room +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x00000000 usb_serial_resume +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x00000000 usb_serial_suspend +EXPORT_SYMBOL drivers/vfio/mdev/mdev 0x00000000 mdev_dev +EXPORT_SYMBOL drivers/vfio/mdev/mdev 0x00000000 mdev_from_dev +EXPORT_SYMBOL drivers/vfio/mdev/mdev 0x00000000 mdev_get_drvdata +EXPORT_SYMBOL drivers/vfio/mdev/mdev 0x00000000 mdev_get_iommu_device +EXPORT_SYMBOL drivers/vfio/mdev/mdev 0x00000000 mdev_parent_dev +EXPORT_SYMBOL drivers/vfio/mdev/mdev 0x00000000 mdev_register_device +EXPORT_SYMBOL drivers/vfio/mdev/mdev 0x00000000 mdev_register_driver +EXPORT_SYMBOL drivers/vfio/mdev/mdev 0x00000000 mdev_set_drvdata +EXPORT_SYMBOL drivers/vfio/mdev/mdev 0x00000000 mdev_set_iommu_device +EXPORT_SYMBOL drivers/vfio/mdev/mdev 0x00000000 mdev_unregister_device +EXPORT_SYMBOL drivers/vfio/mdev/mdev 0x00000000 mdev_unregister_driver +EXPORT_SYMBOL drivers/vfio/mdev/mdev 0x00000000 mdev_uuid +EXPORT_SYMBOL drivers/vhost/vhost 0x00000000 vhost_chr_poll +EXPORT_SYMBOL drivers/vhost/vhost 0x00000000 vhost_chr_write_iter +EXPORT_SYMBOL drivers/vhost/vringh 0x00000000 vringh_abandon_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x00000000 vringh_abandon_user +EXPORT_SYMBOL drivers/vhost/vringh 0x00000000 vringh_complete_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x00000000 vringh_complete_multi_user +EXPORT_SYMBOL drivers/vhost/vringh 0x00000000 vringh_complete_user +EXPORT_SYMBOL drivers/vhost/vringh 0x00000000 vringh_getdesc_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x00000000 vringh_getdesc_user +EXPORT_SYMBOL drivers/vhost/vringh 0x00000000 vringh_init_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x00000000 vringh_init_user +EXPORT_SYMBOL drivers/vhost/vringh 0x00000000 vringh_iov_pull_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x00000000 vringh_iov_pull_user +EXPORT_SYMBOL drivers/vhost/vringh 0x00000000 vringh_iov_push_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x00000000 vringh_iov_push_user +EXPORT_SYMBOL drivers/vhost/vringh 0x00000000 vringh_need_notify_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x00000000 vringh_need_notify_user +EXPORT_SYMBOL drivers/vhost/vringh 0x00000000 vringh_notify_disable_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x00000000 vringh_notify_disable_user +EXPORT_SYMBOL drivers/vhost/vringh 0x00000000 vringh_notify_enable_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x00000000 vringh_notify_enable_user +EXPORT_SYMBOL drivers/video/backlight/lcd 0x00000000 devm_lcd_device_register +EXPORT_SYMBOL drivers/video/backlight/lcd 0x00000000 devm_lcd_device_unregister +EXPORT_SYMBOL drivers/video/backlight/lcd 0x00000000 lcd_device_register +EXPORT_SYMBOL drivers/video/backlight/lcd 0x00000000 lcd_device_unregister +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x00000000 svga_check_timings +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x00000000 svga_compute_pll +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x00000000 svga_get_caps +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x00000000 svga_get_tilemax +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x00000000 svga_match_format +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x00000000 svga_set_default_atc_regs +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x00000000 svga_set_default_crt_regs +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x00000000 svga_set_default_gfx_regs +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x00000000 svga_set_default_seq_regs +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x00000000 svga_set_textmode_vga_regs +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x00000000 svga_set_timings +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x00000000 svga_settile +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x00000000 svga_tileblit +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x00000000 svga_tilecopy +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x00000000 svga_tilecursor +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x00000000 svga_tilefill +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x00000000 svga_wcrt_multi +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x00000000 svga_wseq_multi +EXPORT_SYMBOL drivers/video/fbdev/core/syscopyarea 0x00000000 sys_copyarea +EXPORT_SYMBOL drivers/video/fbdev/core/sysfillrect 0x00000000 sys_fillrect +EXPORT_SYMBOL drivers/video/fbdev/core/sysimgblt 0x00000000 sys_imageblit +EXPORT_SYMBOL drivers/video/fbdev/cyber2000fb 0x00000000 cyber2000fb_attach +EXPORT_SYMBOL drivers/video/fbdev/cyber2000fb 0x00000000 cyber2000fb_detach +EXPORT_SYMBOL drivers/video/fbdev/cyber2000fb 0x00000000 cyber2000fb_disable_extregs +EXPORT_SYMBOL drivers/video/fbdev/cyber2000fb 0x00000000 cyber2000fb_enable_extregs +EXPORT_SYMBOL drivers/video/fbdev/macmodes 0x00000000 mac_find_mode +EXPORT_SYMBOL drivers/video/fbdev/macmodes 0x00000000 mac_map_monitor_sense +EXPORT_SYMBOL drivers/video/fbdev/macmodes 0x00000000 mac_vmode_to_var +EXPORT_SYMBOL drivers/video/fbdev/matrox/g450_pll 0x00000000 g450_mnp2f +EXPORT_SYMBOL drivers/video/fbdev/matrox/g450_pll 0x00000000 matroxfb_g450_setclk +EXPORT_SYMBOL drivers/video/fbdev/matrox/g450_pll 0x00000000 matroxfb_g450_setpll_cond +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_DAC1064 0x00000000 DAC1064_global_init +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_DAC1064 0x00000000 DAC1064_global_restore +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_DAC1064 0x00000000 matrox_G100 +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_DAC1064 0x00000000 matrox_mystique +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_Ti3026 0x00000000 matrox_millennium +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_accel 0x00000000 matrox_cfbX_init +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_base 0x00000000 matroxfb_enable_irq +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_base 0x00000000 matroxfb_register_driver +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_base 0x00000000 matroxfb_unregister_driver +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_base 0x00000000 matroxfb_wait_for_sync +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_g450 0x00000000 matroxfb_g450_connect +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_g450 0x00000000 matroxfb_g450_shutdown +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_misc 0x00000000 matroxfb_DAC_in +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_misc 0x00000000 matroxfb_DAC_out +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_misc 0x00000000 matroxfb_PLL_calcclock +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_misc 0x00000000 matroxfb_read_pins +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_misc 0x00000000 matroxfb_var2my +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_misc 0x00000000 matroxfb_vgaHWinit +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_misc 0x00000000 matroxfb_vgaHWrestore +EXPORT_SYMBOL drivers/video/fbdev/sis/sisfb 0x00000000 sis_free +EXPORT_SYMBOL drivers/video/fbdev/sis/sisfb 0x00000000 sis_malloc +EXPORT_SYMBOL drivers/video/vgastate 0x00000000 restore_vga +EXPORT_SYMBOL drivers/video/vgastate 0x00000000 save_vga +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0x00000000 w1_ds2780_eeprom_cmd +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0x00000000 w1_ds2780_io +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2781 0x00000000 w1_ds2781_eeprom_cmd +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2781 0x00000000 w1_ds2781_io +EXPORT_SYMBOL drivers/w1/wire 0x00000000 w1_add_master_device +EXPORT_SYMBOL drivers/w1/wire 0x00000000 w1_register_family +EXPORT_SYMBOL drivers/w1/wire 0x00000000 w1_remove_master_device +EXPORT_SYMBOL drivers/w1/wire 0x00000000 w1_unregister_family +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0x00000000 iTCO_vendor_check_noreboot_on +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0x00000000 iTCO_vendor_pre_start +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0x00000000 iTCO_vendor_pre_stop +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0x00000000 iTCO_vendorsupport +EXPORT_SYMBOL fs/fscache/fscache 0x00000000 __fscache_acquire_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x00000000 __fscache_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0x00000000 __fscache_attr_changed +EXPORT_SYMBOL fs/fscache/fscache 0x00000000 __fscache_check_consistency +EXPORT_SYMBOL fs/fscache/fscache 0x00000000 __fscache_check_page_write +EXPORT_SYMBOL fs/fscache/fscache 0x00000000 __fscache_disable_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x00000000 __fscache_enable_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x00000000 __fscache_invalidate +EXPORT_SYMBOL fs/fscache/fscache 0x00000000 __fscache_maybe_release_page +EXPORT_SYMBOL fs/fscache/fscache 0x00000000 __fscache_read_or_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0x00000000 __fscache_read_or_alloc_pages +EXPORT_SYMBOL fs/fscache/fscache 0x00000000 __fscache_readpages_cancel +EXPORT_SYMBOL fs/fscache/fscache 0x00000000 __fscache_register_netfs +EXPORT_SYMBOL fs/fscache/fscache 0x00000000 __fscache_relinquish_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x00000000 __fscache_uncache_all_inode_pages +EXPORT_SYMBOL fs/fscache/fscache 0x00000000 __fscache_uncache_page +EXPORT_SYMBOL fs/fscache/fscache 0x00000000 __fscache_unregister_netfs +EXPORT_SYMBOL fs/fscache/fscache 0x00000000 __fscache_update_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x00000000 __fscache_wait_on_invalidate +EXPORT_SYMBOL fs/fscache/fscache 0x00000000 __fscache_wait_on_page_write +EXPORT_SYMBOL fs/fscache/fscache 0x00000000 __fscache_write_page +EXPORT_SYMBOL fs/fscache/fscache 0x00000000 fscache_add_cache +EXPORT_SYMBOL fs/fscache/fscache 0x00000000 fscache_cache_cleared_wq +EXPORT_SYMBOL fs/fscache/fscache 0x00000000 fscache_check_aux +EXPORT_SYMBOL fs/fscache/fscache 0x00000000 fscache_enqueue_operation +EXPORT_SYMBOL fs/fscache/fscache 0x00000000 fscache_fsdef_index +EXPORT_SYMBOL fs/fscache/fscache 0x00000000 fscache_init_cache +EXPORT_SYMBOL fs/fscache/fscache 0x00000000 fscache_io_error +EXPORT_SYMBOL fs/fscache/fscache 0x00000000 fscache_mark_page_cached +EXPORT_SYMBOL fs/fscache/fscache 0x00000000 fscache_mark_pages_cached +EXPORT_SYMBOL fs/fscache/fscache 0x00000000 fscache_object_destroy +EXPORT_SYMBOL fs/fscache/fscache 0x00000000 fscache_object_init +EXPORT_SYMBOL fs/fscache/fscache 0x00000000 fscache_object_lookup_negative +EXPORT_SYMBOL fs/fscache/fscache 0x00000000 fscache_object_mark_killed +EXPORT_SYMBOL fs/fscache/fscache 0x00000000 fscache_object_retrying_stale +EXPORT_SYMBOL fs/fscache/fscache 0x00000000 fscache_obtained_object +EXPORT_SYMBOL fs/fscache/fscache 0x00000000 fscache_op_complete +EXPORT_SYMBOL fs/fscache/fscache 0x00000000 fscache_op_debug_id +EXPORT_SYMBOL fs/fscache/fscache 0x00000000 fscache_operation_init +EXPORT_SYMBOL fs/fscache/fscache 0x00000000 fscache_put_operation +EXPORT_SYMBOL fs/fscache/fscache 0x00000000 fscache_withdraw_cache +EXPORT_SYMBOL fs/ocfs2/cluster/ocfs2_nodemanager 0x00000000 o2hb_global_heartbeat_active +EXPORT_SYMBOL fs/quota/quota_tree 0x00000000 qtree_delete_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x00000000 qtree_entry_unused +EXPORT_SYMBOL fs/quota/quota_tree 0x00000000 qtree_get_next_id +EXPORT_SYMBOL fs/quota/quota_tree 0x00000000 qtree_read_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x00000000 qtree_release_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x00000000 qtree_write_dquot +EXPORT_SYMBOL lib/crc-itu-t 0x00000000 crc_itu_t +EXPORT_SYMBOL lib/crc-itu-t 0x00000000 crc_itu_t_table +EXPORT_SYMBOL lib/crc7 0x00000000 crc7_be +EXPORT_SYMBOL lib/crc7 0x00000000 crc7_be_syndrome_table +EXPORT_SYMBOL lib/crc8 0x00000000 crc8 +EXPORT_SYMBOL lib/crc8 0x00000000 crc8_populate_lsb +EXPORT_SYMBOL lib/crc8 0x00000000 crc8_populate_msb +EXPORT_SYMBOL lib/crypto/libarc4 0x00000000 arc4_crypt +EXPORT_SYMBOL lib/crypto/libarc4 0x00000000 arc4_setkey +EXPORT_SYMBOL lib/crypto/libblake2s 0x00000000 blake2s256_hmac +EXPORT_SYMBOL lib/crypto/libblake2s 0x00000000 blake2s_final +EXPORT_SYMBOL lib/crypto/libblake2s 0x00000000 blake2s_update +EXPORT_SYMBOL lib/crypto/libblake2s-generic 0x00000000 blake2s_compress_generic +EXPORT_SYMBOL lib/crypto/libchacha 0x00000000 chacha_crypt_generic +EXPORT_SYMBOL lib/crypto/libchacha20poly1305 0x00000000 chacha20poly1305_decrypt +EXPORT_SYMBOL lib/crypto/libchacha20poly1305 0x00000000 chacha20poly1305_decrypt_sg_inplace +EXPORT_SYMBOL lib/crypto/libchacha20poly1305 0x00000000 chacha20poly1305_encrypt +EXPORT_SYMBOL lib/crypto/libchacha20poly1305 0x00000000 chacha20poly1305_encrypt_sg_inplace +EXPORT_SYMBOL lib/crypto/libchacha20poly1305 0x00000000 xchacha20poly1305_decrypt +EXPORT_SYMBOL lib/crypto/libchacha20poly1305 0x00000000 xchacha20poly1305_encrypt +EXPORT_SYMBOL lib/crypto/libcurve25519-generic 0x00000000 curve25519_base_point +EXPORT_SYMBOL lib/crypto/libcurve25519-generic 0x00000000 curve25519_generic +EXPORT_SYMBOL lib/crypto/libcurve25519-generic 0x00000000 curve25519_null_point +EXPORT_SYMBOL lib/crypto/libpoly1305 0x00000000 poly1305_core_blocks +EXPORT_SYMBOL lib/crypto/libpoly1305 0x00000000 poly1305_core_emit +EXPORT_SYMBOL lib/crypto/libpoly1305 0x00000000 poly1305_core_setkey +EXPORT_SYMBOL lib/libcrc32c 0x00000000 crc32c +EXPORT_SYMBOL lib/libcrc32c 0x00000000 crc32c_impl +EXPORT_SYMBOL lib/lru_cache 0x00000000 lc_committed +EXPORT_SYMBOL lib/lru_cache 0x00000000 lc_create +EXPORT_SYMBOL lib/lru_cache 0x00000000 lc_del +EXPORT_SYMBOL lib/lru_cache 0x00000000 lc_destroy +EXPORT_SYMBOL lib/lru_cache 0x00000000 lc_element_by_index +EXPORT_SYMBOL lib/lru_cache 0x00000000 lc_find +EXPORT_SYMBOL lib/lru_cache 0x00000000 lc_get +EXPORT_SYMBOL lib/lru_cache 0x00000000 lc_get_cumulative +EXPORT_SYMBOL lib/lru_cache 0x00000000 lc_index_of +EXPORT_SYMBOL lib/lru_cache 0x00000000 lc_is_used +EXPORT_SYMBOL lib/lru_cache 0x00000000 lc_put +EXPORT_SYMBOL lib/lru_cache 0x00000000 lc_reset +EXPORT_SYMBOL lib/lru_cache 0x00000000 lc_seq_dump_details +EXPORT_SYMBOL lib/lru_cache 0x00000000 lc_seq_printf_stats +EXPORT_SYMBOL lib/lru_cache 0x00000000 lc_set +EXPORT_SYMBOL lib/lru_cache 0x00000000 lc_try_get +EXPORT_SYMBOL lib/lru_cache 0x00000000 lc_try_lock +EXPORT_SYMBOL lib/lz4/lz4hc_compress 0x00000000 LZ4_compress_HC +EXPORT_SYMBOL lib/lz4/lz4hc_compress 0x00000000 LZ4_compress_HC_continue +EXPORT_SYMBOL lib/lz4/lz4hc_compress 0x00000000 LZ4_loadDictHC +EXPORT_SYMBOL lib/lz4/lz4hc_compress 0x00000000 LZ4_saveDictHC +EXPORT_SYMBOL lib/math/cordic 0x00000000 cordic_calc_iq +EXPORT_SYMBOL lib/objagg 0x00000000 objagg_create +EXPORT_SYMBOL lib/objagg 0x00000000 objagg_destroy +EXPORT_SYMBOL lib/objagg 0x00000000 objagg_hints_get +EXPORT_SYMBOL lib/objagg 0x00000000 objagg_hints_put +EXPORT_SYMBOL lib/objagg 0x00000000 objagg_hints_stats_get +EXPORT_SYMBOL lib/objagg 0x00000000 objagg_obj_delta_priv +EXPORT_SYMBOL lib/objagg 0x00000000 objagg_obj_get +EXPORT_SYMBOL lib/objagg 0x00000000 objagg_obj_put +EXPORT_SYMBOL lib/objagg 0x00000000 objagg_obj_raw +EXPORT_SYMBOL lib/objagg 0x00000000 objagg_obj_root_priv +EXPORT_SYMBOL lib/objagg 0x00000000 objagg_stats_get +EXPORT_SYMBOL lib/objagg 0x00000000 objagg_stats_put +EXPORT_SYMBOL lib/parman 0x00000000 parman_create +EXPORT_SYMBOL lib/parman 0x00000000 parman_destroy +EXPORT_SYMBOL lib/parman 0x00000000 parman_item_add +EXPORT_SYMBOL lib/parman 0x00000000 parman_item_remove +EXPORT_SYMBOL lib/parman 0x00000000 parman_prio_fini +EXPORT_SYMBOL lib/parman 0x00000000 parman_prio_init +EXPORT_SYMBOL lib/raid6/raid6_pq 0x00000000 raid6_empty_zero_page +EXPORT_SYMBOL lib/raid6/raid6_pq 0x00000000 raid6_gfexi +EXPORT_SYMBOL lib/raid6/raid6_pq 0x00000000 raid6_gfexp +EXPORT_SYMBOL lib/raid6/raid6_pq 0x00000000 raid6_gfinv +EXPORT_SYMBOL lib/raid6/raid6_pq 0x00000000 raid6_gflog +EXPORT_SYMBOL lib/raid6/raid6_pq 0x00000000 raid6_gfmul +EXPORT_SYMBOL lib/raid6/raid6_pq 0x00000000 raid6_vgfmul +EXPORT_SYMBOL lib/zstd/zstd_compress 0x00000000 ZSTD_CCtxWorkspaceBound +EXPORT_SYMBOL lib/zstd/zstd_compress 0x00000000 ZSTD_CDictWorkspaceBound +EXPORT_SYMBOL lib/zstd/zstd_compress 0x00000000 ZSTD_CStreamInSize +EXPORT_SYMBOL lib/zstd/zstd_compress 0x00000000 ZSTD_CStreamOutSize +EXPORT_SYMBOL lib/zstd/zstd_compress 0x00000000 ZSTD_CStreamWorkspaceBound +EXPORT_SYMBOL lib/zstd/zstd_compress 0x00000000 ZSTD_adjustCParams +EXPORT_SYMBOL lib/zstd/zstd_compress 0x00000000 ZSTD_checkCParams +EXPORT_SYMBOL lib/zstd/zstd_compress 0x00000000 ZSTD_compressBegin +EXPORT_SYMBOL lib/zstd/zstd_compress 0x00000000 ZSTD_compressBegin_advanced +EXPORT_SYMBOL lib/zstd/zstd_compress 0x00000000 ZSTD_compressBegin_usingCDict +EXPORT_SYMBOL lib/zstd/zstd_compress 0x00000000 ZSTD_compressBegin_usingDict +EXPORT_SYMBOL lib/zstd/zstd_compress 0x00000000 ZSTD_compressBlock +EXPORT_SYMBOL lib/zstd/zstd_compress 0x00000000 ZSTD_compressBound +EXPORT_SYMBOL lib/zstd/zstd_compress 0x00000000 ZSTD_compressCCtx +EXPORT_SYMBOL lib/zstd/zstd_compress 0x00000000 ZSTD_compressContinue +EXPORT_SYMBOL lib/zstd/zstd_compress 0x00000000 ZSTD_compressEnd +EXPORT_SYMBOL lib/zstd/zstd_compress 0x00000000 ZSTD_compressStream +EXPORT_SYMBOL lib/zstd/zstd_compress 0x00000000 ZSTD_compress_usingCDict +EXPORT_SYMBOL lib/zstd/zstd_compress 0x00000000 ZSTD_compress_usingDict +EXPORT_SYMBOL lib/zstd/zstd_compress 0x00000000 ZSTD_copyCCtx +EXPORT_SYMBOL lib/zstd/zstd_compress 0x00000000 ZSTD_endStream +EXPORT_SYMBOL lib/zstd/zstd_compress 0x00000000 ZSTD_flushStream +EXPORT_SYMBOL lib/zstd/zstd_compress 0x00000000 ZSTD_getBlockSizeMax +EXPORT_SYMBOL lib/zstd/zstd_compress 0x00000000 ZSTD_getCParams +EXPORT_SYMBOL lib/zstd/zstd_compress 0x00000000 ZSTD_getParams +EXPORT_SYMBOL lib/zstd/zstd_compress 0x00000000 ZSTD_initCCtx +EXPORT_SYMBOL lib/zstd/zstd_compress 0x00000000 ZSTD_initCDict +EXPORT_SYMBOL lib/zstd/zstd_compress 0x00000000 ZSTD_initCStream +EXPORT_SYMBOL lib/zstd/zstd_compress 0x00000000 ZSTD_initCStream_usingCDict +EXPORT_SYMBOL lib/zstd/zstd_compress 0x00000000 ZSTD_maxCLevel +EXPORT_SYMBOL lib/zstd/zstd_compress 0x00000000 ZSTD_resetCStream +EXPORT_SYMBOL net/6lowpan/6lowpan 0x00000000 lowpan_nhc_add +EXPORT_SYMBOL net/6lowpan/6lowpan 0x00000000 lowpan_nhc_del +EXPORT_SYMBOL net/6lowpan/6lowpan 0x00000000 lowpan_register_netdev +EXPORT_SYMBOL net/6lowpan/6lowpan 0x00000000 lowpan_register_netdevice +EXPORT_SYMBOL net/6lowpan/6lowpan 0x00000000 lowpan_unregister_netdev +EXPORT_SYMBOL net/6lowpan/6lowpan 0x00000000 lowpan_unregister_netdevice +EXPORT_SYMBOL net/802/p8022 0x00000000 register_8022_client +EXPORT_SYMBOL net/802/p8022 0x00000000 unregister_8022_client +EXPORT_SYMBOL net/802/psnap 0x00000000 register_snap_client +EXPORT_SYMBOL net/802/psnap 0x00000000 unregister_snap_client +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_attach +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_begin_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_cb +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_clunk +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_create +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_create_dotl +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_destroy +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_fcreate +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_fsync +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_getattr_dotl +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_getlock_dotl +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_link +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_lock_dotl +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_mkdir_dotl +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_mknod_dotl +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_open +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_read +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_readdir +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_readlink +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_remove +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_rename +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_renameat +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_setattr +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_stat +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_statfs +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_symlink +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_unlinkat +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_walk +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_write +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_client_wstat +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_error_init +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_errstr2errno +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_fcall_fini +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_is_proto_dotl +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_is_proto_dotu +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_parse_header +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_release_pages +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_req_put +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_show_client_options +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9_tag_lookup +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9dirent_read +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9stat_free +EXPORT_SYMBOL net/9p/9pnet 0x00000000 p9stat_read +EXPORT_SYMBOL net/9p/9pnet 0x00000000 v9fs_get_default_trans +EXPORT_SYMBOL net/9p/9pnet 0x00000000 v9fs_get_trans_by_name +EXPORT_SYMBOL net/9p/9pnet 0x00000000 v9fs_register_trans +EXPORT_SYMBOL net/9p/9pnet 0x00000000 v9fs_unregister_trans +EXPORT_SYMBOL net/appletalk/appletalk 0x00000000 aarp_send_ddp +EXPORT_SYMBOL net/appletalk/appletalk 0x00000000 alloc_ltalkdev +EXPORT_SYMBOL net/appletalk/appletalk 0x00000000 atalk_find_dev_addr +EXPORT_SYMBOL net/appletalk/appletalk 0x00000000 atrtr_get_dev +EXPORT_SYMBOL net/atm/atm 0x00000000 atm_alloc_charge +EXPORT_SYMBOL net/atm/atm 0x00000000 atm_charge +EXPORT_SYMBOL net/atm/atm 0x00000000 atm_dev_deregister +EXPORT_SYMBOL net/atm/atm 0x00000000 atm_dev_lookup +EXPORT_SYMBOL net/atm/atm 0x00000000 atm_dev_register +EXPORT_SYMBOL net/atm/atm 0x00000000 atm_dev_release_vccs +EXPORT_SYMBOL net/atm/atm 0x00000000 atm_dev_signal_change +EXPORT_SYMBOL net/atm/atm 0x00000000 atm_init_aal5 +EXPORT_SYMBOL net/atm/atm 0x00000000 atm_pcr_goal +EXPORT_SYMBOL net/atm/atm 0x00000000 atm_proc_root +EXPORT_SYMBOL net/atm/atm 0x00000000 deregister_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x00000000 register_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x00000000 sonet_copy_stats +EXPORT_SYMBOL net/atm/atm 0x00000000 sonet_subtract_stats +EXPORT_SYMBOL net/atm/atm 0x00000000 vcc_hash +EXPORT_SYMBOL net/atm/atm 0x00000000 vcc_insert_socket +EXPORT_SYMBOL net/atm/atm 0x00000000 vcc_process_recv_queue +EXPORT_SYMBOL net/atm/atm 0x00000000 vcc_release_async +EXPORT_SYMBOL net/atm/atm 0x00000000 vcc_sklist_lock +EXPORT_SYMBOL net/ax25/ax25 0x00000000 asc2ax +EXPORT_SYMBOL net/ax25/ax25 0x00000000 ax25_display_timer +EXPORT_SYMBOL net/ax25/ax25 0x00000000 ax25_find_cb +EXPORT_SYMBOL net/ax25/ax25 0x00000000 ax25_findbyuid +EXPORT_SYMBOL net/ax25/ax25 0x00000000 ax25_header_ops +EXPORT_SYMBOL net/ax25/ax25 0x00000000 ax25_ip_xmit +EXPORT_SYMBOL net/ax25/ax25 0x00000000 ax25_linkfail_register +EXPORT_SYMBOL net/ax25/ax25 0x00000000 ax25_linkfail_release +EXPORT_SYMBOL net/ax25/ax25 0x00000000 ax25_listen_register +EXPORT_SYMBOL net/ax25/ax25 0x00000000 ax25_listen_release +EXPORT_SYMBOL net/ax25/ax25 0x00000000 ax25_protocol_release +EXPORT_SYMBOL net/ax25/ax25 0x00000000 ax25_send_frame +EXPORT_SYMBOL net/ax25/ax25 0x00000000 ax25_uid_policy +EXPORT_SYMBOL net/ax25/ax25 0x00000000 ax25cmp +EXPORT_SYMBOL net/ax25/ax25 0x00000000 ax2asc +EXPORT_SYMBOL net/ax25/ax25 0x00000000 null_ax25_address +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 __hci_cmd_send +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 __hci_cmd_sync +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 __hci_cmd_sync_ev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 baswap +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 bt_accept_dequeue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 bt_accept_enqueue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 bt_accept_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 bt_err +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 bt_err_ratelimited +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 bt_info +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 bt_procfs_cleanup +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 bt_procfs_init +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 bt_sock_ioctl +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 bt_sock_link +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 bt_sock_poll +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 bt_sock_reclassify_lock +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 bt_sock_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 bt_sock_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 bt_sock_stream_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 bt_sock_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 bt_sock_unregister +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 bt_sock_wait_ready +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 bt_sock_wait_state +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 bt_to_errno +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 bt_warn +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 bt_warn_ratelimited +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 hci_alloc_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 hci_cmd_sync +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 hci_conn_check_secure +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 hci_conn_security +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 hci_conn_switch_role +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 hci_free_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 hci_get_route +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 hci_mgmt_chan_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 hci_mgmt_chan_unregister +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 hci_recv_diag +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 hci_recv_frame +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 hci_register_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 hci_register_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 hci_reset_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 hci_resume_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 hci_set_fw_info +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 hci_set_hw_info +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 hci_suspend_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 hci_unregister_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 hci_unregister_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 l2cap_chan_close +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 l2cap_conn_get +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 l2cap_conn_put +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 l2cap_is_socket +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 l2cap_register_user +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00000000 l2cap_unregister_user +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x00000000 ebt_do_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x00000000 ebt_register_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x00000000 ebt_unregister_table +EXPORT_SYMBOL net/caif/caif 0x00000000 caif_client_register_refcnt +EXPORT_SYMBOL net/caif/caif 0x00000000 caif_connect_client +EXPORT_SYMBOL net/caif/caif 0x00000000 caif_disconnect_client +EXPORT_SYMBOL net/caif/caif 0x00000000 caif_enroll_dev +EXPORT_SYMBOL net/caif/caif 0x00000000 caif_free_client +EXPORT_SYMBOL net/caif/caif 0x00000000 cfcnfg_add_phy_layer +EXPORT_SYMBOL net/caif/caif 0x00000000 cfcnfg_del_phy_layer +EXPORT_SYMBOL net/caif/caif 0x00000000 cfcnfg_set_phy_state +EXPORT_SYMBOL net/caif/caif 0x00000000 cfpkt_add_head +EXPORT_SYMBOL net/caif/caif 0x00000000 cfpkt_extr_head +EXPORT_SYMBOL net/caif/caif 0x00000000 cfpkt_fromnative +EXPORT_SYMBOL net/caif/caif 0x00000000 cfpkt_info +EXPORT_SYMBOL net/caif/caif 0x00000000 cfpkt_set_prio +EXPORT_SYMBOL net/caif/caif 0x00000000 cfpkt_tonative +EXPORT_SYMBOL net/caif/caif 0x00000000 get_cfcnfg +EXPORT_SYMBOL net/can/can 0x00000000 can_proto_register +EXPORT_SYMBOL net/can/can 0x00000000 can_proto_unregister +EXPORT_SYMBOL net/can/can 0x00000000 can_rx_register +EXPORT_SYMBOL net/can/can 0x00000000 can_rx_unregister +EXPORT_SYMBOL net/can/can 0x00000000 can_send +EXPORT_SYMBOL net/can/can 0x00000000 can_sock_destruct +EXPORT_SYMBOL net/ceph/libceph 0x00000000 __ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_alloc_options +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_alloc_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_auth_add_authorizer_challenge +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_auth_create_authorizer +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_auth_destroy_authorizer +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_auth_invalidate_authorizer +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_auth_is_authenticated +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_auth_update_authorizer +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_auth_verify_authorizer_reply +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_buffer_new +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_buffer_release +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_calc_file_object_mapping +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_check_fsid +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_client_addr +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_client_gid +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_cls_assert_locked +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_cls_break_lock +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_cls_lock +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_cls_lock_info +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_cls_set_cookie +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_cls_unlock +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_compare_options +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_con_close +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_con_init +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_con_keepalive +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_con_open +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_con_send +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_copy_from_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_copy_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_copy_user_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_create_client +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_create_snap_context +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_decode_entity_addr +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_destroy_client +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_destroy_options +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_entity_type_name +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_extent_to_file +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_file_to_extents +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_find_or_create_string +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_free_lockers +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_get_num_objects +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_get_snap_context +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_iterate_extents +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_messenger_fini +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_messenger_init +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_monc_blacklist_add +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_monc_do_statfs +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_monc_get_version +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_monc_get_version_async +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_monc_got_map +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_monc_init +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_monc_open_session +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_monc_renew_subs +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_monc_stop +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_monc_validate_auth +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_monc_wait_osdmap +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_monc_want_map +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_msg_data_add_bio +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_msg_data_add_bvecs +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_msg_data_add_pagelist +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_msg_data_add_pages +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_msg_dump +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_msg_get +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_msg_new +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_msg_new2 +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_msg_put +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_msg_type_name +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_msgr_flush +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_object_locator_to_pg +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_oid_aprintf +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_oid_copy +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_oid_destroy +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_oid_printf +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_oloc_copy +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_oloc_destroy +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_osdc_abort_requests +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_osdc_alloc_messages +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_osdc_alloc_request +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_osdc_call +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_osdc_cancel_request +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_osdc_clear_abort_err +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_osdc_copy_from +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_osdc_flush_notifies +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_osdc_get_request +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_osdc_list_watchers +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_osdc_maybe_request_map +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_osdc_new_request +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_osdc_notify +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_osdc_notify_ack +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_osdc_put_request +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_osdc_readpages +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_osdc_start_request +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_osdc_sync +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_osdc_unwatch +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_osdc_update_epoch_barrier +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_osdc_wait_request +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_osdc_watch +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_osdc_writepages +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_pagelist_alloc +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_pagelist_append +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_pagelist_free_reserve +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_pagelist_release +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_pagelist_reserve +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_pagelist_set_cursor +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_pagelist_truncate +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_parse_mon_ips +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_parse_param +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_pg_pool_flags +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_pg_pool_name_by_id +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_pg_poolid_by_name +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_pg_to_acting_primary +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_pr_addr +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_print_client_options +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_put_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_put_snap_context +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_release_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_release_string +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_reset_client_addr +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_str_hash +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_str_hash_name +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_wait_for_latest_osdmap +EXPORT_SYMBOL net/ceph/libceph 0x00000000 ceph_zero_page_vector_range +EXPORT_SYMBOL net/ceph/libceph 0x00000000 libceph_compatible +EXPORT_SYMBOL net/ceph/libceph 0x00000000 osd_req_op_alloc_hint_init +EXPORT_SYMBOL net/ceph/libceph 0x00000000 osd_req_op_cls_init +EXPORT_SYMBOL net/ceph/libceph 0x00000000 osd_req_op_cls_request_data_bvecs +EXPORT_SYMBOL net/ceph/libceph 0x00000000 osd_req_op_cls_request_data_pagelist +EXPORT_SYMBOL net/ceph/libceph 0x00000000 osd_req_op_cls_request_data_pages +EXPORT_SYMBOL net/ceph/libceph 0x00000000 osd_req_op_cls_response_data_pages +EXPORT_SYMBOL net/ceph/libceph 0x00000000 osd_req_op_extent_dup_last +EXPORT_SYMBOL net/ceph/libceph 0x00000000 osd_req_op_extent_init +EXPORT_SYMBOL net/ceph/libceph 0x00000000 osd_req_op_extent_osd_data +EXPORT_SYMBOL net/ceph/libceph 0x00000000 osd_req_op_extent_osd_data_bio +EXPORT_SYMBOL net/ceph/libceph 0x00000000 osd_req_op_extent_osd_data_bvec_pos +EXPORT_SYMBOL net/ceph/libceph 0x00000000 osd_req_op_extent_osd_data_bvecs +EXPORT_SYMBOL net/ceph/libceph 0x00000000 osd_req_op_extent_osd_data_pagelist +EXPORT_SYMBOL net/ceph/libceph 0x00000000 osd_req_op_extent_osd_data_pages +EXPORT_SYMBOL net/ceph/libceph 0x00000000 osd_req_op_extent_update +EXPORT_SYMBOL net/ceph/libceph 0x00000000 osd_req_op_init +EXPORT_SYMBOL net/ceph/libceph 0x00000000 osd_req_op_raw_data_in_pages +EXPORT_SYMBOL net/ceph/libceph 0x00000000 osd_req_op_xattr_init +EXPORT_SYMBOL net/dccp/dccp_ipv4 0x00000000 dccp_req_err +EXPORT_SYMBOL net/dccp/dccp_ipv4 0x00000000 dccp_syn_ack_timeout +EXPORT_SYMBOL net/dsa/dsa_core 0x00000000 dsa_port_vid_add +EXPORT_SYMBOL net/dsa/dsa_core 0x00000000 dsa_port_vid_del +EXPORT_SYMBOL net/ieee802154/ieee802154 0x00000000 wpan_phy_find +EXPORT_SYMBOL net/ieee802154/ieee802154 0x00000000 wpan_phy_for_each +EXPORT_SYMBOL net/ieee802154/ieee802154 0x00000000 wpan_phy_free +EXPORT_SYMBOL net/ieee802154/ieee802154 0x00000000 wpan_phy_new +EXPORT_SYMBOL net/ieee802154/ieee802154 0x00000000 wpan_phy_register +EXPORT_SYMBOL net/ieee802154/ieee802154 0x00000000 wpan_phy_unregister +EXPORT_SYMBOL net/ipv4/fou 0x00000000 __fou_build_header +EXPORT_SYMBOL net/ipv4/fou 0x00000000 __gue_build_header +EXPORT_SYMBOL net/ipv4/fou 0x00000000 fou_encap_hlen +EXPORT_SYMBOL net/ipv4/fou 0x00000000 gue_encap_hlen +EXPORT_SYMBOL net/ipv4/gre 0x00000000 gre_parse_header +EXPORT_SYMBOL net/ipv4/ip_tunnel 0x00000000 ip_tunnel_encap_add_ops +EXPORT_SYMBOL net/ipv4/ip_tunnel 0x00000000 ip_tunnel_encap_del_ops +EXPORT_SYMBOL net/ipv4/ip_tunnel 0x00000000 ip_tunnel_get_iflink +EXPORT_SYMBOL net/ipv4/ip_tunnel 0x00000000 ip_tunnel_get_link_net +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x00000000 arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x00000000 arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x00000000 arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x00000000 ipt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x00000000 ipt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x00000000 ipt_unregister_table +EXPORT_SYMBOL net/ipv4/tunnel4 0x00000000 xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv4/tunnel4 0x00000000 xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv4/udp_tunnel 0x00000000 udp_sock_create4 +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x00000000 ip6_tnl_change_mtu +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x00000000 ip6_tnl_encap_add_ops +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x00000000 ip6_tnl_encap_del_ops +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x00000000 ip6_tnl_get_cap +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x00000000 ip6_tnl_get_iflink +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x00000000 ip6_tnl_get_link_net +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x00000000 ip6_tnl_parse_tlv_enc_lim +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x00000000 ip6_tnl_rcv +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x00000000 ip6_tnl_xmit +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x00000000 ip6t_do_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x00000000 ip6t_register_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x00000000 ip6t_unregister_table +EXPORT_SYMBOL net/ipv6/tunnel6 0x00000000 xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/tunnel6 0x00000000 xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x00000000 xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x00000000 xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/l2tp/l2tp_core 0x00000000 l2tp_recv_common +EXPORT_SYMBOL net/l2tp/l2tp_core 0x00000000 l2tp_tunnel_free +EXPORT_SYMBOL net/l2tp/l2tp_ip 0x00000000 l2tp_ioctl +EXPORT_SYMBOL net/lapb/lapb 0x00000000 lapb_connect_request +EXPORT_SYMBOL net/lapb/lapb 0x00000000 lapb_data_received +EXPORT_SYMBOL net/lapb/lapb 0x00000000 lapb_data_request +EXPORT_SYMBOL net/lapb/lapb 0x00000000 lapb_disconnect_request +EXPORT_SYMBOL net/lapb/lapb 0x00000000 lapb_getparms +EXPORT_SYMBOL net/lapb/lapb 0x00000000 lapb_register +EXPORT_SYMBOL net/lapb/lapb 0x00000000 lapb_setparms +EXPORT_SYMBOL net/lapb/lapb 0x00000000 lapb_unregister +EXPORT_SYMBOL net/llc/llc 0x00000000 llc_add_pack +EXPORT_SYMBOL net/llc/llc 0x00000000 llc_build_and_send_ui_pkt +EXPORT_SYMBOL net/llc/llc 0x00000000 llc_mac_hdr_init +EXPORT_SYMBOL net/llc/llc 0x00000000 llc_remove_pack +EXPORT_SYMBOL net/llc/llc 0x00000000 llc_sap_close +EXPORT_SYMBOL net/llc/llc 0x00000000 llc_sap_find +EXPORT_SYMBOL net/llc/llc 0x00000000 llc_sap_list +EXPORT_SYMBOL net/llc/llc 0x00000000 llc_sap_open +EXPORT_SYMBOL net/llc/llc 0x00000000 llc_set_station_handler +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 __ieee80211_create_tpt_led_trigger +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 __ieee80211_get_assoc_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 __ieee80211_get_radio_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 __ieee80211_get_rx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 __ieee80211_get_tx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 __ieee80211_schedule_txq +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_alloc_hw_nm +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_ap_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_beacon_get_template +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_beacon_get_tim +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_beacon_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_chswitch_done +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_connection_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_cqm_beacon_loss_notify +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_cqm_rssi_notify +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_csa_finish +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_csa_is_complete +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_csa_set_counter +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_csa_update_counter +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_ctstoself_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_ctstoself_get +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_disable_rssi_reports +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_enable_rssi_reports +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_find_sta +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_free_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_free_txskb +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_generic_frame_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_get_buffered_bc +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_get_key_rx_seq +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_get_tkip_p1k_iv +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_get_tkip_p2k +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_get_tkip_rx_p1k +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_get_tx_rates +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_iter_keys +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_iter_keys_rcu +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_manage_rx_ba_offl +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_mark_rx_ba_filtered_frames +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_nan_func_match +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_nan_func_terminated +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_next_txq +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_nullfunc_get +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_parse_p2p_noa +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_proberesp_get +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_pspoll_get +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_queue_delayed_work +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_queue_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_queue_work +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_radar_detected +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_rate_control_register +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_rate_control_unregister +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_register_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_report_low_ack +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_report_wowlan_wakeup +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_reserve_tid +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_restart_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_rts_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_rts_get +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_rx_ba_timer_expired +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_rx_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_rx_napi +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_scan_completed +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_sched_scan_results +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_sched_scan_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_send_bar +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_send_eosp_nullfunc +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_sta_block_awake +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_sta_eosp +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_sta_ps_transition +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_sta_pspoll +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_sta_register_airtime +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_sta_set_buffered +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_sta_uapsd_trigger +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_start_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_start_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_stop_queue +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_stop_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_stop_rx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_stop_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_stop_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_tdls_oper_request +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_tx_dequeue +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_tx_prepare_skb +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_tx_rate_update +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_tx_status +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_tx_status_ext +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_tx_status_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_txq_airtime_check +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_txq_get_depth +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_txq_may_transmit +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_txq_schedule_start +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_unregister_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_unreserve_tid +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_update_p2p_noa +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_wake_queue +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 ieee80211_wake_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 rate_control_set_rates +EXPORT_SYMBOL net/mac80211/mac80211 0x00000000 wiphy_to_ieee80211_hw +EXPORT_SYMBOL net/mac802154/mac802154 0x00000000 ieee802154_alloc_hw +EXPORT_SYMBOL net/mac802154/mac802154 0x00000000 ieee802154_free_hw +EXPORT_SYMBOL net/mac802154/mac802154 0x00000000 ieee802154_register_hw +EXPORT_SYMBOL net/mac802154/mac802154 0x00000000 ieee802154_rx_irqsafe +EXPORT_SYMBOL net/mac802154/mac802154 0x00000000 ieee802154_stop_queue +EXPORT_SYMBOL net/mac802154/mac802154 0x00000000 ieee802154_unregister_hw +EXPORT_SYMBOL net/mac802154/mac802154 0x00000000 ieee802154_wake_queue +EXPORT_SYMBOL net/mac802154/mac802154 0x00000000 ieee802154_xmit_complete +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x00000000 ip_vs_conn_in_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x00000000 ip_vs_conn_new +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x00000000 ip_vs_conn_out_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x00000000 ip_vs_conn_put +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x00000000 ip_vs_new_conn_out +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x00000000 ip_vs_nfct_expect_related +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x00000000 ip_vs_proto_data_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x00000000 ip_vs_proto_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x00000000 ip_vs_proto_name +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x00000000 ip_vs_scheduler_err +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x00000000 ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x00000000 register_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x00000000 register_ip_vs_app_inc +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x00000000 register_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x00000000 unregister_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x00000000 unregister_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x00000000 nf_ct_ext_add +EXPORT_SYMBOL net/netfilter/nf_conntrack_pptp 0x00000000 pptp_msg_name +EXPORT_SYMBOL net/netfilter/nf_nat 0x00000000 __nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/netfilter/nf_nat 0x00000000 nf_nat_follow_master +EXPORT_SYMBOL net/netfilter/nf_nat 0x00000000 nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/netfilter/nf_nat 0x00000000 nf_nat_setup_info +EXPORT_SYMBOL net/netfilter/nf_nat 0x00000000 nf_xfrm_me_harder +EXPORT_SYMBOL net/netfilter/nft_fib 0x00000000 nft_fib_policy +EXPORT_SYMBOL net/netfilter/x_tables 0x00000000 xt_alloc_entry_offsets +EXPORT_SYMBOL net/netfilter/x_tables 0x00000000 xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x00000000 xt_check_entry_offsets +EXPORT_SYMBOL net/netfilter/x_tables 0x00000000 xt_check_proc_name +EXPORT_SYMBOL net/netfilter/x_tables 0x00000000 xt_check_table_hooks +EXPORT_SYMBOL net/netfilter/x_tables 0x00000000 xt_compat_check_entry_offsets +EXPORT_SYMBOL net/netfilter/x_tables 0x00000000 xt_compat_init_offsets +EXPORT_SYMBOL net/netfilter/x_tables 0x00000000 xt_counters_alloc +EXPORT_SYMBOL net/netfilter/x_tables 0x00000000 xt_find_jump_offset +EXPORT_SYMBOL net/netfilter/x_tables 0x00000000 xt_find_match +EXPORT_SYMBOL net/netfilter/x_tables 0x00000000 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x00000000 xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0x00000000 xt_register_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x00000000 xt_register_target +EXPORT_SYMBOL net/netfilter/x_tables 0x00000000 xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x00000000 xt_unregister_match +EXPORT_SYMBOL net/netfilter/x_tables 0x00000000 xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x00000000 xt_unregister_target +EXPORT_SYMBOL net/netfilter/x_tables 0x00000000 xt_unregister_targets +EXPORT_SYMBOL net/nfc/hci/hci 0x00000000 nfc_hci_allocate_device +EXPORT_SYMBOL net/nfc/hci/hci 0x00000000 nfc_hci_connect_gate +EXPORT_SYMBOL net/nfc/hci/hci 0x00000000 nfc_hci_disconnect_all_gates +EXPORT_SYMBOL net/nfc/hci/hci 0x00000000 nfc_hci_disconnect_gate +EXPORT_SYMBOL net/nfc/hci/hci 0x00000000 nfc_hci_driver_failure +EXPORT_SYMBOL net/nfc/hci/hci 0x00000000 nfc_hci_free_device +EXPORT_SYMBOL net/nfc/hci/hci 0x00000000 nfc_hci_get_clientdata +EXPORT_SYMBOL net/nfc/hci/hci 0x00000000 nfc_hci_get_param +EXPORT_SYMBOL net/nfc/hci/hci 0x00000000 nfc_hci_recv_frame +EXPORT_SYMBOL net/nfc/hci/hci 0x00000000 nfc_hci_register_device +EXPORT_SYMBOL net/nfc/hci/hci 0x00000000 nfc_hci_reset_pipes +EXPORT_SYMBOL net/nfc/hci/hci 0x00000000 nfc_hci_reset_pipes_per_host +EXPORT_SYMBOL net/nfc/hci/hci 0x00000000 nfc_hci_result_to_errno +EXPORT_SYMBOL net/nfc/hci/hci 0x00000000 nfc_hci_sak_to_protocol +EXPORT_SYMBOL net/nfc/hci/hci 0x00000000 nfc_hci_send_cmd +EXPORT_SYMBOL net/nfc/hci/hci 0x00000000 nfc_hci_send_cmd_async +EXPORT_SYMBOL net/nfc/hci/hci 0x00000000 nfc_hci_send_event +EXPORT_SYMBOL net/nfc/hci/hci 0x00000000 nfc_hci_set_clientdata +EXPORT_SYMBOL net/nfc/hci/hci 0x00000000 nfc_hci_set_param +EXPORT_SYMBOL net/nfc/hci/hci 0x00000000 nfc_hci_target_discovered +EXPORT_SYMBOL net/nfc/hci/hci 0x00000000 nfc_hci_unregister_device +EXPORT_SYMBOL net/nfc/hci/hci 0x00000000 nfc_llc_start +EXPORT_SYMBOL net/nfc/hci/hci 0x00000000 nfc_llc_stop +EXPORT_SYMBOL net/nfc/nci/nci 0x00000000 nci_allocate_device +EXPORT_SYMBOL net/nfc/nci/nci 0x00000000 nci_conn_max_data_pkt_payload_size +EXPORT_SYMBOL net/nfc/nci/nci 0x00000000 nci_core_cmd +EXPORT_SYMBOL net/nfc/nci/nci 0x00000000 nci_core_conn_close +EXPORT_SYMBOL net/nfc/nci/nci 0x00000000 nci_core_conn_create +EXPORT_SYMBOL net/nfc/nci/nci 0x00000000 nci_core_init +EXPORT_SYMBOL net/nfc/nci/nci 0x00000000 nci_core_reset +EXPORT_SYMBOL net/nfc/nci/nci 0x00000000 nci_free_device +EXPORT_SYMBOL net/nfc/nci/nci 0x00000000 nci_get_conn_info_by_dest_type_params +EXPORT_SYMBOL net/nfc/nci/nci 0x00000000 nci_hci_clear_all_pipes +EXPORT_SYMBOL net/nfc/nci/nci 0x00000000 nci_hci_connect_gate +EXPORT_SYMBOL net/nfc/nci/nci 0x00000000 nci_hci_dev_session_init +EXPORT_SYMBOL net/nfc/nci/nci 0x00000000 nci_hci_get_param +EXPORT_SYMBOL net/nfc/nci/nci 0x00000000 nci_hci_open_pipe +EXPORT_SYMBOL net/nfc/nci/nci 0x00000000 nci_hci_send_cmd +EXPORT_SYMBOL net/nfc/nci/nci 0x00000000 nci_hci_send_event +EXPORT_SYMBOL net/nfc/nci/nci 0x00000000 nci_hci_set_param +EXPORT_SYMBOL net/nfc/nci/nci 0x00000000 nci_nfcc_loopback +EXPORT_SYMBOL net/nfc/nci/nci 0x00000000 nci_nfcee_discover +EXPORT_SYMBOL net/nfc/nci/nci 0x00000000 nci_nfcee_mode_set +EXPORT_SYMBOL net/nfc/nci/nci 0x00000000 nci_prop_cmd +EXPORT_SYMBOL net/nfc/nci/nci 0x00000000 nci_recv_frame +EXPORT_SYMBOL net/nfc/nci/nci 0x00000000 nci_register_device +EXPORT_SYMBOL net/nfc/nci/nci 0x00000000 nci_req_complete +EXPORT_SYMBOL net/nfc/nci/nci 0x00000000 nci_send_cmd +EXPORT_SYMBOL net/nfc/nci/nci 0x00000000 nci_send_data +EXPORT_SYMBOL net/nfc/nci/nci 0x00000000 nci_send_frame +EXPORT_SYMBOL net/nfc/nci/nci 0x00000000 nci_set_config +EXPORT_SYMBOL net/nfc/nci/nci 0x00000000 nci_to_errno +EXPORT_SYMBOL net/nfc/nci/nci 0x00000000 nci_unregister_device +EXPORT_SYMBOL net/nfc/nfc 0x00000000 __nfc_alloc_vendor_cmd_reply_skb +EXPORT_SYMBOL net/nfc/nfc 0x00000000 nfc_add_se +EXPORT_SYMBOL net/nfc/nfc 0x00000000 nfc_alloc_recv_skb +EXPORT_SYMBOL net/nfc/nfc 0x00000000 nfc_allocate_device +EXPORT_SYMBOL net/nfc/nfc 0x00000000 nfc_class +EXPORT_SYMBOL net/nfc/nfc 0x00000000 nfc_dep_link_is_up +EXPORT_SYMBOL net/nfc/nfc 0x00000000 nfc_driver_failure +EXPORT_SYMBOL net/nfc/nfc 0x00000000 nfc_find_se +EXPORT_SYMBOL net/nfc/nfc 0x00000000 nfc_fw_download_done +EXPORT_SYMBOL net/nfc/nfc 0x00000000 nfc_get_local_general_bytes +EXPORT_SYMBOL net/nfc/nfc 0x00000000 nfc_proto_register +EXPORT_SYMBOL net/nfc/nfc 0x00000000 nfc_proto_unregister +EXPORT_SYMBOL net/nfc/nfc 0x00000000 nfc_register_device +EXPORT_SYMBOL net/nfc/nfc 0x00000000 nfc_remove_se +EXPORT_SYMBOL net/nfc/nfc 0x00000000 nfc_se_connectivity +EXPORT_SYMBOL net/nfc/nfc 0x00000000 nfc_se_transaction +EXPORT_SYMBOL net/nfc/nfc 0x00000000 nfc_send_to_raw_sock +EXPORT_SYMBOL net/nfc/nfc 0x00000000 nfc_set_remote_general_bytes +EXPORT_SYMBOL net/nfc/nfc 0x00000000 nfc_target_lost +EXPORT_SYMBOL net/nfc/nfc 0x00000000 nfc_targets_found +EXPORT_SYMBOL net/nfc/nfc 0x00000000 nfc_tm_activated +EXPORT_SYMBOL net/nfc/nfc 0x00000000 nfc_tm_data_received +EXPORT_SYMBOL net/nfc/nfc 0x00000000 nfc_tm_deactivated +EXPORT_SYMBOL net/nfc/nfc 0x00000000 nfc_unregister_device +EXPORT_SYMBOL net/nfc/nfc 0x00000000 nfc_vendor_cmd_reply +EXPORT_SYMBOL net/nfc/nfc_digital 0x00000000 nfc_digital_allocate_device +EXPORT_SYMBOL net/nfc/nfc_digital 0x00000000 nfc_digital_free_device +EXPORT_SYMBOL net/nfc/nfc_digital 0x00000000 nfc_digital_register_device +EXPORT_SYMBOL net/nfc/nfc_digital 0x00000000 nfc_digital_unregister_device +EXPORT_SYMBOL net/phonet/phonet 0x00000000 phonet_header_ops +EXPORT_SYMBOL net/phonet/phonet 0x00000000 phonet_proto_register +EXPORT_SYMBOL net/phonet/phonet 0x00000000 phonet_proto_unregister +EXPORT_SYMBOL net/phonet/phonet 0x00000000 phonet_stream_ops +EXPORT_SYMBOL net/phonet/phonet 0x00000000 pn_skb_send +EXPORT_SYMBOL net/phonet/phonet 0x00000000 pn_sock_get_port +EXPORT_SYMBOL net/phonet/phonet 0x00000000 pn_sock_hash +EXPORT_SYMBOL net/phonet/phonet 0x00000000 pn_sock_unhash +EXPORT_SYMBOL net/rxrpc/rxrpc 0x00000000 key_type_rxrpc +EXPORT_SYMBOL net/rxrpc/rxrpc 0x00000000 rxrpc_debug_id +EXPORT_SYMBOL net/rxrpc/rxrpc 0x00000000 rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/rxrpc 0x00000000 rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/rxrpc 0x00000000 rxrpc_kernel_abort_call +EXPORT_SYMBOL net/rxrpc/rxrpc 0x00000000 rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/rxrpc 0x00000000 rxrpc_kernel_charge_accept +EXPORT_SYMBOL net/rxrpc/rxrpc 0x00000000 rxrpc_kernel_check_life +EXPORT_SYMBOL net/rxrpc/rxrpc 0x00000000 rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/rxrpc 0x00000000 rxrpc_kernel_get_epoch +EXPORT_SYMBOL net/rxrpc/rxrpc 0x00000000 rxrpc_kernel_get_peer +EXPORT_SYMBOL net/rxrpc/rxrpc 0x00000000 rxrpc_kernel_get_reply_time +EXPORT_SYMBOL net/rxrpc/rxrpc 0x00000000 rxrpc_kernel_get_srtt +EXPORT_SYMBOL net/rxrpc/rxrpc 0x00000000 rxrpc_kernel_new_call_notification +EXPORT_SYMBOL net/rxrpc/rxrpc 0x00000000 rxrpc_kernel_recv_data +EXPORT_SYMBOL net/rxrpc/rxrpc 0x00000000 rxrpc_kernel_send_data +EXPORT_SYMBOL net/rxrpc/rxrpc 0x00000000 rxrpc_kernel_set_max_life +EXPORT_SYMBOL net/rxrpc/rxrpc 0x00000000 rxrpc_kernel_set_tx_length +EXPORT_SYMBOL net/sctp/sctp 0x00000000 sctp_do_peeloff +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x00000000 gss_mech_get +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x00000000 gss_mech_put +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x00000000 gss_pseudoflavor_to_service +EXPORT_SYMBOL net/sunrpc/sunrpc 0x00000000 svc_pool_stats_open +EXPORT_SYMBOL net/sunrpc/sunrpc 0x00000000 xdr_restrict_buflen +EXPORT_SYMBOL net/sunrpc/sunrpc 0x00000000 xdr_truncate_encode +EXPORT_SYMBOL net/tipc/tipc 0x00000000 tipc_dump_done +EXPORT_SYMBOL net/tipc/tipc 0x00000000 tipc_dump_start +EXPORT_SYMBOL net/tipc/tipc 0x00000000 tipc_nl_sk_walk +EXPORT_SYMBOL net/tipc/tipc 0x00000000 tipc_sk_fill_sock_diag +EXPORT_SYMBOL net/tls/tls 0x00000000 tls_get_record +EXPORT_SYMBOL net/wimax/wimax 0x00000000 wimax_reset +EXPORT_SYMBOL net/wimax/wimax 0x00000000 wimax_rfkill +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 __cfg80211_alloc_event_skb +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 __cfg80211_alloc_reply_skb +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 __cfg80211_send_event_skb +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 bridge_tunnel_header +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_abandon_assoc +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_assoc_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_auth_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_bss_iter +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_cac_event +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_calculate_bitrate +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_ch_switch_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_ch_switch_started_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_chandef_compatible +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_chandef_create +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_chandef_dfs_required +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_chandef_usable +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_chandef_valid +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_check_combinations +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_check_station_change +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_classify8021d +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_conn_failed +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_connect_done +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_cqm_beacon_loss_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_cqm_pktloss_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_cqm_rssi_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_cqm_txe_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_crit_proto_stopped +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_del_sta_sinfo +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_disconnected +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_external_auth_request +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_find_elem_match +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_find_vendor_elem +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_free_nan_func +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_ft_event +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_get_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_get_drvinfo +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_get_p2p_attr +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_get_station +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_gtk_rekey_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_ibss_joined +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_iftype_allowed +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_inform_bss_data +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_inform_bss_frame_data +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_is_element_inherited +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_iter_combinations +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_merge_profile +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_mgmt_tx_status +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_michael_mic_failure +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_nan_func_terminated +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_nan_match +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_new_sta +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_notify_new_peer_candidate +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_pmksa_candidate_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_port_authorized +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_probe_status +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_put_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_radar_event +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_ready_on_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_ref_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_reg_can_beacon +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_reg_can_beacon_relax +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_remain_on_channel_expired +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_report_obss_beacon +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_report_wowlan_wakeup +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_roamed +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_rx_assoc_resp +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_rx_control_port +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_rx_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_rx_mlme_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_rx_spurious_frame +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_rx_unexpected_4addr_frame +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_rx_unprot_mlme_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_scan_done +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_sched_scan_results +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_sched_scan_stopped +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_sched_scan_stopped_rtnl +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_send_layer2_update +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_sinfo_alloc_tid_stats +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_sta_opmode_change_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_stop_iface +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_tdls_oper_request +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_tx_mgmt_expired +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_tx_mlme_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_unlink_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_unregister_wdev +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 cfg80211_update_owe_info_event +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 freq_reg_info +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 ieee80211_amsdu_to_8023s +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 ieee80211_bss_get_elem +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 ieee80211_chandef_to_operating_class +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 ieee80211_channel_to_frequency +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 ieee80211_data_to_8023_exthdr +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 ieee80211_frequency_to_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 ieee80211_get_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 ieee80211_get_mesh_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 ieee80211_get_num_supported_channels +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 ieee80211_get_response_rate +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 ieee80211_get_vht_max_nss +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 ieee80211_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 ieee80211_ie_split_ric +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 ieee80211_mandatory_rates +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 ieee80211_operating_class_to_band +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 ieee80211_radiotap_iterator_init +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 ieee80211_radiotap_iterator_next +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 reg_initiator_name +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 reg_query_regdb_wmm +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 regulatory_hint +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 regulatory_pre_cac_allowed +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 regulatory_set_wiphy_regd +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 regulatory_set_wiphy_regd_sync_rtnl +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 rfc1042_header +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 wiphy_apply_custom_regulatory +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 wiphy_free +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 wiphy_new_nm +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 wiphy_register +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 wiphy_rfkill_set_hw_state +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 wiphy_rfkill_start_polling +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 wiphy_rfkill_stop_polling +EXPORT_SYMBOL net/wireless/cfg80211 0x00000000 wiphy_unregister +EXPORT_SYMBOL net/wireless/lib80211 0x00000000 lib80211_crypt_delayed_deinit +EXPORT_SYMBOL net/wireless/lib80211 0x00000000 lib80211_crypt_info_free +EXPORT_SYMBOL net/wireless/lib80211 0x00000000 lib80211_crypt_info_init +EXPORT_SYMBOL net/wireless/lib80211 0x00000000 lib80211_get_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0x00000000 lib80211_register_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0x00000000 lib80211_unregister_crypto_ops +EXPORT_SYMBOL sound/ac97_bus 0x00000000 ac97_bus_type +EXPORT_SYMBOL sound/core/oss/snd-mixer-oss 0x00000000 snd_mixer_oss_ioctl_card +EXPORT_SYMBOL sound/core/seq/snd-seq 0x00000000 snd_seq_create_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 0x00000000 snd_seq_delete_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 0x00000000 snd_seq_dump_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq 0x00000000 snd_seq_event_port_attach +EXPORT_SYMBOL sound/core/seq/snd-seq 0x00000000 snd_seq_event_port_detach +EXPORT_SYMBOL sound/core/seq/snd-seq 0x00000000 snd_seq_expand_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq 0x00000000 snd_seq_kernel_client_ctl +EXPORT_SYMBOL sound/core/seq/snd-seq 0x00000000 snd_seq_kernel_client_dispatch +EXPORT_SYMBOL sound/core/seq/snd-seq 0x00000000 snd_seq_kernel_client_enqueue +EXPORT_SYMBOL sound/core/seq/snd-seq 0x00000000 snd_seq_kernel_client_write_poll +EXPORT_SYMBOL sound/core/seq/snd-seq 0x00000000 snd_seq_set_queue_tempo +EXPORT_SYMBOL sound/core/seq/snd-seq 0x00000000 snd_use_lock_sync_helper +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x00000000 snd_midi_channel_alloc_set +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x00000000 snd_midi_channel_free_set +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x00000000 snd_midi_channel_set_clear +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x00000000 snd_midi_process_event +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x00000000 snd_midi_event_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x00000000 snd_midi_event_encode_byte +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x00000000 snd_midi_event_free +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x00000000 snd_midi_event_new +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x00000000 snd_midi_event_no_status +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x00000000 snd_midi_event_reset_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x00000000 snd_midi_event_reset_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-virmidi 0x00000000 snd_virmidi_new +EXPORT_SYMBOL sound/core/snd 0x00000000 _snd_ctl_add_slave +EXPORT_SYMBOL sound/core/snd 0x00000000 copy_from_user_toio +EXPORT_SYMBOL sound/core/snd 0x00000000 copy_to_user_fromio +EXPORT_SYMBOL sound/core/snd 0x00000000 release_and_free_resource +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_card_disconnect +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_card_file_add +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_card_file_remove +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_card_free +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_card_free_when_closed +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_card_new +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_card_register +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_card_set_id +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_component_add +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_ctl_add +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_ctl_boolean_mono_info +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_ctl_boolean_stereo_info +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_ctl_enum_info +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_ctl_find_id +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_ctl_find_numid +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_ctl_free_one +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_ctl_make_virtual_master +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_ctl_new1 +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_ctl_notify +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_ctl_register_ioctl +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_ctl_register_ioctl_compat +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_ctl_remove +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_ctl_remove_id +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_ctl_rename_id +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_ctl_replace +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_ctl_unregister_ioctl +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_ctl_unregister_ioctl_compat +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_device_free +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_device_new +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_device_register +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_dma_disable +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_dma_pointer +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_dma_program +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_ecards_limit +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_info_create_card_entry +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_info_create_module_entry +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_info_free_entry +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_info_get_line +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_info_get_str +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_info_register +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_jack_add_new_kctl +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_jack_new +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_jack_report +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_jack_set_key +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_jack_set_parent +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_lookup_minor_data +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_lookup_oss_minor_data +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_major +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_mixer_oss_notify_callback +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_oss_info_register +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_pci_quirk_lookup +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_pci_quirk_lookup_id +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_power_wait +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_register_device +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_register_oss_device +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_request_card +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_seq_root +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_unregister_device +EXPORT_SYMBOL sound/core/snd 0x00000000 snd_unregister_oss_device +EXPORT_SYMBOL sound/core/snd-compress 0x00000000 snd_compr_free_pages +EXPORT_SYMBOL sound/core/snd-compress 0x00000000 snd_compr_malloc_pages +EXPORT_SYMBOL sound/core/snd-hwdep 0x00000000 snd_hwdep_new +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 __snd_pcm_lib_xfer +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 _snd_pcm_hw_param_setempty +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 _snd_pcm_hw_params_any +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 _snd_pcm_lib_alloc_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_dma_alloc_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_dma_alloc_pages_fallback +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_dma_free_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_interval_list +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_interval_ranges +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_interval_ratnum +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_interval_refine +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_create_iec958_consumer +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_create_iec958_consumer_hw_params +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_format_big_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_format_linear +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_format_little_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_format_physical_width +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_format_set_silence +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_format_signed +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_format_silence_64 +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_format_size +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_format_unsigned +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_format_width +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_hw_constraint_integer +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_hw_constraint_list +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_hw_constraint_mask64 +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_hw_constraint_minmax +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_hw_constraint_msbits +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_hw_constraint_pow2 +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_hw_constraint_ranges +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_hw_constraint_ratdens +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_hw_constraint_ratnums +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_hw_constraint_step +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_hw_limit_rates +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_hw_param_first +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_hw_param_last +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_hw_param_value +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_hw_refine +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_hw_rule_add +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_hw_rule_noresample +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_kernel_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_lib_free_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_lib_free_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_lib_get_vmalloc_page +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_lib_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_lib_malloc_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_lib_mmap_iomem +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_lib_preallocate_free_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_lib_preallocate_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_lib_preallocate_pages_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_mmap_data +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_new +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_new_internal +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_new_stream +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_open_substream +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_period_elapsed +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_rate_bit_to_rate +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_rate_to_rate_bit +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_release_substream +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_set_managed_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_set_managed_buffer_all +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_set_ops +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_set_sync +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_stop +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_pcm_suspend_all +EXPORT_SYMBOL sound/core/snd-pcm 0x00000000 snd_sgbuf_get_chunk_size +EXPORT_SYMBOL sound/core/snd-rawmidi 0x00000000 __snd_rawmidi_transmit_ack +EXPORT_SYMBOL sound/core/snd-rawmidi 0x00000000 __snd_rawmidi_transmit_peek +EXPORT_SYMBOL sound/core/snd-rawmidi 0x00000000 snd_rawmidi_drain_input +EXPORT_SYMBOL sound/core/snd-rawmidi 0x00000000 snd_rawmidi_drain_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x00000000 snd_rawmidi_drop_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x00000000 snd_rawmidi_info_select +EXPORT_SYMBOL sound/core/snd-rawmidi 0x00000000 snd_rawmidi_input_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0x00000000 snd_rawmidi_kernel_open +EXPORT_SYMBOL sound/core/snd-rawmidi 0x00000000 snd_rawmidi_kernel_read +EXPORT_SYMBOL sound/core/snd-rawmidi 0x00000000 snd_rawmidi_kernel_release +EXPORT_SYMBOL sound/core/snd-rawmidi 0x00000000 snd_rawmidi_kernel_write +EXPORT_SYMBOL sound/core/snd-rawmidi 0x00000000 snd_rawmidi_new +EXPORT_SYMBOL sound/core/snd-rawmidi 0x00000000 snd_rawmidi_output_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0x00000000 snd_rawmidi_proceed +EXPORT_SYMBOL sound/core/snd-rawmidi 0x00000000 snd_rawmidi_receive +EXPORT_SYMBOL sound/core/snd-rawmidi 0x00000000 snd_rawmidi_set_ops +EXPORT_SYMBOL sound/core/snd-rawmidi 0x00000000 snd_rawmidi_transmit +EXPORT_SYMBOL sound/core/snd-rawmidi 0x00000000 snd_rawmidi_transmit_ack +EXPORT_SYMBOL sound/core/snd-rawmidi 0x00000000 snd_rawmidi_transmit_empty +EXPORT_SYMBOL sound/core/snd-rawmidi 0x00000000 snd_rawmidi_transmit_peek +EXPORT_SYMBOL sound/core/snd-seq-device 0x00000000 snd_seq_autoload_exit +EXPORT_SYMBOL sound/core/snd-seq-device 0x00000000 snd_seq_autoload_init +EXPORT_SYMBOL sound/core/snd-seq-device 0x00000000 snd_seq_device_load_drivers +EXPORT_SYMBOL sound/core/snd-seq-device 0x00000000 snd_seq_device_new +EXPORT_SYMBOL sound/core/snd-timer 0x00000000 snd_timer_close +EXPORT_SYMBOL sound/core/snd-timer 0x00000000 snd_timer_continue +EXPORT_SYMBOL sound/core/snd-timer 0x00000000 snd_timer_global_free +EXPORT_SYMBOL sound/core/snd-timer 0x00000000 snd_timer_global_new +EXPORT_SYMBOL sound/core/snd-timer 0x00000000 snd_timer_global_register +EXPORT_SYMBOL sound/core/snd-timer 0x00000000 snd_timer_instance_free +EXPORT_SYMBOL sound/core/snd-timer 0x00000000 snd_timer_instance_new +EXPORT_SYMBOL sound/core/snd-timer 0x00000000 snd_timer_interrupt +EXPORT_SYMBOL sound/core/snd-timer 0x00000000 snd_timer_new +EXPORT_SYMBOL sound/core/snd-timer 0x00000000 snd_timer_notify +EXPORT_SYMBOL sound/core/snd-timer 0x00000000 snd_timer_open +EXPORT_SYMBOL sound/core/snd-timer 0x00000000 snd_timer_pause +EXPORT_SYMBOL sound/core/snd-timer 0x00000000 snd_timer_resolution +EXPORT_SYMBOL sound/core/snd-timer 0x00000000 snd_timer_start +EXPORT_SYMBOL sound/core/snd-timer 0x00000000 snd_timer_stop +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x00000000 snd_mpu401_uart_interrupt +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x00000000 snd_mpu401_uart_interrupt_tx +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x00000000 snd_mpu401_uart_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x00000000 snd_opl3_create +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x00000000 snd_opl3_find_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x00000000 snd_opl3_hwdep_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x00000000 snd_opl3_init +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x00000000 snd_opl3_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x00000000 snd_opl3_load_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x00000000 snd_opl3_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x00000000 snd_opl3_regmap +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x00000000 snd_opl3_reset +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x00000000 snd_opl3_timer_new +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x00000000 snd_vx_check_reg_bit +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x00000000 snd_vx_create +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x00000000 snd_vx_dsp_boot +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x00000000 snd_vx_dsp_load +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x00000000 snd_vx_free_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x00000000 snd_vx_irq_handler +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x00000000 snd_vx_load_boot_image +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x00000000 snd_vx_resume +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x00000000 snd_vx_setup_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x00000000 snd_vx_suspend +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x00000000 snd_vx_threaded_irq_handler +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x00000000 amdtp_rate_table +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x00000000 amdtp_stream_add_pcm_hw_constraints +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x00000000 amdtp_stream_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x00000000 amdtp_stream_get_max_payload +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x00000000 amdtp_stream_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x00000000 amdtp_stream_pcm_abort +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x00000000 amdtp_stream_pcm_prepare +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x00000000 amdtp_stream_set_parameters +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x00000000 amdtp_stream_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x00000000 amdtp_syt_intervals +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x00000000 avc_general_get_plug_info +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x00000000 avc_general_get_sig_fmt +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x00000000 avc_general_set_sig_fmt +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x00000000 cmp_connection_break +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x00000000 cmp_connection_check_used +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x00000000 cmp_connection_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x00000000 cmp_connection_establish +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x00000000 cmp_connection_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x00000000 cmp_connection_release +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x00000000 cmp_connection_reserve +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x00000000 cmp_connection_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x00000000 fcp_avc_transaction +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x00000000 fcp_bus_reset +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x00000000 fw_iso_resources_allocate +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x00000000 fw_iso_resources_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x00000000 fw_iso_resources_free +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x00000000 fw_iso_resources_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x00000000 fw_iso_resources_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x00000000 iso_packets_buffer_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x00000000 iso_packets_buffer_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x00000000 snd_fw_schedule_registration +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x00000000 snd_fw_transaction +EXPORT_SYMBOL sound/i2c/other/snd-ak4113 0x00000000 snd_ak4113_resume +EXPORT_SYMBOL sound/i2c/other/snd-ak4113 0x00000000 snd_ak4113_suspend +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x00000000 snd_ak4114_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x00000000 snd_ak4114_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x00000000 snd_ak4114_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x00000000 snd_ak4114_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x00000000 snd_ak4114_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x00000000 snd_ak4114_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x00000000 snd_ak4114_resume +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x00000000 snd_ak4114_suspend +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x00000000 snd_ak4117_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x00000000 snd_ak4117_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x00000000 snd_ak4117_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x00000000 snd_ak4117_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x00000000 snd_ak4117_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x00000000 snd_ak4117_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x00000000 snd_akm4xxx_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x00000000 snd_akm4xxx_init +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x00000000 snd_akm4xxx_reset +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x00000000 snd_akm4xxx_write +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x00000000 snd_pt2258_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x00000000 snd_pt2258_reset +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x00000000 snd_cs8427_create +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x00000000 snd_cs8427_iec958_active +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x00000000 snd_cs8427_iec958_build +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x00000000 snd_cs8427_iec958_pcm +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x00000000 snd_cs8427_init +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x00000000 snd_cs8427_reg_write +EXPORT_SYMBOL sound/i2c/snd-i2c 0x00000000 snd_i2c_bus_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0x00000000 snd_i2c_device_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0x00000000 snd_i2c_device_free +EXPORT_SYMBOL sound/i2c/snd-i2c 0x00000000 snd_i2c_probeaddr +EXPORT_SYMBOL sound/i2c/snd-i2c 0x00000000 snd_i2c_readbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0x00000000 snd_i2c_sendbytes +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x00000000 snd_sbdsp_command +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x00000000 snd_sbdsp_create +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x00000000 snd_sbdsp_get_byte +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x00000000 snd_sbdsp_reset +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x00000000 snd_sbmixer_add_ctl +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x00000000 snd_sbmixer_new +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x00000000 snd_sbmixer_read +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x00000000 snd_sbmixer_resume +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x00000000 snd_sbmixer_suspend +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x00000000 snd_sbmixer_write +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x00000000 snd_ac97_bus +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x00000000 snd_ac97_get_short_name +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x00000000 snd_ac97_mixer +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x00000000 snd_ac97_pcm_assign +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x00000000 snd_ac97_pcm_close +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x00000000 snd_ac97_pcm_double_rate_rules +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x00000000 snd_ac97_pcm_open +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x00000000 snd_ac97_read +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x00000000 snd_ac97_resume +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x00000000 snd_ac97_set_rate +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x00000000 snd_ac97_suspend +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x00000000 snd_ac97_tune_hardware +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x00000000 snd_ac97_update +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x00000000 snd_ac97_update_bits +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x00000000 snd_ac97_update_power +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x00000000 snd_ac97_write +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x00000000 snd_ac97_write_cache +EXPORT_SYMBOL sound/pci/asihpi/snd-asihpi 0x00000000 hpi_send_recv +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x00000000 snd_emu10k1_memblk_map +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x00000000 snd_emu10k1_ptr_read +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x00000000 snd_emu10k1_ptr_write +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x00000000 snd_emu10k1_synth_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x00000000 snd_emu10k1_synth_bzero +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x00000000 snd_emu10k1_synth_copy_from_user +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x00000000 snd_emu10k1_synth_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x00000000 snd_emu10k1_voice_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x00000000 snd_emu10k1_voice_free +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x00000000 snd_ice1712_akm4xxx_build_controls +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x00000000 snd_ice1712_akm4xxx_free +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x00000000 snd_ice1712_akm4xxx_init +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x00000000 oxygen_pci_pm +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x00000000 oxygen_pci_probe +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x00000000 oxygen_pci_remove +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x00000000 oxygen_pci_shutdown +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x00000000 oxygen_read16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x00000000 oxygen_read32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x00000000 oxygen_read8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x00000000 oxygen_read_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x00000000 oxygen_reset_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x00000000 oxygen_update_dac_routing +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x00000000 oxygen_write16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x00000000 oxygen_write16_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x00000000 oxygen_write32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x00000000 oxygen_write32_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x00000000 oxygen_write8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x00000000 oxygen_write8_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x00000000 oxygen_write_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x00000000 oxygen_write_ac97_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x00000000 oxygen_write_i2c +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x00000000 oxygen_write_spi +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x00000000 oxygen_write_uart +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x00000000 snd_trident_alloc_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x00000000 snd_trident_free_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x00000000 snd_trident_start_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x00000000 snd_trident_stop_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x00000000 snd_trident_write_voice_regs +EXPORT_SYMBOL sound/soc/amd/acp_audio_dma 0x00000000 bt_uart_enable +EXPORT_SYMBOL sound/soc/codecs/snd-soc-pcm3060 0x00000000 pcm3060_probe +EXPORT_SYMBOL sound/soc/codecs/snd-soc-pcm3060 0x00000000 pcm3060_regmap +EXPORT_SYMBOL sound/soc/codecs/snd-soc-rt715 0x00000000 hda_to_sdw +EXPORT_SYMBOL sound/soc/codecs/snd-soc-tlv320aic23 0x00000000 tlv320aic23_probe +EXPORT_SYMBOL sound/soc/codecs/snd-soc-tlv320aic23 0x00000000 tlv320aic23_regmap +EXPORT_SYMBOL sound/soc/codecs/snd-soc-tlv320aic32x4 0x00000000 aic32x4_probe +EXPORT_SYMBOL sound/soc/codecs/snd-soc-tlv320aic32x4 0x00000000 aic32x4_regmap_config +EXPORT_SYMBOL sound/soc/codecs/snd-soc-tlv320aic32x4 0x00000000 aic32x4_remove +EXPORT_SYMBOL sound/soc/snd-soc-core 0x00000000 snd_soc_alloc_ac97_component +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_complete +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_create_page_table +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_device_probe +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_device_remove +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_dsp_mailbox_init +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_dsp_only_d0i3_compatible_stream_active +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_dsp_panic +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_dsp_update_bits +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_dsp_update_bits64 +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_dsp_update_bits64_unlocked +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_dsp_update_bits_forced +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_dsp_update_bits_unlocked +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_free_trace +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_fw_parse_ext_data +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_fw_unload +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_get_status +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_handle_fw_exception +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_init_trace +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_ipc_free +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_ipc_init +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_ipc_msgs_rx +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_ipc_reply +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_ipc_set_get_comp_data +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_ipc_stream_posn +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_ipc_valid +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_load_firmware +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_load_firmware_memcpy +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_load_firmware_raw +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_load_topology +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_parse_module_memcpy +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_pci_update_bits +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_pcm_period_elapsed +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_prepare +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_release_trace +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_resume +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_run_firmware +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_runtime_idle +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_runtime_resume +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_runtime_suspend +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_suspend +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 snd_sof_trace_notify_for_error +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 sof_block_read +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 sof_block_write +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 sof_fw_ready +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 sof_io_read +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 sof_io_read64 +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 sof_io_write +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 sof_io_write64 +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 sof_ipc_probe_deinit +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 sof_ipc_probe_dma_add +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 sof_ipc_probe_dma_info +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 sof_ipc_probe_dma_remove +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 sof_ipc_probe_init +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 sof_ipc_probe_points_add +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 sof_ipc_probe_points_info +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 sof_ipc_probe_points_remove +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 sof_ipc_tx_message +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 sof_ipc_tx_message_no_pm +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 sof_machine_check +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 sof_machine_register +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 sof_machine_unregister +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 sof_mailbox_read +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 sof_mailbox_write +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 sof_probe_compr_copy +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 sof_probe_compr_free +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 sof_probe_compr_open +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 sof_probe_compr_pointer +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 sof_probe_compr_set_params +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 sof_probe_compr_trigger +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x00000000 sof_probe_compressed_ops +EXPORT_SYMBOL sound/soundcore 0x00000000 register_sound_dsp +EXPORT_SYMBOL sound/soundcore 0x00000000 register_sound_mixer +EXPORT_SYMBOL sound/soundcore 0x00000000 register_sound_special +EXPORT_SYMBOL sound/soundcore 0x00000000 register_sound_special_device +EXPORT_SYMBOL sound/soundcore 0x00000000 sound_class +EXPORT_SYMBOL sound/soundcore 0x00000000 unregister_sound_dsp +EXPORT_SYMBOL sound/soundcore 0x00000000 unregister_sound_mixer +EXPORT_SYMBOL sound/soundcore 0x00000000 unregister_sound_special +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x00000000 snd_emux_free +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x00000000 snd_emux_lock_voice +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x00000000 snd_emux_new +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x00000000 snd_emux_register +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x00000000 snd_emux_terminate_all +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x00000000 snd_emux_unlock_voice +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x00000000 snd_sf_linear_to_log +EXPORT_SYMBOL sound/synth/snd-util-mem 0x00000000 __snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0x00000000 __snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x00000000 __snd_util_memblk_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0x00000000 snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0x00000000 snd_util_mem_avail +EXPORT_SYMBOL sound/synth/snd-util-mem 0x00000000 snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x00000000 snd_util_memhdr_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x00000000 snd_util_memhdr_new +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x00000000 __snd_usbmidi_create +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x00000000 snd_usbmidi_disconnect +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x00000000 snd_usbmidi_input_start +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x00000000 snd_usbmidi_input_stop +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x00000000 snd_usbmidi_resume +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x00000000 snd_usbmidi_suspend +EXPORT_SYMBOL ubuntu/hio/hio 0x00000000 ssd_bm_status +EXPORT_SYMBOL ubuntu/hio/hio 0x00000000 ssd_get_label +EXPORT_SYMBOL ubuntu/hio/hio 0x00000000 ssd_get_pciaddr +EXPORT_SYMBOL ubuntu/hio/hio 0x00000000 ssd_get_temperature +EXPORT_SYMBOL ubuntu/hio/hio 0x00000000 ssd_get_version +EXPORT_SYMBOL ubuntu/hio/hio 0x00000000 ssd_register_event_notifier +EXPORT_SYMBOL ubuntu/hio/hio 0x00000000 ssd_reset +EXPORT_SYMBOL ubuntu/hio/hio 0x00000000 ssd_set_otprotect +EXPORT_SYMBOL ubuntu/hio/hio 0x00000000 ssd_set_wmode +EXPORT_SYMBOL ubuntu/hio/hio 0x00000000 ssd_submit_pbio +EXPORT_SYMBOL ubuntu/hio/hio 0x00000000 ssd_unregister_event_notifier +EXPORT_SYMBOL vmlinux 0x00000000 EISA_bus +EXPORT_SYMBOL vmlinux 0x00000000 IO_APIC_get_PCI_irq_vector +EXPORT_SYMBOL vmlinux 0x00000000 I_BDEV +EXPORT_SYMBOL vmlinux 0x00000000 LZ4_compress_default +EXPORT_SYMBOL vmlinux 0x00000000 LZ4_compress_destSize +EXPORT_SYMBOL vmlinux 0x00000000 LZ4_compress_fast +EXPORT_SYMBOL vmlinux 0x00000000 LZ4_compress_fast_continue +EXPORT_SYMBOL vmlinux 0x00000000 LZ4_decompress_fast +EXPORT_SYMBOL vmlinux 0x00000000 LZ4_decompress_fast_continue +EXPORT_SYMBOL vmlinux 0x00000000 LZ4_decompress_fast_usingDict +EXPORT_SYMBOL vmlinux 0x00000000 LZ4_decompress_safe +EXPORT_SYMBOL vmlinux 0x00000000 LZ4_decompress_safe_continue +EXPORT_SYMBOL vmlinux 0x00000000 LZ4_decompress_safe_partial +EXPORT_SYMBOL vmlinux 0x00000000 LZ4_decompress_safe_usingDict +EXPORT_SYMBOL vmlinux 0x00000000 LZ4_loadDict +EXPORT_SYMBOL vmlinux 0x00000000 LZ4_saveDict +EXPORT_SYMBOL vmlinux 0x00000000 LZ4_setStreamDecode +EXPORT_SYMBOL vmlinux 0x00000000 PDE_DATA +EXPORT_SYMBOL vmlinux 0x00000000 PageMovable +EXPORT_SYMBOL vmlinux 0x00000000 ZSTD_DCtxWorkspaceBound +EXPORT_SYMBOL vmlinux 0x00000000 ZSTD_DDictWorkspaceBound +EXPORT_SYMBOL vmlinux 0x00000000 ZSTD_DStreamInSize +EXPORT_SYMBOL vmlinux 0x00000000 ZSTD_DStreamOutSize +EXPORT_SYMBOL vmlinux 0x00000000 ZSTD_DStreamWorkspaceBound +EXPORT_SYMBOL vmlinux 0x00000000 ZSTD_copyDCtx +EXPORT_SYMBOL vmlinux 0x00000000 ZSTD_decompressBegin +EXPORT_SYMBOL vmlinux 0x00000000 ZSTD_decompressBegin_usingDict +EXPORT_SYMBOL vmlinux 0x00000000 ZSTD_decompressBlock +EXPORT_SYMBOL vmlinux 0x00000000 ZSTD_decompressContinue +EXPORT_SYMBOL vmlinux 0x00000000 ZSTD_decompressDCtx +EXPORT_SYMBOL vmlinux 0x00000000 ZSTD_decompressStream +EXPORT_SYMBOL vmlinux 0x00000000 ZSTD_decompress_usingDDict +EXPORT_SYMBOL vmlinux 0x00000000 ZSTD_decompress_usingDict +EXPORT_SYMBOL vmlinux 0x00000000 ZSTD_findDecompressedSize +EXPORT_SYMBOL vmlinux 0x00000000 ZSTD_findFrameCompressedSize +EXPORT_SYMBOL vmlinux 0x00000000 ZSTD_getDictID_fromDDict +EXPORT_SYMBOL vmlinux 0x00000000 ZSTD_getDictID_fromDict +EXPORT_SYMBOL vmlinux 0x00000000 ZSTD_getDictID_fromFrame +EXPORT_SYMBOL vmlinux 0x00000000 ZSTD_getFrameContentSize +EXPORT_SYMBOL vmlinux 0x00000000 ZSTD_getFrameParams +EXPORT_SYMBOL vmlinux 0x00000000 ZSTD_initDCtx +EXPORT_SYMBOL vmlinux 0x00000000 ZSTD_initDDict +EXPORT_SYMBOL vmlinux 0x00000000 ZSTD_initDStream +EXPORT_SYMBOL vmlinux 0x00000000 ZSTD_initDStream_usingDDict +EXPORT_SYMBOL vmlinux 0x00000000 ZSTD_insertBlock +EXPORT_SYMBOL vmlinux 0x00000000 ZSTD_isFrame +EXPORT_SYMBOL vmlinux 0x00000000 ZSTD_nextInputType +EXPORT_SYMBOL vmlinux 0x00000000 ZSTD_nextSrcSizeToDecompress +EXPORT_SYMBOL vmlinux 0x00000000 ZSTD_resetDStream +EXPORT_SYMBOL vmlinux 0x00000000 __ClearPageMovable +EXPORT_SYMBOL vmlinux 0x00000000 __SetPageMovable +EXPORT_SYMBOL vmlinux 0x00000000 ___pskb_trim +EXPORT_SYMBOL vmlinux 0x00000000 ___ratelimit +EXPORT_SYMBOL vmlinux 0x00000000 __acpi_handle_debug +EXPORT_SYMBOL vmlinux 0x00000000 __alloc_bucket_spinlocks +EXPORT_SYMBOL vmlinux 0x00000000 __alloc_disk_node +EXPORT_SYMBOL vmlinux 0x00000000 __alloc_pages_nodemask +EXPORT_SYMBOL vmlinux 0x00000000 __alloc_skb +EXPORT_SYMBOL vmlinux 0x00000000 __bdevname +EXPORT_SYMBOL vmlinux 0x00000000 __bforget +EXPORT_SYMBOL vmlinux 0x00000000 __bio_clone_fast +EXPORT_SYMBOL vmlinux 0x00000000 __bitmap_and +EXPORT_SYMBOL vmlinux 0x00000000 __bitmap_andnot +EXPORT_SYMBOL vmlinux 0x00000000 __bitmap_clear +EXPORT_SYMBOL vmlinux 0x00000000 __bitmap_complement +EXPORT_SYMBOL vmlinux 0x00000000 __bitmap_equal +EXPORT_SYMBOL vmlinux 0x00000000 __bitmap_intersects +EXPORT_SYMBOL vmlinux 0x00000000 __bitmap_or +EXPORT_SYMBOL vmlinux 0x00000000 __bitmap_replace +EXPORT_SYMBOL vmlinux 0x00000000 __bitmap_set +EXPORT_SYMBOL vmlinux 0x00000000 __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x00000000 __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0x00000000 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x00000000 __bitmap_weight +EXPORT_SYMBOL vmlinux 0x00000000 __bitmap_xor +EXPORT_SYMBOL vmlinux 0x00000000 __blk_mq_end_request +EXPORT_SYMBOL vmlinux 0x00000000 __blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0x00000000 __blkdev_issue_zeroout +EXPORT_SYMBOL vmlinux 0x00000000 __block_write_begin +EXPORT_SYMBOL vmlinux 0x00000000 __block_write_full_page +EXPORT_SYMBOL vmlinux 0x00000000 __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0x00000000 __bread_gfp +EXPORT_SYMBOL vmlinux 0x00000000 __breadahead +EXPORT_SYMBOL vmlinux 0x00000000 __breadahead_gfp +EXPORT_SYMBOL vmlinux 0x00000000 __break_lease +EXPORT_SYMBOL vmlinux 0x00000000 __brelse +EXPORT_SYMBOL vmlinux 0x00000000 __cachemode2pte_tbl +EXPORT_SYMBOL vmlinux 0x00000000 __cancel_dirty_page +EXPORT_SYMBOL vmlinux 0x00000000 __cap_empty_set +EXPORT_SYMBOL vmlinux 0x00000000 __cgroup_bpf_check_dev_permission +EXPORT_SYMBOL vmlinux 0x00000000 __cgroup_bpf_run_filter_getsockopt +EXPORT_SYMBOL vmlinux 0x00000000 __cgroup_bpf_run_filter_setsockopt +EXPORT_SYMBOL vmlinux 0x00000000 __cgroup_bpf_run_filter_sk +EXPORT_SYMBOL vmlinux 0x00000000 __cgroup_bpf_run_filter_skb +EXPORT_SYMBOL vmlinux 0x00000000 __cgroup_bpf_run_filter_sock_addr +EXPORT_SYMBOL vmlinux 0x00000000 __cgroup_bpf_run_filter_sock_ops +EXPORT_SYMBOL vmlinux 0x00000000 __cgroup_bpf_run_filter_sysctl +EXPORT_SYMBOL vmlinux 0x00000000 __check_object_size +EXPORT_SYMBOL vmlinux 0x00000000 __check_sticky +EXPORT_SYMBOL vmlinux 0x00000000 __cleancache_get_page +EXPORT_SYMBOL vmlinux 0x00000000 __cleancache_init_fs +EXPORT_SYMBOL vmlinux 0x00000000 __cleancache_init_shared_fs +EXPORT_SYMBOL vmlinux 0x00000000 __cleancache_invalidate_fs +EXPORT_SYMBOL vmlinux 0x00000000 __cleancache_invalidate_inode +EXPORT_SYMBOL vmlinux 0x00000000 __cleancache_invalidate_page +EXPORT_SYMBOL vmlinux 0x00000000 __cleancache_put_page +EXPORT_SYMBOL vmlinux 0x00000000 __clear_user +EXPORT_SYMBOL vmlinux 0x00000000 __close_fd +EXPORT_SYMBOL vmlinux 0x00000000 __close_fd_get_file +EXPORT_SYMBOL vmlinux 0x00000000 __clzdi2 +EXPORT_SYMBOL vmlinux 0x00000000 __clzsi2 +EXPORT_SYMBOL vmlinux 0x00000000 __cond_resched_lock +EXPORT_SYMBOL vmlinux 0x00000000 __const_udelay +EXPORT_SYMBOL vmlinux 0x00000000 __copy_user_nocache +EXPORT_SYMBOL vmlinux 0x00000000 __cpu_active_mask +EXPORT_SYMBOL vmlinux 0x00000000 __cpu_online_mask +EXPORT_SYMBOL vmlinux 0x00000000 __cpu_possible_mask +EXPORT_SYMBOL vmlinux 0x00000000 __cpu_present_mask +EXPORT_SYMBOL vmlinux 0x00000000 __cpuhp_remove_state +EXPORT_SYMBOL vmlinux 0x00000000 __cpuhp_remove_state_cpuslocked +EXPORT_SYMBOL vmlinux 0x00000000 __cpuhp_setup_state +EXPORT_SYMBOL vmlinux 0x00000000 __cpuhp_setup_state_cpuslocked +EXPORT_SYMBOL vmlinux 0x00000000 __crc32c_le +EXPORT_SYMBOL vmlinux 0x00000000 __crc32c_le_shift +EXPORT_SYMBOL vmlinux 0x00000000 __crypto_memneq +EXPORT_SYMBOL vmlinux 0x00000000 __ctzdi2 +EXPORT_SYMBOL vmlinux 0x00000000 __ctzsi2 +EXPORT_SYMBOL vmlinux 0x00000000 __d_drop +EXPORT_SYMBOL vmlinux 0x00000000 __d_lookup_done +EXPORT_SYMBOL vmlinux 0x00000000 __dec_node_page_state +EXPORT_SYMBOL vmlinux 0x00000000 __dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x00000000 __default_kernel_pte_mask +EXPORT_SYMBOL vmlinux 0x00000000 __delay +EXPORT_SYMBOL vmlinux 0x00000000 __destroy_inode +EXPORT_SYMBOL vmlinux 0x00000000 __dev_get_by_flags +EXPORT_SYMBOL vmlinux 0x00000000 __dev_get_by_index +EXPORT_SYMBOL vmlinux 0x00000000 __dev_get_by_name +EXPORT_SYMBOL vmlinux 0x00000000 __dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x00000000 __dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0x00000000 __dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0x00000000 __dev_remove_pack +EXPORT_SYMBOL vmlinux 0x00000000 __dev_set_mtu +EXPORT_SYMBOL vmlinux 0x00000000 __devm_release_region +EXPORT_SYMBOL vmlinux 0x00000000 __devm_request_region +EXPORT_SYMBOL vmlinux 0x00000000 __do_once_done +EXPORT_SYMBOL vmlinux 0x00000000 __do_once_start +EXPORT_SYMBOL vmlinux 0x00000000 __dquot_alloc_space +EXPORT_SYMBOL vmlinux 0x00000000 __dquot_free_space +EXPORT_SYMBOL vmlinux 0x00000000 __dquot_transfer +EXPORT_SYMBOL vmlinux 0x00000000 __dst_destroy_metrics_generic +EXPORT_SYMBOL vmlinux 0x00000000 __dynamic_dev_dbg +EXPORT_SYMBOL vmlinux 0x00000000 __dynamic_ibdev_dbg +EXPORT_SYMBOL vmlinux 0x00000000 __dynamic_netdev_dbg +EXPORT_SYMBOL vmlinux 0x00000000 __dynamic_pr_debug +EXPORT_SYMBOL vmlinux 0x00000000 __ethtool_get_link_ksettings +EXPORT_SYMBOL vmlinux 0x00000000 __f_setown +EXPORT_SYMBOL vmlinux 0x00000000 __fdget +EXPORT_SYMBOL vmlinux 0x00000000 __fentry__ +EXPORT_SYMBOL vmlinux 0x00000000 __fib6_flush_trees +EXPORT_SYMBOL vmlinux 0x00000000 __filemap_set_wb_err +EXPORT_SYMBOL vmlinux 0x00000000 __find_get_block +EXPORT_SYMBOL vmlinux 0x00000000 __free_pages +EXPORT_SYMBOL vmlinux 0x00000000 __frontswap_init +EXPORT_SYMBOL vmlinux 0x00000000 __frontswap_invalidate_area +EXPORT_SYMBOL vmlinux 0x00000000 __frontswap_invalidate_page +EXPORT_SYMBOL vmlinux 0x00000000 __frontswap_load +EXPORT_SYMBOL vmlinux 0x00000000 __frontswap_store +EXPORT_SYMBOL vmlinux 0x00000000 __frontswap_test +EXPORT_SYMBOL vmlinux 0x00000000 __fs_parse +EXPORT_SYMBOL vmlinux 0x00000000 __generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x00000000 __generic_file_fsync +EXPORT_SYMBOL vmlinux 0x00000000 __generic_file_write_iter +EXPORT_SYMBOL vmlinux 0x00000000 __genphy_config_aneg +EXPORT_SYMBOL vmlinux 0x00000000 __genradix_free +EXPORT_SYMBOL vmlinux 0x00000000 __genradix_iter_peek +EXPORT_SYMBOL vmlinux 0x00000000 __genradix_prealloc +EXPORT_SYMBOL vmlinux 0x00000000 __genradix_ptr +EXPORT_SYMBOL vmlinux 0x00000000 __genradix_ptr_alloc +EXPORT_SYMBOL vmlinux 0x00000000 __get_free_pages +EXPORT_SYMBOL vmlinux 0x00000000 __get_hash_from_flowi6 +EXPORT_SYMBOL vmlinux 0x00000000 __get_user_1 +EXPORT_SYMBOL vmlinux 0x00000000 __get_user_2 +EXPORT_SYMBOL vmlinux 0x00000000 __get_user_4 +EXPORT_SYMBOL vmlinux 0x00000000 __get_user_8 +EXPORT_SYMBOL vmlinux 0x00000000 __getblk_gfp +EXPORT_SYMBOL vmlinux 0x00000000 __gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0x00000000 __gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0x00000000 __hsiphash_aligned +EXPORT_SYMBOL vmlinux 0x00000000 __hw_addr_init +EXPORT_SYMBOL vmlinux 0x00000000 __hw_addr_ref_sync_dev +EXPORT_SYMBOL vmlinux 0x00000000 __hw_addr_ref_unsync_dev +EXPORT_SYMBOL vmlinux 0x00000000 __hw_addr_sync +EXPORT_SYMBOL vmlinux 0x00000000 __hw_addr_sync_dev +EXPORT_SYMBOL vmlinux 0x00000000 __hw_addr_unsync +EXPORT_SYMBOL vmlinux 0x00000000 __hw_addr_unsync_dev +EXPORT_SYMBOL vmlinux 0x00000000 __i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0x00000000 __i2c_transfer +EXPORT_SYMBOL vmlinux 0x00000000 __icmp_send +EXPORT_SYMBOL vmlinux 0x00000000 __inc_node_page_state +EXPORT_SYMBOL vmlinux 0x00000000 __inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x00000000 __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0x00000000 __inet_hash +EXPORT_SYMBOL vmlinux 0x00000000 __inet_stream_connect +EXPORT_SYMBOL vmlinux 0x00000000 __init_rwsem +EXPORT_SYMBOL vmlinux 0x00000000 __init_swait_queue_head +EXPORT_SYMBOL vmlinux 0x00000000 __init_waitqueue_head +EXPORT_SYMBOL vmlinux 0x00000000 __inode_add_bytes +EXPORT_SYMBOL vmlinux 0x00000000 __inode_sub_bytes +EXPORT_SYMBOL vmlinux 0x00000000 __insert_inode_hash +EXPORT_SYMBOL vmlinux 0x00000000 __invalidate_device +EXPORT_SYMBOL vmlinux 0x00000000 __ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0x00000000 __ip_dev_find +EXPORT_SYMBOL vmlinux 0x00000000 __ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0x00000000 __ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0x00000000 __ip_options_compile +EXPORT_SYMBOL vmlinux 0x00000000 __ip_queue_xmit +EXPORT_SYMBOL vmlinux 0x00000000 __ip_select_ident +EXPORT_SYMBOL vmlinux 0x00000000 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x00000000 __kernel_write +EXPORT_SYMBOL vmlinux 0x00000000 __kfifo_alloc +EXPORT_SYMBOL vmlinux 0x00000000 __kfifo_dma_in_finish_r +EXPORT_SYMBOL vmlinux 0x00000000 __kfifo_dma_in_prepare +EXPORT_SYMBOL vmlinux 0x00000000 __kfifo_dma_in_prepare_r +EXPORT_SYMBOL vmlinux 0x00000000 __kfifo_dma_out_finish_r +EXPORT_SYMBOL vmlinux 0x00000000 __kfifo_dma_out_prepare +EXPORT_SYMBOL vmlinux 0x00000000 __kfifo_dma_out_prepare_r +EXPORT_SYMBOL vmlinux 0x00000000 __kfifo_free +EXPORT_SYMBOL vmlinux 0x00000000 __kfifo_from_user +EXPORT_SYMBOL vmlinux 0x00000000 __kfifo_from_user_r +EXPORT_SYMBOL vmlinux 0x00000000 __kfifo_in +EXPORT_SYMBOL vmlinux 0x00000000 __kfifo_in_r +EXPORT_SYMBOL vmlinux 0x00000000 __kfifo_init +EXPORT_SYMBOL vmlinux 0x00000000 __kfifo_len_r +EXPORT_SYMBOL vmlinux 0x00000000 __kfifo_max_r +EXPORT_SYMBOL vmlinux 0x00000000 __kfifo_out +EXPORT_SYMBOL vmlinux 0x00000000 __kfifo_out_peek +EXPORT_SYMBOL vmlinux 0x00000000 __kfifo_out_peek_r +EXPORT_SYMBOL vmlinux 0x00000000 __kfifo_out_r +EXPORT_SYMBOL vmlinux 0x00000000 __kfifo_skip_r +EXPORT_SYMBOL vmlinux 0x00000000 __kfifo_to_user +EXPORT_SYMBOL vmlinux 0x00000000 __kfifo_to_user_r +EXPORT_SYMBOL vmlinux 0x00000000 __kfree_skb +EXPORT_SYMBOL vmlinux 0x00000000 __kmalloc +EXPORT_SYMBOL vmlinux 0x00000000 __kmalloc_node +EXPORT_SYMBOL vmlinux 0x00000000 __ksize +EXPORT_SYMBOL vmlinux 0x00000000 __local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0x00000000 __lock_buffer +EXPORT_SYMBOL vmlinux 0x00000000 __lock_page +EXPORT_SYMBOL vmlinux 0x00000000 __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0x00000000 __max_die_per_package +EXPORT_SYMBOL vmlinux 0x00000000 __max_logical_packages +EXPORT_SYMBOL vmlinux 0x00000000 __mb_cache_entry_free +EXPORT_SYMBOL vmlinux 0x00000000 __mdiobus_read +EXPORT_SYMBOL vmlinux 0x00000000 __mdiobus_register +EXPORT_SYMBOL vmlinux 0x00000000 __mdiobus_write +EXPORT_SYMBOL vmlinux 0x00000000 __memcpy +EXPORT_SYMBOL vmlinux 0x00000000 __memmove +EXPORT_SYMBOL vmlinux 0x00000000 __memset +EXPORT_SYMBOL vmlinux 0x00000000 __mmc_claim_host +EXPORT_SYMBOL vmlinux 0x00000000 __mod_node_page_state +EXPORT_SYMBOL vmlinux 0x00000000 __mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x00000000 __module_get +EXPORT_SYMBOL vmlinux 0x00000000 __module_put_and_exit +EXPORT_SYMBOL vmlinux 0x00000000 __msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x00000000 __mutex_init +EXPORT_SYMBOL vmlinux 0x00000000 __napi_alloc_skb +EXPORT_SYMBOL vmlinux 0x00000000 __napi_schedule +EXPORT_SYMBOL vmlinux 0x00000000 __napi_schedule_irqoff +EXPORT_SYMBOL vmlinux 0x00000000 __nd_driver_register +EXPORT_SYMBOL vmlinux 0x00000000 __ndelay +EXPORT_SYMBOL vmlinux 0x00000000 __neigh_create +EXPORT_SYMBOL vmlinux 0x00000000 __neigh_event_send +EXPORT_SYMBOL vmlinux 0x00000000 __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0x00000000 __neigh_set_probe_once +EXPORT_SYMBOL vmlinux 0x00000000 __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0x00000000 __netif_schedule +EXPORT_SYMBOL vmlinux 0x00000000 __netlink_dump_start +EXPORT_SYMBOL vmlinux 0x00000000 __netlink_kernel_create +EXPORT_SYMBOL vmlinux 0x00000000 __netlink_ns_capable +EXPORT_SYMBOL vmlinux 0x00000000 __next_node_in +EXPORT_SYMBOL vmlinux 0x00000000 __nla_parse +EXPORT_SYMBOL vmlinux 0x00000000 __nla_put +EXPORT_SYMBOL vmlinux 0x00000000 __nla_put_64bit +EXPORT_SYMBOL vmlinux 0x00000000 __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x00000000 __nla_reserve +EXPORT_SYMBOL vmlinux 0x00000000 __nla_reserve_64bit +EXPORT_SYMBOL vmlinux 0x00000000 __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x00000000 __nla_validate +EXPORT_SYMBOL vmlinux 0x00000000 __nlmsg_put +EXPORT_SYMBOL vmlinux 0x00000000 __node_distance +EXPORT_SYMBOL vmlinux 0x00000000 __num_online_cpus +EXPORT_SYMBOL vmlinux 0x00000000 __page_cache_alloc +EXPORT_SYMBOL vmlinux 0x00000000 __page_frag_cache_drain +EXPORT_SYMBOL vmlinux 0x00000000 __page_pool_put_page +EXPORT_SYMBOL vmlinux 0x00000000 __page_symlink +EXPORT_SYMBOL vmlinux 0x00000000 __pagevec_lru_add +EXPORT_SYMBOL vmlinux 0x00000000 __pagevec_release +EXPORT_SYMBOL vmlinux 0x00000000 __pci_register_driver +EXPORT_SYMBOL vmlinux 0x00000000 __per_cpu_offset +EXPORT_SYMBOL vmlinux 0x00000000 __percpu_counter_compare +EXPORT_SYMBOL vmlinux 0x00000000 __percpu_counter_init +EXPORT_SYMBOL vmlinux 0x00000000 __percpu_counter_sum +EXPORT_SYMBOL vmlinux 0x00000000 __phy_read_mmd +EXPORT_SYMBOL vmlinux 0x00000000 __phy_resume +EXPORT_SYMBOL vmlinux 0x00000000 __phy_write_mmd +EXPORT_SYMBOL vmlinux 0x00000000 __posix_acl_chmod +EXPORT_SYMBOL vmlinux 0x00000000 __posix_acl_create +EXPORT_SYMBOL vmlinux 0x00000000 __preempt_count +EXPORT_SYMBOL vmlinux 0x00000000 __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x00000000 __ps2_command +EXPORT_SYMBOL vmlinux 0x00000000 __pskb_copy_fclone +EXPORT_SYMBOL vmlinux 0x00000000 __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0x00000000 __pte2cachemode_tbl +EXPORT_SYMBOL vmlinux 0x00000000 __put_cred +EXPORT_SYMBOL vmlinux 0x00000000 __put_page +EXPORT_SYMBOL vmlinux 0x00000000 __put_user_1 +EXPORT_SYMBOL vmlinux 0x00000000 __put_user_2 +EXPORT_SYMBOL vmlinux 0x00000000 __put_user_4 +EXPORT_SYMBOL vmlinux 0x00000000 __put_user_8 +EXPORT_SYMBOL vmlinux 0x00000000 __put_user_ns +EXPORT_SYMBOL vmlinux 0x00000000 __pv_queued_spin_lock_slowpath +EXPORT_SYMBOL vmlinux 0x00000000 __qdisc_calculate_pkt_len +EXPORT_SYMBOL vmlinux 0x00000000 __quota_error +EXPORT_SYMBOL vmlinux 0x00000000 __rb_erase_color +EXPORT_SYMBOL vmlinux 0x00000000 __rb_insert_augmented +EXPORT_SYMBOL vmlinux 0x00000000 __refrigerator +EXPORT_SYMBOL vmlinux 0x00000000 __register_binfmt +EXPORT_SYMBOL vmlinux 0x00000000 __register_chrdev +EXPORT_SYMBOL vmlinux 0x00000000 __register_nls +EXPORT_SYMBOL vmlinux 0x00000000 __register_nmi_handler +EXPORT_SYMBOL vmlinux 0x00000000 __release_region +EXPORT_SYMBOL vmlinux 0x00000000 __remove_inode_hash +EXPORT_SYMBOL vmlinux 0x00000000 __request_module +EXPORT_SYMBOL vmlinux 0x00000000 __request_region +EXPORT_SYMBOL vmlinux 0x00000000 __sb_end_write +EXPORT_SYMBOL vmlinux 0x00000000 __sb_start_write +EXPORT_SYMBOL vmlinux 0x00000000 __scm_destroy +EXPORT_SYMBOL vmlinux 0x00000000 __scm_send +EXPORT_SYMBOL vmlinux 0x00000000 __scsi_add_device +EXPORT_SYMBOL vmlinux 0x00000000 __scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x00000000 __scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x00000000 __scsi_execute +EXPORT_SYMBOL vmlinux 0x00000000 __scsi_format_command +EXPORT_SYMBOL vmlinux 0x00000000 __scsi_iterate_devices +EXPORT_SYMBOL vmlinux 0x00000000 __scsi_print_sense +EXPORT_SYMBOL vmlinux 0x00000000 __seq_open_private +EXPORT_SYMBOL vmlinux 0x00000000 __serio_register_driver +EXPORT_SYMBOL vmlinux 0x00000000 __serio_register_port +EXPORT_SYMBOL vmlinux 0x00000000 __set_page_dirty_buffers +EXPORT_SYMBOL vmlinux 0x00000000 __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0x00000000 __sg_alloc_table +EXPORT_SYMBOL vmlinux 0x00000000 __sg_alloc_table_from_pages +EXPORT_SYMBOL vmlinux 0x00000000 __sg_free_table +EXPORT_SYMBOL vmlinux 0x00000000 __sg_page_iter_dma_next +EXPORT_SYMBOL vmlinux 0x00000000 __sg_page_iter_next +EXPORT_SYMBOL vmlinux 0x00000000 __sg_page_iter_start +EXPORT_SYMBOL vmlinux 0x00000000 __siphash_aligned +EXPORT_SYMBOL vmlinux 0x00000000 __sk_backlog_rcv +EXPORT_SYMBOL vmlinux 0x00000000 __sk_dst_check +EXPORT_SYMBOL vmlinux 0x00000000 __sk_mem_raise_allocated +EXPORT_SYMBOL vmlinux 0x00000000 __sk_mem_reclaim +EXPORT_SYMBOL vmlinux 0x00000000 __sk_mem_reduce_allocated +EXPORT_SYMBOL vmlinux 0x00000000 __sk_mem_schedule +EXPORT_SYMBOL vmlinux 0x00000000 __sk_queue_drop_skb +EXPORT_SYMBOL vmlinux 0x00000000 __sk_receive_skb +EXPORT_SYMBOL vmlinux 0x00000000 __skb_checksum +EXPORT_SYMBOL vmlinux 0x00000000 __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0x00000000 __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0x00000000 __skb_ext_del +EXPORT_SYMBOL vmlinux 0x00000000 __skb_ext_put +EXPORT_SYMBOL vmlinux 0x00000000 __skb_flow_dissect +EXPORT_SYMBOL vmlinux 0x00000000 __skb_flow_get_ports +EXPORT_SYMBOL vmlinux 0x00000000 __skb_free_datagram_locked +EXPORT_SYMBOL vmlinux 0x00000000 __skb_get_hash +EXPORT_SYMBOL vmlinux 0x00000000 __skb_gro_checksum_complete +EXPORT_SYMBOL vmlinux 0x00000000 __skb_gso_segment +EXPORT_SYMBOL vmlinux 0x00000000 __skb_pad +EXPORT_SYMBOL vmlinux 0x00000000 __skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x00000000 __skb_recv_udp +EXPORT_SYMBOL vmlinux 0x00000000 __skb_try_recv_datagram +EXPORT_SYMBOL vmlinux 0x00000000 __skb_vlan_pop +EXPORT_SYMBOL vmlinux 0x00000000 __skb_wait_for_more_packets +EXPORT_SYMBOL vmlinux 0x00000000 __skb_warn_lro_forwarding +EXPORT_SYMBOL vmlinux 0x00000000 __sock_cmsg_send +EXPORT_SYMBOL vmlinux 0x00000000 __sock_create +EXPORT_SYMBOL vmlinux 0x00000000 __sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0x00000000 __sock_tx_timestamp +EXPORT_SYMBOL vmlinux 0x00000000 __splice_from_pipe +EXPORT_SYMBOL vmlinux 0x00000000 __stack_chk_fail +EXPORT_SYMBOL vmlinux 0x00000000 __starget_for_each_device +EXPORT_SYMBOL vmlinux 0x00000000 __sw_hweight32 +EXPORT_SYMBOL vmlinux 0x00000000 __sw_hweight64 +EXPORT_SYMBOL vmlinux 0x00000000 __symbol_put +EXPORT_SYMBOL vmlinux 0x00000000 __sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x00000000 __sysfs_match_string +EXPORT_SYMBOL vmlinux 0x00000000 __task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0x00000000 __tasklet_hi_schedule +EXPORT_SYMBOL vmlinux 0x00000000 __tasklet_schedule +EXPORT_SYMBOL vmlinux 0x00000000 __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0x00000000 __tcf_idr_release +EXPORT_SYMBOL vmlinux 0x00000000 __tcp_md5_do_lookup +EXPORT_SYMBOL vmlinux 0x00000000 __test_set_page_writeback +EXPORT_SYMBOL vmlinux 0x00000000 __tracepoint_dma_fence_emit +EXPORT_SYMBOL vmlinux 0x00000000 __tracepoint_dma_fence_enable_signal +EXPORT_SYMBOL vmlinux 0x00000000 __tracepoint_dma_fence_signaled +EXPORT_SYMBOL vmlinux 0x00000000 __tracepoint_kfree +EXPORT_SYMBOL vmlinux 0x00000000 __tracepoint_kmalloc +EXPORT_SYMBOL vmlinux 0x00000000 __tracepoint_kmalloc_node +EXPORT_SYMBOL vmlinux 0x00000000 __tracepoint_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x00000000 __tracepoint_kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0x00000000 __tracepoint_kmem_cache_free +EXPORT_SYMBOL vmlinux 0x00000000 __tracepoint_module_get +EXPORT_SYMBOL vmlinux 0x00000000 __tracepoint_rdpmc +EXPORT_SYMBOL vmlinux 0x00000000 __tracepoint_read_msr +EXPORT_SYMBOL vmlinux 0x00000000 __tracepoint_spi_transfer_start +EXPORT_SYMBOL vmlinux 0x00000000 __tracepoint_spi_transfer_stop +EXPORT_SYMBOL vmlinux 0x00000000 __tracepoint_write_msr +EXPORT_SYMBOL vmlinux 0x00000000 __tty_alloc_driver +EXPORT_SYMBOL vmlinux 0x00000000 __tty_insert_flip_char +EXPORT_SYMBOL vmlinux 0x00000000 __udelay +EXPORT_SYMBOL vmlinux 0x00000000 __udp_disconnect +EXPORT_SYMBOL vmlinux 0x00000000 __unregister_chrdev +EXPORT_SYMBOL vmlinux 0x00000000 __usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x00000000 __var_waitqueue +EXPORT_SYMBOL vmlinux 0x00000000 __vfs_getxattr +EXPORT_SYMBOL vmlinux 0x00000000 __vfs_removexattr +EXPORT_SYMBOL vmlinux 0x00000000 __vfs_setxattr +EXPORT_SYMBOL vmlinux 0x00000000 __virt_addr_valid +EXPORT_SYMBOL vmlinux 0x00000000 __vlan_find_dev_deep_rcu +EXPORT_SYMBOL vmlinux 0x00000000 __vmalloc +EXPORT_SYMBOL vmlinux 0x00000000 __wait_on_bit +EXPORT_SYMBOL vmlinux 0x00000000 __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0x00000000 __wait_on_buffer +EXPORT_SYMBOL vmlinux 0x00000000 __wake_up +EXPORT_SYMBOL vmlinux 0x00000000 __wake_up_bit +EXPORT_SYMBOL vmlinux 0x00000000 __warn_printk +EXPORT_SYMBOL vmlinux 0x00000000 __x86_indirect_thunk_r10 +EXPORT_SYMBOL vmlinux 0x00000000 __x86_indirect_thunk_r11 +EXPORT_SYMBOL vmlinux 0x00000000 __x86_indirect_thunk_r12 +EXPORT_SYMBOL vmlinux 0x00000000 __x86_indirect_thunk_r13 +EXPORT_SYMBOL vmlinux 0x00000000 __x86_indirect_thunk_r14 +EXPORT_SYMBOL vmlinux 0x00000000 __x86_indirect_thunk_r15 +EXPORT_SYMBOL vmlinux 0x00000000 __x86_indirect_thunk_r8 +EXPORT_SYMBOL vmlinux 0x00000000 __x86_indirect_thunk_r9 +EXPORT_SYMBOL vmlinux 0x00000000 __x86_indirect_thunk_rax +EXPORT_SYMBOL vmlinux 0x00000000 __x86_indirect_thunk_rbp +EXPORT_SYMBOL vmlinux 0x00000000 __x86_indirect_thunk_rbx +EXPORT_SYMBOL vmlinux 0x00000000 __x86_indirect_thunk_rcx +EXPORT_SYMBOL vmlinux 0x00000000 __x86_indirect_thunk_rdi +EXPORT_SYMBOL vmlinux 0x00000000 __x86_indirect_thunk_rdx +EXPORT_SYMBOL vmlinux 0x00000000 __x86_indirect_thunk_rsi +EXPORT_SYMBOL vmlinux 0x00000000 __xa_alloc +EXPORT_SYMBOL vmlinux 0x00000000 __xa_alloc_cyclic +EXPORT_SYMBOL vmlinux 0x00000000 __xa_clear_mark +EXPORT_SYMBOL vmlinux 0x00000000 __xa_cmpxchg +EXPORT_SYMBOL vmlinux 0x00000000 __xa_erase +EXPORT_SYMBOL vmlinux 0x00000000 __xa_insert +EXPORT_SYMBOL vmlinux 0x00000000 __xa_set_mark +EXPORT_SYMBOL vmlinux 0x00000000 __xa_store +EXPORT_SYMBOL vmlinux 0x00000000 __xfrm_decode_session +EXPORT_SYMBOL vmlinux 0x00000000 __xfrm_dst_lookup +EXPORT_SYMBOL vmlinux 0x00000000 __xfrm_init_state +EXPORT_SYMBOL vmlinux 0x00000000 __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0x00000000 __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0x00000000 __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x00000000 __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0x00000000 __zerocopy_sg_from_iter +EXPORT_SYMBOL vmlinux 0x00000000 _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0x00000000 _atomic_dec_and_lock_irqsave +EXPORT_SYMBOL vmlinux 0x00000000 _bcd2bin +EXPORT_SYMBOL vmlinux 0x00000000 _bin2bcd +EXPORT_SYMBOL vmlinux 0x00000000 _cond_resched +EXPORT_SYMBOL vmlinux 0x00000000 _copy_from_iter +EXPORT_SYMBOL vmlinux 0x00000000 _copy_from_iter_full +EXPORT_SYMBOL vmlinux 0x00000000 _copy_from_iter_full_nocache +EXPORT_SYMBOL vmlinux 0x00000000 _copy_from_iter_nocache +EXPORT_SYMBOL vmlinux 0x00000000 _copy_from_user +EXPORT_SYMBOL vmlinux 0x00000000 _copy_to_iter +EXPORT_SYMBOL vmlinux 0x00000000 _copy_to_user +EXPORT_SYMBOL vmlinux 0x00000000 _ctype +EXPORT_SYMBOL vmlinux 0x00000000 _dev_alert +EXPORT_SYMBOL vmlinux 0x00000000 _dev_crit +EXPORT_SYMBOL vmlinux 0x00000000 _dev_emerg +EXPORT_SYMBOL vmlinux 0x00000000 _dev_err +EXPORT_SYMBOL vmlinux 0x00000000 _dev_info +EXPORT_SYMBOL vmlinux 0x00000000 _dev_notice +EXPORT_SYMBOL vmlinux 0x00000000 _dev_warn +EXPORT_SYMBOL vmlinux 0x00000000 _kstrtol +EXPORT_SYMBOL vmlinux 0x00000000 _kstrtoul +EXPORT_SYMBOL vmlinux 0x00000000 _local_bh_enable +EXPORT_SYMBOL vmlinux 0x00000000 _raw_read_lock +EXPORT_SYMBOL vmlinux 0x00000000 _raw_read_lock_bh +EXPORT_SYMBOL vmlinux 0x00000000 _raw_read_lock_irq +EXPORT_SYMBOL vmlinux 0x00000000 _raw_read_lock_irqsave +EXPORT_SYMBOL vmlinux 0x00000000 _raw_read_trylock +EXPORT_SYMBOL vmlinux 0x00000000 _raw_read_unlock_bh +EXPORT_SYMBOL vmlinux 0x00000000 _raw_read_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x00000000 _raw_spin_lock +EXPORT_SYMBOL vmlinux 0x00000000 _raw_spin_lock_bh +EXPORT_SYMBOL vmlinux 0x00000000 _raw_spin_lock_irq +EXPORT_SYMBOL vmlinux 0x00000000 _raw_spin_lock_irqsave +EXPORT_SYMBOL vmlinux 0x00000000 _raw_spin_trylock +EXPORT_SYMBOL vmlinux 0x00000000 _raw_spin_trylock_bh +EXPORT_SYMBOL vmlinux 0x00000000 _raw_spin_unlock_bh +EXPORT_SYMBOL vmlinux 0x00000000 _raw_spin_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x00000000 _raw_write_lock +EXPORT_SYMBOL vmlinux 0x00000000 _raw_write_lock_bh +EXPORT_SYMBOL vmlinux 0x00000000 _raw_write_lock_irq +EXPORT_SYMBOL vmlinux 0x00000000 _raw_write_lock_irqsave +EXPORT_SYMBOL vmlinux 0x00000000 _raw_write_trylock +EXPORT_SYMBOL vmlinux 0x00000000 _raw_write_unlock_bh +EXPORT_SYMBOL vmlinux 0x00000000 _raw_write_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x00000000 _totalram_pages +EXPORT_SYMBOL vmlinux 0x00000000 ab3100_event_register +EXPORT_SYMBOL vmlinux 0x00000000 ab3100_event_unregister +EXPORT_SYMBOL vmlinux 0x00000000 abort +EXPORT_SYMBOL vmlinux 0x00000000 abort_creds +EXPORT_SYMBOL vmlinux 0x00000000 abx500_event_registers_startup_state_get +EXPORT_SYMBOL vmlinux 0x00000000 abx500_get_chip_id +EXPORT_SYMBOL vmlinux 0x00000000 abx500_get_register_interruptible +EXPORT_SYMBOL vmlinux 0x00000000 abx500_get_register_page_interruptible +EXPORT_SYMBOL vmlinux 0x00000000 abx500_mask_and_set_register_interruptible +EXPORT_SYMBOL vmlinux 0x00000000 abx500_register_ops +EXPORT_SYMBOL vmlinux 0x00000000 abx500_remove_ops +EXPORT_SYMBOL vmlinux 0x00000000 abx500_set_register_interruptible +EXPORT_SYMBOL vmlinux 0x00000000 abx500_startup_irq_enabled +EXPORT_SYMBOL vmlinux 0x00000000 account_page_redirty +EXPORT_SYMBOL vmlinux 0x00000000 acpi_acquire_global_lock +EXPORT_SYMBOL vmlinux 0x00000000 acpi_acquire_mutex +EXPORT_SYMBOL vmlinux 0x00000000 acpi_any_gpe_status_set +EXPORT_SYMBOL vmlinux 0x00000000 acpi_attach_data +EXPORT_SYMBOL vmlinux 0x00000000 acpi_bios_error +EXPORT_SYMBOL vmlinux 0x00000000 acpi_bios_exception +EXPORT_SYMBOL vmlinux 0x00000000 acpi_bios_warning +EXPORT_SYMBOL vmlinux 0x00000000 acpi_buffer_to_resource +EXPORT_SYMBOL vmlinux 0x00000000 acpi_bus_can_wakeup +EXPORT_SYMBOL vmlinux 0x00000000 acpi_bus_generate_netlink_event +EXPORT_SYMBOL vmlinux 0x00000000 acpi_bus_get_device +EXPORT_SYMBOL vmlinux 0x00000000 acpi_bus_get_status +EXPORT_SYMBOL vmlinux 0x00000000 acpi_bus_power_manageable +EXPORT_SYMBOL vmlinux 0x00000000 acpi_bus_private_data_handler +EXPORT_SYMBOL vmlinux 0x00000000 acpi_bus_register_driver +EXPORT_SYMBOL vmlinux 0x00000000 acpi_bus_scan +EXPORT_SYMBOL vmlinux 0x00000000 acpi_bus_set_power +EXPORT_SYMBOL vmlinux 0x00000000 acpi_bus_unregister_driver +EXPORT_SYMBOL vmlinux 0x00000000 acpi_check_address_range +EXPORT_SYMBOL vmlinux 0x00000000 acpi_check_dsm +EXPORT_SYMBOL vmlinux 0x00000000 acpi_check_region +EXPORT_SYMBOL vmlinux 0x00000000 acpi_check_resource_conflict +EXPORT_SYMBOL vmlinux 0x00000000 acpi_clear_event +EXPORT_SYMBOL vmlinux 0x00000000 acpi_clear_gpe +EXPORT_SYMBOL vmlinux 0x00000000 acpi_current_gpe_count +EXPORT_SYMBOL vmlinux 0x00000000 acpi_dbg_layer +EXPORT_SYMBOL vmlinux 0x00000000 acpi_dbg_level +EXPORT_SYMBOL vmlinux 0x00000000 acpi_debug_print +EXPORT_SYMBOL vmlinux 0x00000000 acpi_debug_print_raw +EXPORT_SYMBOL vmlinux 0x00000000 acpi_decode_pld_buffer +EXPORT_SYMBOL vmlinux 0x00000000 acpi_detach_data +EXPORT_SYMBOL vmlinux 0x00000000 acpi_dev_found +EXPORT_SYMBOL vmlinux 0x00000000 acpi_dev_get_first_match_dev +EXPORT_SYMBOL vmlinux 0x00000000 acpi_dev_hid_uid_match +EXPORT_SYMBOL vmlinux 0x00000000 acpi_dev_present +EXPORT_SYMBOL vmlinux 0x00000000 acpi_device_hid +EXPORT_SYMBOL vmlinux 0x00000000 acpi_device_set_power +EXPORT_SYMBOL vmlinux 0x00000000 acpi_disable +EXPORT_SYMBOL vmlinux 0x00000000 acpi_disable_all_gpes +EXPORT_SYMBOL vmlinux 0x00000000 acpi_disable_event +EXPORT_SYMBOL vmlinux 0x00000000 acpi_disable_gpe +EXPORT_SYMBOL vmlinux 0x00000000 acpi_disabled +EXPORT_SYMBOL vmlinux 0x00000000 acpi_dispatch_gpe +EXPORT_SYMBOL vmlinux 0x00000000 acpi_enable +EXPORT_SYMBOL vmlinux 0x00000000 acpi_enable_all_runtime_gpes +EXPORT_SYMBOL vmlinux 0x00000000 acpi_enable_all_wakeup_gpes +EXPORT_SYMBOL vmlinux 0x00000000 acpi_enable_event +EXPORT_SYMBOL vmlinux 0x00000000 acpi_enable_gpe +EXPORT_SYMBOL vmlinux 0x00000000 acpi_enter_sleep_state +EXPORT_SYMBOL vmlinux 0x00000000 acpi_enter_sleep_state_prep +EXPORT_SYMBOL vmlinux 0x00000000 acpi_enter_sleep_state_s4bios +EXPORT_SYMBOL vmlinux 0x00000000 acpi_error +EXPORT_SYMBOL vmlinux 0x00000000 acpi_evaluate_dsm +EXPORT_SYMBOL vmlinux 0x00000000 acpi_evaluate_integer +EXPORT_SYMBOL vmlinux 0x00000000 acpi_evaluate_object +EXPORT_SYMBOL vmlinux 0x00000000 acpi_evaluate_object_typed +EXPORT_SYMBOL vmlinux 0x00000000 acpi_evaluate_ost +EXPORT_SYMBOL vmlinux 0x00000000 acpi_evaluate_reference +EXPORT_SYMBOL vmlinux 0x00000000 acpi_exception +EXPORT_SYMBOL vmlinux 0x00000000 acpi_execute_simple_method +EXPORT_SYMBOL vmlinux 0x00000000 acpi_extract_package +EXPORT_SYMBOL vmlinux 0x00000000 acpi_finish_gpe +EXPORT_SYMBOL vmlinux 0x00000000 acpi_format_exception +EXPORT_SYMBOL vmlinux 0x00000000 acpi_gbl_FADT +EXPORT_SYMBOL vmlinux 0x00000000 acpi_get_current_resources +EXPORT_SYMBOL vmlinux 0x00000000 acpi_get_data +EXPORT_SYMBOL vmlinux 0x00000000 acpi_get_data_full +EXPORT_SYMBOL vmlinux 0x00000000 acpi_get_devices +EXPORT_SYMBOL vmlinux 0x00000000 acpi_get_event_resources +EXPORT_SYMBOL vmlinux 0x00000000 acpi_get_event_status +EXPORT_SYMBOL vmlinux 0x00000000 acpi_get_gpe_device +EXPORT_SYMBOL vmlinux 0x00000000 acpi_get_gpe_status +EXPORT_SYMBOL vmlinux 0x00000000 acpi_get_handle +EXPORT_SYMBOL vmlinux 0x00000000 acpi_get_hp_hw_control_from_firmware +EXPORT_SYMBOL vmlinux 0x00000000 acpi_get_irq_routing_table +EXPORT_SYMBOL vmlinux 0x00000000 acpi_get_name +EXPORT_SYMBOL vmlinux 0x00000000 acpi_get_next_object +EXPORT_SYMBOL vmlinux 0x00000000 acpi_get_node +EXPORT_SYMBOL vmlinux 0x00000000 acpi_get_object_info +EXPORT_SYMBOL vmlinux 0x00000000 acpi_get_parent +EXPORT_SYMBOL vmlinux 0x00000000 acpi_get_physical_device_location +EXPORT_SYMBOL vmlinux 0x00000000 acpi_get_possible_resources +EXPORT_SYMBOL vmlinux 0x00000000 acpi_get_sleep_type_data +EXPORT_SYMBOL vmlinux 0x00000000 acpi_get_table +EXPORT_SYMBOL vmlinux 0x00000000 acpi_get_table_by_index +EXPORT_SYMBOL vmlinux 0x00000000 acpi_get_table_header +EXPORT_SYMBOL vmlinux 0x00000000 acpi_get_type +EXPORT_SYMBOL vmlinux 0x00000000 acpi_get_vendor_resource +EXPORT_SYMBOL vmlinux 0x00000000 acpi_gpe_count +EXPORT_SYMBOL vmlinux 0x00000000 acpi_handle_printk +EXPORT_SYMBOL vmlinux 0x00000000 acpi_has_method +EXPORT_SYMBOL vmlinux 0x00000000 acpi_info +EXPORT_SYMBOL vmlinux 0x00000000 acpi_initialize_debugger +EXPORT_SYMBOL vmlinux 0x00000000 acpi_install_address_space_handler +EXPORT_SYMBOL vmlinux 0x00000000 acpi_install_fixed_event_handler +EXPORT_SYMBOL vmlinux 0x00000000 acpi_install_global_event_handler +EXPORT_SYMBOL vmlinux 0x00000000 acpi_install_gpe_block +EXPORT_SYMBOL vmlinux 0x00000000 acpi_install_gpe_handler +EXPORT_SYMBOL vmlinux 0x00000000 acpi_install_gpe_raw_handler +EXPORT_SYMBOL vmlinux 0x00000000 acpi_install_interface +EXPORT_SYMBOL vmlinux 0x00000000 acpi_install_interface_handler +EXPORT_SYMBOL vmlinux 0x00000000 acpi_install_method +EXPORT_SYMBOL vmlinux 0x00000000 acpi_install_notify_handler +EXPORT_SYMBOL vmlinux 0x00000000 acpi_install_sci_handler +EXPORT_SYMBOL vmlinux 0x00000000 acpi_install_table_handler +EXPORT_SYMBOL vmlinux 0x00000000 acpi_is_video_device +EXPORT_SYMBOL vmlinux 0x00000000 acpi_leave_sleep_state +EXPORT_SYMBOL vmlinux 0x00000000 acpi_leave_sleep_state_prep +EXPORT_SYMBOL vmlinux 0x00000000 acpi_lid_open +EXPORT_SYMBOL vmlinux 0x00000000 acpi_load_table +EXPORT_SYMBOL vmlinux 0x00000000 acpi_map_cpu +EXPORT_SYMBOL vmlinux 0x00000000 acpi_map_pxm_to_node +EXPORT_SYMBOL vmlinux 0x00000000 acpi_map_pxm_to_online_node +EXPORT_SYMBOL vmlinux 0x00000000 acpi_mark_gpe_for_wake +EXPORT_SYMBOL vmlinux 0x00000000 acpi_mask_gpe +EXPORT_SYMBOL vmlinux 0x00000000 acpi_match_device_ids +EXPORT_SYMBOL vmlinux 0x00000000 acpi_match_platform_list +EXPORT_SYMBOL vmlinux 0x00000000 acpi_notifier_call_chain +EXPORT_SYMBOL vmlinux 0x00000000 acpi_os_execute +EXPORT_SYMBOL vmlinux 0x00000000 acpi_os_get_line +EXPORT_SYMBOL vmlinux 0x00000000 acpi_os_map_generic_address +EXPORT_SYMBOL vmlinux 0x00000000 acpi_os_printf +EXPORT_SYMBOL vmlinux 0x00000000 acpi_os_read_port +EXPORT_SYMBOL vmlinux 0x00000000 acpi_os_unmap_generic_address +EXPORT_SYMBOL vmlinux 0x00000000 acpi_os_wait_events_complete +EXPORT_SYMBOL vmlinux 0x00000000 acpi_os_write_port +EXPORT_SYMBOL vmlinux 0x00000000 acpi_osi_is_win8 +EXPORT_SYMBOL vmlinux 0x00000000 acpi_pci_disabled +EXPORT_SYMBOL vmlinux 0x00000000 acpi_pci_osc_control_set +EXPORT_SYMBOL vmlinux 0x00000000 acpi_pm_device_sleep_state +EXPORT_SYMBOL vmlinux 0x00000000 acpi_processor_get_bios_limit +EXPORT_SYMBOL vmlinux 0x00000000 acpi_processor_get_psd +EXPORT_SYMBOL vmlinux 0x00000000 acpi_processor_notify_smm +EXPORT_SYMBOL vmlinux 0x00000000 acpi_processor_power_init_bm_check +EXPORT_SYMBOL vmlinux 0x00000000 acpi_processor_preregister_performance +EXPORT_SYMBOL vmlinux 0x00000000 acpi_processor_register_performance +EXPORT_SYMBOL vmlinux 0x00000000 acpi_processor_unregister_performance +EXPORT_SYMBOL vmlinux 0x00000000 acpi_purge_cached_objects +EXPORT_SYMBOL vmlinux 0x00000000 acpi_put_table +EXPORT_SYMBOL vmlinux 0x00000000 acpi_read +EXPORT_SYMBOL vmlinux 0x00000000 acpi_read_bit_register +EXPORT_SYMBOL vmlinux 0x00000000 acpi_reconfig_notifier_register +EXPORT_SYMBOL vmlinux 0x00000000 acpi_reconfig_notifier_unregister +EXPORT_SYMBOL vmlinux 0x00000000 acpi_register_debugger +EXPORT_SYMBOL vmlinux 0x00000000 acpi_register_ioapic +EXPORT_SYMBOL vmlinux 0x00000000 acpi_release_global_lock +EXPORT_SYMBOL vmlinux 0x00000000 acpi_release_mutex +EXPORT_SYMBOL vmlinux 0x00000000 acpi_remove_address_space_handler +EXPORT_SYMBOL vmlinux 0x00000000 acpi_remove_fixed_event_handler +EXPORT_SYMBOL vmlinux 0x00000000 acpi_remove_gpe_block +EXPORT_SYMBOL vmlinux 0x00000000 acpi_remove_gpe_handler +EXPORT_SYMBOL vmlinux 0x00000000 acpi_remove_interface +EXPORT_SYMBOL vmlinux 0x00000000 acpi_remove_notify_handler +EXPORT_SYMBOL vmlinux 0x00000000 acpi_remove_sci_handler +EXPORT_SYMBOL vmlinux 0x00000000 acpi_remove_table_handler +EXPORT_SYMBOL vmlinux 0x00000000 acpi_reset +EXPORT_SYMBOL vmlinux 0x00000000 acpi_resource_to_address64 +EXPORT_SYMBOL vmlinux 0x00000000 acpi_resources_are_enforced +EXPORT_SYMBOL vmlinux 0x00000000 acpi_root_dir +EXPORT_SYMBOL vmlinux 0x00000000 acpi_run_osc +EXPORT_SYMBOL vmlinux 0x00000000 acpi_set_current_resources +EXPORT_SYMBOL vmlinux 0x00000000 acpi_set_debugger_thread_id +EXPORT_SYMBOL vmlinux 0x00000000 acpi_set_firmware_waking_vector +EXPORT_SYMBOL vmlinux 0x00000000 acpi_set_gpe +EXPORT_SYMBOL vmlinux 0x00000000 acpi_set_gpe_wake_mask +EXPORT_SYMBOL vmlinux 0x00000000 acpi_setup_gpe_for_wake +EXPORT_SYMBOL vmlinux 0x00000000 acpi_tb_install_and_load_table +EXPORT_SYMBOL vmlinux 0x00000000 acpi_tb_unload_table +EXPORT_SYMBOL vmlinux 0x00000000 acpi_terminate_debugger +EXPORT_SYMBOL vmlinux 0x00000000 acpi_trace_point +EXPORT_SYMBOL vmlinux 0x00000000 acpi_unload_parent_table +EXPORT_SYMBOL vmlinux 0x00000000 acpi_unload_table +EXPORT_SYMBOL vmlinux 0x00000000 acpi_unmap_cpu +EXPORT_SYMBOL vmlinux 0x00000000 acpi_unregister_debugger +EXPORT_SYMBOL vmlinux 0x00000000 acpi_unregister_ioapic +EXPORT_SYMBOL vmlinux 0x00000000 acpi_update_all_gpes +EXPORT_SYMBOL vmlinux 0x00000000 acpi_ut_exit +EXPORT_SYMBOL vmlinux 0x00000000 acpi_ut_status_exit +EXPORT_SYMBOL vmlinux 0x00000000 acpi_ut_trace +EXPORT_SYMBOL vmlinux 0x00000000 acpi_ut_value_exit +EXPORT_SYMBOL vmlinux 0x00000000 acpi_video_backlight_string +EXPORT_SYMBOL vmlinux 0x00000000 acpi_walk_namespace +EXPORT_SYMBOL vmlinux 0x00000000 acpi_walk_resource_buffer +EXPORT_SYMBOL vmlinux 0x00000000 acpi_walk_resources +EXPORT_SYMBOL vmlinux 0x00000000 acpi_warning +EXPORT_SYMBOL vmlinux 0x00000000 acpi_write +EXPORT_SYMBOL vmlinux 0x00000000 acpi_write_bit_register +EXPORT_SYMBOL vmlinux 0x00000000 add_device_randomness +EXPORT_SYMBOL vmlinux 0x00000000 add_random_ready_callback +EXPORT_SYMBOL vmlinux 0x00000000 add_taint +EXPORT_SYMBOL vmlinux 0x00000000 add_timer +EXPORT_SYMBOL vmlinux 0x00000000 add_to_page_cache_locked +EXPORT_SYMBOL vmlinux 0x00000000 add_to_pipe +EXPORT_SYMBOL vmlinux 0x00000000 add_wait_queue +EXPORT_SYMBOL vmlinux 0x00000000 add_wait_queue_exclusive +EXPORT_SYMBOL vmlinux 0x00000000 address_space_init_once +EXPORT_SYMBOL vmlinux 0x00000000 adjust_managed_page_count +EXPORT_SYMBOL vmlinux 0x00000000 adjust_resource +EXPORT_SYMBOL vmlinux 0x00000000 aes_decrypt +EXPORT_SYMBOL vmlinux 0x00000000 aes_encrypt +EXPORT_SYMBOL vmlinux 0x00000000 aes_expandkey +EXPORT_SYMBOL vmlinux 0x00000000 agp3_generic_cleanup +EXPORT_SYMBOL vmlinux 0x00000000 agp3_generic_configure +EXPORT_SYMBOL vmlinux 0x00000000 agp3_generic_fetch_size +EXPORT_SYMBOL vmlinux 0x00000000 agp3_generic_sizes +EXPORT_SYMBOL vmlinux 0x00000000 agp3_generic_tlbflush +EXPORT_SYMBOL vmlinux 0x00000000 agp_alloc_bridge +EXPORT_SYMBOL vmlinux 0x00000000 agp_alloc_page_array +EXPORT_SYMBOL vmlinux 0x00000000 agp_allocate_memory +EXPORT_SYMBOL vmlinux 0x00000000 agp_backend_acquire +EXPORT_SYMBOL vmlinux 0x00000000 agp_backend_release +EXPORT_SYMBOL vmlinux 0x00000000 agp_bind_memory +EXPORT_SYMBOL vmlinux 0x00000000 agp_bridge +EXPORT_SYMBOL vmlinux 0x00000000 agp_bridges +EXPORT_SYMBOL vmlinux 0x00000000 agp_collect_device_status +EXPORT_SYMBOL vmlinux 0x00000000 agp_copy_info +EXPORT_SYMBOL vmlinux 0x00000000 agp_create_memory +EXPORT_SYMBOL vmlinux 0x00000000 agp_device_command +EXPORT_SYMBOL vmlinux 0x00000000 agp_enable +EXPORT_SYMBOL vmlinux 0x00000000 agp_find_bridge +EXPORT_SYMBOL vmlinux 0x00000000 agp_free_key +EXPORT_SYMBOL vmlinux 0x00000000 agp_free_memory +EXPORT_SYMBOL vmlinux 0x00000000 agp_generic_alloc_by_type +EXPORT_SYMBOL vmlinux 0x00000000 agp_generic_alloc_page +EXPORT_SYMBOL vmlinux 0x00000000 agp_generic_alloc_pages +EXPORT_SYMBOL vmlinux 0x00000000 agp_generic_alloc_user +EXPORT_SYMBOL vmlinux 0x00000000 agp_generic_create_gatt_table +EXPORT_SYMBOL vmlinux 0x00000000 agp_generic_destroy_page +EXPORT_SYMBOL vmlinux 0x00000000 agp_generic_destroy_pages +EXPORT_SYMBOL vmlinux 0x00000000 agp_generic_enable +EXPORT_SYMBOL vmlinux 0x00000000 agp_generic_free_by_type +EXPORT_SYMBOL vmlinux 0x00000000 agp_generic_free_gatt_table +EXPORT_SYMBOL vmlinux 0x00000000 agp_generic_insert_memory +EXPORT_SYMBOL vmlinux 0x00000000 agp_generic_mask_memory +EXPORT_SYMBOL vmlinux 0x00000000 agp_generic_remove_memory +EXPORT_SYMBOL vmlinux 0x00000000 agp_generic_type_to_mask_type +EXPORT_SYMBOL vmlinux 0x00000000 agp_off +EXPORT_SYMBOL vmlinux 0x00000000 agp_put_bridge +EXPORT_SYMBOL vmlinux 0x00000000 agp_try_unsupported_boot +EXPORT_SYMBOL vmlinux 0x00000000 agp_unbind_memory +EXPORT_SYMBOL vmlinux 0x00000000 alloc_anon_inode +EXPORT_SYMBOL vmlinux 0x00000000 alloc_buffer_head +EXPORT_SYMBOL vmlinux 0x00000000 alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0x00000000 alloc_cpu_rmap +EXPORT_SYMBOL vmlinux 0x00000000 alloc_cpumask_var +EXPORT_SYMBOL vmlinux 0x00000000 alloc_cpumask_var_node +EXPORT_SYMBOL vmlinux 0x00000000 alloc_etherdev_mqs +EXPORT_SYMBOL vmlinux 0x00000000 alloc_fcdev +EXPORT_SYMBOL vmlinux 0x00000000 alloc_fddidev +EXPORT_SYMBOL vmlinux 0x00000000 alloc_file_pseudo +EXPORT_SYMBOL vmlinux 0x00000000 alloc_iova_mem +EXPORT_SYMBOL vmlinux 0x00000000 alloc_netdev_mqs +EXPORT_SYMBOL vmlinux 0x00000000 alloc_pages_current +EXPORT_SYMBOL vmlinux 0x00000000 alloc_pages_exact +EXPORT_SYMBOL vmlinux 0x00000000 alloc_pages_vma +EXPORT_SYMBOL vmlinux 0x00000000 alloc_skb_with_frags +EXPORT_SYMBOL vmlinux 0x00000000 alloc_xenballooned_pages +EXPORT_SYMBOL vmlinux 0x00000000 allocate_resource +EXPORT_SYMBOL vmlinux 0x00000000 always_delete_dentry +EXPORT_SYMBOL vmlinux 0x00000000 amd_iommu_activate_guest_mode +EXPORT_SYMBOL vmlinux 0x00000000 amd_iommu_complete_ppr +EXPORT_SYMBOL vmlinux 0x00000000 amd_iommu_deactivate_guest_mode +EXPORT_SYMBOL vmlinux 0x00000000 amd_iommu_device_info +EXPORT_SYMBOL vmlinux 0x00000000 amd_iommu_domain_clear_gcr3 +EXPORT_SYMBOL vmlinux 0x00000000 amd_iommu_domain_direct_map +EXPORT_SYMBOL vmlinux 0x00000000 amd_iommu_domain_enable_v2 +EXPORT_SYMBOL vmlinux 0x00000000 amd_iommu_domain_set_gcr3 +EXPORT_SYMBOL vmlinux 0x00000000 amd_iommu_enable_device_erratum +EXPORT_SYMBOL vmlinux 0x00000000 amd_iommu_flush_page +EXPORT_SYMBOL vmlinux 0x00000000 amd_iommu_flush_tlb +EXPORT_SYMBOL vmlinux 0x00000000 amd_iommu_get_v2_domain +EXPORT_SYMBOL vmlinux 0x00000000 amd_iommu_pc_get_max_banks +EXPORT_SYMBOL vmlinux 0x00000000 amd_iommu_pc_get_max_counters +EXPORT_SYMBOL vmlinux 0x00000000 amd_iommu_pc_get_reg +EXPORT_SYMBOL vmlinux 0x00000000 amd_iommu_pc_set_reg +EXPORT_SYMBOL vmlinux 0x00000000 amd_iommu_pc_supported +EXPORT_SYMBOL vmlinux 0x00000000 amd_iommu_register_ga_log_notifier +EXPORT_SYMBOL vmlinux 0x00000000 amd_iommu_register_ppr_notifier +EXPORT_SYMBOL vmlinux 0x00000000 amd_iommu_rlookup_table +EXPORT_SYMBOL vmlinux 0x00000000 amd_iommu_unregister_ppr_notifier +EXPORT_SYMBOL vmlinux 0x00000000 amd_iommu_update_ga +EXPORT_SYMBOL vmlinux 0x00000000 amd_iommu_v2_supported +EXPORT_SYMBOL vmlinux 0x00000000 arch_debugfs_dir +EXPORT_SYMBOL vmlinux 0x00000000 arch_io_free_memtype_wc +EXPORT_SYMBOL vmlinux 0x00000000 arch_io_reserve_memtype_wc +EXPORT_SYMBOL vmlinux 0x00000000 arch_phys_wc_add +EXPORT_SYMBOL vmlinux 0x00000000 arch_phys_wc_del +EXPORT_SYMBOL vmlinux 0x00000000 arch_register_cpu +EXPORT_SYMBOL vmlinux 0x00000000 arch_touch_nmi_watchdog +EXPORT_SYMBOL vmlinux 0x00000000 arch_unregister_cpu +EXPORT_SYMBOL vmlinux 0x00000000 argv_free +EXPORT_SYMBOL vmlinux 0x00000000 argv_split +EXPORT_SYMBOL vmlinux 0x00000000 arp_create +EXPORT_SYMBOL vmlinux 0x00000000 arp_send +EXPORT_SYMBOL vmlinux 0x00000000 arp_tbl +EXPORT_SYMBOL vmlinux 0x00000000 arp_xmit +EXPORT_SYMBOL vmlinux 0x00000000 ata_dev_printk +EXPORT_SYMBOL vmlinux 0x00000000 ata_link_printk +EXPORT_SYMBOL vmlinux 0x00000000 ata_port_printk +EXPORT_SYMBOL vmlinux 0x00000000 ata_print_version +EXPORT_SYMBOL vmlinux 0x00000000 ata_scsi_cmd_error_handler +EXPORT_SYMBOL vmlinux 0x00000000 ata_std_end_eh +EXPORT_SYMBOL vmlinux 0x00000000 atomic_dec_and_mutex_lock +EXPORT_SYMBOL vmlinux 0x00000000 audit_log +EXPORT_SYMBOL vmlinux 0x00000000 audit_log_end +EXPORT_SYMBOL vmlinux 0x00000000 audit_log_format +EXPORT_SYMBOL vmlinux 0x00000000 audit_log_start +EXPORT_SYMBOL vmlinux 0x00000000 audit_log_task_context +EXPORT_SYMBOL vmlinux 0x00000000 audit_log_task_info +EXPORT_SYMBOL vmlinux 0x00000000 autoremove_wake_function +EXPORT_SYMBOL vmlinux 0x00000000 avail_to_resrv_perfctr_nmi_bit +EXPORT_SYMBOL vmlinux 0x00000000 avenrun +EXPORT_SYMBOL vmlinux 0x00000000 backlight_device_get_by_type +EXPORT_SYMBOL vmlinux 0x00000000 backlight_device_register +EXPORT_SYMBOL vmlinux 0x00000000 backlight_device_set_brightness +EXPORT_SYMBOL vmlinux 0x00000000 backlight_device_unregister +EXPORT_SYMBOL vmlinux 0x00000000 backlight_force_update +EXPORT_SYMBOL vmlinux 0x00000000 backlight_register_notifier +EXPORT_SYMBOL vmlinux 0x00000000 backlight_unregister_notifier +EXPORT_SYMBOL vmlinux 0x00000000 balance_dirty_pages_ratelimited +EXPORT_SYMBOL vmlinux 0x00000000 bcmp +EXPORT_SYMBOL vmlinux 0x00000000 bd_abort_claiming +EXPORT_SYMBOL vmlinux 0x00000000 bd_finish_claiming +EXPORT_SYMBOL vmlinux 0x00000000 bd_set_size +EXPORT_SYMBOL vmlinux 0x00000000 bd_start_claiming +EXPORT_SYMBOL vmlinux 0x00000000 bdev_dax_pgoff +EXPORT_SYMBOL vmlinux 0x00000000 bdev_read_only +EXPORT_SYMBOL vmlinux 0x00000000 bdev_stack_limits +EXPORT_SYMBOL vmlinux 0x00000000 bdevname +EXPORT_SYMBOL vmlinux 0x00000000 bdget +EXPORT_SYMBOL vmlinux 0x00000000 bdget_disk +EXPORT_SYMBOL vmlinux 0x00000000 bdgrab +EXPORT_SYMBOL vmlinux 0x00000000 bdi_alloc_node +EXPORT_SYMBOL vmlinux 0x00000000 bdi_put +EXPORT_SYMBOL vmlinux 0x00000000 bdi_register +EXPORT_SYMBOL vmlinux 0x00000000 bdi_register_owner +EXPORT_SYMBOL vmlinux 0x00000000 bdi_register_va +EXPORT_SYMBOL vmlinux 0x00000000 bdi_set_max_ratio +EXPORT_SYMBOL vmlinux 0x00000000 bdput +EXPORT_SYMBOL vmlinux 0x00000000 bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x00000000 bh_submit_read +EXPORT_SYMBOL vmlinux 0x00000000 bh_uptodate_or_lock +EXPORT_SYMBOL vmlinux 0x00000000 bin2hex +EXPORT_SYMBOL vmlinux 0x00000000 bio_add_page +EXPORT_SYMBOL vmlinux 0x00000000 bio_add_pc_page +EXPORT_SYMBOL vmlinux 0x00000000 bio_advance +EXPORT_SYMBOL vmlinux 0x00000000 bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0x00000000 bio_chain +EXPORT_SYMBOL vmlinux 0x00000000 bio_clone_fast +EXPORT_SYMBOL vmlinux 0x00000000 bio_copy_data +EXPORT_SYMBOL vmlinux 0x00000000 bio_copy_data_iter +EXPORT_SYMBOL vmlinux 0x00000000 bio_devname +EXPORT_SYMBOL vmlinux 0x00000000 bio_endio +EXPORT_SYMBOL vmlinux 0x00000000 bio_free_pages +EXPORT_SYMBOL vmlinux 0x00000000 bio_init +EXPORT_SYMBOL vmlinux 0x00000000 bio_integrity_add_page +EXPORT_SYMBOL vmlinux 0x00000000 bio_integrity_alloc +EXPORT_SYMBOL vmlinux 0x00000000 bio_integrity_clone +EXPORT_SYMBOL vmlinux 0x00000000 bio_integrity_prep +EXPORT_SYMBOL vmlinux 0x00000000 bio_integrity_trim +EXPORT_SYMBOL vmlinux 0x00000000 bio_list_copy_data +EXPORT_SYMBOL vmlinux 0x00000000 bio_put +EXPORT_SYMBOL vmlinux 0x00000000 bio_reset +EXPORT_SYMBOL vmlinux 0x00000000 bio_split +EXPORT_SYMBOL vmlinux 0x00000000 bio_uninit +EXPORT_SYMBOL vmlinux 0x00000000 bioset_exit +EXPORT_SYMBOL vmlinux 0x00000000 bioset_init +EXPORT_SYMBOL vmlinux 0x00000000 bioset_init_from_src +EXPORT_SYMBOL vmlinux 0x00000000 bioset_integrity_create +EXPORT_SYMBOL vmlinux 0x00000000 bit_wait +EXPORT_SYMBOL vmlinux 0x00000000 bit_wait_io +EXPORT_SYMBOL vmlinux 0x00000000 bit_waitqueue +EXPORT_SYMBOL vmlinux 0x00000000 bitmap_alloc +EXPORT_SYMBOL vmlinux 0x00000000 bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x00000000 bitmap_cut +EXPORT_SYMBOL vmlinux 0x00000000 bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x00000000 bitmap_find_next_zero_area_off +EXPORT_SYMBOL vmlinux 0x00000000 bitmap_free +EXPORT_SYMBOL vmlinux 0x00000000 bitmap_from_arr32 +EXPORT_SYMBOL vmlinux 0x00000000 bitmap_parse +EXPORT_SYMBOL vmlinux 0x00000000 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x00000000 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x00000000 bitmap_parselist_user +EXPORT_SYMBOL vmlinux 0x00000000 bitmap_print_to_pagebuf +EXPORT_SYMBOL vmlinux 0x00000000 bitmap_release_region +EXPORT_SYMBOL vmlinux 0x00000000 bitmap_to_arr32 +EXPORT_SYMBOL vmlinux 0x00000000 bitmap_zalloc +EXPORT_SYMBOL vmlinux 0x00000000 blackhole_netdev +EXPORT_SYMBOL vmlinux 0x00000000 blk_alloc_queue +EXPORT_SYMBOL vmlinux 0x00000000 blk_alloc_queue_node +EXPORT_SYMBOL vmlinux 0x00000000 blk_check_plugged +EXPORT_SYMBOL vmlinux 0x00000000 blk_cleanup_queue +EXPORT_SYMBOL vmlinux 0x00000000 blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0x00000000 blk_execute_rq +EXPORT_SYMBOL vmlinux 0x00000000 blk_finish_plug +EXPORT_SYMBOL vmlinux 0x00000000 blk_get_queue +EXPORT_SYMBOL vmlinux 0x00000000 blk_get_request +EXPORT_SYMBOL vmlinux 0x00000000 blk_integrity_compare +EXPORT_SYMBOL vmlinux 0x00000000 blk_integrity_merge_bio +EXPORT_SYMBOL vmlinux 0x00000000 blk_integrity_merge_rq +EXPORT_SYMBOL vmlinux 0x00000000 blk_integrity_register +EXPORT_SYMBOL vmlinux 0x00000000 blk_integrity_unregister +EXPORT_SYMBOL vmlinux 0x00000000 blk_limits_io_min +EXPORT_SYMBOL vmlinux 0x00000000 blk_limits_io_opt +EXPORT_SYMBOL vmlinux 0x00000000 blk_lookup_devt +EXPORT_SYMBOL vmlinux 0x00000000 blk_max_low_pfn +EXPORT_SYMBOL vmlinux 0x00000000 blk_mq_alloc_request +EXPORT_SYMBOL vmlinux 0x00000000 blk_mq_alloc_tag_set +EXPORT_SYMBOL vmlinux 0x00000000 blk_mq_complete_request +EXPORT_SYMBOL vmlinux 0x00000000 blk_mq_delay_kick_requeue_list +EXPORT_SYMBOL vmlinux 0x00000000 blk_mq_delay_run_hw_queue +EXPORT_SYMBOL vmlinux 0x00000000 blk_mq_end_request +EXPORT_SYMBOL vmlinux 0x00000000 blk_mq_free_tag_set +EXPORT_SYMBOL vmlinux 0x00000000 blk_mq_init_allocated_queue +EXPORT_SYMBOL vmlinux 0x00000000 blk_mq_init_queue +EXPORT_SYMBOL vmlinux 0x00000000 blk_mq_init_sq_queue +EXPORT_SYMBOL vmlinux 0x00000000 blk_mq_kick_requeue_list +EXPORT_SYMBOL vmlinux 0x00000000 blk_mq_queue_stopped +EXPORT_SYMBOL vmlinux 0x00000000 blk_mq_requeue_request +EXPORT_SYMBOL vmlinux 0x00000000 blk_mq_rq_cpu +EXPORT_SYMBOL vmlinux 0x00000000 blk_mq_run_hw_queue +EXPORT_SYMBOL vmlinux 0x00000000 blk_mq_run_hw_queues +EXPORT_SYMBOL vmlinux 0x00000000 blk_mq_start_hw_queue +EXPORT_SYMBOL vmlinux 0x00000000 blk_mq_start_hw_queues +EXPORT_SYMBOL vmlinux 0x00000000 blk_mq_start_request +EXPORT_SYMBOL vmlinux 0x00000000 blk_mq_start_stopped_hw_queues +EXPORT_SYMBOL vmlinux 0x00000000 blk_mq_stop_hw_queue +EXPORT_SYMBOL vmlinux 0x00000000 blk_mq_stop_hw_queues +EXPORT_SYMBOL vmlinux 0x00000000 blk_mq_tag_to_rq +EXPORT_SYMBOL vmlinux 0x00000000 blk_mq_tagset_busy_iter +EXPORT_SYMBOL vmlinux 0x00000000 blk_mq_tagset_wait_completed_request +EXPORT_SYMBOL vmlinux 0x00000000 blk_mq_unique_tag +EXPORT_SYMBOL vmlinux 0x00000000 blk_pm_runtime_init +EXPORT_SYMBOL vmlinux 0x00000000 blk_post_runtime_resume +EXPORT_SYMBOL vmlinux 0x00000000 blk_post_runtime_suspend +EXPORT_SYMBOL vmlinux 0x00000000 blk_pre_runtime_resume +EXPORT_SYMBOL vmlinux 0x00000000 blk_pre_runtime_suspend +EXPORT_SYMBOL vmlinux 0x00000000 blk_put_queue +EXPORT_SYMBOL vmlinux 0x00000000 blk_put_request +EXPORT_SYMBOL vmlinux 0x00000000 blk_queue_alignment_offset +EXPORT_SYMBOL vmlinux 0x00000000 blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0x00000000 blk_queue_chunk_sectors +EXPORT_SYMBOL vmlinux 0x00000000 blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0x00000000 blk_queue_flag_clear +EXPORT_SYMBOL vmlinux 0x00000000 blk_queue_flag_set +EXPORT_SYMBOL vmlinux 0x00000000 blk_queue_io_min +EXPORT_SYMBOL vmlinux 0x00000000 blk_queue_io_opt +EXPORT_SYMBOL vmlinux 0x00000000 blk_queue_logical_block_size +EXPORT_SYMBOL vmlinux 0x00000000 blk_queue_make_request +EXPORT_SYMBOL vmlinux 0x00000000 blk_queue_max_discard_sectors +EXPORT_SYMBOL vmlinux 0x00000000 blk_queue_max_hw_sectors +EXPORT_SYMBOL vmlinux 0x00000000 blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0x00000000 blk_queue_max_segments +EXPORT_SYMBOL vmlinux 0x00000000 blk_queue_max_write_same_sectors +EXPORT_SYMBOL vmlinux 0x00000000 blk_queue_max_write_zeroes_sectors +EXPORT_SYMBOL vmlinux 0x00000000 blk_queue_physical_block_size +EXPORT_SYMBOL vmlinux 0x00000000 blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0x00000000 blk_queue_split +EXPORT_SYMBOL vmlinux 0x00000000 blk_queue_stack_limits +EXPORT_SYMBOL vmlinux 0x00000000 blk_queue_update_dma_alignment +EXPORT_SYMBOL vmlinux 0x00000000 blk_queue_update_dma_pad +EXPORT_SYMBOL vmlinux 0x00000000 blk_queue_virt_boundary +EXPORT_SYMBOL vmlinux 0x00000000 blk_register_region +EXPORT_SYMBOL vmlinux 0x00000000 blk_rq_append_bio +EXPORT_SYMBOL vmlinux 0x00000000 blk_rq_count_integrity_sg +EXPORT_SYMBOL vmlinux 0x00000000 blk_rq_init +EXPORT_SYMBOL vmlinux 0x00000000 blk_rq_map_integrity_sg +EXPORT_SYMBOL vmlinux 0x00000000 blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0x00000000 blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0x00000000 blk_rq_map_user +EXPORT_SYMBOL vmlinux 0x00000000 blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0x00000000 blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0x00000000 blk_set_default_limits +EXPORT_SYMBOL vmlinux 0x00000000 blk_set_queue_depth +EXPORT_SYMBOL vmlinux 0x00000000 blk_set_runtime_active +EXPORT_SYMBOL vmlinux 0x00000000 blk_set_stacking_limits +EXPORT_SYMBOL vmlinux 0x00000000 blk_stack_limits +EXPORT_SYMBOL vmlinux 0x00000000 blk_start_plug +EXPORT_SYMBOL vmlinux 0x00000000 blk_sync_queue +EXPORT_SYMBOL vmlinux 0x00000000 blk_unregister_region +EXPORT_SYMBOL vmlinux 0x00000000 blk_verify_command +EXPORT_SYMBOL vmlinux 0x00000000 blkdev_compat_ptr_ioctl +EXPORT_SYMBOL vmlinux 0x00000000 blkdev_fsync +EXPORT_SYMBOL vmlinux 0x00000000 blkdev_get +EXPORT_SYMBOL vmlinux 0x00000000 blkdev_get_by_dev +EXPORT_SYMBOL vmlinux 0x00000000 blkdev_get_by_path +EXPORT_SYMBOL vmlinux 0x00000000 blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0x00000000 blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0x00000000 blkdev_issue_write_same +EXPORT_SYMBOL vmlinux 0x00000000 blkdev_issue_zeroout +EXPORT_SYMBOL vmlinux 0x00000000 blkdev_put +EXPORT_SYMBOL vmlinux 0x00000000 block_commit_write +EXPORT_SYMBOL vmlinux 0x00000000 block_invalidatepage +EXPORT_SYMBOL vmlinux 0x00000000 block_is_partially_uptodate +EXPORT_SYMBOL vmlinux 0x00000000 block_page_mkwrite +EXPORT_SYMBOL vmlinux 0x00000000 block_read_full_page +EXPORT_SYMBOL vmlinux 0x00000000 block_truncate_page +EXPORT_SYMBOL vmlinux 0x00000000 block_write_begin +EXPORT_SYMBOL vmlinux 0x00000000 block_write_end +EXPORT_SYMBOL vmlinux 0x00000000 block_write_full_page +EXPORT_SYMBOL vmlinux 0x00000000 bmap +EXPORT_SYMBOL vmlinux 0x00000000 boot_cpu_data +EXPORT_SYMBOL vmlinux 0x00000000 boot_option_idle_override +EXPORT_SYMBOL vmlinux 0x00000000 bpf_dispatcher_xdpfunc +EXPORT_SYMBOL vmlinux 0x00000000 bpf_prog_get_type_path +EXPORT_SYMBOL vmlinux 0x00000000 bpf_stats_enabled_key +EXPORT_SYMBOL vmlinux 0x00000000 bprm_change_interp +EXPORT_SYMBOL vmlinux 0x00000000 brioctl_set +EXPORT_SYMBOL vmlinux 0x00000000 bsearch +EXPORT_SYMBOL vmlinux 0x00000000 buffer_check_dirty_writeback +EXPORT_SYMBOL vmlinux 0x00000000 buffer_migrate_page +EXPORT_SYMBOL vmlinux 0x00000000 build_skb +EXPORT_SYMBOL vmlinux 0x00000000 build_skb_around +EXPORT_SYMBOL vmlinux 0x00000000 cad_pid +EXPORT_SYMBOL vmlinux 0x00000000 call_blocking_lsm_notifier +EXPORT_SYMBOL vmlinux 0x00000000 call_fib_notifier +EXPORT_SYMBOL vmlinux 0x00000000 call_fib_notifiers +EXPORT_SYMBOL vmlinux 0x00000000 call_netdevice_notifiers +EXPORT_SYMBOL vmlinux 0x00000000 call_usermodehelper +EXPORT_SYMBOL vmlinux 0x00000000 call_usermodehelper_exec +EXPORT_SYMBOL vmlinux 0x00000000 call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0x00000000 can_do_mlock +EXPORT_SYMBOL vmlinux 0x00000000 can_nice +EXPORT_SYMBOL vmlinux 0x00000000 cancel_delayed_work +EXPORT_SYMBOL vmlinux 0x00000000 cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0x00000000 capable +EXPORT_SYMBOL vmlinux 0x00000000 capable_wrt_inode_uidgid +EXPORT_SYMBOL vmlinux 0x00000000 cdc_parse_cdc_header +EXPORT_SYMBOL vmlinux 0x00000000 cdev_add +EXPORT_SYMBOL vmlinux 0x00000000 cdev_alloc +EXPORT_SYMBOL vmlinux 0x00000000 cdev_del +EXPORT_SYMBOL vmlinux 0x00000000 cdev_device_add +EXPORT_SYMBOL vmlinux 0x00000000 cdev_device_del +EXPORT_SYMBOL vmlinux 0x00000000 cdev_init +EXPORT_SYMBOL vmlinux 0x00000000 cdev_set_parent +EXPORT_SYMBOL vmlinux 0x00000000 cdrom_check_events +EXPORT_SYMBOL vmlinux 0x00000000 cdrom_dummy_generic_packet +EXPORT_SYMBOL vmlinux 0x00000000 cdrom_get_last_written +EXPORT_SYMBOL vmlinux 0x00000000 cdrom_get_media_event +EXPORT_SYMBOL vmlinux 0x00000000 cdrom_ioctl +EXPORT_SYMBOL vmlinux 0x00000000 cdrom_media_changed +EXPORT_SYMBOL vmlinux 0x00000000 cdrom_mode_select +EXPORT_SYMBOL vmlinux 0x00000000 cdrom_mode_sense +EXPORT_SYMBOL vmlinux 0x00000000 cdrom_number_of_slots +EXPORT_SYMBOL vmlinux 0x00000000 cdrom_open +EXPORT_SYMBOL vmlinux 0x00000000 cdrom_release +EXPORT_SYMBOL vmlinux 0x00000000 cfb_copyarea +EXPORT_SYMBOL vmlinux 0x00000000 cfb_fillrect +EXPORT_SYMBOL vmlinux 0x00000000 cfb_imageblit +EXPORT_SYMBOL vmlinux 0x00000000 cgroup_bpf_enabled_key +EXPORT_SYMBOL vmlinux 0x00000000 chacha_block_generic +EXPORT_SYMBOL vmlinux 0x00000000 check_disk_change +EXPORT_SYMBOL vmlinux 0x00000000 check_signature +EXPORT_SYMBOL vmlinux 0x00000000 check_zeroed_user +EXPORT_SYMBOL vmlinux 0x00000000 clean_bdev_aliases +EXPORT_SYMBOL vmlinux 0x00000000 cleancache_register_ops +EXPORT_SYMBOL vmlinux 0x00000000 clear_inode +EXPORT_SYMBOL vmlinux 0x00000000 clear_nlink +EXPORT_SYMBOL vmlinux 0x00000000 clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0x00000000 clear_user +EXPORT_SYMBOL vmlinux 0x00000000 clear_wb_congested +EXPORT_SYMBOL vmlinux 0x00000000 clk_add_alias +EXPORT_SYMBOL vmlinux 0x00000000 clk_bulk_get +EXPORT_SYMBOL vmlinux 0x00000000 clk_bulk_get_all +EXPORT_SYMBOL vmlinux 0x00000000 clk_bulk_put_all +EXPORT_SYMBOL vmlinux 0x00000000 clk_get +EXPORT_SYMBOL vmlinux 0x00000000 clk_get_sys +EXPORT_SYMBOL vmlinux 0x00000000 clk_hw_register_clkdev +EXPORT_SYMBOL vmlinux 0x00000000 clk_put +EXPORT_SYMBOL vmlinux 0x00000000 clk_register_clkdev +EXPORT_SYMBOL vmlinux 0x00000000 clkdev_add +EXPORT_SYMBOL vmlinux 0x00000000 clkdev_alloc +EXPORT_SYMBOL vmlinux 0x00000000 clkdev_drop +EXPORT_SYMBOL vmlinux 0x00000000 clkdev_hw_alloc +EXPORT_SYMBOL vmlinux 0x00000000 clock_t_to_jiffies +EXPORT_SYMBOL vmlinux 0x00000000 clocksource_change_rating +EXPORT_SYMBOL vmlinux 0x00000000 clocksource_unregister +EXPORT_SYMBOL vmlinux 0x00000000 cmdline_parts_find +EXPORT_SYMBOL vmlinux 0x00000000 cmdline_parts_free +EXPORT_SYMBOL vmlinux 0x00000000 cmdline_parts_parse +EXPORT_SYMBOL vmlinux 0x00000000 cmdline_parts_set +EXPORT_SYMBOL vmlinux 0x00000000 color_table +EXPORT_SYMBOL vmlinux 0x00000000 commit_creds +EXPORT_SYMBOL vmlinux 0x00000000 compat_import_iovec +EXPORT_SYMBOL vmlinux 0x00000000 compat_ip_getsockopt +EXPORT_SYMBOL vmlinux 0x00000000 compat_ip_setsockopt +EXPORT_SYMBOL vmlinux 0x00000000 compat_ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0x00000000 compat_ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0x00000000 compat_mc_getsockopt +EXPORT_SYMBOL vmlinux 0x00000000 compat_mc_setsockopt +EXPORT_SYMBOL vmlinux 0x00000000 compat_nf_getsockopt +EXPORT_SYMBOL vmlinux 0x00000000 compat_nf_setsockopt +EXPORT_SYMBOL vmlinux 0x00000000 compat_ptr_ioctl +EXPORT_SYMBOL vmlinux 0x00000000 compat_sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x00000000 compat_sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0x00000000 compat_tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x00000000 compat_tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x00000000 complete +EXPORT_SYMBOL vmlinux 0x00000000 complete_all +EXPORT_SYMBOL vmlinux 0x00000000 complete_and_exit +EXPORT_SYMBOL vmlinux 0x00000000 complete_request_key +EXPORT_SYMBOL vmlinux 0x00000000 completion_done +EXPORT_SYMBOL vmlinux 0x00000000 component_match_add_release +EXPORT_SYMBOL vmlinux 0x00000000 component_match_add_typed +EXPORT_SYMBOL vmlinux 0x00000000 con_copy_unimap +EXPORT_SYMBOL vmlinux 0x00000000 con_is_bound +EXPORT_SYMBOL vmlinux 0x00000000 con_is_visible +EXPORT_SYMBOL vmlinux 0x00000000 con_set_default_unimap +EXPORT_SYMBOL vmlinux 0x00000000 config_group_find_item +EXPORT_SYMBOL vmlinux 0x00000000 config_group_init +EXPORT_SYMBOL vmlinux 0x00000000 config_group_init_type_name +EXPORT_SYMBOL vmlinux 0x00000000 config_item_get +EXPORT_SYMBOL vmlinux 0x00000000 config_item_get_unless_zero +EXPORT_SYMBOL vmlinux 0x00000000 config_item_init_type_name +EXPORT_SYMBOL vmlinux 0x00000000 config_item_put +EXPORT_SYMBOL vmlinux 0x00000000 config_item_set_name +EXPORT_SYMBOL vmlinux 0x00000000 configfs_depend_item +EXPORT_SYMBOL vmlinux 0x00000000 configfs_depend_item_unlocked +EXPORT_SYMBOL vmlinux 0x00000000 configfs_register_default_group +EXPORT_SYMBOL vmlinux 0x00000000 configfs_register_group +EXPORT_SYMBOL vmlinux 0x00000000 configfs_register_subsystem +EXPORT_SYMBOL vmlinux 0x00000000 configfs_remove_default_groups +EXPORT_SYMBOL vmlinux 0x00000000 configfs_undepend_item +EXPORT_SYMBOL vmlinux 0x00000000 configfs_unregister_default_group +EXPORT_SYMBOL vmlinux 0x00000000 configfs_unregister_group +EXPORT_SYMBOL vmlinux 0x00000000 configfs_unregister_subsystem +EXPORT_SYMBOL vmlinux 0x00000000 congestion_wait +EXPORT_SYMBOL vmlinux 0x00000000 console_blank_hook +EXPORT_SYMBOL vmlinux 0x00000000 console_blanked +EXPORT_SYMBOL vmlinux 0x00000000 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0x00000000 console_lock +EXPORT_SYMBOL vmlinux 0x00000000 console_set_on_cmdline +EXPORT_SYMBOL vmlinux 0x00000000 console_start +EXPORT_SYMBOL vmlinux 0x00000000 console_stop +EXPORT_SYMBOL vmlinux 0x00000000 console_suspend_enabled +EXPORT_SYMBOL vmlinux 0x00000000 console_trylock +EXPORT_SYMBOL vmlinux 0x00000000 console_unlock +EXPORT_SYMBOL vmlinux 0x00000000 consume_skb +EXPORT_SYMBOL vmlinux 0x00000000 cont_write_begin +EXPORT_SYMBOL vmlinux 0x00000000 convert_art_ns_to_tsc +EXPORT_SYMBOL vmlinux 0x00000000 convert_art_to_tsc +EXPORT_SYMBOL vmlinux 0x00000000 cookie_ecn_ok +EXPORT_SYMBOL vmlinux 0x00000000 cookie_timestamp_decode +EXPORT_SYMBOL vmlinux 0x00000000 copy_page +EXPORT_SYMBOL vmlinux 0x00000000 copy_page_from_iter +EXPORT_SYMBOL vmlinux 0x00000000 copy_page_to_iter +EXPORT_SYMBOL vmlinux 0x00000000 copy_strings_kernel +EXPORT_SYMBOL vmlinux 0x00000000 copy_user_enhanced_fast_string +EXPORT_SYMBOL vmlinux 0x00000000 copy_user_generic_string +EXPORT_SYMBOL vmlinux 0x00000000 copy_user_generic_unrolled +EXPORT_SYMBOL vmlinux 0x00000000 cpu_all_bits +EXPORT_SYMBOL vmlinux 0x00000000 cpu_core_map +EXPORT_SYMBOL vmlinux 0x00000000 cpu_die_map +EXPORT_SYMBOL vmlinux 0x00000000 cpu_down +EXPORT_SYMBOL vmlinux 0x00000000 cpu_dr7 +EXPORT_SYMBOL vmlinux 0x00000000 cpu_info +EXPORT_SYMBOL vmlinux 0x00000000 cpu_khz +EXPORT_SYMBOL vmlinux 0x00000000 cpu_number +EXPORT_SYMBOL vmlinux 0x00000000 cpu_rmap_add +EXPORT_SYMBOL vmlinux 0x00000000 cpu_rmap_put +EXPORT_SYMBOL vmlinux 0x00000000 cpu_rmap_update +EXPORT_SYMBOL vmlinux 0x00000000 cpu_sibling_map +EXPORT_SYMBOL vmlinux 0x00000000 cpu_tlbstate +EXPORT_SYMBOL vmlinux 0x00000000 cpu_tss_rw +EXPORT_SYMBOL vmlinux 0x00000000 cpufreq_generic_suspend +EXPORT_SYMBOL vmlinux 0x00000000 cpufreq_get +EXPORT_SYMBOL vmlinux 0x00000000 cpufreq_get_policy +EXPORT_SYMBOL vmlinux 0x00000000 cpufreq_quick_get +EXPORT_SYMBOL vmlinux 0x00000000 cpufreq_quick_get_max +EXPORT_SYMBOL vmlinux 0x00000000 cpufreq_register_notifier +EXPORT_SYMBOL vmlinux 0x00000000 cpufreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x00000000 cpufreq_update_policy +EXPORT_SYMBOL vmlinux 0x00000000 cpumask_any_but +EXPORT_SYMBOL vmlinux 0x00000000 cpumask_local_spread +EXPORT_SYMBOL vmlinux 0x00000000 cpumask_next +EXPORT_SYMBOL vmlinux 0x00000000 cpumask_next_and +EXPORT_SYMBOL vmlinux 0x00000000 cpumask_next_wrap +EXPORT_SYMBOL vmlinux 0x00000000 crc16 +EXPORT_SYMBOL vmlinux 0x00000000 crc16_table +EXPORT_SYMBOL vmlinux 0x00000000 crc32_be +EXPORT_SYMBOL vmlinux 0x00000000 crc32_le +EXPORT_SYMBOL vmlinux 0x00000000 crc32_le_shift +EXPORT_SYMBOL vmlinux 0x00000000 crc32c_csum_stub +EXPORT_SYMBOL vmlinux 0x00000000 crc_ccitt +EXPORT_SYMBOL vmlinux 0x00000000 crc_ccitt_false +EXPORT_SYMBOL vmlinux 0x00000000 crc_ccitt_false_table +EXPORT_SYMBOL vmlinux 0x00000000 crc_ccitt_table +EXPORT_SYMBOL vmlinux 0x00000000 crc_t10dif +EXPORT_SYMBOL vmlinux 0x00000000 crc_t10dif_generic +EXPORT_SYMBOL vmlinux 0x00000000 crc_t10dif_update +EXPORT_SYMBOL vmlinux 0x00000000 create_empty_buffers +EXPORT_SYMBOL vmlinux 0x00000000 cred_fscmp +EXPORT_SYMBOL vmlinux 0x00000000 cros_ec_check_result +EXPORT_SYMBOL vmlinux 0x00000000 cros_ec_cmd_xfer +EXPORT_SYMBOL vmlinux 0x00000000 cros_ec_cmd_xfer_status +EXPORT_SYMBOL vmlinux 0x00000000 cros_ec_get_host_event +EXPORT_SYMBOL vmlinux 0x00000000 cros_ec_get_next_event +EXPORT_SYMBOL vmlinux 0x00000000 cros_ec_prepare_tx +EXPORT_SYMBOL vmlinux 0x00000000 cros_ec_query_all +EXPORT_SYMBOL vmlinux 0x00000000 crypto_aes_inv_sbox +EXPORT_SYMBOL vmlinux 0x00000000 crypto_aes_sbox +EXPORT_SYMBOL vmlinux 0x00000000 crypto_sha1_finup +EXPORT_SYMBOL vmlinux 0x00000000 crypto_sha1_update +EXPORT_SYMBOL vmlinux 0x00000000 crypto_sha256_finup +EXPORT_SYMBOL vmlinux 0x00000000 crypto_sha256_update +EXPORT_SYMBOL vmlinux 0x00000000 crypto_sha512_finup +EXPORT_SYMBOL vmlinux 0x00000000 crypto_sha512_update +EXPORT_SYMBOL vmlinux 0x00000000 csum_and_copy_from_iter +EXPORT_SYMBOL vmlinux 0x00000000 csum_and_copy_from_iter_full +EXPORT_SYMBOL vmlinux 0x00000000 csum_and_copy_to_iter +EXPORT_SYMBOL vmlinux 0x00000000 csum_ipv6_magic +EXPORT_SYMBOL vmlinux 0x00000000 csum_partial +EXPORT_SYMBOL vmlinux 0x00000000 csum_partial_copy_from_user +EXPORT_SYMBOL vmlinux 0x00000000 csum_partial_copy_nocheck +EXPORT_SYMBOL vmlinux 0x00000000 csum_partial_copy_to_user +EXPORT_SYMBOL vmlinux 0x00000000 current_in_userns +EXPORT_SYMBOL vmlinux 0x00000000 current_task +EXPORT_SYMBOL vmlinux 0x00000000 current_time +EXPORT_SYMBOL vmlinux 0x00000000 current_umask +EXPORT_SYMBOL vmlinux 0x00000000 current_work +EXPORT_SYMBOL vmlinux 0x00000000 d_add +EXPORT_SYMBOL vmlinux 0x00000000 d_add_ci +EXPORT_SYMBOL vmlinux 0x00000000 d_alloc +EXPORT_SYMBOL vmlinux 0x00000000 d_alloc_anon +EXPORT_SYMBOL vmlinux 0x00000000 d_alloc_name +EXPORT_SYMBOL vmlinux 0x00000000 d_alloc_parallel +EXPORT_SYMBOL vmlinux 0x00000000 d_delete +EXPORT_SYMBOL vmlinux 0x00000000 d_drop +EXPORT_SYMBOL vmlinux 0x00000000 d_exact_alias +EXPORT_SYMBOL vmlinux 0x00000000 d_find_alias +EXPORT_SYMBOL vmlinux 0x00000000 d_find_any_alias +EXPORT_SYMBOL vmlinux 0x00000000 d_genocide +EXPORT_SYMBOL vmlinux 0x00000000 d_hash_and_lookup +EXPORT_SYMBOL vmlinux 0x00000000 d_instantiate +EXPORT_SYMBOL vmlinux 0x00000000 d_instantiate_anon +EXPORT_SYMBOL vmlinux 0x00000000 d_instantiate_new +EXPORT_SYMBOL vmlinux 0x00000000 d_invalidate +EXPORT_SYMBOL vmlinux 0x00000000 d_lookup +EXPORT_SYMBOL vmlinux 0x00000000 d_make_root +EXPORT_SYMBOL vmlinux 0x00000000 d_move +EXPORT_SYMBOL vmlinux 0x00000000 d_obtain_alias +EXPORT_SYMBOL vmlinux 0x00000000 d_obtain_root +EXPORT_SYMBOL vmlinux 0x00000000 d_path +EXPORT_SYMBOL vmlinux 0x00000000 d_prune_aliases +EXPORT_SYMBOL vmlinux 0x00000000 d_rehash +EXPORT_SYMBOL vmlinux 0x00000000 d_set_d_op +EXPORT_SYMBOL vmlinux 0x00000000 d_set_fallthru +EXPORT_SYMBOL vmlinux 0x00000000 d_splice_alias +EXPORT_SYMBOL vmlinux 0x00000000 d_tmpfile +EXPORT_SYMBOL vmlinux 0x00000000 da903x_query_status +EXPORT_SYMBOL vmlinux 0x00000000 datagram_poll +EXPORT_SYMBOL vmlinux 0x00000000 dcache_dir_close +EXPORT_SYMBOL vmlinux 0x00000000 dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0x00000000 dcache_dir_open +EXPORT_SYMBOL vmlinux 0x00000000 dcache_readdir +EXPORT_SYMBOL vmlinux 0x00000000 dcb_getapp +EXPORT_SYMBOL vmlinux 0x00000000 dcb_ieee_delapp +EXPORT_SYMBOL vmlinux 0x00000000 dcb_ieee_getapp_default_prio_mask +EXPORT_SYMBOL vmlinux 0x00000000 dcb_ieee_getapp_dscp_prio_mask_map +EXPORT_SYMBOL vmlinux 0x00000000 dcb_ieee_getapp_mask +EXPORT_SYMBOL vmlinux 0x00000000 dcb_ieee_getapp_prio_dscp_mask_map +EXPORT_SYMBOL vmlinux 0x00000000 dcb_ieee_setapp +EXPORT_SYMBOL vmlinux 0x00000000 dcb_setapp +EXPORT_SYMBOL vmlinux 0x00000000 dcbnl_cee_notify +EXPORT_SYMBOL vmlinux 0x00000000 dcbnl_ieee_notify +EXPORT_SYMBOL vmlinux 0x00000000 deactivate_locked_super +EXPORT_SYMBOL vmlinux 0x00000000 deactivate_super +EXPORT_SYMBOL vmlinux 0x00000000 debugfs_create_automount +EXPORT_SYMBOL vmlinux 0x00000000 dec_node_page_state +EXPORT_SYMBOL vmlinux 0x00000000 dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x00000000 default_blu +EXPORT_SYMBOL vmlinux 0x00000000 default_grn +EXPORT_SYMBOL vmlinux 0x00000000 default_idle +EXPORT_SYMBOL vmlinux 0x00000000 default_llseek +EXPORT_SYMBOL vmlinux 0x00000000 default_qdisc_ops +EXPORT_SYMBOL vmlinux 0x00000000 default_red +EXPORT_SYMBOL vmlinux 0x00000000 default_wake_function +EXPORT_SYMBOL vmlinux 0x00000000 del_gendisk +EXPORT_SYMBOL vmlinux 0x00000000 del_random_ready_callback +EXPORT_SYMBOL vmlinux 0x00000000 del_timer +EXPORT_SYMBOL vmlinux 0x00000000 del_timer_sync +EXPORT_SYMBOL vmlinux 0x00000000 delayed_work_timer_fn +EXPORT_SYMBOL vmlinux 0x00000000 delete_from_page_cache +EXPORT_SYMBOL vmlinux 0x00000000 dentry_open +EXPORT_SYMBOL vmlinux 0x00000000 dentry_path_raw +EXPORT_SYMBOL vmlinux 0x00000000 dev_activate +EXPORT_SYMBOL vmlinux 0x00000000 dev_add_offload +EXPORT_SYMBOL vmlinux 0x00000000 dev_add_pack +EXPORT_SYMBOL vmlinux 0x00000000 dev_addr_add +EXPORT_SYMBOL vmlinux 0x00000000 dev_addr_del +EXPORT_SYMBOL vmlinux 0x00000000 dev_addr_flush +EXPORT_SYMBOL vmlinux 0x00000000 dev_addr_init +EXPORT_SYMBOL vmlinux 0x00000000 dev_alloc_name +EXPORT_SYMBOL vmlinux 0x00000000 dev_base_lock +EXPORT_SYMBOL vmlinux 0x00000000 dev_change_carrier +EXPORT_SYMBOL vmlinux 0x00000000 dev_change_flags +EXPORT_SYMBOL vmlinux 0x00000000 dev_change_proto_down +EXPORT_SYMBOL vmlinux 0x00000000 dev_change_proto_down_generic +EXPORT_SYMBOL vmlinux 0x00000000 dev_close +EXPORT_SYMBOL vmlinux 0x00000000 dev_close_many +EXPORT_SYMBOL vmlinux 0x00000000 dev_deactivate +EXPORT_SYMBOL vmlinux 0x00000000 dev_direct_xmit +EXPORT_SYMBOL vmlinux 0x00000000 dev_disable_lro +EXPORT_SYMBOL vmlinux 0x00000000 dev_driver_string +EXPORT_SYMBOL vmlinux 0x00000000 dev_get_by_index +EXPORT_SYMBOL vmlinux 0x00000000 dev_get_by_index_rcu +EXPORT_SYMBOL vmlinux 0x00000000 dev_get_by_name +EXPORT_SYMBOL vmlinux 0x00000000 dev_get_by_name_rcu +EXPORT_SYMBOL vmlinux 0x00000000 dev_get_by_napi_id +EXPORT_SYMBOL vmlinux 0x00000000 dev_get_flags +EXPORT_SYMBOL vmlinux 0x00000000 dev_get_iflink +EXPORT_SYMBOL vmlinux 0x00000000 dev_get_phys_port_id +EXPORT_SYMBOL vmlinux 0x00000000 dev_get_phys_port_name +EXPORT_SYMBOL vmlinux 0x00000000 dev_get_port_parent_id +EXPORT_SYMBOL vmlinux 0x00000000 dev_get_stats +EXPORT_SYMBOL vmlinux 0x00000000 dev_getbyhwaddr_rcu +EXPORT_SYMBOL vmlinux 0x00000000 dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x00000000 dev_graft_qdisc +EXPORT_SYMBOL vmlinux 0x00000000 dev_load +EXPORT_SYMBOL vmlinux 0x00000000 dev_loopback_xmit +EXPORT_SYMBOL vmlinux 0x00000000 dev_lstats_read +EXPORT_SYMBOL vmlinux 0x00000000 dev_mc_add +EXPORT_SYMBOL vmlinux 0x00000000 dev_mc_add_excl +EXPORT_SYMBOL vmlinux 0x00000000 dev_mc_add_global +EXPORT_SYMBOL vmlinux 0x00000000 dev_mc_del +EXPORT_SYMBOL vmlinux 0x00000000 dev_mc_del_global +EXPORT_SYMBOL vmlinux 0x00000000 dev_mc_flush +EXPORT_SYMBOL vmlinux 0x00000000 dev_mc_init +EXPORT_SYMBOL vmlinux 0x00000000 dev_mc_sync +EXPORT_SYMBOL vmlinux 0x00000000 dev_mc_sync_multiple +EXPORT_SYMBOL vmlinux 0x00000000 dev_mc_unsync +EXPORT_SYMBOL vmlinux 0x00000000 dev_open +EXPORT_SYMBOL vmlinux 0x00000000 dev_pick_tx_cpu_id +EXPORT_SYMBOL vmlinux 0x00000000 dev_pick_tx_zero +EXPORT_SYMBOL vmlinux 0x00000000 dev_pm_opp_register_notifier +EXPORT_SYMBOL vmlinux 0x00000000 dev_pm_opp_unregister_notifier +EXPORT_SYMBOL vmlinux 0x00000000 dev_pre_changeaddr_notify +EXPORT_SYMBOL vmlinux 0x00000000 dev_printk +EXPORT_SYMBOL vmlinux 0x00000000 dev_printk_emit +EXPORT_SYMBOL vmlinux 0x00000000 dev_queue_xmit +EXPORT_SYMBOL vmlinux 0x00000000 dev_queue_xmit_accel +EXPORT_SYMBOL vmlinux 0x00000000 dev_remove_offload +EXPORT_SYMBOL vmlinux 0x00000000 dev_remove_pack +EXPORT_SYMBOL vmlinux 0x00000000 dev_set_alias +EXPORT_SYMBOL vmlinux 0x00000000 dev_set_allmulti +EXPORT_SYMBOL vmlinux 0x00000000 dev_set_group +EXPORT_SYMBOL vmlinux 0x00000000 dev_set_mac_address +EXPORT_SYMBOL vmlinux 0x00000000 dev_set_mtu +EXPORT_SYMBOL vmlinux 0x00000000 dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0x00000000 dev_trans_start +EXPORT_SYMBOL vmlinux 0x00000000 dev_uc_add +EXPORT_SYMBOL vmlinux 0x00000000 dev_uc_add_excl +EXPORT_SYMBOL vmlinux 0x00000000 dev_uc_del +EXPORT_SYMBOL vmlinux 0x00000000 dev_uc_flush +EXPORT_SYMBOL vmlinux 0x00000000 dev_uc_init +EXPORT_SYMBOL vmlinux 0x00000000 dev_uc_sync +EXPORT_SYMBOL vmlinux 0x00000000 dev_uc_sync_multiple +EXPORT_SYMBOL vmlinux 0x00000000 dev_uc_unsync +EXPORT_SYMBOL vmlinux 0x00000000 dev_valid_name +EXPORT_SYMBOL vmlinux 0x00000000 dev_vprintk_emit +EXPORT_SYMBOL vmlinux 0x00000000 devcgroup_check_permission +EXPORT_SYMBOL vmlinux 0x00000000 devfreq_add_device +EXPORT_SYMBOL vmlinux 0x00000000 devfreq_add_governor +EXPORT_SYMBOL vmlinux 0x00000000 devfreq_interval_update +EXPORT_SYMBOL vmlinux 0x00000000 devfreq_monitor_resume +EXPORT_SYMBOL vmlinux 0x00000000 devfreq_monitor_start +EXPORT_SYMBOL vmlinux 0x00000000 devfreq_monitor_stop +EXPORT_SYMBOL vmlinux 0x00000000 devfreq_monitor_suspend +EXPORT_SYMBOL vmlinux 0x00000000 devfreq_recommended_opp +EXPORT_SYMBOL vmlinux 0x00000000 devfreq_register_notifier +EXPORT_SYMBOL vmlinux 0x00000000 devfreq_register_opp_notifier +EXPORT_SYMBOL vmlinux 0x00000000 devfreq_remove_device +EXPORT_SYMBOL vmlinux 0x00000000 devfreq_remove_governor +EXPORT_SYMBOL vmlinux 0x00000000 devfreq_resume_device +EXPORT_SYMBOL vmlinux 0x00000000 devfreq_suspend_device +EXPORT_SYMBOL vmlinux 0x00000000 devfreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x00000000 devfreq_unregister_opp_notifier +EXPORT_SYMBOL vmlinux 0x00000000 devfreq_update_status +EXPORT_SYMBOL vmlinux 0x00000000 device_add_disk +EXPORT_SYMBOL vmlinux 0x00000000 device_add_disk_no_queue_reg +EXPORT_SYMBOL vmlinux 0x00000000 device_get_mac_address +EXPORT_SYMBOL vmlinux 0x00000000 device_match_acpi_dev +EXPORT_SYMBOL vmlinux 0x00000000 devlink_dpipe_entry_clear +EXPORT_SYMBOL vmlinux 0x00000000 devlink_dpipe_header_ethernet +EXPORT_SYMBOL vmlinux 0x00000000 devlink_dpipe_header_ipv4 +EXPORT_SYMBOL vmlinux 0x00000000 devlink_dpipe_header_ipv6 +EXPORT_SYMBOL vmlinux 0x00000000 devm_alloc_etherdev_mqs +EXPORT_SYMBOL vmlinux 0x00000000 devm_backlight_device_register +EXPORT_SYMBOL vmlinux 0x00000000 devm_backlight_device_unregister +EXPORT_SYMBOL vmlinux 0x00000000 devm_clk_get +EXPORT_SYMBOL vmlinux 0x00000000 devm_clk_get_optional +EXPORT_SYMBOL vmlinux 0x00000000 devm_clk_hw_register_clkdev +EXPORT_SYMBOL vmlinux 0x00000000 devm_clk_put +EXPORT_SYMBOL vmlinux 0x00000000 devm_clk_release_clkdev +EXPORT_SYMBOL vmlinux 0x00000000 devm_devfreq_add_device +EXPORT_SYMBOL vmlinux 0x00000000 devm_devfreq_register_notifier +EXPORT_SYMBOL vmlinux 0x00000000 devm_devfreq_register_opp_notifier +EXPORT_SYMBOL vmlinux 0x00000000 devm_devfreq_remove_device +EXPORT_SYMBOL vmlinux 0x00000000 devm_devfreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x00000000 devm_devfreq_unregister_opp_notifier +EXPORT_SYMBOL vmlinux 0x00000000 devm_extcon_register_notifier +EXPORT_SYMBOL vmlinux 0x00000000 devm_extcon_register_notifier_all +EXPORT_SYMBOL vmlinux 0x00000000 devm_extcon_unregister_notifier +EXPORT_SYMBOL vmlinux 0x00000000 devm_extcon_unregister_notifier_all +EXPORT_SYMBOL vmlinux 0x00000000 devm_free_irq +EXPORT_SYMBOL vmlinux 0x00000000 devm_gen_pool_create +EXPORT_SYMBOL vmlinux 0x00000000 devm_get_clk_from_child +EXPORT_SYMBOL vmlinux 0x00000000 devm_input_allocate_device +EXPORT_SYMBOL vmlinux 0x00000000 devm_ioport_map +EXPORT_SYMBOL vmlinux 0x00000000 devm_ioport_unmap +EXPORT_SYMBOL vmlinux 0x00000000 devm_ioremap +EXPORT_SYMBOL vmlinux 0x00000000 devm_ioremap_resource +EXPORT_SYMBOL vmlinux 0x00000000 devm_ioremap_uc +EXPORT_SYMBOL vmlinux 0x00000000 devm_ioremap_wc +EXPORT_SYMBOL vmlinux 0x00000000 devm_iounmap +EXPORT_SYMBOL vmlinux 0x00000000 devm_kvasprintf +EXPORT_SYMBOL vmlinux 0x00000000 devm_memremap +EXPORT_SYMBOL vmlinux 0x00000000 devm_memunmap +EXPORT_SYMBOL vmlinux 0x00000000 devm_mfd_add_devices +EXPORT_SYMBOL vmlinux 0x00000000 devm_nvmem_cell_put +EXPORT_SYMBOL vmlinux 0x00000000 devm_nvmem_unregister +EXPORT_SYMBOL vmlinux 0x00000000 devm_of_find_backlight +EXPORT_SYMBOL vmlinux 0x00000000 devm_of_iomap +EXPORT_SYMBOL vmlinux 0x00000000 devm_pci_alloc_host_bridge +EXPORT_SYMBOL vmlinux 0x00000000 devm_pci_remap_cfg_resource +EXPORT_SYMBOL vmlinux 0x00000000 devm_pci_remap_cfgspace +EXPORT_SYMBOL vmlinux 0x00000000 devm_pci_remap_iospace +EXPORT_SYMBOL vmlinux 0x00000000 devm_register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x00000000 devm_release_resource +EXPORT_SYMBOL vmlinux 0x00000000 devm_request_any_context_irq +EXPORT_SYMBOL vmlinux 0x00000000 devm_request_resource +EXPORT_SYMBOL vmlinux 0x00000000 devm_request_threaded_irq +EXPORT_SYMBOL vmlinux 0x00000000 devmap_managed_key +EXPORT_SYMBOL vmlinux 0x00000000 dget_parent +EXPORT_SYMBOL vmlinux 0x00000000 dim_calc_stats +EXPORT_SYMBOL vmlinux 0x00000000 dim_on_top +EXPORT_SYMBOL vmlinux 0x00000000 dim_park_on_top +EXPORT_SYMBOL vmlinux 0x00000000 dim_park_tired +EXPORT_SYMBOL vmlinux 0x00000000 dim_turn +EXPORT_SYMBOL vmlinux 0x00000000 disable_irq +EXPORT_SYMBOL vmlinux 0x00000000 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x00000000 discard_new_inode +EXPORT_SYMBOL vmlinux 0x00000000 disk_stack_limits +EXPORT_SYMBOL vmlinux 0x00000000 dlci_ioctl_set +EXPORT_SYMBOL vmlinux 0x00000000 dm_consume_args +EXPORT_SYMBOL vmlinux 0x00000000 dm_get_device +EXPORT_SYMBOL vmlinux 0x00000000 dm_io +EXPORT_SYMBOL vmlinux 0x00000000 dm_io_client_create +EXPORT_SYMBOL vmlinux 0x00000000 dm_io_client_destroy +EXPORT_SYMBOL vmlinux 0x00000000 dm_kcopyd_client_create +EXPORT_SYMBOL vmlinux 0x00000000 dm_kcopyd_client_destroy +EXPORT_SYMBOL vmlinux 0x00000000 dm_kcopyd_copy +EXPORT_SYMBOL vmlinux 0x00000000 dm_kcopyd_do_callback +EXPORT_SYMBOL vmlinux 0x00000000 dm_kcopyd_prepare_callback +EXPORT_SYMBOL vmlinux 0x00000000 dm_kcopyd_zero +EXPORT_SYMBOL vmlinux 0x00000000 dm_kobject_release +EXPORT_SYMBOL vmlinux 0x00000000 dm_mq_kick_requeue_list +EXPORT_SYMBOL vmlinux 0x00000000 dm_put_device +EXPORT_SYMBOL vmlinux 0x00000000 dm_put_table_device +EXPORT_SYMBOL vmlinux 0x00000000 dm_read_arg +EXPORT_SYMBOL vmlinux 0x00000000 dm_read_arg_group +EXPORT_SYMBOL vmlinux 0x00000000 dm_register_target +EXPORT_SYMBOL vmlinux 0x00000000 dm_shift_arg +EXPORT_SYMBOL vmlinux 0x00000000 dm_table_event +EXPORT_SYMBOL vmlinux 0x00000000 dm_table_get_md +EXPORT_SYMBOL vmlinux 0x00000000 dm_table_get_mode +EXPORT_SYMBOL vmlinux 0x00000000 dm_table_get_size +EXPORT_SYMBOL vmlinux 0x00000000 dm_table_run_md_queue_async +EXPORT_SYMBOL vmlinux 0x00000000 dm_unregister_target +EXPORT_SYMBOL vmlinux 0x00000000 dm_vcalloc +EXPORT_SYMBOL vmlinux 0x00000000 dma_alloc_attrs +EXPORT_SYMBOL vmlinux 0x00000000 dma_async_device_register +EXPORT_SYMBOL vmlinux 0x00000000 dma_async_device_unregister +EXPORT_SYMBOL vmlinux 0x00000000 dma_async_tx_descriptor_init +EXPORT_SYMBOL vmlinux 0x00000000 dma_cache_sync +EXPORT_SYMBOL vmlinux 0x00000000 dma_direct_map_page +EXPORT_SYMBOL vmlinux 0x00000000 dma_direct_map_resource +EXPORT_SYMBOL vmlinux 0x00000000 dma_direct_map_sg +EXPORT_SYMBOL vmlinux 0x00000000 dma_direct_sync_sg_for_cpu +EXPORT_SYMBOL vmlinux 0x00000000 dma_direct_sync_sg_for_device +EXPORT_SYMBOL vmlinux 0x00000000 dma_direct_sync_single_for_cpu +EXPORT_SYMBOL vmlinux 0x00000000 dma_direct_sync_single_for_device +EXPORT_SYMBOL vmlinux 0x00000000 dma_direct_unmap_page +EXPORT_SYMBOL vmlinux 0x00000000 dma_direct_unmap_sg +EXPORT_SYMBOL vmlinux 0x00000000 dma_dummy_ops +EXPORT_SYMBOL vmlinux 0x00000000 dma_fence_add_callback +EXPORT_SYMBOL vmlinux 0x00000000 dma_fence_array_create +EXPORT_SYMBOL vmlinux 0x00000000 dma_fence_array_ops +EXPORT_SYMBOL vmlinux 0x00000000 dma_fence_chain_find_seqno +EXPORT_SYMBOL vmlinux 0x00000000 dma_fence_chain_init +EXPORT_SYMBOL vmlinux 0x00000000 dma_fence_chain_ops +EXPORT_SYMBOL vmlinux 0x00000000 dma_fence_chain_walk +EXPORT_SYMBOL vmlinux 0x00000000 dma_fence_context_alloc +EXPORT_SYMBOL vmlinux 0x00000000 dma_fence_default_wait +EXPORT_SYMBOL vmlinux 0x00000000 dma_fence_enable_sw_signaling +EXPORT_SYMBOL vmlinux 0x00000000 dma_fence_free +EXPORT_SYMBOL vmlinux 0x00000000 dma_fence_get_status +EXPORT_SYMBOL vmlinux 0x00000000 dma_fence_get_stub +EXPORT_SYMBOL vmlinux 0x00000000 dma_fence_init +EXPORT_SYMBOL vmlinux 0x00000000 dma_fence_match_context +EXPORT_SYMBOL vmlinux 0x00000000 dma_fence_release +EXPORT_SYMBOL vmlinux 0x00000000 dma_fence_remove_callback +EXPORT_SYMBOL vmlinux 0x00000000 dma_fence_signal +EXPORT_SYMBOL vmlinux 0x00000000 dma_fence_signal_locked +EXPORT_SYMBOL vmlinux 0x00000000 dma_fence_wait_any_timeout +EXPORT_SYMBOL vmlinux 0x00000000 dma_fence_wait_timeout +EXPORT_SYMBOL vmlinux 0x00000000 dma_find_channel +EXPORT_SYMBOL vmlinux 0x00000000 dma_free_attrs +EXPORT_SYMBOL vmlinux 0x00000000 dma_get_sgtable_attrs +EXPORT_SYMBOL vmlinux 0x00000000 dma_issue_pending_all +EXPORT_SYMBOL vmlinux 0x00000000 dma_mmap_attrs +EXPORT_SYMBOL vmlinux 0x00000000 dma_ops +EXPORT_SYMBOL vmlinux 0x00000000 dma_pool_alloc +EXPORT_SYMBOL vmlinux 0x00000000 dma_pool_create +EXPORT_SYMBOL vmlinux 0x00000000 dma_pool_destroy +EXPORT_SYMBOL vmlinux 0x00000000 dma_pool_free +EXPORT_SYMBOL vmlinux 0x00000000 dma_resv_add_excl_fence +EXPORT_SYMBOL vmlinux 0x00000000 dma_resv_add_shared_fence +EXPORT_SYMBOL vmlinux 0x00000000 dma_resv_copy_fences +EXPORT_SYMBOL vmlinux 0x00000000 dma_resv_fini +EXPORT_SYMBOL vmlinux 0x00000000 dma_resv_init +EXPORT_SYMBOL vmlinux 0x00000000 dma_resv_reserve_shared +EXPORT_SYMBOL vmlinux 0x00000000 dma_set_coherent_mask +EXPORT_SYMBOL vmlinux 0x00000000 dma_set_mask +EXPORT_SYMBOL vmlinux 0x00000000 dma_spin_lock +EXPORT_SYMBOL vmlinux 0x00000000 dma_supported +EXPORT_SYMBOL vmlinux 0x00000000 dma_sync_wait +EXPORT_SYMBOL vmlinux 0x00000000 dma_virt_ops +EXPORT_SYMBOL vmlinux 0x00000000 dmaengine_get +EXPORT_SYMBOL vmlinux 0x00000000 dmaengine_get_unmap_data +EXPORT_SYMBOL vmlinux 0x00000000 dmaengine_put +EXPORT_SYMBOL vmlinux 0x00000000 dmaenginem_async_device_register +EXPORT_SYMBOL vmlinux 0x00000000 dmam_alloc_attrs +EXPORT_SYMBOL vmlinux 0x00000000 dmam_free_coherent +EXPORT_SYMBOL vmlinux 0x00000000 dmam_pool_create +EXPORT_SYMBOL vmlinux 0x00000000 dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0x00000000 dmi_check_system +EXPORT_SYMBOL vmlinux 0x00000000 dmi_find_device +EXPORT_SYMBOL vmlinux 0x00000000 dmi_first_match +EXPORT_SYMBOL vmlinux 0x00000000 dmi_get_bios_year +EXPORT_SYMBOL vmlinux 0x00000000 dmi_get_date +EXPORT_SYMBOL vmlinux 0x00000000 dmi_get_system_info +EXPORT_SYMBOL vmlinux 0x00000000 dmi_name_in_vendors +EXPORT_SYMBOL vmlinux 0x00000000 dmt_modes +EXPORT_SYMBOL vmlinux 0x00000000 dns_query +EXPORT_SYMBOL vmlinux 0x00000000 do_SAK +EXPORT_SYMBOL vmlinux 0x00000000 do_blank_screen +EXPORT_SYMBOL vmlinux 0x00000000 do_clone_file_range +EXPORT_SYMBOL vmlinux 0x00000000 do_settimeofday64 +EXPORT_SYMBOL vmlinux 0x00000000 do_splice_direct +EXPORT_SYMBOL vmlinux 0x00000000 do_trace_rdpmc +EXPORT_SYMBOL vmlinux 0x00000000 do_trace_read_msr +EXPORT_SYMBOL vmlinux 0x00000000 do_trace_write_msr +EXPORT_SYMBOL vmlinux 0x00000000 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x00000000 do_wait_intr +EXPORT_SYMBOL vmlinux 0x00000000 do_wait_intr_irq +EXPORT_SYMBOL vmlinux 0x00000000 done_path_create +EXPORT_SYMBOL vmlinux 0x00000000 down +EXPORT_SYMBOL vmlinux 0x00000000 down_interruptible +EXPORT_SYMBOL vmlinux 0x00000000 down_killable +EXPORT_SYMBOL vmlinux 0x00000000 down_read +EXPORT_SYMBOL vmlinux 0x00000000 down_read_killable +EXPORT_SYMBOL vmlinux 0x00000000 down_read_trylock +EXPORT_SYMBOL vmlinux 0x00000000 down_timeout +EXPORT_SYMBOL vmlinux 0x00000000 down_trylock +EXPORT_SYMBOL vmlinux 0x00000000 down_write +EXPORT_SYMBOL vmlinux 0x00000000 down_write_killable +EXPORT_SYMBOL vmlinux 0x00000000 down_write_trylock +EXPORT_SYMBOL vmlinux 0x00000000 downgrade_write +EXPORT_SYMBOL vmlinux 0x00000000 dput +EXPORT_SYMBOL vmlinux 0x00000000 dq_data_lock +EXPORT_SYMBOL vmlinux 0x00000000 dqget +EXPORT_SYMBOL vmlinux 0x00000000 dql_completed +EXPORT_SYMBOL vmlinux 0x00000000 dql_init +EXPORT_SYMBOL vmlinux 0x00000000 dql_reset +EXPORT_SYMBOL vmlinux 0x00000000 dqput +EXPORT_SYMBOL vmlinux 0x00000000 dqstats +EXPORT_SYMBOL vmlinux 0x00000000 dquot_acquire +EXPORT_SYMBOL vmlinux 0x00000000 dquot_alloc +EXPORT_SYMBOL vmlinux 0x00000000 dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0x00000000 dquot_claim_space_nodirty +EXPORT_SYMBOL vmlinux 0x00000000 dquot_commit +EXPORT_SYMBOL vmlinux 0x00000000 dquot_commit_info +EXPORT_SYMBOL vmlinux 0x00000000 dquot_destroy +EXPORT_SYMBOL vmlinux 0x00000000 dquot_disable +EXPORT_SYMBOL vmlinux 0x00000000 dquot_drop +EXPORT_SYMBOL vmlinux 0x00000000 dquot_file_open +EXPORT_SYMBOL vmlinux 0x00000000 dquot_free_inode +EXPORT_SYMBOL vmlinux 0x00000000 dquot_get_dqblk +EXPORT_SYMBOL vmlinux 0x00000000 dquot_get_next_dqblk +EXPORT_SYMBOL vmlinux 0x00000000 dquot_get_next_id +EXPORT_SYMBOL vmlinux 0x00000000 dquot_get_state +EXPORT_SYMBOL vmlinux 0x00000000 dquot_initialize +EXPORT_SYMBOL vmlinux 0x00000000 dquot_initialize_needed +EXPORT_SYMBOL vmlinux 0x00000000 dquot_load_quota_inode +EXPORT_SYMBOL vmlinux 0x00000000 dquot_load_quota_sb +EXPORT_SYMBOL vmlinux 0x00000000 dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0x00000000 dquot_operations +EXPORT_SYMBOL vmlinux 0x00000000 dquot_quota_off +EXPORT_SYMBOL vmlinux 0x00000000 dquot_quota_on +EXPORT_SYMBOL vmlinux 0x00000000 dquot_quota_on_mount +EXPORT_SYMBOL vmlinux 0x00000000 dquot_quota_sync +EXPORT_SYMBOL vmlinux 0x00000000 dquot_quotactl_sysfile_ops +EXPORT_SYMBOL vmlinux 0x00000000 dquot_reclaim_space_nodirty +EXPORT_SYMBOL vmlinux 0x00000000 dquot_release +EXPORT_SYMBOL vmlinux 0x00000000 dquot_resume +EXPORT_SYMBOL vmlinux 0x00000000 dquot_scan_active +EXPORT_SYMBOL vmlinux 0x00000000 dquot_set_dqblk +EXPORT_SYMBOL vmlinux 0x00000000 dquot_set_dqinfo +EXPORT_SYMBOL vmlinux 0x00000000 dquot_transfer +EXPORT_SYMBOL vmlinux 0x00000000 dquot_writeback_dquots +EXPORT_SYMBOL vmlinux 0x00000000 drm_get_panel_orientation_quirk +EXPORT_SYMBOL vmlinux 0x00000000 drop_nlink +EXPORT_SYMBOL vmlinux 0x00000000 drop_super +EXPORT_SYMBOL vmlinux 0x00000000 drop_super_exclusive +EXPORT_SYMBOL vmlinux 0x00000000 dst_alloc +EXPORT_SYMBOL vmlinux 0x00000000 dst_cow_metrics_generic +EXPORT_SYMBOL vmlinux 0x00000000 dst_default_metrics +EXPORT_SYMBOL vmlinux 0x00000000 dst_destroy +EXPORT_SYMBOL vmlinux 0x00000000 dst_dev_put +EXPORT_SYMBOL vmlinux 0x00000000 dst_discard_out +EXPORT_SYMBOL vmlinux 0x00000000 dst_init +EXPORT_SYMBOL vmlinux 0x00000000 dst_release +EXPORT_SYMBOL vmlinux 0x00000000 dst_release_immediate +EXPORT_SYMBOL vmlinux 0x00000000 dump_align +EXPORT_SYMBOL vmlinux 0x00000000 dump_emit +EXPORT_SYMBOL vmlinux 0x00000000 dump_fpu +EXPORT_SYMBOL vmlinux 0x00000000 dump_page +EXPORT_SYMBOL vmlinux 0x00000000 dump_skip +EXPORT_SYMBOL vmlinux 0x00000000 dump_stack +EXPORT_SYMBOL vmlinux 0x00000000 dump_truncate +EXPORT_SYMBOL vmlinux 0x00000000 dup_iter +EXPORT_SYMBOL vmlinux 0x00000000 ec_get_handle +EXPORT_SYMBOL vmlinux 0x00000000 ec_read +EXPORT_SYMBOL vmlinux 0x00000000 ec_transaction +EXPORT_SYMBOL vmlinux 0x00000000 ec_write +EXPORT_SYMBOL vmlinux 0x00000000 ecryptfs_fill_auth_tok +EXPORT_SYMBOL vmlinux 0x00000000 ecryptfs_get_auth_tok_key +EXPORT_SYMBOL vmlinux 0x00000000 ecryptfs_get_versions +EXPORT_SYMBOL vmlinux 0x00000000 edac_mc_find +EXPORT_SYMBOL vmlinux 0x00000000 efi +EXPORT_SYMBOL vmlinux 0x00000000 efi_tpm_final_log_size +EXPORT_SYMBOL vmlinux 0x00000000 eisa_bus_type +EXPORT_SYMBOL vmlinux 0x00000000 eisa_driver_register +EXPORT_SYMBOL vmlinux 0x00000000 eisa_driver_unregister +EXPORT_SYMBOL vmlinux 0x00000000 elevator_alloc +EXPORT_SYMBOL vmlinux 0x00000000 elv_bio_merge_ok +EXPORT_SYMBOL vmlinux 0x00000000 elv_rb_add +EXPORT_SYMBOL vmlinux 0x00000000 elv_rb_del +EXPORT_SYMBOL vmlinux 0x00000000 elv_rb_find +EXPORT_SYMBOL vmlinux 0x00000000 elv_rb_former_request +EXPORT_SYMBOL vmlinux 0x00000000 elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0x00000000 empty_aops +EXPORT_SYMBOL vmlinux 0x00000000 empty_name +EXPORT_SYMBOL vmlinux 0x00000000 empty_zero_page +EXPORT_SYMBOL vmlinux 0x00000000 enable_irq +EXPORT_SYMBOL vmlinux 0x00000000 end_buffer_async_write +EXPORT_SYMBOL vmlinux 0x00000000 end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0x00000000 end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0x00000000 end_page_writeback +EXPORT_SYMBOL vmlinux 0x00000000 errseq_check +EXPORT_SYMBOL vmlinux 0x00000000 errseq_check_and_advance +EXPORT_SYMBOL vmlinux 0x00000000 errseq_sample +EXPORT_SYMBOL vmlinux 0x00000000 errseq_set +EXPORT_SYMBOL vmlinux 0x00000000 eth_commit_mac_addr_change +EXPORT_SYMBOL vmlinux 0x00000000 eth_get_headlen +EXPORT_SYMBOL vmlinux 0x00000000 eth_gro_complete +EXPORT_SYMBOL vmlinux 0x00000000 eth_gro_receive +EXPORT_SYMBOL vmlinux 0x00000000 eth_header +EXPORT_SYMBOL vmlinux 0x00000000 eth_header_cache +EXPORT_SYMBOL vmlinux 0x00000000 eth_header_cache_update +EXPORT_SYMBOL vmlinux 0x00000000 eth_header_parse +EXPORT_SYMBOL vmlinux 0x00000000 eth_header_parse_protocol +EXPORT_SYMBOL vmlinux 0x00000000 eth_mac_addr +EXPORT_SYMBOL vmlinux 0x00000000 eth_platform_get_mac_address +EXPORT_SYMBOL vmlinux 0x00000000 eth_prepare_mac_addr_change +EXPORT_SYMBOL vmlinux 0x00000000 eth_type_trans +EXPORT_SYMBOL vmlinux 0x00000000 eth_validate_addr +EXPORT_SYMBOL vmlinux 0x00000000 ether_setup +EXPORT_SYMBOL vmlinux 0x00000000 ethtool_convert_legacy_u32_to_link_mode +EXPORT_SYMBOL vmlinux 0x00000000 ethtool_convert_link_mode_to_legacy_u32 +EXPORT_SYMBOL vmlinux 0x00000000 ethtool_intersect_link_masks +EXPORT_SYMBOL vmlinux 0x00000000 ethtool_notify +EXPORT_SYMBOL vmlinux 0x00000000 ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0x00000000 ethtool_op_get_ts_info +EXPORT_SYMBOL vmlinux 0x00000000 ethtool_rx_flow_rule_create +EXPORT_SYMBOL vmlinux 0x00000000 ethtool_rx_flow_rule_destroy +EXPORT_SYMBOL vmlinux 0x00000000 ex_handler_clear_fs +EXPORT_SYMBOL vmlinux 0x00000000 ex_handler_default +EXPORT_SYMBOL vmlinux 0x00000000 ex_handler_ext +EXPORT_SYMBOL vmlinux 0x00000000 ex_handler_rdmsr_unsafe +EXPORT_SYMBOL vmlinux 0x00000000 ex_handler_uaccess +EXPORT_SYMBOL vmlinux 0x00000000 ex_handler_wrmsr_unsafe +EXPORT_SYMBOL vmlinux 0x00000000 f_setown +EXPORT_SYMBOL vmlinux 0x00000000 fasync_helper +EXPORT_SYMBOL vmlinux 0x00000000 fb_add_videomode +EXPORT_SYMBOL vmlinux 0x00000000 fb_alloc_cmap +EXPORT_SYMBOL vmlinux 0x00000000 fb_blank +EXPORT_SYMBOL vmlinux 0x00000000 fb_class +EXPORT_SYMBOL vmlinux 0x00000000 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x00000000 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x00000000 fb_default_cmap +EXPORT_SYMBOL vmlinux 0x00000000 fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0x00000000 fb_edid_to_monspecs +EXPORT_SYMBOL vmlinux 0x00000000 fb_find_best_display +EXPORT_SYMBOL vmlinux 0x00000000 fb_find_best_mode +EXPORT_SYMBOL vmlinux 0x00000000 fb_find_mode +EXPORT_SYMBOL vmlinux 0x00000000 fb_find_mode_cvt +EXPORT_SYMBOL vmlinux 0x00000000 fb_find_nearest_mode +EXPORT_SYMBOL vmlinux 0x00000000 fb_firmware_edid +EXPORT_SYMBOL vmlinux 0x00000000 fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0x00000000 fb_get_color_depth +EXPORT_SYMBOL vmlinux 0x00000000 fb_get_mode +EXPORT_SYMBOL vmlinux 0x00000000 fb_get_options +EXPORT_SYMBOL vmlinux 0x00000000 fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0x00000000 fb_is_primary_device +EXPORT_SYMBOL vmlinux 0x00000000 fb_match_mode +EXPORT_SYMBOL vmlinux 0x00000000 fb_mode_is_equal +EXPORT_SYMBOL vmlinux 0x00000000 fb_pad_aligned_buffer +EXPORT_SYMBOL vmlinux 0x00000000 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x00000000 fb_pan_display +EXPORT_SYMBOL vmlinux 0x00000000 fb_parse_edid +EXPORT_SYMBOL vmlinux 0x00000000 fb_prepare_logo +EXPORT_SYMBOL vmlinux 0x00000000 fb_register_client +EXPORT_SYMBOL vmlinux 0x00000000 fb_set_cmap +EXPORT_SYMBOL vmlinux 0x00000000 fb_set_suspend +EXPORT_SYMBOL vmlinux 0x00000000 fb_set_var +EXPORT_SYMBOL vmlinux 0x00000000 fb_show_logo +EXPORT_SYMBOL vmlinux 0x00000000 fb_unregister_client +EXPORT_SYMBOL vmlinux 0x00000000 fb_validate_mode +EXPORT_SYMBOL vmlinux 0x00000000 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0x00000000 fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0x00000000 fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0x00000000 fbcon_rotate_ccw +EXPORT_SYMBOL vmlinux 0x00000000 fbcon_rotate_cw +EXPORT_SYMBOL vmlinux 0x00000000 fbcon_rotate_ud +EXPORT_SYMBOL vmlinux 0x00000000 fbcon_set_bitops +EXPORT_SYMBOL vmlinux 0x00000000 fbcon_set_rotate +EXPORT_SYMBOL vmlinux 0x00000000 fbcon_set_tileops +EXPORT_SYMBOL vmlinux 0x00000000 fbcon_update_vcs +EXPORT_SYMBOL vmlinux 0x00000000 fc_mount +EXPORT_SYMBOL vmlinux 0x00000000 fd_install +EXPORT_SYMBOL vmlinux 0x00000000 fddi_type_trans +EXPORT_SYMBOL vmlinux 0x00000000 fg_console +EXPORT_SYMBOL vmlinux 0x00000000 fget +EXPORT_SYMBOL vmlinux 0x00000000 fget_raw +EXPORT_SYMBOL vmlinux 0x00000000 fib_default_rule_add +EXPORT_SYMBOL vmlinux 0x00000000 fib_notifier_ops_register +EXPORT_SYMBOL vmlinux 0x00000000 fib_notifier_ops_unregister +EXPORT_SYMBOL vmlinux 0x00000000 fiemap_check_flags +EXPORT_SYMBOL vmlinux 0x00000000 fiemap_fill_next_extent +EXPORT_SYMBOL vmlinux 0x00000000 fifo_create_dflt +EXPORT_SYMBOL vmlinux 0x00000000 fifo_set_limit +EXPORT_SYMBOL vmlinux 0x00000000 file_check_and_advance_wb_err +EXPORT_SYMBOL vmlinux 0x00000000 file_fdatawait_range +EXPORT_SYMBOL vmlinux 0x00000000 file_modified +EXPORT_SYMBOL vmlinux 0x00000000 file_ns_capable +EXPORT_SYMBOL vmlinux 0x00000000 file_open_root +EXPORT_SYMBOL vmlinux 0x00000000 file_path +EXPORT_SYMBOL vmlinux 0x00000000 file_remove_privs +EXPORT_SYMBOL vmlinux 0x00000000 file_update_time +EXPORT_SYMBOL vmlinux 0x00000000 file_write_and_wait_range +EXPORT_SYMBOL vmlinux 0x00000000 filemap_check_errors +EXPORT_SYMBOL vmlinux 0x00000000 filemap_fault +EXPORT_SYMBOL vmlinux 0x00000000 filemap_fdatawait_keep_errors +EXPORT_SYMBOL vmlinux 0x00000000 filemap_fdatawait_range +EXPORT_SYMBOL vmlinux 0x00000000 filemap_fdatawait_range_keep_errors +EXPORT_SYMBOL vmlinux 0x00000000 filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0x00000000 filemap_fdatawrite_range +EXPORT_SYMBOL vmlinux 0x00000000 filemap_flush +EXPORT_SYMBOL vmlinux 0x00000000 filemap_map_pages +EXPORT_SYMBOL vmlinux 0x00000000 filemap_page_mkwrite +EXPORT_SYMBOL vmlinux 0x00000000 filemap_range_has_page +EXPORT_SYMBOL vmlinux 0x00000000 filemap_write_and_wait_range +EXPORT_SYMBOL vmlinux 0x00000000 filp_close +EXPORT_SYMBOL vmlinux 0x00000000 filp_open +EXPORT_SYMBOL vmlinux 0x00000000 finalize_exec +EXPORT_SYMBOL vmlinux 0x00000000 find_first_bit +EXPORT_SYMBOL vmlinux 0x00000000 find_first_zero_bit +EXPORT_SYMBOL vmlinux 0x00000000 find_font +EXPORT_SYMBOL vmlinux 0x00000000 find_get_entry +EXPORT_SYMBOL vmlinux 0x00000000 find_get_pages_contig +EXPORT_SYMBOL vmlinux 0x00000000 find_get_pages_range_tag +EXPORT_SYMBOL vmlinux 0x00000000 find_inode_nowait +EXPORT_SYMBOL vmlinux 0x00000000 find_last_bit +EXPORT_SYMBOL vmlinux 0x00000000 find_lock_entry +EXPORT_SYMBOL vmlinux 0x00000000 find_next_and_bit +EXPORT_SYMBOL vmlinux 0x00000000 find_next_bit +EXPORT_SYMBOL vmlinux 0x00000000 find_next_clump8 +EXPORT_SYMBOL vmlinux 0x00000000 find_next_zero_bit +EXPORT_SYMBOL vmlinux 0x00000000 find_vma +EXPORT_SYMBOL vmlinux 0x00000000 finish_no_open +EXPORT_SYMBOL vmlinux 0x00000000 finish_open +EXPORT_SYMBOL vmlinux 0x00000000 finish_swait +EXPORT_SYMBOL vmlinux 0x00000000 finish_wait +EXPORT_SYMBOL vmlinux 0x00000000 first_ec +EXPORT_SYMBOL vmlinux 0x00000000 fixed_size_llseek +EXPORT_SYMBOL vmlinux 0x00000000 flow_block_cb_alloc +EXPORT_SYMBOL vmlinux 0x00000000 flow_block_cb_decref +EXPORT_SYMBOL vmlinux 0x00000000 flow_block_cb_free +EXPORT_SYMBOL vmlinux 0x00000000 flow_block_cb_incref +EXPORT_SYMBOL vmlinux 0x00000000 flow_block_cb_is_busy +EXPORT_SYMBOL vmlinux 0x00000000 flow_block_cb_lookup +EXPORT_SYMBOL vmlinux 0x00000000 flow_block_cb_priv +EXPORT_SYMBOL vmlinux 0x00000000 flow_block_cb_setup_simple +EXPORT_SYMBOL vmlinux 0x00000000 flow_get_u32_dst +EXPORT_SYMBOL vmlinux 0x00000000 flow_get_u32_src +EXPORT_SYMBOL vmlinux 0x00000000 flow_hash_from_keys +EXPORT_SYMBOL vmlinux 0x00000000 flow_keys_basic_dissector +EXPORT_SYMBOL vmlinux 0x00000000 flow_keys_dissector +EXPORT_SYMBOL vmlinux 0x00000000 flow_rule_alloc +EXPORT_SYMBOL vmlinux 0x00000000 flow_rule_match_basic +EXPORT_SYMBOL vmlinux 0x00000000 flow_rule_match_control +EXPORT_SYMBOL vmlinux 0x00000000 flow_rule_match_cvlan +EXPORT_SYMBOL vmlinux 0x00000000 flow_rule_match_enc_control +EXPORT_SYMBOL vmlinux 0x00000000 flow_rule_match_enc_ip +EXPORT_SYMBOL vmlinux 0x00000000 flow_rule_match_enc_ipv4_addrs +EXPORT_SYMBOL vmlinux 0x00000000 flow_rule_match_enc_ipv6_addrs +EXPORT_SYMBOL vmlinux 0x00000000 flow_rule_match_enc_keyid +EXPORT_SYMBOL vmlinux 0x00000000 flow_rule_match_enc_opts +EXPORT_SYMBOL vmlinux 0x00000000 flow_rule_match_enc_ports +EXPORT_SYMBOL vmlinux 0x00000000 flow_rule_match_eth_addrs +EXPORT_SYMBOL vmlinux 0x00000000 flow_rule_match_icmp +EXPORT_SYMBOL vmlinux 0x00000000 flow_rule_match_ip +EXPORT_SYMBOL vmlinux 0x00000000 flow_rule_match_ipv4_addrs +EXPORT_SYMBOL vmlinux 0x00000000 flow_rule_match_ipv6_addrs +EXPORT_SYMBOL vmlinux 0x00000000 flow_rule_match_meta +EXPORT_SYMBOL vmlinux 0x00000000 flow_rule_match_mpls +EXPORT_SYMBOL vmlinux 0x00000000 flow_rule_match_ports +EXPORT_SYMBOL vmlinux 0x00000000 flow_rule_match_tcp +EXPORT_SYMBOL vmlinux 0x00000000 flow_rule_match_vlan +EXPORT_SYMBOL vmlinux 0x00000000 flush_delayed_work +EXPORT_SYMBOL vmlinux 0x00000000 flush_old_exec +EXPORT_SYMBOL vmlinux 0x00000000 flush_rcu_work +EXPORT_SYMBOL vmlinux 0x00000000 flush_signals +EXPORT_SYMBOL vmlinux 0x00000000 flush_workqueue +EXPORT_SYMBOL vmlinux 0x00000000 follow_down +EXPORT_SYMBOL vmlinux 0x00000000 follow_down_one +EXPORT_SYMBOL vmlinux 0x00000000 follow_pfn +EXPORT_SYMBOL vmlinux 0x00000000 follow_pte_pmd +EXPORT_SYMBOL vmlinux 0x00000000 follow_up +EXPORT_SYMBOL vmlinux 0x00000000 font_vga_8x16 +EXPORT_SYMBOL vmlinux 0x00000000 force_sig +EXPORT_SYMBOL vmlinux 0x00000000 forget_all_cached_acls +EXPORT_SYMBOL vmlinux 0x00000000 forget_cached_acl +EXPORT_SYMBOL vmlinux 0x00000000 fortify_panic +EXPORT_SYMBOL vmlinux 0x00000000 fput +EXPORT_SYMBOL vmlinux 0x00000000 fqdir_exit +EXPORT_SYMBOL vmlinux 0x00000000 fqdir_init +EXPORT_SYMBOL vmlinux 0x00000000 frame_vector_create +EXPORT_SYMBOL vmlinux 0x00000000 frame_vector_destroy +EXPORT_SYMBOL vmlinux 0x00000000 frame_vector_to_pages +EXPORT_SYMBOL vmlinux 0x00000000 frame_vector_to_pfns +EXPORT_SYMBOL vmlinux 0x00000000 framebuffer_alloc +EXPORT_SYMBOL vmlinux 0x00000000 framebuffer_release +EXPORT_SYMBOL vmlinux 0x00000000 free_anon_bdev +EXPORT_SYMBOL vmlinux 0x00000000 free_bucket_spinlocks +EXPORT_SYMBOL vmlinux 0x00000000 free_buffer_head +EXPORT_SYMBOL vmlinux 0x00000000 free_cgroup_ns +EXPORT_SYMBOL vmlinux 0x00000000 free_cpumask_var +EXPORT_SYMBOL vmlinux 0x00000000 free_dma +EXPORT_SYMBOL vmlinux 0x00000000 free_inode_nonrcu +EXPORT_SYMBOL vmlinux 0x00000000 free_iova_mem +EXPORT_SYMBOL vmlinux 0x00000000 free_irq +EXPORT_SYMBOL vmlinux 0x00000000 free_irq_cpu_rmap +EXPORT_SYMBOL vmlinux 0x00000000 free_netdev +EXPORT_SYMBOL vmlinux 0x00000000 free_opal_dev +EXPORT_SYMBOL vmlinux 0x00000000 free_pages +EXPORT_SYMBOL vmlinux 0x00000000 free_pages_exact +EXPORT_SYMBOL vmlinux 0x00000000 free_task +EXPORT_SYMBOL vmlinux 0x00000000 free_xenballooned_pages +EXPORT_SYMBOL vmlinux 0x00000000 freeze_bdev +EXPORT_SYMBOL vmlinux 0x00000000 freeze_super +EXPORT_SYMBOL vmlinux 0x00000000 freezing_slow_path +EXPORT_SYMBOL vmlinux 0x00000000 from_kgid +EXPORT_SYMBOL vmlinux 0x00000000 from_kgid_munged +EXPORT_SYMBOL vmlinux 0x00000000 from_kprojid +EXPORT_SYMBOL vmlinux 0x00000000 from_kprojid_munged +EXPORT_SYMBOL vmlinux 0x00000000 from_kqid +EXPORT_SYMBOL vmlinux 0x00000000 from_kqid_munged +EXPORT_SYMBOL vmlinux 0x00000000 from_kuid +EXPORT_SYMBOL vmlinux 0x00000000 from_kuid_munged +EXPORT_SYMBOL vmlinux 0x00000000 frontswap_curr_pages +EXPORT_SYMBOL vmlinux 0x00000000 frontswap_register_ops +EXPORT_SYMBOL vmlinux 0x00000000 frontswap_shrink +EXPORT_SYMBOL vmlinux 0x00000000 frontswap_tmem_exclusive_gets +EXPORT_SYMBOL vmlinux 0x00000000 frontswap_writethrough +EXPORT_SYMBOL vmlinux 0x00000000 fs_bio_set +EXPORT_SYMBOL vmlinux 0x00000000 fs_context_for_mount +EXPORT_SYMBOL vmlinux 0x00000000 fs_context_for_reconfigure +EXPORT_SYMBOL vmlinux 0x00000000 fs_context_for_submount +EXPORT_SYMBOL vmlinux 0x00000000 fs_lookup_param +EXPORT_SYMBOL vmlinux 0x00000000 fs_overflowgid +EXPORT_SYMBOL vmlinux 0x00000000 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x00000000 fs_param_is_blob +EXPORT_SYMBOL vmlinux 0x00000000 fs_param_is_blockdev +EXPORT_SYMBOL vmlinux 0x00000000 fs_param_is_bool +EXPORT_SYMBOL vmlinux 0x00000000 fs_param_is_enum +EXPORT_SYMBOL vmlinux 0x00000000 fs_param_is_fd +EXPORT_SYMBOL vmlinux 0x00000000 fs_param_is_path +EXPORT_SYMBOL vmlinux 0x00000000 fs_param_is_s32 +EXPORT_SYMBOL vmlinux 0x00000000 fs_param_is_string +EXPORT_SYMBOL vmlinux 0x00000000 fs_param_is_u32 +EXPORT_SYMBOL vmlinux 0x00000000 fs_param_is_u64 +EXPORT_SYMBOL vmlinux 0x00000000 fscrypt_decrypt_bio +EXPORT_SYMBOL vmlinux 0x00000000 fscrypt_decrypt_block_inplace +EXPORT_SYMBOL vmlinux 0x00000000 fscrypt_decrypt_pagecache_blocks +EXPORT_SYMBOL vmlinux 0x00000000 fscrypt_encrypt_block_inplace +EXPORT_SYMBOL vmlinux 0x00000000 fscrypt_encrypt_pagecache_blocks +EXPORT_SYMBOL vmlinux 0x00000000 fscrypt_enqueue_decrypt_work +EXPORT_SYMBOL vmlinux 0x00000000 fscrypt_fname_alloc_buffer +EXPORT_SYMBOL vmlinux 0x00000000 fscrypt_fname_disk_to_usr +EXPORT_SYMBOL vmlinux 0x00000000 fscrypt_fname_free_buffer +EXPORT_SYMBOL vmlinux 0x00000000 fscrypt_free_bounce_page +EXPORT_SYMBOL vmlinux 0x00000000 fscrypt_free_inode +EXPORT_SYMBOL vmlinux 0x00000000 fscrypt_get_encryption_info +EXPORT_SYMBOL vmlinux 0x00000000 fscrypt_has_permitted_context +EXPORT_SYMBOL vmlinux 0x00000000 fscrypt_inherit_context +EXPORT_SYMBOL vmlinux 0x00000000 fscrypt_ioctl_get_policy +EXPORT_SYMBOL vmlinux 0x00000000 fscrypt_ioctl_set_policy +EXPORT_SYMBOL vmlinux 0x00000000 fscrypt_put_encryption_info +EXPORT_SYMBOL vmlinux 0x00000000 fscrypt_setup_filename +EXPORT_SYMBOL vmlinux 0x00000000 fscrypt_zeroout_range +EXPORT_SYMBOL vmlinux 0x00000000 fsync_bdev +EXPORT_SYMBOL vmlinux 0x00000000 full_name_hash +EXPORT_SYMBOL vmlinux 0x00000000 fuse_dequeue_forget +EXPORT_SYMBOL vmlinux 0x00000000 fwnode_get_mac_address +EXPORT_SYMBOL vmlinux 0x00000000 fwnode_graph_parse_endpoint +EXPORT_SYMBOL vmlinux 0x00000000 fwnode_irq_get +EXPORT_SYMBOL vmlinux 0x00000000 gc_inflight_list +EXPORT_SYMBOL vmlinux 0x00000000 gen_estimator_active +EXPORT_SYMBOL vmlinux 0x00000000 gen_estimator_read +EXPORT_SYMBOL vmlinux 0x00000000 gen_kill_estimator +EXPORT_SYMBOL vmlinux 0x00000000 gen_new_estimator +EXPORT_SYMBOL vmlinux 0x00000000 gen_pool_add_owner +EXPORT_SYMBOL vmlinux 0x00000000 gen_pool_alloc_algo_owner +EXPORT_SYMBOL vmlinux 0x00000000 gen_pool_best_fit +EXPORT_SYMBOL vmlinux 0x00000000 gen_pool_create +EXPORT_SYMBOL vmlinux 0x00000000 gen_pool_destroy +EXPORT_SYMBOL vmlinux 0x00000000 gen_pool_dma_alloc +EXPORT_SYMBOL vmlinux 0x00000000 gen_pool_dma_alloc_algo +EXPORT_SYMBOL vmlinux 0x00000000 gen_pool_dma_alloc_align +EXPORT_SYMBOL vmlinux 0x00000000 gen_pool_dma_zalloc +EXPORT_SYMBOL vmlinux 0x00000000 gen_pool_dma_zalloc_algo +EXPORT_SYMBOL vmlinux 0x00000000 gen_pool_dma_zalloc_align +EXPORT_SYMBOL vmlinux 0x00000000 gen_pool_first_fit +EXPORT_SYMBOL vmlinux 0x00000000 gen_pool_first_fit_align +EXPORT_SYMBOL vmlinux 0x00000000 gen_pool_first_fit_order_align +EXPORT_SYMBOL vmlinux 0x00000000 gen_pool_fixed_alloc +EXPORT_SYMBOL vmlinux 0x00000000 gen_pool_for_each_chunk +EXPORT_SYMBOL vmlinux 0x00000000 gen_pool_free_owner +EXPORT_SYMBOL vmlinux 0x00000000 gen_pool_has_addr +EXPORT_SYMBOL vmlinux 0x00000000 gen_pool_set_algo +EXPORT_SYMBOL vmlinux 0x00000000 gen_pool_virt_to_phys +EXPORT_SYMBOL vmlinux 0x00000000 gen_replace_estimator +EXPORT_SYMBOL vmlinux 0x00000000 generate_pm_trace +EXPORT_SYMBOL vmlinux 0x00000000 generate_random_uuid +EXPORT_SYMBOL vmlinux 0x00000000 generic_block_bmap +EXPORT_SYMBOL vmlinux 0x00000000 generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x00000000 generic_check_addressable +EXPORT_SYMBOL vmlinux 0x00000000 generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0x00000000 generic_copy_file_range +EXPORT_SYMBOL vmlinux 0x00000000 generic_delete_inode +EXPORT_SYMBOL vmlinux 0x00000000 generic_end_io_acct +EXPORT_SYMBOL vmlinux 0x00000000 generic_error_remove_page +EXPORT_SYMBOL vmlinux 0x00000000 generic_fadvise +EXPORT_SYMBOL vmlinux 0x00000000 generic_file_direct_write +EXPORT_SYMBOL vmlinux 0x00000000 generic_file_fsync +EXPORT_SYMBOL vmlinux 0x00000000 generic_file_llseek +EXPORT_SYMBOL vmlinux 0x00000000 generic_file_llseek_size +EXPORT_SYMBOL vmlinux 0x00000000 generic_file_mmap +EXPORT_SYMBOL vmlinux 0x00000000 generic_file_open +EXPORT_SYMBOL vmlinux 0x00000000 generic_file_read_iter +EXPORT_SYMBOL vmlinux 0x00000000 generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0x00000000 generic_file_splice_read +EXPORT_SYMBOL vmlinux 0x00000000 generic_file_write_iter +EXPORT_SYMBOL vmlinux 0x00000000 generic_fillattr +EXPORT_SYMBOL vmlinux 0x00000000 generic_iommu_put_resv_regions +EXPORT_SYMBOL vmlinux 0x00000000 generic_key_instantiate +EXPORT_SYMBOL vmlinux 0x00000000 generic_listxattr +EXPORT_SYMBOL vmlinux 0x00000000 generic_make_request +EXPORT_SYMBOL vmlinux 0x00000000 generic_parse_monolithic +EXPORT_SYMBOL vmlinux 0x00000000 generic_perform_write +EXPORT_SYMBOL vmlinux 0x00000000 generic_permission +EXPORT_SYMBOL vmlinux 0x00000000 generic_pipe_buf_confirm +EXPORT_SYMBOL vmlinux 0x00000000 generic_pipe_buf_get +EXPORT_SYMBOL vmlinux 0x00000000 generic_pipe_buf_release +EXPORT_SYMBOL vmlinux 0x00000000 generic_pipe_buf_steal +EXPORT_SYMBOL vmlinux 0x00000000 generic_read_dir +EXPORT_SYMBOL vmlinux 0x00000000 generic_remap_file_range_prep +EXPORT_SYMBOL vmlinux 0x00000000 generic_ro_fops +EXPORT_SYMBOL vmlinux 0x00000000 generic_setlease +EXPORT_SYMBOL vmlinux 0x00000000 generic_shutdown_super +EXPORT_SYMBOL vmlinux 0x00000000 generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0x00000000 generic_start_io_acct +EXPORT_SYMBOL vmlinux 0x00000000 generic_update_time +EXPORT_SYMBOL vmlinux 0x00000000 generic_write_checks +EXPORT_SYMBOL vmlinux 0x00000000 generic_write_end +EXPORT_SYMBOL vmlinux 0x00000000 generic_writepages +EXPORT_SYMBOL vmlinux 0x00000000 genl_lock +EXPORT_SYMBOL vmlinux 0x00000000 genl_notify +EXPORT_SYMBOL vmlinux 0x00000000 genl_register_family +EXPORT_SYMBOL vmlinux 0x00000000 genl_unlock +EXPORT_SYMBOL vmlinux 0x00000000 genl_unregister_family +EXPORT_SYMBOL vmlinux 0x00000000 genlmsg_multicast_allns +EXPORT_SYMBOL vmlinux 0x00000000 genlmsg_put +EXPORT_SYMBOL vmlinux 0x00000000 genphy_aneg_done +EXPORT_SYMBOL vmlinux 0x00000000 genphy_c37_config_aneg +EXPORT_SYMBOL vmlinux 0x00000000 genphy_c37_read_status +EXPORT_SYMBOL vmlinux 0x00000000 genphy_check_and_restart_aneg +EXPORT_SYMBOL vmlinux 0x00000000 genphy_config_eee_advert +EXPORT_SYMBOL vmlinux 0x00000000 genphy_loopback +EXPORT_SYMBOL vmlinux 0x00000000 genphy_read_abilities +EXPORT_SYMBOL vmlinux 0x00000000 genphy_read_lpa +EXPORT_SYMBOL vmlinux 0x00000000 genphy_read_mmd_unsupported +EXPORT_SYMBOL vmlinux 0x00000000 genphy_read_status +EXPORT_SYMBOL vmlinux 0x00000000 genphy_read_status_fixed +EXPORT_SYMBOL vmlinux 0x00000000 genphy_restart_aneg +EXPORT_SYMBOL vmlinux 0x00000000 genphy_resume +EXPORT_SYMBOL vmlinux 0x00000000 genphy_setup_forced +EXPORT_SYMBOL vmlinux 0x00000000 genphy_soft_reset +EXPORT_SYMBOL vmlinux 0x00000000 genphy_suspend +EXPORT_SYMBOL vmlinux 0x00000000 genphy_update_link +EXPORT_SYMBOL vmlinux 0x00000000 genphy_write_mmd_unsupported +EXPORT_SYMBOL vmlinux 0x00000000 get_acl +EXPORT_SYMBOL vmlinux 0x00000000 get_agp_version +EXPORT_SYMBOL vmlinux 0x00000000 get_amd_iommu +EXPORT_SYMBOL vmlinux 0x00000000 get_anon_bdev +EXPORT_SYMBOL vmlinux 0x00000000 get_bitmap_from_slot +EXPORT_SYMBOL vmlinux 0x00000000 get_cached_acl +EXPORT_SYMBOL vmlinux 0x00000000 get_cached_acl_rcu +EXPORT_SYMBOL vmlinux 0x00000000 get_cpu_entry_area +EXPORT_SYMBOL vmlinux 0x00000000 get_default_font +EXPORT_SYMBOL vmlinux 0x00000000 get_dev_data +EXPORT_SYMBOL vmlinux 0x00000000 get_disk_and_module +EXPORT_SYMBOL vmlinux 0x00000000 get_fs_type +EXPORT_SYMBOL vmlinux 0x00000000 get_gendisk +EXPORT_SYMBOL vmlinux 0x00000000 get_ibs_caps +EXPORT_SYMBOL vmlinux 0x00000000 get_ipc_ns_exported +EXPORT_SYMBOL vmlinux 0x00000000 get_mem_cgroup_from_mm +EXPORT_SYMBOL vmlinux 0x00000000 get_mem_cgroup_from_page +EXPORT_SYMBOL vmlinux 0x00000000 get_mm_exe_file +EXPORT_SYMBOL vmlinux 0x00000000 get_next_ino +EXPORT_SYMBOL vmlinux 0x00000000 get_option +EXPORT_SYMBOL vmlinux 0x00000000 get_options +EXPORT_SYMBOL vmlinux 0x00000000 get_phy_device +EXPORT_SYMBOL vmlinux 0x00000000 get_random_bytes +EXPORT_SYMBOL vmlinux 0x00000000 get_random_bytes_arch +EXPORT_SYMBOL vmlinux 0x00000000 get_random_u32 +EXPORT_SYMBOL vmlinux 0x00000000 get_random_u64 +EXPORT_SYMBOL vmlinux 0x00000000 get_sg_io_hdr +EXPORT_SYMBOL vmlinux 0x00000000 get_super +EXPORT_SYMBOL vmlinux 0x00000000 get_super_exclusive_thawed +EXPORT_SYMBOL vmlinux 0x00000000 get_super_thawed +EXPORT_SYMBOL vmlinux 0x00000000 get_task_cred +EXPORT_SYMBOL vmlinux 0x00000000 get_task_exe_file +EXPORT_SYMBOL vmlinux 0x00000000 get_thermal_instance +EXPORT_SYMBOL vmlinux 0x00000000 get_tree_bdev +EXPORT_SYMBOL vmlinux 0x00000000 get_tree_keyed +EXPORT_SYMBOL vmlinux 0x00000000 get_tree_nodev +EXPORT_SYMBOL vmlinux 0x00000000 get_tree_single +EXPORT_SYMBOL vmlinux 0x00000000 get_tree_single_reconf +EXPORT_SYMBOL vmlinux 0x00000000 get_tz_trend +EXPORT_SYMBOL vmlinux 0x00000000 get_unmapped_area +EXPORT_SYMBOL vmlinux 0x00000000 get_unused_fd_flags +EXPORT_SYMBOL vmlinux 0x00000000 get_user_pages +EXPORT_SYMBOL vmlinux 0x00000000 get_user_pages_locked +EXPORT_SYMBOL vmlinux 0x00000000 get_user_pages_remote +EXPORT_SYMBOL vmlinux 0x00000000 get_user_pages_unlocked +EXPORT_SYMBOL vmlinux 0x00000000 get_vaddr_frames +EXPORT_SYMBOL vmlinux 0x00000000 get_vm_area +EXPORT_SYMBOL vmlinux 0x00000000 get_zeroed_page +EXPORT_SYMBOL vmlinux 0x00000000 gf128mul_4k_bbe +EXPORT_SYMBOL vmlinux 0x00000000 gf128mul_4k_lle +EXPORT_SYMBOL vmlinux 0x00000000 gf128mul_64k_bbe +EXPORT_SYMBOL vmlinux 0x00000000 gf128mul_bbe +EXPORT_SYMBOL vmlinux 0x00000000 gf128mul_free_64k +EXPORT_SYMBOL vmlinux 0x00000000 gf128mul_init_4k_bbe +EXPORT_SYMBOL vmlinux 0x00000000 gf128mul_init_4k_lle +EXPORT_SYMBOL vmlinux 0x00000000 gf128mul_init_64k_bbe +EXPORT_SYMBOL vmlinux 0x00000000 gf128mul_lle +EXPORT_SYMBOL vmlinux 0x00000000 gf128mul_x8_ble +EXPORT_SYMBOL vmlinux 0x00000000 give_up_console +EXPORT_SYMBOL vmlinux 0x00000000 glob_match +EXPORT_SYMBOL vmlinux 0x00000000 global_cache_flush +EXPORT_SYMBOL vmlinux 0x00000000 global_cursor_default +EXPORT_SYMBOL vmlinux 0x00000000 gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0x00000000 gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0x00000000 gnet_stats_copy_basic_hw +EXPORT_SYMBOL vmlinux 0x00000000 gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0x00000000 gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0x00000000 gnet_stats_finish_copy +EXPORT_SYMBOL vmlinux 0x00000000 gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0x00000000 gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0x00000000 grab_cache_page_write_begin +EXPORT_SYMBOL vmlinux 0x00000000 gro_cells_destroy +EXPORT_SYMBOL vmlinux 0x00000000 gro_cells_init +EXPORT_SYMBOL vmlinux 0x00000000 gro_cells_receive +EXPORT_SYMBOL vmlinux 0x00000000 gro_find_complete_by_type +EXPORT_SYMBOL vmlinux 0x00000000 gro_find_receive_by_type +EXPORT_SYMBOL vmlinux 0x00000000 groups_alloc +EXPORT_SYMBOL vmlinux 0x00000000 groups_free +EXPORT_SYMBOL vmlinux 0x00000000 groups_sort +EXPORT_SYMBOL vmlinux 0x00000000 guid_null +EXPORT_SYMBOL vmlinux 0x00000000 guid_parse +EXPORT_SYMBOL vmlinux 0x00000000 handle_edge_irq +EXPORT_SYMBOL vmlinux 0x00000000 handle_sysrq +EXPORT_SYMBOL vmlinux 0x00000000 has_capability +EXPORT_SYMBOL vmlinux 0x00000000 hash_and_copy_to_iter +EXPORT_SYMBOL vmlinux 0x00000000 hashlen_string +EXPORT_SYMBOL vmlinux 0x00000000 hchacha_block_generic +EXPORT_SYMBOL vmlinux 0x00000000 hdmi_audio_infoframe_check +EXPORT_SYMBOL vmlinux 0x00000000 hdmi_audio_infoframe_init +EXPORT_SYMBOL vmlinux 0x00000000 hdmi_audio_infoframe_pack +EXPORT_SYMBOL vmlinux 0x00000000 hdmi_audio_infoframe_pack_only +EXPORT_SYMBOL vmlinux 0x00000000 hdmi_avi_infoframe_check +EXPORT_SYMBOL vmlinux 0x00000000 hdmi_avi_infoframe_init +EXPORT_SYMBOL vmlinux 0x00000000 hdmi_avi_infoframe_pack +EXPORT_SYMBOL vmlinux 0x00000000 hdmi_avi_infoframe_pack_only +EXPORT_SYMBOL vmlinux 0x00000000 hdmi_drm_infoframe_check +EXPORT_SYMBOL vmlinux 0x00000000 hdmi_drm_infoframe_init +EXPORT_SYMBOL vmlinux 0x00000000 hdmi_drm_infoframe_pack +EXPORT_SYMBOL vmlinux 0x00000000 hdmi_drm_infoframe_pack_only +EXPORT_SYMBOL vmlinux 0x00000000 hdmi_infoframe_check +EXPORT_SYMBOL vmlinux 0x00000000 hdmi_infoframe_log +EXPORT_SYMBOL vmlinux 0x00000000 hdmi_infoframe_pack +EXPORT_SYMBOL vmlinux 0x00000000 hdmi_infoframe_pack_only +EXPORT_SYMBOL vmlinux 0x00000000 hdmi_infoframe_unpack +EXPORT_SYMBOL vmlinux 0x00000000 hdmi_spd_infoframe_check +EXPORT_SYMBOL vmlinux 0x00000000 hdmi_spd_infoframe_init +EXPORT_SYMBOL vmlinux 0x00000000 hdmi_spd_infoframe_pack +EXPORT_SYMBOL vmlinux 0x00000000 hdmi_spd_infoframe_pack_only +EXPORT_SYMBOL vmlinux 0x00000000 hdmi_vendor_infoframe_check +EXPORT_SYMBOL vmlinux 0x00000000 hdmi_vendor_infoframe_init +EXPORT_SYMBOL vmlinux 0x00000000 hdmi_vendor_infoframe_pack +EXPORT_SYMBOL vmlinux 0x00000000 hdmi_vendor_infoframe_pack_only +EXPORT_SYMBOL vmlinux 0x00000000 hex2bin +EXPORT_SYMBOL vmlinux 0x00000000 hex_asc +EXPORT_SYMBOL vmlinux 0x00000000 hex_asc_upper +EXPORT_SYMBOL vmlinux 0x00000000 hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0x00000000 hex_to_bin +EXPORT_SYMBOL vmlinux 0x00000000 high_memory +EXPORT_SYMBOL vmlinux 0x00000000 hmm_range_fault +EXPORT_SYMBOL vmlinux 0x00000000 hsiphash_1u32 +EXPORT_SYMBOL vmlinux 0x00000000 hsiphash_2u32 +EXPORT_SYMBOL vmlinux 0x00000000 hsiphash_3u32 +EXPORT_SYMBOL vmlinux 0x00000000 hsiphash_4u32 +EXPORT_SYMBOL vmlinux 0x00000000 i2c_add_adapter +EXPORT_SYMBOL vmlinux 0x00000000 i2c_clients_command +EXPORT_SYMBOL vmlinux 0x00000000 i2c_del_adapter +EXPORT_SYMBOL vmlinux 0x00000000 i2c_del_driver +EXPORT_SYMBOL vmlinux 0x00000000 i2c_get_adapter +EXPORT_SYMBOL vmlinux 0x00000000 i2c_put_adapter +EXPORT_SYMBOL vmlinux 0x00000000 i2c_register_driver +EXPORT_SYMBOL vmlinux 0x00000000 i2c_smbus_read_block_data +EXPORT_SYMBOL vmlinux 0x00000000 i2c_smbus_read_byte +EXPORT_SYMBOL vmlinux 0x00000000 i2c_smbus_read_byte_data +EXPORT_SYMBOL vmlinux 0x00000000 i2c_smbus_read_i2c_block_data +EXPORT_SYMBOL vmlinux 0x00000000 i2c_smbus_read_i2c_block_data_or_emulated +EXPORT_SYMBOL vmlinux 0x00000000 i2c_smbus_read_word_data +EXPORT_SYMBOL vmlinux 0x00000000 i2c_smbus_write_block_data +EXPORT_SYMBOL vmlinux 0x00000000 i2c_smbus_write_byte +EXPORT_SYMBOL vmlinux 0x00000000 i2c_smbus_write_byte_data +EXPORT_SYMBOL vmlinux 0x00000000 i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL vmlinux 0x00000000 i2c_smbus_write_word_data +EXPORT_SYMBOL vmlinux 0x00000000 i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0x00000000 i2c_transfer +EXPORT_SYMBOL vmlinux 0x00000000 i2c_transfer_buffer_flags +EXPORT_SYMBOL vmlinux 0x00000000 i2c_verify_adapter +EXPORT_SYMBOL vmlinux 0x00000000 i2c_verify_client +EXPORT_SYMBOL vmlinux 0x00000000 i8042_command +EXPORT_SYMBOL vmlinux 0x00000000 i8042_install_filter +EXPORT_SYMBOL vmlinux 0x00000000 i8042_lock_chip +EXPORT_SYMBOL vmlinux 0x00000000 i8042_remove_filter +EXPORT_SYMBOL vmlinux 0x00000000 i8042_unlock_chip +EXPORT_SYMBOL vmlinux 0x00000000 i8253_lock +EXPORT_SYMBOL vmlinux 0x00000000 icmp_err_convert +EXPORT_SYMBOL vmlinux 0x00000000 icmp_global_allow +EXPORT_SYMBOL vmlinux 0x00000000 icmp_ndo_send +EXPORT_SYMBOL vmlinux 0x00000000 icmpv6_err_convert +EXPORT_SYMBOL vmlinux 0x00000000 icmpv6_ndo_send +EXPORT_SYMBOL vmlinux 0x00000000 icmpv6_send +EXPORT_SYMBOL vmlinux 0x00000000 ida_alloc_range +EXPORT_SYMBOL vmlinux 0x00000000 ida_destroy +EXPORT_SYMBOL vmlinux 0x00000000 ida_free +EXPORT_SYMBOL vmlinux 0x00000000 idr_alloc_cyclic +EXPORT_SYMBOL vmlinux 0x00000000 idr_destroy +EXPORT_SYMBOL vmlinux 0x00000000 idr_for_each +EXPORT_SYMBOL vmlinux 0x00000000 idr_get_next +EXPORT_SYMBOL vmlinux 0x00000000 idr_get_next_ul +EXPORT_SYMBOL vmlinux 0x00000000 idr_preload +EXPORT_SYMBOL vmlinux 0x00000000 idr_replace +EXPORT_SYMBOL vmlinux 0x00000000 iget5_locked +EXPORT_SYMBOL vmlinux 0x00000000 iget_failed +EXPORT_SYMBOL vmlinux 0x00000000 iget_locked +EXPORT_SYMBOL vmlinux 0x00000000 ignore_console_lock_warning +EXPORT_SYMBOL vmlinux 0x00000000 igrab +EXPORT_SYMBOL vmlinux 0x00000000 ihold +EXPORT_SYMBOL vmlinux 0x00000000 ilookup +EXPORT_SYMBOL vmlinux 0x00000000 ilookup5 +EXPORT_SYMBOL vmlinux 0x00000000 ilookup5_nowait +EXPORT_SYMBOL vmlinux 0x00000000 import_iovec +EXPORT_SYMBOL vmlinux 0x00000000 import_single_range +EXPORT_SYMBOL vmlinux 0x00000000 in4_pton +EXPORT_SYMBOL vmlinux 0x00000000 in6_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x00000000 in6_pton +EXPORT_SYMBOL vmlinux 0x00000000 in6addr_any +EXPORT_SYMBOL vmlinux 0x00000000 in6addr_interfacelocal_allnodes +EXPORT_SYMBOL vmlinux 0x00000000 in6addr_interfacelocal_allrouters +EXPORT_SYMBOL vmlinux 0x00000000 in6addr_linklocal_allnodes +EXPORT_SYMBOL vmlinux 0x00000000 in6addr_linklocal_allrouters +EXPORT_SYMBOL vmlinux 0x00000000 in6addr_loopback +EXPORT_SYMBOL vmlinux 0x00000000 in6addr_sitelocal_allrouters +EXPORT_SYMBOL vmlinux 0x00000000 in_aton +EXPORT_SYMBOL vmlinux 0x00000000 in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x00000000 in_egroup_p +EXPORT_SYMBOL vmlinux 0x00000000 in_group_p +EXPORT_SYMBOL vmlinux 0x00000000 in_lock_functions +EXPORT_SYMBOL vmlinux 0x00000000 inc_nlink +EXPORT_SYMBOL vmlinux 0x00000000 inc_node_page_state +EXPORT_SYMBOL vmlinux 0x00000000 inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x00000000 inet6_add_offload +EXPORT_SYMBOL vmlinux 0x00000000 inet6_add_protocol +EXPORT_SYMBOL vmlinux 0x00000000 inet6_bind +EXPORT_SYMBOL vmlinux 0x00000000 inet6_csk_route_req +EXPORT_SYMBOL vmlinux 0x00000000 inet6_del_offload +EXPORT_SYMBOL vmlinux 0x00000000 inet6_del_protocol +EXPORT_SYMBOL vmlinux 0x00000000 inet6_getname +EXPORT_SYMBOL vmlinux 0x00000000 inet6_ioctl +EXPORT_SYMBOL vmlinux 0x00000000 inet6_offloads +EXPORT_SYMBOL vmlinux 0x00000000 inet6_protos +EXPORT_SYMBOL vmlinux 0x00000000 inet6_register_icmp_sender +EXPORT_SYMBOL vmlinux 0x00000000 inet6_register_protosw +EXPORT_SYMBOL vmlinux 0x00000000 inet6_release +EXPORT_SYMBOL vmlinux 0x00000000 inet6_unregister_icmp_sender +EXPORT_SYMBOL vmlinux 0x00000000 inet6_unregister_protosw +EXPORT_SYMBOL vmlinux 0x00000000 inet6addr_notifier_call_chain +EXPORT_SYMBOL vmlinux 0x00000000 inet6addr_validator_notifier_call_chain +EXPORT_SYMBOL vmlinux 0x00000000 inet_accept +EXPORT_SYMBOL vmlinux 0x00000000 inet_add_offload +EXPORT_SYMBOL vmlinux 0x00000000 inet_add_protocol +EXPORT_SYMBOL vmlinux 0x00000000 inet_addr_is_any +EXPORT_SYMBOL vmlinux 0x00000000 inet_addr_type +EXPORT_SYMBOL vmlinux 0x00000000 inet_addr_type_dev_table +EXPORT_SYMBOL vmlinux 0x00000000 inet_addr_type_table +EXPORT_SYMBOL vmlinux 0x00000000 inet_bind +EXPORT_SYMBOL vmlinux 0x00000000 inet_confirm_addr +EXPORT_SYMBOL vmlinux 0x00000000 inet_csk_accept +EXPORT_SYMBOL vmlinux 0x00000000 inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0x00000000 inet_csk_complete_hashdance +EXPORT_SYMBOL vmlinux 0x00000000 inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0x00000000 inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0x00000000 inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x00000000 inet_csk_prepare_forced_close +EXPORT_SYMBOL vmlinux 0x00000000 inet_csk_reqsk_queue_add +EXPORT_SYMBOL vmlinux 0x00000000 inet_csk_reqsk_queue_drop +EXPORT_SYMBOL vmlinux 0x00000000 inet_csk_reqsk_queue_drop_and_put +EXPORT_SYMBOL vmlinux 0x00000000 inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0x00000000 inet_current_timestamp +EXPORT_SYMBOL vmlinux 0x00000000 inet_del_offload +EXPORT_SYMBOL vmlinux 0x00000000 inet_del_protocol +EXPORT_SYMBOL vmlinux 0x00000000 inet_dev_addr_type +EXPORT_SYMBOL vmlinux 0x00000000 inet_dgram_connect +EXPORT_SYMBOL vmlinux 0x00000000 inet_dgram_ops +EXPORT_SYMBOL vmlinux 0x00000000 inet_frag_destroy +EXPORT_SYMBOL vmlinux 0x00000000 inet_frag_find +EXPORT_SYMBOL vmlinux 0x00000000 inet_frag_kill +EXPORT_SYMBOL vmlinux 0x00000000 inet_frag_pull_head +EXPORT_SYMBOL vmlinux 0x00000000 inet_frag_queue_insert +EXPORT_SYMBOL vmlinux 0x00000000 inet_frag_rbtree_purge +EXPORT_SYMBOL vmlinux 0x00000000 inet_frag_reasm_finish +EXPORT_SYMBOL vmlinux 0x00000000 inet_frag_reasm_prepare +EXPORT_SYMBOL vmlinux 0x00000000 inet_frags_fini +EXPORT_SYMBOL vmlinux 0x00000000 inet_frags_init +EXPORT_SYMBOL vmlinux 0x00000000 inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0x00000000 inet_getname +EXPORT_SYMBOL vmlinux 0x00000000 inet_gro_complete +EXPORT_SYMBOL vmlinux 0x00000000 inet_gro_receive +EXPORT_SYMBOL vmlinux 0x00000000 inet_gso_segment +EXPORT_SYMBOL vmlinux 0x00000000 inet_ioctl +EXPORT_SYMBOL vmlinux 0x00000000 inet_listen +EXPORT_SYMBOL vmlinux 0x00000000 inet_offloads +EXPORT_SYMBOL vmlinux 0x00000000 inet_peer_xrlim_allow +EXPORT_SYMBOL vmlinux 0x00000000 inet_proto_csum_replace16 +EXPORT_SYMBOL vmlinux 0x00000000 inet_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0x00000000 inet_proto_csum_replace_by_diff +EXPORT_SYMBOL vmlinux 0x00000000 inet_protos +EXPORT_SYMBOL vmlinux 0x00000000 inet_pton_with_scope +EXPORT_SYMBOL vmlinux 0x00000000 inet_put_port +EXPORT_SYMBOL vmlinux 0x00000000 inet_rcv_saddr_equal +EXPORT_SYMBOL vmlinux 0x00000000 inet_recvmsg +EXPORT_SYMBOL vmlinux 0x00000000 inet_register_protosw +EXPORT_SYMBOL vmlinux 0x00000000 inet_release +EXPORT_SYMBOL vmlinux 0x00000000 inet_reqsk_alloc +EXPORT_SYMBOL vmlinux 0x00000000 inet_rtx_syn_ack +EXPORT_SYMBOL vmlinux 0x00000000 inet_select_addr +EXPORT_SYMBOL vmlinux 0x00000000 inet_sendmsg +EXPORT_SYMBOL vmlinux 0x00000000 inet_sendpage +EXPORT_SYMBOL vmlinux 0x00000000 inet_shutdown +EXPORT_SYMBOL vmlinux 0x00000000 inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0x00000000 inet_sk_rx_dst_set +EXPORT_SYMBOL vmlinux 0x00000000 inet_sk_set_state +EXPORT_SYMBOL vmlinux 0x00000000 inet_sock_destruct +EXPORT_SYMBOL vmlinux 0x00000000 inet_stream_connect +EXPORT_SYMBOL vmlinux 0x00000000 inet_stream_ops +EXPORT_SYMBOL vmlinux 0x00000000 inet_twsk_deschedule_put +EXPORT_SYMBOL vmlinux 0x00000000 inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0x00000000 inetdev_by_index +EXPORT_SYMBOL vmlinux 0x00000000 inetpeer_invalidate_tree +EXPORT_SYMBOL vmlinux 0x00000000 init_cdrom_command +EXPORT_SYMBOL vmlinux 0x00000000 init_net +EXPORT_SYMBOL vmlinux 0x00000000 init_on_alloc +EXPORT_SYMBOL vmlinux 0x00000000 init_on_free +EXPORT_SYMBOL vmlinux 0x00000000 init_opal_dev +EXPORT_SYMBOL vmlinux 0x00000000 init_pseudo +EXPORT_SYMBOL vmlinux 0x00000000 init_special_inode +EXPORT_SYMBOL vmlinux 0x00000000 init_task +EXPORT_SYMBOL vmlinux 0x00000000 init_timer_key +EXPORT_SYMBOL vmlinux 0x00000000 init_wait_entry +EXPORT_SYMBOL vmlinux 0x00000000 init_wait_var_entry +EXPORT_SYMBOL vmlinux 0x00000000 inode_add_bytes +EXPORT_SYMBOL vmlinux 0x00000000 inode_dio_wait +EXPORT_SYMBOL vmlinux 0x00000000 inode_get_bytes +EXPORT_SYMBOL vmlinux 0x00000000 inode_init_always +EXPORT_SYMBOL vmlinux 0x00000000 inode_init_once +EXPORT_SYMBOL vmlinux 0x00000000 inode_init_owner +EXPORT_SYMBOL vmlinux 0x00000000 inode_insert5 +EXPORT_SYMBOL vmlinux 0x00000000 inode_needs_sync +EXPORT_SYMBOL vmlinux 0x00000000 inode_newsize_ok +EXPORT_SYMBOL vmlinux 0x00000000 inode_nohighmem +EXPORT_SYMBOL vmlinux 0x00000000 inode_owner_or_capable +EXPORT_SYMBOL vmlinux 0x00000000 inode_permission +EXPORT_SYMBOL vmlinux 0x00000000 inode_set_bytes +EXPORT_SYMBOL vmlinux 0x00000000 inode_set_flags +EXPORT_SYMBOL vmlinux 0x00000000 inode_sub_bytes +EXPORT_SYMBOL vmlinux 0x00000000 input_alloc_absinfo +EXPORT_SYMBOL vmlinux 0x00000000 input_allocate_device +EXPORT_SYMBOL vmlinux 0x00000000 input_close_device +EXPORT_SYMBOL vmlinux 0x00000000 input_enable_softrepeat +EXPORT_SYMBOL vmlinux 0x00000000 input_event +EXPORT_SYMBOL vmlinux 0x00000000 input_flush_device +EXPORT_SYMBOL vmlinux 0x00000000 input_free_device +EXPORT_SYMBOL vmlinux 0x00000000 input_free_minor +EXPORT_SYMBOL vmlinux 0x00000000 input_get_keycode +EXPORT_SYMBOL vmlinux 0x00000000 input_get_new_minor +EXPORT_SYMBOL vmlinux 0x00000000 input_get_poll_interval +EXPORT_SYMBOL vmlinux 0x00000000 input_get_timestamp +EXPORT_SYMBOL vmlinux 0x00000000 input_grab_device +EXPORT_SYMBOL vmlinux 0x00000000 input_handler_for_each_handle +EXPORT_SYMBOL vmlinux 0x00000000 input_inject_event +EXPORT_SYMBOL vmlinux 0x00000000 input_match_device_id +EXPORT_SYMBOL vmlinux 0x00000000 input_mt_assign_slots +EXPORT_SYMBOL vmlinux 0x00000000 input_mt_destroy_slots +EXPORT_SYMBOL vmlinux 0x00000000 input_mt_drop_unused +EXPORT_SYMBOL vmlinux 0x00000000 input_mt_get_slot_by_key +EXPORT_SYMBOL vmlinux 0x00000000 input_mt_init_slots +EXPORT_SYMBOL vmlinux 0x00000000 input_mt_report_finger_count +EXPORT_SYMBOL vmlinux 0x00000000 input_mt_report_pointer_emulation +EXPORT_SYMBOL vmlinux 0x00000000 input_mt_report_slot_state +EXPORT_SYMBOL vmlinux 0x00000000 input_mt_sync_frame +EXPORT_SYMBOL vmlinux 0x00000000 input_open_device +EXPORT_SYMBOL vmlinux 0x00000000 input_register_device +EXPORT_SYMBOL vmlinux 0x00000000 input_register_handle +EXPORT_SYMBOL vmlinux 0x00000000 input_register_handler +EXPORT_SYMBOL vmlinux 0x00000000 input_release_device +EXPORT_SYMBOL vmlinux 0x00000000 input_reset_device +EXPORT_SYMBOL vmlinux 0x00000000 input_scancode_to_scalar +EXPORT_SYMBOL vmlinux 0x00000000 input_set_abs_params +EXPORT_SYMBOL vmlinux 0x00000000 input_set_capability +EXPORT_SYMBOL vmlinux 0x00000000 input_set_keycode +EXPORT_SYMBOL vmlinux 0x00000000 input_set_max_poll_interval +EXPORT_SYMBOL vmlinux 0x00000000 input_set_min_poll_interval +EXPORT_SYMBOL vmlinux 0x00000000 input_set_poll_interval +EXPORT_SYMBOL vmlinux 0x00000000 input_set_timestamp +EXPORT_SYMBOL vmlinux 0x00000000 input_setup_polling +EXPORT_SYMBOL vmlinux 0x00000000 input_unregister_device +EXPORT_SYMBOL vmlinux 0x00000000 input_unregister_handle +EXPORT_SYMBOL vmlinux 0x00000000 input_unregister_handler +EXPORT_SYMBOL vmlinux 0x00000000 insert_inode_locked +EXPORT_SYMBOL vmlinux 0x00000000 insert_inode_locked4 +EXPORT_SYMBOL vmlinux 0x00000000 install_exec_creds +EXPORT_SYMBOL vmlinux 0x00000000 int_sqrt +EXPORT_SYMBOL vmlinux 0x00000000 int_to_scsilun +EXPORT_SYMBOL vmlinux 0x00000000 intel_enable_gtt +EXPORT_SYMBOL vmlinux 0x00000000 intel_gmch_probe +EXPORT_SYMBOL vmlinux 0x00000000 intel_gmch_remove +EXPORT_SYMBOL vmlinux 0x00000000 intel_graphics_stolen_res +EXPORT_SYMBOL vmlinux 0x00000000 intel_gtt_chipset_flush +EXPORT_SYMBOL vmlinux 0x00000000 intel_gtt_clear_range +EXPORT_SYMBOL vmlinux 0x00000000 intel_gtt_get +EXPORT_SYMBOL vmlinux 0x00000000 intel_gtt_insert_page +EXPORT_SYMBOL vmlinux 0x00000000 intel_gtt_insert_sg_entries +EXPORT_SYMBOL vmlinux 0x00000000 invalidate_bdev +EXPORT_SYMBOL vmlinux 0x00000000 invalidate_inode_buffers +EXPORT_SYMBOL vmlinux 0x00000000 invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0x00000000 invalidate_partition +EXPORT_SYMBOL vmlinux 0x00000000 io_schedule +EXPORT_SYMBOL vmlinux 0x00000000 io_schedule_timeout +EXPORT_SYMBOL vmlinux 0x00000000 io_uring_get_socket +EXPORT_SYMBOL vmlinux 0x00000000 ioc_lookup_icq +EXPORT_SYMBOL vmlinux 0x00000000 ioctl_by_bdev +EXPORT_SYMBOL vmlinux 0x00000000 iomem_resource +EXPORT_SYMBOL vmlinux 0x00000000 iommu_dma_get_resv_regions +EXPORT_SYMBOL vmlinux 0x00000000 iommu_get_dma_cookie +EXPORT_SYMBOL vmlinux 0x00000000 iommu_get_msi_cookie +EXPORT_SYMBOL vmlinux 0x00000000 iommu_put_dma_cookie +EXPORT_SYMBOL vmlinux 0x00000000 ioport_map +EXPORT_SYMBOL vmlinux 0x00000000 ioport_resource +EXPORT_SYMBOL vmlinux 0x00000000 ioport_unmap +EXPORT_SYMBOL vmlinux 0x00000000 ioread16 +EXPORT_SYMBOL vmlinux 0x00000000 ioread16_rep +EXPORT_SYMBOL vmlinux 0x00000000 ioread16be +EXPORT_SYMBOL vmlinux 0x00000000 ioread32 +EXPORT_SYMBOL vmlinux 0x00000000 ioread32_rep +EXPORT_SYMBOL vmlinux 0x00000000 ioread32be +EXPORT_SYMBOL vmlinux 0x00000000 ioread64_hi_lo +EXPORT_SYMBOL vmlinux 0x00000000 ioread64_lo_hi +EXPORT_SYMBOL vmlinux 0x00000000 ioread64be_hi_lo +EXPORT_SYMBOL vmlinux 0x00000000 ioread64be_lo_hi +EXPORT_SYMBOL vmlinux 0x00000000 ioread8 +EXPORT_SYMBOL vmlinux 0x00000000 ioread8_rep +EXPORT_SYMBOL vmlinux 0x00000000 ioremap +EXPORT_SYMBOL vmlinux 0x00000000 ioremap_cache +EXPORT_SYMBOL vmlinux 0x00000000 ioremap_encrypted +EXPORT_SYMBOL vmlinux 0x00000000 ioremap_prot +EXPORT_SYMBOL vmlinux 0x00000000 ioremap_wc +EXPORT_SYMBOL vmlinux 0x00000000 ioremap_wt +EXPORT_SYMBOL vmlinux 0x00000000 iosf_mbi_assert_punit_acquired +EXPORT_SYMBOL vmlinux 0x00000000 iosf_mbi_available +EXPORT_SYMBOL vmlinux 0x00000000 iosf_mbi_block_punit_i2c_access +EXPORT_SYMBOL vmlinux 0x00000000 iosf_mbi_modify +EXPORT_SYMBOL vmlinux 0x00000000 iosf_mbi_punit_acquire +EXPORT_SYMBOL vmlinux 0x00000000 iosf_mbi_punit_release +EXPORT_SYMBOL vmlinux 0x00000000 iosf_mbi_read +EXPORT_SYMBOL vmlinux 0x00000000 iosf_mbi_register_pmic_bus_access_notifier +EXPORT_SYMBOL vmlinux 0x00000000 iosf_mbi_unblock_punit_i2c_access +EXPORT_SYMBOL vmlinux 0x00000000 iosf_mbi_unregister_pmic_bus_access_notifier +EXPORT_SYMBOL vmlinux 0x00000000 iosf_mbi_unregister_pmic_bus_access_notifier_unlocked +EXPORT_SYMBOL vmlinux 0x00000000 iosf_mbi_write +EXPORT_SYMBOL vmlinux 0x00000000 iounmap +EXPORT_SYMBOL vmlinux 0x00000000 iov_iter_advance +EXPORT_SYMBOL vmlinux 0x00000000 iov_iter_alignment +EXPORT_SYMBOL vmlinux 0x00000000 iov_iter_bvec +EXPORT_SYMBOL vmlinux 0x00000000 iov_iter_copy_from_user_atomic +EXPORT_SYMBOL vmlinux 0x00000000 iov_iter_discard +EXPORT_SYMBOL vmlinux 0x00000000 iov_iter_fault_in_readable +EXPORT_SYMBOL vmlinux 0x00000000 iov_iter_for_each_range +EXPORT_SYMBOL vmlinux 0x00000000 iov_iter_gap_alignment +EXPORT_SYMBOL vmlinux 0x00000000 iov_iter_get_pages +EXPORT_SYMBOL vmlinux 0x00000000 iov_iter_get_pages_alloc +EXPORT_SYMBOL vmlinux 0x00000000 iov_iter_init +EXPORT_SYMBOL vmlinux 0x00000000 iov_iter_kvec +EXPORT_SYMBOL vmlinux 0x00000000 iov_iter_npages +EXPORT_SYMBOL vmlinux 0x00000000 iov_iter_pipe +EXPORT_SYMBOL vmlinux 0x00000000 iov_iter_revert +EXPORT_SYMBOL vmlinux 0x00000000 iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0x00000000 iov_iter_zero +EXPORT_SYMBOL vmlinux 0x00000000 iowrite16 +EXPORT_SYMBOL vmlinux 0x00000000 iowrite16_rep +EXPORT_SYMBOL vmlinux 0x00000000 iowrite16be +EXPORT_SYMBOL vmlinux 0x00000000 iowrite32 +EXPORT_SYMBOL vmlinux 0x00000000 iowrite32_rep +EXPORT_SYMBOL vmlinux 0x00000000 iowrite32be +EXPORT_SYMBOL vmlinux 0x00000000 iowrite64_hi_lo +EXPORT_SYMBOL vmlinux 0x00000000 iowrite64_lo_hi +EXPORT_SYMBOL vmlinux 0x00000000 iowrite64be_hi_lo +EXPORT_SYMBOL vmlinux 0x00000000 iowrite64be_lo_hi +EXPORT_SYMBOL vmlinux 0x00000000 iowrite8 +EXPORT_SYMBOL vmlinux 0x00000000 iowrite8_rep +EXPORT_SYMBOL vmlinux 0x00000000 ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0x00000000 ip6_dst_alloc +EXPORT_SYMBOL vmlinux 0x00000000 ip6_dst_hoplimit +EXPORT_SYMBOL vmlinux 0x00000000 ip6_err_gen_icmpv6_unreach +EXPORT_SYMBOL vmlinux 0x00000000 ip6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0x00000000 ip6_frag_init +EXPORT_SYMBOL vmlinux 0x00000000 ip6_frag_next +EXPORT_SYMBOL vmlinux 0x00000000 ip6_fraglist_init +EXPORT_SYMBOL vmlinux 0x00000000 ip6_fraglist_prepare +EXPORT_SYMBOL vmlinux 0x00000000 ip6_route_me_harder +EXPORT_SYMBOL vmlinux 0x00000000 ip6_xmit +EXPORT_SYMBOL vmlinux 0x00000000 ip6mr_rule_default +EXPORT_SYMBOL vmlinux 0x00000000 ip6tun_encaps +EXPORT_SYMBOL vmlinux 0x00000000 ip_check_defrag +EXPORT_SYMBOL vmlinux 0x00000000 ip_cmsg_recv_offset +EXPORT_SYMBOL vmlinux 0x00000000 ip_compute_csum +EXPORT_SYMBOL vmlinux 0x00000000 ip_ct_attach +EXPORT_SYMBOL vmlinux 0x00000000 ip_defrag +EXPORT_SYMBOL vmlinux 0x00000000 ip_do_fragment +EXPORT_SYMBOL vmlinux 0x00000000 ip_frag_ecn_table +EXPORT_SYMBOL vmlinux 0x00000000 ip_frag_init +EXPORT_SYMBOL vmlinux 0x00000000 ip_frag_next +EXPORT_SYMBOL vmlinux 0x00000000 ip_fraglist_init +EXPORT_SYMBOL vmlinux 0x00000000 ip_fraglist_prepare +EXPORT_SYMBOL vmlinux 0x00000000 ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0x00000000 ip_getsockopt +EXPORT_SYMBOL vmlinux 0x00000000 ip_idents_reserve +EXPORT_SYMBOL vmlinux 0x00000000 ip_mc_check_igmp +EXPORT_SYMBOL vmlinux 0x00000000 ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0x00000000 ip_mc_join_group +EXPORT_SYMBOL vmlinux 0x00000000 ip_mc_leave_group +EXPORT_SYMBOL vmlinux 0x00000000 ip_options_compile +EXPORT_SYMBOL vmlinux 0x00000000 ip_options_rcv_srr +EXPORT_SYMBOL vmlinux 0x00000000 ip_route_input_noref +EXPORT_SYMBOL vmlinux 0x00000000 ip_route_me_harder +EXPORT_SYMBOL vmlinux 0x00000000 ip_send_check +EXPORT_SYMBOL vmlinux 0x00000000 ip_setsockopt +EXPORT_SYMBOL vmlinux 0x00000000 ip_tos2prio +EXPORT_SYMBOL vmlinux 0x00000000 ip_tunnel_metadata_cnt +EXPORT_SYMBOL vmlinux 0x00000000 ipmi_dmi_get_slave_addr +EXPORT_SYMBOL vmlinux 0x00000000 ipmi_platform_add +EXPORT_SYMBOL vmlinux 0x00000000 ipmr_rule_default +EXPORT_SYMBOL vmlinux 0x00000000 iptun_encaps +EXPORT_SYMBOL vmlinux 0x00000000 iput +EXPORT_SYMBOL vmlinux 0x00000000 ipv4_specific +EXPORT_SYMBOL vmlinux 0x00000000 ipv6_chk_addr +EXPORT_SYMBOL vmlinux 0x00000000 ipv6_chk_addr_and_flags +EXPORT_SYMBOL vmlinux 0x00000000 ipv6_chk_custom_prefix +EXPORT_SYMBOL vmlinux 0x00000000 ipv6_chk_prefix +EXPORT_SYMBOL vmlinux 0x00000000 ipv6_dev_get_saddr +EXPORT_SYMBOL vmlinux 0x00000000 ipv6_dev_mc_dec +EXPORT_SYMBOL vmlinux 0x00000000 ipv6_dev_mc_inc +EXPORT_SYMBOL vmlinux 0x00000000 ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x00000000 ipv6_find_hdr +EXPORT_SYMBOL vmlinux 0x00000000 ipv6_flowlabel_exclusive +EXPORT_SYMBOL vmlinux 0x00000000 ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0x00000000 ipv6_mc_check_icmpv6 +EXPORT_SYMBOL vmlinux 0x00000000 ipv6_mc_check_mld +EXPORT_SYMBOL vmlinux 0x00000000 ipv6_push_frag_opts +EXPORT_SYMBOL vmlinux 0x00000000 ipv6_select_ident +EXPORT_SYMBOL vmlinux 0x00000000 ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0x00000000 ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0x00000000 ipv6_sock_mc_drop +EXPORT_SYMBOL vmlinux 0x00000000 ipv6_sock_mc_join +EXPORT_SYMBOL vmlinux 0x00000000 irq_cpu_rmap_add +EXPORT_SYMBOL vmlinux 0x00000000 irq_domain_set_info +EXPORT_SYMBOL vmlinux 0x00000000 irq_fpu_usable +EXPORT_SYMBOL vmlinux 0x00000000 irq_poll_complete +EXPORT_SYMBOL vmlinux 0x00000000 irq_poll_disable +EXPORT_SYMBOL vmlinux 0x00000000 irq_poll_enable +EXPORT_SYMBOL vmlinux 0x00000000 irq_poll_init +EXPORT_SYMBOL vmlinux 0x00000000 irq_poll_sched +EXPORT_SYMBOL vmlinux 0x00000000 irq_regs +EXPORT_SYMBOL vmlinux 0x00000000 irq_set_chip +EXPORT_SYMBOL vmlinux 0x00000000 irq_set_chip_data +EXPORT_SYMBOL vmlinux 0x00000000 irq_set_handler_data +EXPORT_SYMBOL vmlinux 0x00000000 irq_set_irq_type +EXPORT_SYMBOL vmlinux 0x00000000 irq_set_irq_wake +EXPORT_SYMBOL vmlinux 0x00000000 irq_stat +EXPORT_SYMBOL vmlinux 0x00000000 irq_to_desc +EXPORT_SYMBOL vmlinux 0x00000000 is_acpi_data_node +EXPORT_SYMBOL vmlinux 0x00000000 is_acpi_device_node +EXPORT_SYMBOL vmlinux 0x00000000 is_bad_inode +EXPORT_SYMBOL vmlinux 0x00000000 is_console_locked +EXPORT_SYMBOL vmlinux 0x00000000 is_module_sig_enforced +EXPORT_SYMBOL vmlinux 0x00000000 is_nd_btt +EXPORT_SYMBOL vmlinux 0x00000000 is_nd_dax +EXPORT_SYMBOL vmlinux 0x00000000 is_nd_pfn +EXPORT_SYMBOL vmlinux 0x00000000 is_nvdimm_bus_locked +EXPORT_SYMBOL vmlinux 0x00000000 is_subdir +EXPORT_SYMBOL vmlinux 0x00000000 is_vmalloc_addr +EXPORT_SYMBOL vmlinux 0x00000000 isa_dma_bridge_buggy +EXPORT_SYMBOL vmlinux 0x00000000 iter_div_u64_rem +EXPORT_SYMBOL vmlinux 0x00000000 iter_file_splice_write +EXPORT_SYMBOL vmlinux 0x00000000 iterate_dir +EXPORT_SYMBOL vmlinux 0x00000000 iterate_fd +EXPORT_SYMBOL vmlinux 0x00000000 iterate_supers_type +EXPORT_SYMBOL vmlinux 0x00000000 iunique +EXPORT_SYMBOL vmlinux 0x00000000 iw_handler_get_spy +EXPORT_SYMBOL vmlinux 0x00000000 iw_handler_get_thrspy +EXPORT_SYMBOL vmlinux 0x00000000 iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0x00000000 iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0x00000000 iwe_stream_add_event +EXPORT_SYMBOL vmlinux 0x00000000 iwe_stream_add_point +EXPORT_SYMBOL vmlinux 0x00000000 iwe_stream_add_value +EXPORT_SYMBOL vmlinux 0x00000000 jbd2__journal_restart +EXPORT_SYMBOL vmlinux 0x00000000 jbd2__journal_start +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_complete_transaction +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_inode_cache +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_abort +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_ack_err +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_begin_ordered_truncate +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_check_available_features +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_check_used_features +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_clear_err +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_clear_features +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_destroy +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_errno +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_extend +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_flush +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_force_commit +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_forget +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_free_reserved +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_get_create_access +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_get_undo_access +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_get_write_access +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_init_dev +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_init_inode +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_init_jbd_inode +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_inode_ranged_wait +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_inode_ranged_write +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_invalidatepage +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_load +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_lock_updates +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_release_jbd_inode +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_restart +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_revoke +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_set_features +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_set_triggers +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_start +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_start_commit +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_start_reserved +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_stop +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_unlock_updates +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_update_sb_errno +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_journal_wipe +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_log_start_commit +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_log_wait_commit +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0x00000000 jbd2_transaction_committed +EXPORT_SYMBOL vmlinux 0x00000000 jiffies +EXPORT_SYMBOL vmlinux 0x00000000 jiffies64_to_msecs +EXPORT_SYMBOL vmlinux 0x00000000 jiffies64_to_nsecs +EXPORT_SYMBOL vmlinux 0x00000000 jiffies_64 +EXPORT_SYMBOL vmlinux 0x00000000 jiffies_64_to_clock_t +EXPORT_SYMBOL vmlinux 0x00000000 jiffies_to_clock_t +EXPORT_SYMBOL vmlinux 0x00000000 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x00000000 jiffies_to_timespec64 +EXPORT_SYMBOL vmlinux 0x00000000 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x00000000 kasprintf +EXPORT_SYMBOL vmlinux 0x00000000 kblockd_mod_delayed_work_on +EXPORT_SYMBOL vmlinux 0x00000000 kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0x00000000 kd_mksound +EXPORT_SYMBOL vmlinux 0x00000000 kdb_grepping_flag +EXPORT_SYMBOL vmlinux 0x00000000 kdbgetsymval +EXPORT_SYMBOL vmlinux 0x00000000 kern_path +EXPORT_SYMBOL vmlinux 0x00000000 kern_path_create +EXPORT_SYMBOL vmlinux 0x00000000 kern_path_mountpoint +EXPORT_SYMBOL vmlinux 0x00000000 kern_unmount +EXPORT_SYMBOL vmlinux 0x00000000 kernel_accept +EXPORT_SYMBOL vmlinux 0x00000000 kernel_bind +EXPORT_SYMBOL vmlinux 0x00000000 kernel_connect +EXPORT_SYMBOL vmlinux 0x00000000 kernel_cpustat +EXPORT_SYMBOL vmlinux 0x00000000 kernel_getpeername +EXPORT_SYMBOL vmlinux 0x00000000 kernel_getsockname +EXPORT_SYMBOL vmlinux 0x00000000 kernel_getsockopt +EXPORT_SYMBOL vmlinux 0x00000000 kernel_listen +EXPORT_SYMBOL vmlinux 0x00000000 kernel_param_lock +EXPORT_SYMBOL vmlinux 0x00000000 kernel_param_unlock +EXPORT_SYMBOL vmlinux 0x00000000 kernel_read +EXPORT_SYMBOL vmlinux 0x00000000 kernel_recvmsg +EXPORT_SYMBOL vmlinux 0x00000000 kernel_sendmsg +EXPORT_SYMBOL vmlinux 0x00000000 kernel_sendmsg_locked +EXPORT_SYMBOL vmlinux 0x00000000 kernel_sendpage +EXPORT_SYMBOL vmlinux 0x00000000 kernel_sendpage_locked +EXPORT_SYMBOL vmlinux 0x00000000 kernel_setsockopt +EXPORT_SYMBOL vmlinux 0x00000000 kernel_sigaction +EXPORT_SYMBOL vmlinux 0x00000000 kernel_sock_ip_overhead +EXPORT_SYMBOL vmlinux 0x00000000 kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0x00000000 kernel_write +EXPORT_SYMBOL vmlinux 0x00000000 key_alloc +EXPORT_SYMBOL vmlinux 0x00000000 key_create_or_update +EXPORT_SYMBOL vmlinux 0x00000000 key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0x00000000 key_invalidate +EXPORT_SYMBOL vmlinux 0x00000000 key_link +EXPORT_SYMBOL vmlinux 0x00000000 key_move +EXPORT_SYMBOL vmlinux 0x00000000 key_payload_reserve +EXPORT_SYMBOL vmlinux 0x00000000 key_put +EXPORT_SYMBOL vmlinux 0x00000000 key_reject_and_link +EXPORT_SYMBOL vmlinux 0x00000000 key_revoke +EXPORT_SYMBOL vmlinux 0x00000000 key_task_permission +EXPORT_SYMBOL vmlinux 0x00000000 key_type_keyring +EXPORT_SYMBOL vmlinux 0x00000000 key_unlink +EXPORT_SYMBOL vmlinux 0x00000000 key_update +EXPORT_SYMBOL vmlinux 0x00000000 key_validate +EXPORT_SYMBOL vmlinux 0x00000000 keyring_alloc +EXPORT_SYMBOL vmlinux 0x00000000 keyring_clear +EXPORT_SYMBOL vmlinux 0x00000000 keyring_restrict +EXPORT_SYMBOL vmlinux 0x00000000 keyring_search +EXPORT_SYMBOL vmlinux 0x00000000 kfree +EXPORT_SYMBOL vmlinux 0x00000000 kfree_const +EXPORT_SYMBOL vmlinux 0x00000000 kfree_link +EXPORT_SYMBOL vmlinux 0x00000000 kfree_skb +EXPORT_SYMBOL vmlinux 0x00000000 kfree_skb_list +EXPORT_SYMBOL vmlinux 0x00000000 kfree_skb_partial +EXPORT_SYMBOL vmlinux 0x00000000 kill_anon_super +EXPORT_SYMBOL vmlinux 0x00000000 kill_bdev +EXPORT_SYMBOL vmlinux 0x00000000 kill_block_super +EXPORT_SYMBOL vmlinux 0x00000000 kill_fasync +EXPORT_SYMBOL vmlinux 0x00000000 kill_litter_super +EXPORT_SYMBOL vmlinux 0x00000000 kill_pgrp +EXPORT_SYMBOL vmlinux 0x00000000 kill_pid +EXPORT_SYMBOL vmlinux 0x00000000 kiocb_set_cancel_fn +EXPORT_SYMBOL vmlinux 0x00000000 km_new_mapping +EXPORT_SYMBOL vmlinux 0x00000000 km_policy_expired +EXPORT_SYMBOL vmlinux 0x00000000 km_policy_notify +EXPORT_SYMBOL vmlinux 0x00000000 km_query +EXPORT_SYMBOL vmlinux 0x00000000 km_report +EXPORT_SYMBOL vmlinux 0x00000000 km_state_expired +EXPORT_SYMBOL vmlinux 0x00000000 km_state_notify +EXPORT_SYMBOL vmlinux 0x00000000 kmalloc_caches +EXPORT_SYMBOL vmlinux 0x00000000 kmalloc_order +EXPORT_SYMBOL vmlinux 0x00000000 kmalloc_order_trace +EXPORT_SYMBOL vmlinux 0x00000000 kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x00000000 kmem_cache_alloc_bulk +EXPORT_SYMBOL vmlinux 0x00000000 kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0x00000000 kmem_cache_alloc_node_trace +EXPORT_SYMBOL vmlinux 0x00000000 kmem_cache_alloc_trace +EXPORT_SYMBOL vmlinux 0x00000000 kmem_cache_create +EXPORT_SYMBOL vmlinux 0x00000000 kmem_cache_create_usercopy +EXPORT_SYMBOL vmlinux 0x00000000 kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0x00000000 kmem_cache_free +EXPORT_SYMBOL vmlinux 0x00000000 kmem_cache_free_bulk +EXPORT_SYMBOL vmlinux 0x00000000 kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0x00000000 kmem_cache_size +EXPORT_SYMBOL vmlinux 0x00000000 kmemdup +EXPORT_SYMBOL vmlinux 0x00000000 kmemdup_nul +EXPORT_SYMBOL vmlinux 0x00000000 kobject_add +EXPORT_SYMBOL vmlinux 0x00000000 kobject_del +EXPORT_SYMBOL vmlinux 0x00000000 kobject_get +EXPORT_SYMBOL vmlinux 0x00000000 kobject_get_unless_zero +EXPORT_SYMBOL vmlinux 0x00000000 kobject_init +EXPORT_SYMBOL vmlinux 0x00000000 kobject_put +EXPORT_SYMBOL vmlinux 0x00000000 kobject_set_name +EXPORT_SYMBOL vmlinux 0x00000000 krealloc +EXPORT_SYMBOL vmlinux 0x00000000 kset_register +EXPORT_SYMBOL vmlinux 0x00000000 kset_unregister +EXPORT_SYMBOL vmlinux 0x00000000 ksize +EXPORT_SYMBOL vmlinux 0x00000000 kstat +EXPORT_SYMBOL vmlinux 0x00000000 kstrdup +EXPORT_SYMBOL vmlinux 0x00000000 kstrdup_const +EXPORT_SYMBOL vmlinux 0x00000000 kstrndup +EXPORT_SYMBOL vmlinux 0x00000000 kstrtobool +EXPORT_SYMBOL vmlinux 0x00000000 kstrtobool_from_user +EXPORT_SYMBOL vmlinux 0x00000000 kstrtoint +EXPORT_SYMBOL vmlinux 0x00000000 kstrtoint_from_user +EXPORT_SYMBOL vmlinux 0x00000000 kstrtol_from_user +EXPORT_SYMBOL vmlinux 0x00000000 kstrtoll +EXPORT_SYMBOL vmlinux 0x00000000 kstrtoll_from_user +EXPORT_SYMBOL vmlinux 0x00000000 kstrtos16 +EXPORT_SYMBOL vmlinux 0x00000000 kstrtos16_from_user +EXPORT_SYMBOL vmlinux 0x00000000 kstrtos8 +EXPORT_SYMBOL vmlinux 0x00000000 kstrtos8_from_user +EXPORT_SYMBOL vmlinux 0x00000000 kstrtou16 +EXPORT_SYMBOL vmlinux 0x00000000 kstrtou16_from_user +EXPORT_SYMBOL vmlinux 0x00000000 kstrtou8 +EXPORT_SYMBOL vmlinux 0x00000000 kstrtou8_from_user +EXPORT_SYMBOL vmlinux 0x00000000 kstrtouint +EXPORT_SYMBOL vmlinux 0x00000000 kstrtouint_from_user +EXPORT_SYMBOL vmlinux 0x00000000 kstrtoul_from_user +EXPORT_SYMBOL vmlinux 0x00000000 kstrtoull +EXPORT_SYMBOL vmlinux 0x00000000 kstrtoull_from_user +EXPORT_SYMBOL vmlinux 0x00000000 kthread_associate_blkcg +EXPORT_SYMBOL vmlinux 0x00000000 kthread_bind +EXPORT_SYMBOL vmlinux 0x00000000 kthread_blkcg +EXPORT_SYMBOL vmlinux 0x00000000 kthread_create_on_node +EXPORT_SYMBOL vmlinux 0x00000000 kthread_create_worker +EXPORT_SYMBOL vmlinux 0x00000000 kthread_create_worker_on_cpu +EXPORT_SYMBOL vmlinux 0x00000000 kthread_delayed_work_timer_fn +EXPORT_SYMBOL vmlinux 0x00000000 kthread_destroy_worker +EXPORT_SYMBOL vmlinux 0x00000000 kthread_should_stop +EXPORT_SYMBOL vmlinux 0x00000000 kthread_stop +EXPORT_SYMBOL vmlinux 0x00000000 ktime_get_coarse_real_ts64 +EXPORT_SYMBOL vmlinux 0x00000000 ktime_get_coarse_ts64 +EXPORT_SYMBOL vmlinux 0x00000000 ktime_get_raw_ts64 +EXPORT_SYMBOL vmlinux 0x00000000 ktime_get_real_ts64 +EXPORT_SYMBOL vmlinux 0x00000000 kvasprintf +EXPORT_SYMBOL vmlinux 0x00000000 kvasprintf_const +EXPORT_SYMBOL vmlinux 0x00000000 kvfree +EXPORT_SYMBOL vmlinux 0x00000000 kvfree_sensitive +EXPORT_SYMBOL vmlinux 0x00000000 kvmalloc_node +EXPORT_SYMBOL vmlinux 0x00000000 kzfree +EXPORT_SYMBOL vmlinux 0x00000000 laptop_mode +EXPORT_SYMBOL vmlinux 0x00000000 lease_get_mtime +EXPORT_SYMBOL vmlinux 0x00000000 lease_modify +EXPORT_SYMBOL vmlinux 0x00000000 ledtrig_cpu +EXPORT_SYMBOL vmlinux 0x00000000 ledtrig_disk_activity +EXPORT_SYMBOL vmlinux 0x00000000 ledtrig_mtd_activity +EXPORT_SYMBOL vmlinux 0x00000000 legacy_pic +EXPORT_SYMBOL vmlinux 0x00000000 linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0x00000000 list_sort +EXPORT_SYMBOL vmlinux 0x00000000 ll_rw_block +EXPORT_SYMBOL vmlinux 0x00000000 load_nls +EXPORT_SYMBOL vmlinux 0x00000000 load_nls_default +EXPORT_SYMBOL vmlinux 0x00000000 lock_page_memcg +EXPORT_SYMBOL vmlinux 0x00000000 lock_rename +EXPORT_SYMBOL vmlinux 0x00000000 lock_sock_fast +EXPORT_SYMBOL vmlinux 0x00000000 lock_sock_nested +EXPORT_SYMBOL vmlinux 0x00000000 lock_two_nondirectories +EXPORT_SYMBOL vmlinux 0x00000000 lockref_get +EXPORT_SYMBOL vmlinux 0x00000000 lockref_get_not_dead +EXPORT_SYMBOL vmlinux 0x00000000 lockref_get_not_zero +EXPORT_SYMBOL vmlinux 0x00000000 lockref_get_or_lock +EXPORT_SYMBOL vmlinux 0x00000000 lockref_mark_dead +EXPORT_SYMBOL vmlinux 0x00000000 lockref_put_not_zero +EXPORT_SYMBOL vmlinux 0x00000000 lockref_put_or_lock +EXPORT_SYMBOL vmlinux 0x00000000 lockref_put_return +EXPORT_SYMBOL vmlinux 0x00000000 locks_copy_conflock +EXPORT_SYMBOL vmlinux 0x00000000 locks_copy_lock +EXPORT_SYMBOL vmlinux 0x00000000 locks_delete_block +EXPORT_SYMBOL vmlinux 0x00000000 locks_free_lock +EXPORT_SYMBOL vmlinux 0x00000000 locks_init_lock +EXPORT_SYMBOL vmlinux 0x00000000 locks_lock_inode_wait +EXPORT_SYMBOL vmlinux 0x00000000 locks_mandatory_area +EXPORT_SYMBOL vmlinux 0x00000000 locks_remove_posix +EXPORT_SYMBOL vmlinux 0x00000000 logfc +EXPORT_SYMBOL vmlinux 0x00000000 lookup_bdev +EXPORT_SYMBOL vmlinux 0x00000000 lookup_constant +EXPORT_SYMBOL vmlinux 0x00000000 lookup_one_len +EXPORT_SYMBOL vmlinux 0x00000000 lookup_one_len_unlocked +EXPORT_SYMBOL vmlinux 0x00000000 lookup_positive_unlocked +EXPORT_SYMBOL vmlinux 0x00000000 lookup_user_key +EXPORT_SYMBOL vmlinux 0x00000000 loop_register_transfer +EXPORT_SYMBOL vmlinux 0x00000000 loop_unregister_transfer +EXPORT_SYMBOL vmlinux 0x00000000 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0x00000000 lru_cache_add_file +EXPORT_SYMBOL vmlinux 0x00000000 mac_pton +EXPORT_SYMBOL vmlinux 0x00000000 machine_to_phys_mapping +EXPORT_SYMBOL vmlinux 0x00000000 machine_to_phys_nr +EXPORT_SYMBOL vmlinux 0x00000000 make_bad_inode +EXPORT_SYMBOL vmlinux 0x00000000 make_flow_keys_digest +EXPORT_SYMBOL vmlinux 0x00000000 make_kgid +EXPORT_SYMBOL vmlinux 0x00000000 make_kprojid +EXPORT_SYMBOL vmlinux 0x00000000 make_kuid +EXPORT_SYMBOL vmlinux 0x00000000 mangle_path +EXPORT_SYMBOL vmlinux 0x00000000 map_kernel_range_noflush +EXPORT_SYMBOL vmlinux 0x00000000 mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0x00000000 mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0x00000000 mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0x00000000 mark_buffer_write_io_error +EXPORT_SYMBOL vmlinux 0x00000000 mark_info_dirty +EXPORT_SYMBOL vmlinux 0x00000000 mark_page_accessed +EXPORT_SYMBOL vmlinux 0x00000000 match_hex +EXPORT_SYMBOL vmlinux 0x00000000 match_int +EXPORT_SYMBOL vmlinux 0x00000000 match_octal +EXPORT_SYMBOL vmlinux 0x00000000 match_strdup +EXPORT_SYMBOL vmlinux 0x00000000 match_string +EXPORT_SYMBOL vmlinux 0x00000000 match_strlcpy +EXPORT_SYMBOL vmlinux 0x00000000 match_token +EXPORT_SYMBOL vmlinux 0x00000000 match_u64 +EXPORT_SYMBOL vmlinux 0x00000000 match_wildcard +EXPORT_SYMBOL vmlinux 0x00000000 max8925_bulk_read +EXPORT_SYMBOL vmlinux 0x00000000 max8925_bulk_write +EXPORT_SYMBOL vmlinux 0x00000000 max8925_reg_read +EXPORT_SYMBOL vmlinux 0x00000000 max8925_reg_write +EXPORT_SYMBOL vmlinux 0x00000000 max8925_set_bits +EXPORT_SYMBOL vmlinux 0x00000000 max8998_bulk_read +EXPORT_SYMBOL vmlinux 0x00000000 max8998_bulk_write +EXPORT_SYMBOL vmlinux 0x00000000 max8998_read_reg +EXPORT_SYMBOL vmlinux 0x00000000 max8998_update_reg +EXPORT_SYMBOL vmlinux 0x00000000 max8998_write_reg +EXPORT_SYMBOL vmlinux 0x00000000 may_umount +EXPORT_SYMBOL vmlinux 0x00000000 may_umount_tree +EXPORT_SYMBOL vmlinux 0x00000000 mb_cache_create +EXPORT_SYMBOL vmlinux 0x00000000 mb_cache_destroy +EXPORT_SYMBOL vmlinux 0x00000000 mb_cache_entry_create +EXPORT_SYMBOL vmlinux 0x00000000 mb_cache_entry_delete +EXPORT_SYMBOL vmlinux 0x00000000 mb_cache_entry_find_first +EXPORT_SYMBOL vmlinux 0x00000000 mb_cache_entry_find_next +EXPORT_SYMBOL vmlinux 0x00000000 mb_cache_entry_get +EXPORT_SYMBOL vmlinux 0x00000000 mb_cache_entry_touch +EXPORT_SYMBOL vmlinux 0x00000000 md_bitmap_close_sync +EXPORT_SYMBOL vmlinux 0x00000000 md_bitmap_cond_end_sync +EXPORT_SYMBOL vmlinux 0x00000000 md_bitmap_end_sync +EXPORT_SYMBOL vmlinux 0x00000000 md_bitmap_endwrite +EXPORT_SYMBOL vmlinux 0x00000000 md_bitmap_free +EXPORT_SYMBOL vmlinux 0x00000000 md_bitmap_start_sync +EXPORT_SYMBOL vmlinux 0x00000000 md_bitmap_startwrite +EXPORT_SYMBOL vmlinux 0x00000000 md_bitmap_sync_with_cluster +EXPORT_SYMBOL vmlinux 0x00000000 md_bitmap_unplug +EXPORT_SYMBOL vmlinux 0x00000000 md_bitmap_update_sb +EXPORT_SYMBOL vmlinux 0x00000000 md_check_no_bitmap +EXPORT_SYMBOL vmlinux 0x00000000 md_check_recovery +EXPORT_SYMBOL vmlinux 0x00000000 md_cluster_ops +EXPORT_SYMBOL vmlinux 0x00000000 md_done_sync +EXPORT_SYMBOL vmlinux 0x00000000 md_error +EXPORT_SYMBOL vmlinux 0x00000000 md_finish_reshape +EXPORT_SYMBOL vmlinux 0x00000000 md_flush_request +EXPORT_SYMBOL vmlinux 0x00000000 md_handle_request +EXPORT_SYMBOL vmlinux 0x00000000 md_integrity_add_rdev +EXPORT_SYMBOL vmlinux 0x00000000 md_integrity_register +EXPORT_SYMBOL vmlinux 0x00000000 md_reap_sync_thread +EXPORT_SYMBOL vmlinux 0x00000000 md_register_thread +EXPORT_SYMBOL vmlinux 0x00000000 md_reload_sb +EXPORT_SYMBOL vmlinux 0x00000000 md_set_array_sectors +EXPORT_SYMBOL vmlinux 0x00000000 md_unregister_thread +EXPORT_SYMBOL vmlinux 0x00000000 md_update_sb +EXPORT_SYMBOL vmlinux 0x00000000 md_wait_for_blocked_rdev +EXPORT_SYMBOL vmlinux 0x00000000 md_wakeup_thread +EXPORT_SYMBOL vmlinux 0x00000000 md_write_end +EXPORT_SYMBOL vmlinux 0x00000000 md_write_inc +EXPORT_SYMBOL vmlinux 0x00000000 md_write_start +EXPORT_SYMBOL vmlinux 0x00000000 mdio_bus_type +EXPORT_SYMBOL vmlinux 0x00000000 mdio_device_create +EXPORT_SYMBOL vmlinux 0x00000000 mdio_device_free +EXPORT_SYMBOL vmlinux 0x00000000 mdio_device_register +EXPORT_SYMBOL vmlinux 0x00000000 mdio_device_remove +EXPORT_SYMBOL vmlinux 0x00000000 mdio_device_reset +EXPORT_SYMBOL vmlinux 0x00000000 mdio_driver_register +EXPORT_SYMBOL vmlinux 0x00000000 mdio_driver_unregister +EXPORT_SYMBOL vmlinux 0x00000000 mdiobus_alloc_size +EXPORT_SYMBOL vmlinux 0x00000000 mdiobus_free +EXPORT_SYMBOL vmlinux 0x00000000 mdiobus_get_phy +EXPORT_SYMBOL vmlinux 0x00000000 mdiobus_is_registered_device +EXPORT_SYMBOL vmlinux 0x00000000 mdiobus_read +EXPORT_SYMBOL vmlinux 0x00000000 mdiobus_read_nested +EXPORT_SYMBOL vmlinux 0x00000000 mdiobus_register_board_info +EXPORT_SYMBOL vmlinux 0x00000000 mdiobus_register_device +EXPORT_SYMBOL vmlinux 0x00000000 mdiobus_scan +EXPORT_SYMBOL vmlinux 0x00000000 mdiobus_setup_mdiodev_from_board_info +EXPORT_SYMBOL vmlinux 0x00000000 mdiobus_unregister +EXPORT_SYMBOL vmlinux 0x00000000 mdiobus_unregister_device +EXPORT_SYMBOL vmlinux 0x00000000 mdiobus_write +EXPORT_SYMBOL vmlinux 0x00000000 mdiobus_write_nested +EXPORT_SYMBOL vmlinux 0x00000000 mem_cgroup_from_task +EXPORT_SYMBOL vmlinux 0x00000000 mem_section +EXPORT_SYMBOL vmlinux 0x00000000 memcg_kmem_enabled_key +EXPORT_SYMBOL vmlinux 0x00000000 memcg_sockets_enabled_key +EXPORT_SYMBOL vmlinux 0x00000000 memchr +EXPORT_SYMBOL vmlinux 0x00000000 memchr_inv +EXPORT_SYMBOL vmlinux 0x00000000 memcmp +EXPORT_SYMBOL vmlinux 0x00000000 memcpy +EXPORT_SYMBOL vmlinux 0x00000000 memcpy_fromio +EXPORT_SYMBOL vmlinux 0x00000000 memcpy_toio +EXPORT_SYMBOL vmlinux 0x00000000 memdup_user +EXPORT_SYMBOL vmlinux 0x00000000 memdup_user_nul +EXPORT_SYMBOL vmlinux 0x00000000 memmove +EXPORT_SYMBOL vmlinux 0x00000000 memory_cgrp_subsys +EXPORT_SYMBOL vmlinux 0x00000000 memory_read_from_buffer +EXPORT_SYMBOL vmlinux 0x00000000 memory_read_from_io_buffer +EXPORT_SYMBOL vmlinux 0x00000000 memparse +EXPORT_SYMBOL vmlinux 0x00000000 mempool_alloc +EXPORT_SYMBOL vmlinux 0x00000000 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x00000000 mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0x00000000 mempool_create +EXPORT_SYMBOL vmlinux 0x00000000 mempool_create_node +EXPORT_SYMBOL vmlinux 0x00000000 mempool_destroy +EXPORT_SYMBOL vmlinux 0x00000000 mempool_exit +EXPORT_SYMBOL vmlinux 0x00000000 mempool_free +EXPORT_SYMBOL vmlinux 0x00000000 mempool_free_pages +EXPORT_SYMBOL vmlinux 0x00000000 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x00000000 mempool_init +EXPORT_SYMBOL vmlinux 0x00000000 mempool_init_node +EXPORT_SYMBOL vmlinux 0x00000000 mempool_kfree +EXPORT_SYMBOL vmlinux 0x00000000 mempool_kmalloc +EXPORT_SYMBOL vmlinux 0x00000000 mempool_resize +EXPORT_SYMBOL vmlinux 0x00000000 memregion_alloc +EXPORT_SYMBOL vmlinux 0x00000000 memregion_free +EXPORT_SYMBOL vmlinux 0x00000000 memremap +EXPORT_SYMBOL vmlinux 0x00000000 memscan +EXPORT_SYMBOL vmlinux 0x00000000 memset +EXPORT_SYMBOL vmlinux 0x00000000 memset_io +EXPORT_SYMBOL vmlinux 0x00000000 memunmap +EXPORT_SYMBOL vmlinux 0x00000000 memweight +EXPORT_SYMBOL vmlinux 0x00000000 mfd_add_devices +EXPORT_SYMBOL vmlinux 0x00000000 mfd_cell_disable +EXPORT_SYMBOL vmlinux 0x00000000 mfd_cell_enable +EXPORT_SYMBOL vmlinux 0x00000000 mfd_remove_devices +EXPORT_SYMBOL vmlinux 0x00000000 migrate_page +EXPORT_SYMBOL vmlinux 0x00000000 migrate_page_copy +EXPORT_SYMBOL vmlinux 0x00000000 migrate_page_move_mapping +EXPORT_SYMBOL vmlinux 0x00000000 migrate_page_states +EXPORT_SYMBOL vmlinux 0x00000000 migrate_vma_finalize +EXPORT_SYMBOL vmlinux 0x00000000 migrate_vma_pages +EXPORT_SYMBOL vmlinux 0x00000000 migrate_vma_setup +EXPORT_SYMBOL vmlinux 0x00000000 mini_qdisc_pair_init +EXPORT_SYMBOL vmlinux 0x00000000 mini_qdisc_pair_swap +EXPORT_SYMBOL vmlinux 0x00000000 minmax_running_max +EXPORT_SYMBOL vmlinux 0x00000000 mipi_dsi_attach +EXPORT_SYMBOL vmlinux 0x00000000 mipi_dsi_compression_mode +EXPORT_SYMBOL vmlinux 0x00000000 mipi_dsi_create_packet +EXPORT_SYMBOL vmlinux 0x00000000 mipi_dsi_dcs_enter_sleep_mode +EXPORT_SYMBOL vmlinux 0x00000000 mipi_dsi_dcs_exit_sleep_mode +EXPORT_SYMBOL vmlinux 0x00000000 mipi_dsi_dcs_get_display_brightness +EXPORT_SYMBOL vmlinux 0x00000000 mipi_dsi_dcs_get_pixel_format +EXPORT_SYMBOL vmlinux 0x00000000 mipi_dsi_dcs_get_power_mode +EXPORT_SYMBOL vmlinux 0x00000000 mipi_dsi_dcs_nop +EXPORT_SYMBOL vmlinux 0x00000000 mipi_dsi_dcs_read +EXPORT_SYMBOL vmlinux 0x00000000 mipi_dsi_dcs_set_column_address +EXPORT_SYMBOL vmlinux 0x00000000 mipi_dsi_dcs_set_display_brightness +EXPORT_SYMBOL vmlinux 0x00000000 mipi_dsi_dcs_set_display_off +EXPORT_SYMBOL vmlinux 0x00000000 mipi_dsi_dcs_set_display_on +EXPORT_SYMBOL vmlinux 0x00000000 mipi_dsi_dcs_set_page_address +EXPORT_SYMBOL vmlinux 0x00000000 mipi_dsi_dcs_set_pixel_format +EXPORT_SYMBOL vmlinux 0x00000000 mipi_dsi_dcs_set_tear_off +EXPORT_SYMBOL vmlinux 0x00000000 mipi_dsi_dcs_set_tear_on +EXPORT_SYMBOL vmlinux 0x00000000 mipi_dsi_dcs_set_tear_scanline +EXPORT_SYMBOL vmlinux 0x00000000 mipi_dsi_dcs_soft_reset +EXPORT_SYMBOL vmlinux 0x00000000 mipi_dsi_dcs_write +EXPORT_SYMBOL vmlinux 0x00000000 mipi_dsi_dcs_write_buffer +EXPORT_SYMBOL vmlinux 0x00000000 mipi_dsi_detach +EXPORT_SYMBOL vmlinux 0x00000000 mipi_dsi_device_register_full +EXPORT_SYMBOL vmlinux 0x00000000 mipi_dsi_device_unregister +EXPORT_SYMBOL vmlinux 0x00000000 mipi_dsi_driver_register_full +EXPORT_SYMBOL vmlinux 0x00000000 mipi_dsi_driver_unregister +EXPORT_SYMBOL vmlinux 0x00000000 mipi_dsi_generic_read +EXPORT_SYMBOL vmlinux 0x00000000 mipi_dsi_generic_write +EXPORT_SYMBOL vmlinux 0x00000000 mipi_dsi_host_register +EXPORT_SYMBOL vmlinux 0x00000000 mipi_dsi_host_unregister +EXPORT_SYMBOL vmlinux 0x00000000 mipi_dsi_packet_format_is_long +EXPORT_SYMBOL vmlinux 0x00000000 mipi_dsi_packet_format_is_short +EXPORT_SYMBOL vmlinux 0x00000000 mipi_dsi_picture_parameter_set +EXPORT_SYMBOL vmlinux 0x00000000 mipi_dsi_set_maximum_return_packet_size +EXPORT_SYMBOL vmlinux 0x00000000 mipi_dsi_shutdown_peripheral +EXPORT_SYMBOL vmlinux 0x00000000 mipi_dsi_turn_on_peripheral +EXPORT_SYMBOL vmlinux 0x00000000 misc_deregister +EXPORT_SYMBOL vmlinux 0x00000000 misc_register +EXPORT_SYMBOL vmlinux 0x00000000 mktime64 +EXPORT_SYMBOL vmlinux 0x00000000 mmc_add_host +EXPORT_SYMBOL vmlinux 0x00000000 mmc_alloc_host +EXPORT_SYMBOL vmlinux 0x00000000 mmc_calc_max_discard +EXPORT_SYMBOL vmlinux 0x00000000 mmc_can_discard +EXPORT_SYMBOL vmlinux 0x00000000 mmc_can_erase +EXPORT_SYMBOL vmlinux 0x00000000 mmc_can_gpio_cd +EXPORT_SYMBOL vmlinux 0x00000000 mmc_can_gpio_ro +EXPORT_SYMBOL vmlinux 0x00000000 mmc_can_sanitize +EXPORT_SYMBOL vmlinux 0x00000000 mmc_can_secure_erase_trim +EXPORT_SYMBOL vmlinux 0x00000000 mmc_can_trim +EXPORT_SYMBOL vmlinux 0x00000000 mmc_card_is_blockaddr +EXPORT_SYMBOL vmlinux 0x00000000 mmc_command_done +EXPORT_SYMBOL vmlinux 0x00000000 mmc_cqe_post_req +EXPORT_SYMBOL vmlinux 0x00000000 mmc_cqe_recovery +EXPORT_SYMBOL vmlinux 0x00000000 mmc_cqe_request_done +EXPORT_SYMBOL vmlinux 0x00000000 mmc_cqe_start_req +EXPORT_SYMBOL vmlinux 0x00000000 mmc_detect_card_removed +EXPORT_SYMBOL vmlinux 0x00000000 mmc_detect_change +EXPORT_SYMBOL vmlinux 0x00000000 mmc_erase +EXPORT_SYMBOL vmlinux 0x00000000 mmc_erase_group_aligned +EXPORT_SYMBOL vmlinux 0x00000000 mmc_flush_cache +EXPORT_SYMBOL vmlinux 0x00000000 mmc_free_host +EXPORT_SYMBOL vmlinux 0x00000000 mmc_get_card +EXPORT_SYMBOL vmlinux 0x00000000 mmc_gpio_get_cd +EXPORT_SYMBOL vmlinux 0x00000000 mmc_gpio_get_ro +EXPORT_SYMBOL vmlinux 0x00000000 mmc_gpio_set_cd_isr +EXPORT_SYMBOL vmlinux 0x00000000 mmc_gpio_set_cd_wake +EXPORT_SYMBOL vmlinux 0x00000000 mmc_gpiod_request_cd +EXPORT_SYMBOL vmlinux 0x00000000 mmc_gpiod_request_cd_irq +EXPORT_SYMBOL vmlinux 0x00000000 mmc_gpiod_request_ro +EXPORT_SYMBOL vmlinux 0x00000000 mmc_hw_reset +EXPORT_SYMBOL vmlinux 0x00000000 mmc_is_req_done +EXPORT_SYMBOL vmlinux 0x00000000 mmc_of_parse +EXPORT_SYMBOL vmlinux 0x00000000 mmc_of_parse_voltage +EXPORT_SYMBOL vmlinux 0x00000000 mmc_put_card +EXPORT_SYMBOL vmlinux 0x00000000 mmc_register_driver +EXPORT_SYMBOL vmlinux 0x00000000 mmc_release_host +EXPORT_SYMBOL vmlinux 0x00000000 mmc_remove_host +EXPORT_SYMBOL vmlinux 0x00000000 mmc_request_done +EXPORT_SYMBOL vmlinux 0x00000000 mmc_retune_pause +EXPORT_SYMBOL vmlinux 0x00000000 mmc_retune_release +EXPORT_SYMBOL vmlinux 0x00000000 mmc_retune_timer_stop +EXPORT_SYMBOL vmlinux 0x00000000 mmc_retune_unpause +EXPORT_SYMBOL vmlinux 0x00000000 mmc_run_bkops +EXPORT_SYMBOL vmlinux 0x00000000 mmc_set_blocklen +EXPORT_SYMBOL vmlinux 0x00000000 mmc_set_data_timeout +EXPORT_SYMBOL vmlinux 0x00000000 mmc_start_request +EXPORT_SYMBOL vmlinux 0x00000000 mmc_sw_reset +EXPORT_SYMBOL vmlinux 0x00000000 mmc_unregister_driver +EXPORT_SYMBOL vmlinux 0x00000000 mmc_wait_for_cmd +EXPORT_SYMBOL vmlinux 0x00000000 mmc_wait_for_req +EXPORT_SYMBOL vmlinux 0x00000000 mmc_wait_for_req_done +EXPORT_SYMBOL vmlinux 0x00000000 mmiotrace_printk +EXPORT_SYMBOL vmlinux 0x00000000 mmput_async +EXPORT_SYMBOL vmlinux 0x00000000 mnt_drop_write_file +EXPORT_SYMBOL vmlinux 0x00000000 mnt_set_expiry +EXPORT_SYMBOL vmlinux 0x00000000 mntget +EXPORT_SYMBOL vmlinux 0x00000000 mntput +EXPORT_SYMBOL vmlinux 0x00000000 mod_node_page_state +EXPORT_SYMBOL vmlinux 0x00000000 mod_timer +EXPORT_SYMBOL vmlinux 0x00000000 mod_timer_pending +EXPORT_SYMBOL vmlinux 0x00000000 mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x00000000 module_put +EXPORT_SYMBOL vmlinux 0x00000000 module_refcount +EXPORT_SYMBOL vmlinux 0x00000000 mount_bdev +EXPORT_SYMBOL vmlinux 0x00000000 mount_nodev +EXPORT_SYMBOL vmlinux 0x00000000 mount_single +EXPORT_SYMBOL vmlinux 0x00000000 mount_subtree +EXPORT_SYMBOL vmlinux 0x00000000 movable_zone +EXPORT_SYMBOL vmlinux 0x00000000 mpage_readpage +EXPORT_SYMBOL vmlinux 0x00000000 mpage_readpages +EXPORT_SYMBOL vmlinux 0x00000000 mpage_writepage +EXPORT_SYMBOL vmlinux 0x00000000 mpage_writepages +EXPORT_SYMBOL vmlinux 0x00000000 mr_dump +EXPORT_SYMBOL vmlinux 0x00000000 mr_fill_mroute +EXPORT_SYMBOL vmlinux 0x00000000 mr_mfc_find_any +EXPORT_SYMBOL vmlinux 0x00000000 mr_mfc_find_any_parent +EXPORT_SYMBOL vmlinux 0x00000000 mr_mfc_find_parent +EXPORT_SYMBOL vmlinux 0x00000000 mr_mfc_seq_idx +EXPORT_SYMBOL vmlinux 0x00000000 mr_mfc_seq_next +EXPORT_SYMBOL vmlinux 0x00000000 mr_rtm_dumproute +EXPORT_SYMBOL vmlinux 0x00000000 mr_table_alloc +EXPORT_SYMBOL vmlinux 0x00000000 mr_table_dump +EXPORT_SYMBOL vmlinux 0x00000000 mr_vif_seq_idx +EXPORT_SYMBOL vmlinux 0x00000000 mr_vif_seq_next +EXPORT_SYMBOL vmlinux 0x00000000 mroute6_is_socket +EXPORT_SYMBOL vmlinux 0x00000000 msi_desc_to_pci_dev +EXPORT_SYMBOL vmlinux 0x00000000 msleep +EXPORT_SYMBOL vmlinux 0x00000000 msleep_interruptible +EXPORT_SYMBOL vmlinux 0x00000000 msrs_alloc +EXPORT_SYMBOL vmlinux 0x00000000 msrs_free +EXPORT_SYMBOL vmlinux 0x00000000 mutex_is_locked +EXPORT_SYMBOL vmlinux 0x00000000 mutex_lock +EXPORT_SYMBOL vmlinux 0x00000000 mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0x00000000 mutex_lock_killable +EXPORT_SYMBOL vmlinux 0x00000000 mutex_trylock +EXPORT_SYMBOL vmlinux 0x00000000 mutex_trylock_recursive +EXPORT_SYMBOL vmlinux 0x00000000 mutex_unlock +EXPORT_SYMBOL vmlinux 0x00000000 n_tty_ioctl_helper +EXPORT_SYMBOL vmlinux 0x00000000 names_cachep +EXPORT_SYMBOL vmlinux 0x00000000 napi_alloc_frag +EXPORT_SYMBOL vmlinux 0x00000000 napi_busy_loop +EXPORT_SYMBOL vmlinux 0x00000000 napi_complete_done +EXPORT_SYMBOL vmlinux 0x00000000 napi_consume_skb +EXPORT_SYMBOL vmlinux 0x00000000 napi_disable +EXPORT_SYMBOL vmlinux 0x00000000 napi_get_frags +EXPORT_SYMBOL vmlinux 0x00000000 napi_gro_flush +EXPORT_SYMBOL vmlinux 0x00000000 napi_gro_frags +EXPORT_SYMBOL vmlinux 0x00000000 napi_gro_receive +EXPORT_SYMBOL vmlinux 0x00000000 napi_schedule_prep +EXPORT_SYMBOL vmlinux 0x00000000 native_io_delay +EXPORT_SYMBOL vmlinux 0x00000000 native_load_gs_index +EXPORT_SYMBOL vmlinux 0x00000000 native_queued_spin_lock_slowpath +EXPORT_SYMBOL vmlinux 0x00000000 native_restore_fl +EXPORT_SYMBOL vmlinux 0x00000000 native_save_fl +EXPORT_SYMBOL vmlinux 0x00000000 native_write_cr0 +EXPORT_SYMBOL vmlinux 0x00000000 native_write_cr4 +EXPORT_SYMBOL vmlinux 0x00000000 nd_btt_arena_is_valid +EXPORT_SYMBOL vmlinux 0x00000000 nd_btt_probe +EXPORT_SYMBOL vmlinux 0x00000000 nd_btt_version +EXPORT_SYMBOL vmlinux 0x00000000 nd_dax_probe +EXPORT_SYMBOL vmlinux 0x00000000 nd_dev_to_uuid +EXPORT_SYMBOL vmlinux 0x00000000 nd_device_notify +EXPORT_SYMBOL vmlinux 0x00000000 nd_device_register +EXPORT_SYMBOL vmlinux 0x00000000 nd_device_unregister +EXPORT_SYMBOL vmlinux 0x00000000 nd_integrity_init +EXPORT_SYMBOL vmlinux 0x00000000 nd_namespace_blk_validate +EXPORT_SYMBOL vmlinux 0x00000000 nd_pfn_probe +EXPORT_SYMBOL vmlinux 0x00000000 nd_pfn_validate +EXPORT_SYMBOL vmlinux 0x00000000 nd_region_acquire_lane +EXPORT_SYMBOL vmlinux 0x00000000 nd_region_release_lane +EXPORT_SYMBOL vmlinux 0x00000000 nd_region_to_nstype +EXPORT_SYMBOL vmlinux 0x00000000 nd_sb_checksum +EXPORT_SYMBOL vmlinux 0x00000000 ndisc_mc_map +EXPORT_SYMBOL vmlinux 0x00000000 ndo_dflt_fdb_add +EXPORT_SYMBOL vmlinux 0x00000000 ndo_dflt_fdb_del +EXPORT_SYMBOL vmlinux 0x00000000 ndo_dflt_fdb_dump +EXPORT_SYMBOL vmlinux 0x00000000 neigh_app_ns +EXPORT_SYMBOL vmlinux 0x00000000 neigh_carrier_down +EXPORT_SYMBOL vmlinux 0x00000000 neigh_changeaddr +EXPORT_SYMBOL vmlinux 0x00000000 neigh_connected_output +EXPORT_SYMBOL vmlinux 0x00000000 neigh_destroy +EXPORT_SYMBOL vmlinux 0x00000000 neigh_direct_output +EXPORT_SYMBOL vmlinux 0x00000000 neigh_event_ns +EXPORT_SYMBOL vmlinux 0x00000000 neigh_for_each +EXPORT_SYMBOL vmlinux 0x00000000 neigh_ifdown +EXPORT_SYMBOL vmlinux 0x00000000 neigh_lookup +EXPORT_SYMBOL vmlinux 0x00000000 neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0x00000000 neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0x00000000 neigh_parms_release +EXPORT_SYMBOL vmlinux 0x00000000 neigh_proc_dointvec +EXPORT_SYMBOL vmlinux 0x00000000 neigh_proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0x00000000 neigh_proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x00000000 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x00000000 neigh_resolve_output +EXPORT_SYMBOL vmlinux 0x00000000 neigh_seq_next +EXPORT_SYMBOL vmlinux 0x00000000 neigh_seq_start +EXPORT_SYMBOL vmlinux 0x00000000 neigh_seq_stop +EXPORT_SYMBOL vmlinux 0x00000000 neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0x00000000 neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0x00000000 neigh_table_clear +EXPORT_SYMBOL vmlinux 0x00000000 neigh_table_init +EXPORT_SYMBOL vmlinux 0x00000000 neigh_update +EXPORT_SYMBOL vmlinux 0x00000000 neigh_xmit +EXPORT_SYMBOL vmlinux 0x00000000 net_dim +EXPORT_SYMBOL vmlinux 0x00000000 net_dim_get_def_rx_moderation +EXPORT_SYMBOL vmlinux 0x00000000 net_dim_get_def_tx_moderation +EXPORT_SYMBOL vmlinux 0x00000000 net_dim_get_rx_moderation +EXPORT_SYMBOL vmlinux 0x00000000 net_dim_get_tx_moderation +EXPORT_SYMBOL vmlinux 0x00000000 net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x00000000 net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x00000000 net_ns_barrier +EXPORT_SYMBOL vmlinux 0x00000000 net_ratelimit +EXPORT_SYMBOL vmlinux 0x00000000 netdev_adjacent_change_abort +EXPORT_SYMBOL vmlinux 0x00000000 netdev_adjacent_change_commit +EXPORT_SYMBOL vmlinux 0x00000000 netdev_adjacent_change_prepare +EXPORT_SYMBOL vmlinux 0x00000000 netdev_adjacent_get_private +EXPORT_SYMBOL vmlinux 0x00000000 netdev_alert +EXPORT_SYMBOL vmlinux 0x00000000 netdev_alloc_frag +EXPORT_SYMBOL vmlinux 0x00000000 netdev_bind_sb_channel_queue +EXPORT_SYMBOL vmlinux 0x00000000 netdev_bonding_info_change +EXPORT_SYMBOL vmlinux 0x00000000 netdev_boot_setup_check +EXPORT_SYMBOL vmlinux 0x00000000 netdev_change_features +EXPORT_SYMBOL vmlinux 0x00000000 netdev_class_create_file_ns +EXPORT_SYMBOL vmlinux 0x00000000 netdev_class_remove_file_ns +EXPORT_SYMBOL vmlinux 0x00000000 netdev_crit +EXPORT_SYMBOL vmlinux 0x00000000 netdev_emerg +EXPORT_SYMBOL vmlinux 0x00000000 netdev_err +EXPORT_SYMBOL vmlinux 0x00000000 netdev_features_change +EXPORT_SYMBOL vmlinux 0x00000000 netdev_has_any_upper_dev +EXPORT_SYMBOL vmlinux 0x00000000 netdev_has_upper_dev +EXPORT_SYMBOL vmlinux 0x00000000 netdev_has_upper_dev_all_rcu +EXPORT_SYMBOL vmlinux 0x00000000 netdev_increment_features +EXPORT_SYMBOL vmlinux 0x00000000 netdev_info +EXPORT_SYMBOL vmlinux 0x00000000 netdev_lower_dev_get_private +EXPORT_SYMBOL vmlinux 0x00000000 netdev_lower_get_first_private_rcu +EXPORT_SYMBOL vmlinux 0x00000000 netdev_lower_get_next +EXPORT_SYMBOL vmlinux 0x00000000 netdev_lower_get_next_private +EXPORT_SYMBOL vmlinux 0x00000000 netdev_lower_get_next_private_rcu +EXPORT_SYMBOL vmlinux 0x00000000 netdev_lower_state_changed +EXPORT_SYMBOL vmlinux 0x00000000 netdev_master_upper_dev_get +EXPORT_SYMBOL vmlinux 0x00000000 netdev_master_upper_dev_get_rcu +EXPORT_SYMBOL vmlinux 0x00000000 netdev_master_upper_dev_link +EXPORT_SYMBOL vmlinux 0x00000000 netdev_max_backlog +EXPORT_SYMBOL vmlinux 0x00000000 netdev_name_node_alt_create +EXPORT_SYMBOL vmlinux 0x00000000 netdev_name_node_alt_destroy +EXPORT_SYMBOL vmlinux 0x00000000 netdev_next_lower_dev_rcu +EXPORT_SYMBOL vmlinux 0x00000000 netdev_notice +EXPORT_SYMBOL vmlinux 0x00000000 netdev_notify_peers +EXPORT_SYMBOL vmlinux 0x00000000 netdev_pick_tx +EXPORT_SYMBOL vmlinux 0x00000000 netdev_port_same_parent_id +EXPORT_SYMBOL vmlinux 0x00000000 netdev_printk +EXPORT_SYMBOL vmlinux 0x00000000 netdev_refcnt_read +EXPORT_SYMBOL vmlinux 0x00000000 netdev_reset_tc +EXPORT_SYMBOL vmlinux 0x00000000 netdev_rss_key_fill +EXPORT_SYMBOL vmlinux 0x00000000 netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0x00000000 netdev_set_num_tc +EXPORT_SYMBOL vmlinux 0x00000000 netdev_set_sb_channel +EXPORT_SYMBOL vmlinux 0x00000000 netdev_set_tc_queue +EXPORT_SYMBOL vmlinux 0x00000000 netdev_state_change +EXPORT_SYMBOL vmlinux 0x00000000 netdev_stats_to_stats64 +EXPORT_SYMBOL vmlinux 0x00000000 netdev_txq_to_tc +EXPORT_SYMBOL vmlinux 0x00000000 netdev_unbind_sb_channel +EXPORT_SYMBOL vmlinux 0x00000000 netdev_update_features +EXPORT_SYMBOL vmlinux 0x00000000 netdev_update_lockdep_key +EXPORT_SYMBOL vmlinux 0x00000000 netdev_upper_dev_link +EXPORT_SYMBOL vmlinux 0x00000000 netdev_upper_dev_unlink +EXPORT_SYMBOL vmlinux 0x00000000 netdev_upper_get_next_dev_rcu +EXPORT_SYMBOL vmlinux 0x00000000 netdev_warn +EXPORT_SYMBOL vmlinux 0x00000000 netif_carrier_off +EXPORT_SYMBOL vmlinux 0x00000000 netif_carrier_on +EXPORT_SYMBOL vmlinux 0x00000000 netif_device_attach +EXPORT_SYMBOL vmlinux 0x00000000 netif_device_detach +EXPORT_SYMBOL vmlinux 0x00000000 netif_get_num_default_rss_queues +EXPORT_SYMBOL vmlinux 0x00000000 netif_napi_add +EXPORT_SYMBOL vmlinux 0x00000000 netif_napi_del +EXPORT_SYMBOL vmlinux 0x00000000 netif_receive_skb +EXPORT_SYMBOL vmlinux 0x00000000 netif_receive_skb_core +EXPORT_SYMBOL vmlinux 0x00000000 netif_receive_skb_list +EXPORT_SYMBOL vmlinux 0x00000000 netif_rx +EXPORT_SYMBOL vmlinux 0x00000000 netif_rx_ni +EXPORT_SYMBOL vmlinux 0x00000000 netif_schedule_queue +EXPORT_SYMBOL vmlinux 0x00000000 netif_set_real_num_rx_queues +EXPORT_SYMBOL vmlinux 0x00000000 netif_set_real_num_tx_queues +EXPORT_SYMBOL vmlinux 0x00000000 netif_set_xps_queue +EXPORT_SYMBOL vmlinux 0x00000000 netif_skb_features +EXPORT_SYMBOL vmlinux 0x00000000 netif_stacked_transfer_operstate +EXPORT_SYMBOL vmlinux 0x00000000 netif_tx_stop_all_queues +EXPORT_SYMBOL vmlinux 0x00000000 netif_tx_wake_queue +EXPORT_SYMBOL vmlinux 0x00000000 netlbl_audit_start +EXPORT_SYMBOL vmlinux 0x00000000 netlbl_bitmap_setbit +EXPORT_SYMBOL vmlinux 0x00000000 netlbl_bitmap_walk +EXPORT_SYMBOL vmlinux 0x00000000 netlbl_calipso_ops_register +EXPORT_SYMBOL vmlinux 0x00000000 netlbl_catmap_setbit +EXPORT_SYMBOL vmlinux 0x00000000 netlbl_catmap_walk +EXPORT_SYMBOL vmlinux 0x00000000 netlink_ack +EXPORT_SYMBOL vmlinux 0x00000000 netlink_broadcast +EXPORT_SYMBOL vmlinux 0x00000000 netlink_broadcast_filtered +EXPORT_SYMBOL vmlinux 0x00000000 netlink_capable +EXPORT_SYMBOL vmlinux 0x00000000 netlink_kernel_release +EXPORT_SYMBOL vmlinux 0x00000000 netlink_net_capable +EXPORT_SYMBOL vmlinux 0x00000000 netlink_ns_capable +EXPORT_SYMBOL vmlinux 0x00000000 netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0x00000000 netlink_register_notifier +EXPORT_SYMBOL vmlinux 0x00000000 netlink_set_err +EXPORT_SYMBOL vmlinux 0x00000000 netlink_unicast +EXPORT_SYMBOL vmlinux 0x00000000 netlink_unregister_notifier +EXPORT_SYMBOL vmlinux 0x00000000 netpoll_cleanup +EXPORT_SYMBOL vmlinux 0x00000000 netpoll_parse_options +EXPORT_SYMBOL vmlinux 0x00000000 netpoll_poll_dev +EXPORT_SYMBOL vmlinux 0x00000000 netpoll_poll_disable +EXPORT_SYMBOL vmlinux 0x00000000 netpoll_poll_enable +EXPORT_SYMBOL vmlinux 0x00000000 netpoll_print_options +EXPORT_SYMBOL vmlinux 0x00000000 netpoll_send_skb_on_dev +EXPORT_SYMBOL vmlinux 0x00000000 netpoll_send_udp +EXPORT_SYMBOL vmlinux 0x00000000 netpoll_setup +EXPORT_SYMBOL vmlinux 0x00000000 new_inode +EXPORT_SYMBOL vmlinux 0x00000000 nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0x00000000 nf_ct_attach +EXPORT_SYMBOL vmlinux 0x00000000 nf_ct_get_tuple_skb +EXPORT_SYMBOL vmlinux 0x00000000 nf_getsockopt +EXPORT_SYMBOL vmlinux 0x00000000 nf_hook_slow +EXPORT_SYMBOL vmlinux 0x00000000 nf_hook_slow_list +EXPORT_SYMBOL vmlinux 0x00000000 nf_hooks_needed +EXPORT_SYMBOL vmlinux 0x00000000 nf_ip6_checksum +EXPORT_SYMBOL vmlinux 0x00000000 nf_ip_checksum +EXPORT_SYMBOL vmlinux 0x00000000 nf_log_bind_pf +EXPORT_SYMBOL vmlinux 0x00000000 nf_log_packet +EXPORT_SYMBOL vmlinux 0x00000000 nf_log_register +EXPORT_SYMBOL vmlinux 0x00000000 nf_log_set +EXPORT_SYMBOL vmlinux 0x00000000 nf_log_trace +EXPORT_SYMBOL vmlinux 0x00000000 nf_log_unbind_pf +EXPORT_SYMBOL vmlinux 0x00000000 nf_log_unregister +EXPORT_SYMBOL vmlinux 0x00000000 nf_log_unset +EXPORT_SYMBOL vmlinux 0x00000000 nf_register_net_hook +EXPORT_SYMBOL vmlinux 0x00000000 nf_register_net_hooks +EXPORT_SYMBOL vmlinux 0x00000000 nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0x00000000 nf_register_sockopt +EXPORT_SYMBOL vmlinux 0x00000000 nf_reinject +EXPORT_SYMBOL vmlinux 0x00000000 nf_setsockopt +EXPORT_SYMBOL vmlinux 0x00000000 nf_unregister_net_hook +EXPORT_SYMBOL vmlinux 0x00000000 nf_unregister_net_hooks +EXPORT_SYMBOL vmlinux 0x00000000 nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0x00000000 nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0x00000000 nla_append +EXPORT_SYMBOL vmlinux 0x00000000 nla_find +EXPORT_SYMBOL vmlinux 0x00000000 nla_memcmp +EXPORT_SYMBOL vmlinux 0x00000000 nla_memcpy +EXPORT_SYMBOL vmlinux 0x00000000 nla_policy_len +EXPORT_SYMBOL vmlinux 0x00000000 nla_put +EXPORT_SYMBOL vmlinux 0x00000000 nla_put_64bit +EXPORT_SYMBOL vmlinux 0x00000000 nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x00000000 nla_reserve +EXPORT_SYMBOL vmlinux 0x00000000 nla_reserve_64bit +EXPORT_SYMBOL vmlinux 0x00000000 nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x00000000 nla_strcmp +EXPORT_SYMBOL vmlinux 0x00000000 nla_strdup +EXPORT_SYMBOL vmlinux 0x00000000 nla_strlcpy +EXPORT_SYMBOL vmlinux 0x00000000 nlmsg_notify +EXPORT_SYMBOL vmlinux 0x00000000 nmi_panic +EXPORT_SYMBOL vmlinux 0x00000000 no_llseek +EXPORT_SYMBOL vmlinux 0x00000000 no_pci_devices +EXPORT_SYMBOL vmlinux 0x00000000 no_seek_end_llseek +EXPORT_SYMBOL vmlinux 0x00000000 no_seek_end_llseek_size +EXPORT_SYMBOL vmlinux 0x00000000 nobh_truncate_page +EXPORT_SYMBOL vmlinux 0x00000000 nobh_write_begin +EXPORT_SYMBOL vmlinux 0x00000000 nobh_write_end +EXPORT_SYMBOL vmlinux 0x00000000 nobh_writepage +EXPORT_SYMBOL vmlinux 0x00000000 node_data +EXPORT_SYMBOL vmlinux 0x00000000 node_states +EXPORT_SYMBOL vmlinux 0x00000000 node_to_cpumask_map +EXPORT_SYMBOL vmlinux 0x00000000 nonseekable_open +EXPORT_SYMBOL vmlinux 0x00000000 noop_fsync +EXPORT_SYMBOL vmlinux 0x00000000 noop_llseek +EXPORT_SYMBOL vmlinux 0x00000000 noop_qdisc +EXPORT_SYMBOL vmlinux 0x00000000 nosteal_pipe_buf_ops +EXPORT_SYMBOL vmlinux 0x00000000 notify_change +EXPORT_SYMBOL vmlinux 0x00000000 nr_cpu_ids +EXPORT_SYMBOL vmlinux 0x00000000 nr_node_ids +EXPORT_SYMBOL vmlinux 0x00000000 nr_online_nodes +EXPORT_SYMBOL vmlinux 0x00000000 ns_capable +EXPORT_SYMBOL vmlinux 0x00000000 ns_capable_noaudit +EXPORT_SYMBOL vmlinux 0x00000000 ns_capable_setid +EXPORT_SYMBOL vmlinux 0x00000000 ns_to_kernel_old_timeval +EXPORT_SYMBOL vmlinux 0x00000000 ns_to_timespec64 +EXPORT_SYMBOL vmlinux 0x00000000 nsecs_to_jiffies64 +EXPORT_SYMBOL vmlinux 0x00000000 num_registered_fb +EXPORT_SYMBOL vmlinux 0x00000000 numa_node +EXPORT_SYMBOL vmlinux 0x00000000 nvdimm_bus_lock +EXPORT_SYMBOL vmlinux 0x00000000 nvdimm_bus_unlock +EXPORT_SYMBOL vmlinux 0x00000000 nvdimm_namespace_capacity +EXPORT_SYMBOL vmlinux 0x00000000 nvdimm_namespace_common_probe +EXPORT_SYMBOL vmlinux 0x00000000 nvdimm_namespace_disk_name +EXPORT_SYMBOL vmlinux 0x00000000 nvdimm_namespace_locked +EXPORT_SYMBOL vmlinux 0x00000000 nvdimm_revalidate_disk +EXPORT_SYMBOL vmlinux 0x00000000 nvm_alloc_dev +EXPORT_SYMBOL vmlinux 0x00000000 nvm_dev_dma_alloc +EXPORT_SYMBOL vmlinux 0x00000000 nvm_dev_dma_free +EXPORT_SYMBOL vmlinux 0x00000000 nvm_end_io +EXPORT_SYMBOL vmlinux 0x00000000 nvm_register +EXPORT_SYMBOL vmlinux 0x00000000 nvm_register_tgt_type +EXPORT_SYMBOL vmlinux 0x00000000 nvm_submit_io +EXPORT_SYMBOL vmlinux 0x00000000 nvm_submit_io_sync +EXPORT_SYMBOL vmlinux 0x00000000 nvm_unregister +EXPORT_SYMBOL vmlinux 0x00000000 nvm_unregister_tgt_type +EXPORT_SYMBOL vmlinux 0x00000000 nvmem_get_mac_address +EXPORT_SYMBOL vmlinux 0x00000000 of_find_backlight +EXPORT_SYMBOL vmlinux 0x00000000 of_find_mipi_dsi_device_by_node +EXPORT_SYMBOL vmlinux 0x00000000 of_find_mipi_dsi_host_by_node +EXPORT_SYMBOL vmlinux 0x00000000 on_each_cpu +EXPORT_SYMBOL vmlinux 0x00000000 on_each_cpu_cond +EXPORT_SYMBOL vmlinux 0x00000000 on_each_cpu_cond_mask +EXPORT_SYMBOL vmlinux 0x00000000 on_each_cpu_mask +EXPORT_SYMBOL vmlinux 0x00000000 oops_in_progress +EXPORT_SYMBOL vmlinux 0x00000000 opal_unlock_from_suspend +EXPORT_SYMBOL vmlinux 0x00000000 open_exec +EXPORT_SYMBOL vmlinux 0x00000000 open_with_fake_path +EXPORT_SYMBOL vmlinux 0x00000000 out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0x00000000 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0x00000000 overflowgid +EXPORT_SYMBOL vmlinux 0x00000000 overflowuid +EXPORT_SYMBOL vmlinux 0x00000000 override_creds +EXPORT_SYMBOL vmlinux 0x00000000 packing +EXPORT_SYMBOL vmlinux 0x00000000 padata_alloc_possible +EXPORT_SYMBOL vmlinux 0x00000000 padata_alloc_shell +EXPORT_SYMBOL vmlinux 0x00000000 padata_do_parallel +EXPORT_SYMBOL vmlinux 0x00000000 padata_do_serial +EXPORT_SYMBOL vmlinux 0x00000000 padata_free +EXPORT_SYMBOL vmlinux 0x00000000 padata_free_shell +EXPORT_SYMBOL vmlinux 0x00000000 padata_set_cpumask +EXPORT_SYMBOL vmlinux 0x00000000 padata_start +EXPORT_SYMBOL vmlinux 0x00000000 padata_stop +EXPORT_SYMBOL vmlinux 0x00000000 paddr_vmcoreinfo_note +EXPORT_SYMBOL vmlinux 0x00000000 page_cache_next_miss +EXPORT_SYMBOL vmlinux 0x00000000 page_cache_prev_miss +EXPORT_SYMBOL vmlinux 0x00000000 page_frag_alloc +EXPORT_SYMBOL vmlinux 0x00000000 page_frag_free +EXPORT_SYMBOL vmlinux 0x00000000 page_get_link +EXPORT_SYMBOL vmlinux 0x00000000 page_mapped +EXPORT_SYMBOL vmlinux 0x00000000 page_mapping +EXPORT_SYMBOL vmlinux 0x00000000 page_offset_base +EXPORT_SYMBOL vmlinux 0x00000000 page_pool_alloc_pages +EXPORT_SYMBOL vmlinux 0x00000000 page_pool_create +EXPORT_SYMBOL vmlinux 0x00000000 page_pool_destroy +EXPORT_SYMBOL vmlinux 0x00000000 page_pool_unmap_page +EXPORT_SYMBOL vmlinux 0x00000000 page_pool_update_nid +EXPORT_SYMBOL vmlinux 0x00000000 page_put_link +EXPORT_SYMBOL vmlinux 0x00000000 page_readlink +EXPORT_SYMBOL vmlinux 0x00000000 page_symlink +EXPORT_SYMBOL vmlinux 0x00000000 page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0x00000000 page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0x00000000 pagecache_get_page +EXPORT_SYMBOL vmlinux 0x00000000 pagecache_isize_extended +EXPORT_SYMBOL vmlinux 0x00000000 pagecache_write_begin +EXPORT_SYMBOL vmlinux 0x00000000 pagecache_write_end +EXPORT_SYMBOL vmlinux 0x00000000 pagevec_lookup_range +EXPORT_SYMBOL vmlinux 0x00000000 pagevec_lookup_range_nr_tag +EXPORT_SYMBOL vmlinux 0x00000000 pagevec_lookup_range_tag +EXPORT_SYMBOL vmlinux 0x00000000 panic +EXPORT_SYMBOL vmlinux 0x00000000 panic_blink +EXPORT_SYMBOL vmlinux 0x00000000 panic_notifier_list +EXPORT_SYMBOL vmlinux 0x00000000 param_array_ops +EXPORT_SYMBOL vmlinux 0x00000000 param_free_charp +EXPORT_SYMBOL vmlinux 0x00000000 param_get_bool +EXPORT_SYMBOL vmlinux 0x00000000 param_get_byte +EXPORT_SYMBOL vmlinux 0x00000000 param_get_charp +EXPORT_SYMBOL vmlinux 0x00000000 param_get_int +EXPORT_SYMBOL vmlinux 0x00000000 param_get_invbool +EXPORT_SYMBOL vmlinux 0x00000000 param_get_long +EXPORT_SYMBOL vmlinux 0x00000000 param_get_short +EXPORT_SYMBOL vmlinux 0x00000000 param_get_string +EXPORT_SYMBOL vmlinux 0x00000000 param_get_uint +EXPORT_SYMBOL vmlinux 0x00000000 param_get_ullong +EXPORT_SYMBOL vmlinux 0x00000000 param_get_ulong +EXPORT_SYMBOL vmlinux 0x00000000 param_get_ushort +EXPORT_SYMBOL vmlinux 0x00000000 param_ops_bint +EXPORT_SYMBOL vmlinux 0x00000000 param_ops_bool +EXPORT_SYMBOL vmlinux 0x00000000 param_ops_byte +EXPORT_SYMBOL vmlinux 0x00000000 param_ops_charp +EXPORT_SYMBOL vmlinux 0x00000000 param_ops_int +EXPORT_SYMBOL vmlinux 0x00000000 param_ops_invbool +EXPORT_SYMBOL vmlinux 0x00000000 param_ops_long +EXPORT_SYMBOL vmlinux 0x00000000 param_ops_short +EXPORT_SYMBOL vmlinux 0x00000000 param_ops_string +EXPORT_SYMBOL vmlinux 0x00000000 param_ops_uint +EXPORT_SYMBOL vmlinux 0x00000000 param_ops_ullong +EXPORT_SYMBOL vmlinux 0x00000000 param_ops_ulong +EXPORT_SYMBOL vmlinux 0x00000000 param_ops_ushort +EXPORT_SYMBOL vmlinux 0x00000000 param_set_bint +EXPORT_SYMBOL vmlinux 0x00000000 param_set_bool +EXPORT_SYMBOL vmlinux 0x00000000 param_set_byte +EXPORT_SYMBOL vmlinux 0x00000000 param_set_charp +EXPORT_SYMBOL vmlinux 0x00000000 param_set_copystring +EXPORT_SYMBOL vmlinux 0x00000000 param_set_int +EXPORT_SYMBOL vmlinux 0x00000000 param_set_invbool +EXPORT_SYMBOL vmlinux 0x00000000 param_set_long +EXPORT_SYMBOL vmlinux 0x00000000 param_set_short +EXPORT_SYMBOL vmlinux 0x00000000 param_set_uint +EXPORT_SYMBOL vmlinux 0x00000000 param_set_ullong +EXPORT_SYMBOL vmlinux 0x00000000 param_set_ulong +EXPORT_SYMBOL vmlinux 0x00000000 param_set_ushort +EXPORT_SYMBOL vmlinux 0x00000000 passthru_features_check +EXPORT_SYMBOL vmlinux 0x00000000 path_get +EXPORT_SYMBOL vmlinux 0x00000000 path_has_submounts +EXPORT_SYMBOL vmlinux 0x00000000 path_is_mountpoint +EXPORT_SYMBOL vmlinux 0x00000000 path_is_under +EXPORT_SYMBOL vmlinux 0x00000000 path_nosuid +EXPORT_SYMBOL vmlinux 0x00000000 path_put +EXPORT_SYMBOL vmlinux 0x00000000 pci_add_new_bus +EXPORT_SYMBOL vmlinux 0x00000000 pci_add_resource +EXPORT_SYMBOL vmlinux 0x00000000 pci_add_resource_offset +EXPORT_SYMBOL vmlinux 0x00000000 pci_alloc_dev +EXPORT_SYMBOL vmlinux 0x00000000 pci_alloc_host_bridge +EXPORT_SYMBOL vmlinux 0x00000000 pci_alloc_irq_vectors_affinity +EXPORT_SYMBOL vmlinux 0x00000000 pci_assign_resource +EXPORT_SYMBOL vmlinux 0x00000000 pci_back_from_sleep +EXPORT_SYMBOL vmlinux 0x00000000 pci_biosrom_size +EXPORT_SYMBOL vmlinux 0x00000000 pci_bus_add_devices +EXPORT_SYMBOL vmlinux 0x00000000 pci_bus_alloc_resource +EXPORT_SYMBOL vmlinux 0x00000000 pci_bus_assign_resources +EXPORT_SYMBOL vmlinux 0x00000000 pci_bus_claim_resources +EXPORT_SYMBOL vmlinux 0x00000000 pci_bus_find_capability +EXPORT_SYMBOL vmlinux 0x00000000 pci_bus_read_config_byte +EXPORT_SYMBOL vmlinux 0x00000000 pci_bus_read_config_dword +EXPORT_SYMBOL vmlinux 0x00000000 pci_bus_read_config_word +EXPORT_SYMBOL vmlinux 0x00000000 pci_bus_read_dev_vendor_id +EXPORT_SYMBOL vmlinux 0x00000000 pci_bus_set_ops +EXPORT_SYMBOL vmlinux 0x00000000 pci_bus_size_bridges +EXPORT_SYMBOL vmlinux 0x00000000 pci_bus_type +EXPORT_SYMBOL vmlinux 0x00000000 pci_bus_write_config_byte +EXPORT_SYMBOL vmlinux 0x00000000 pci_bus_write_config_dword +EXPORT_SYMBOL vmlinux 0x00000000 pci_bus_write_config_word +EXPORT_SYMBOL vmlinux 0x00000000 pci_choose_state +EXPORT_SYMBOL vmlinux 0x00000000 pci_claim_resource +EXPORT_SYMBOL vmlinux 0x00000000 pci_clear_master +EXPORT_SYMBOL vmlinux 0x00000000 pci_clear_mwi +EXPORT_SYMBOL vmlinux 0x00000000 pci_dev_driver +EXPORT_SYMBOL vmlinux 0x00000000 pci_dev_get +EXPORT_SYMBOL vmlinux 0x00000000 pci_dev_present +EXPORT_SYMBOL vmlinux 0x00000000 pci_dev_put +EXPORT_SYMBOL vmlinux 0x00000000 pci_disable_device +EXPORT_SYMBOL vmlinux 0x00000000 pci_disable_link_state +EXPORT_SYMBOL vmlinux 0x00000000 pci_disable_link_state_locked +EXPORT_SYMBOL vmlinux 0x00000000 pci_disable_msi +EXPORT_SYMBOL vmlinux 0x00000000 pci_disable_msix +EXPORT_SYMBOL vmlinux 0x00000000 pci_enable_atomic_ops_to_root +EXPORT_SYMBOL vmlinux 0x00000000 pci_enable_device +EXPORT_SYMBOL vmlinux 0x00000000 pci_enable_device_io +EXPORT_SYMBOL vmlinux 0x00000000 pci_enable_device_mem +EXPORT_SYMBOL vmlinux 0x00000000 pci_enable_msi +EXPORT_SYMBOL vmlinux 0x00000000 pci_enable_msix_range +EXPORT_SYMBOL vmlinux 0x00000000 pci_enable_ptm +EXPORT_SYMBOL vmlinux 0x00000000 pci_enable_wake +EXPORT_SYMBOL vmlinux 0x00000000 pci_ep_cfs_add_epc_group +EXPORT_SYMBOL vmlinux 0x00000000 pci_ep_cfs_add_epf_group +EXPORT_SYMBOL vmlinux 0x00000000 pci_ep_cfs_remove_epc_group +EXPORT_SYMBOL vmlinux 0x00000000 pci_ep_cfs_remove_epf_group +EXPORT_SYMBOL vmlinux 0x00000000 pci_find_bus +EXPORT_SYMBOL vmlinux 0x00000000 pci_find_capability +EXPORT_SYMBOL vmlinux 0x00000000 pci_find_next_bus +EXPORT_SYMBOL vmlinux 0x00000000 pci_find_parent_resource +EXPORT_SYMBOL vmlinux 0x00000000 pci_find_pcie_root_port +EXPORT_SYMBOL vmlinux 0x00000000 pci_find_resource +EXPORT_SYMBOL vmlinux 0x00000000 pci_fixup_cardbus +EXPORT_SYMBOL vmlinux 0x00000000 pci_fixup_device +EXPORT_SYMBOL vmlinux 0x00000000 pci_free_host_bridge +EXPORT_SYMBOL vmlinux 0x00000000 pci_free_irq +EXPORT_SYMBOL vmlinux 0x00000000 pci_free_irq_vectors +EXPORT_SYMBOL vmlinux 0x00000000 pci_free_resource_list +EXPORT_SYMBOL vmlinux 0x00000000 pci_get_class +EXPORT_SYMBOL vmlinux 0x00000000 pci_get_device +EXPORT_SYMBOL vmlinux 0x00000000 pci_get_domain_bus_and_slot +EXPORT_SYMBOL vmlinux 0x00000000 pci_get_slot +EXPORT_SYMBOL vmlinux 0x00000000 pci_get_subsys +EXPORT_SYMBOL vmlinux 0x00000000 pci_iomap +EXPORT_SYMBOL vmlinux 0x00000000 pci_iomap_range +EXPORT_SYMBOL vmlinux 0x00000000 pci_iounmap +EXPORT_SYMBOL vmlinux 0x00000000 pci_irq_get_affinity +EXPORT_SYMBOL vmlinux 0x00000000 pci_irq_vector +EXPORT_SYMBOL vmlinux 0x00000000 pci_lost_interrupt +EXPORT_SYMBOL vmlinux 0x00000000 pci_map_biosrom +EXPORT_SYMBOL vmlinux 0x00000000 pci_map_rom +EXPORT_SYMBOL vmlinux 0x00000000 pci_match_id +EXPORT_SYMBOL vmlinux 0x00000000 pci_mem_start +EXPORT_SYMBOL vmlinux 0x00000000 pci_msi_enabled +EXPORT_SYMBOL vmlinux 0x00000000 pci_msi_vec_count +EXPORT_SYMBOL vmlinux 0x00000000 pci_msix_vec_count +EXPORT_SYMBOL vmlinux 0x00000000 pci_pci_problems +EXPORT_SYMBOL vmlinux 0x00000000 pci_platform_rom +EXPORT_SYMBOL vmlinux 0x00000000 pci_pme_active +EXPORT_SYMBOL vmlinux 0x00000000 pci_pme_capable +EXPORT_SYMBOL vmlinux 0x00000000 pci_prepare_to_sleep +EXPORT_SYMBOL vmlinux 0x00000000 pci_read_config_byte +EXPORT_SYMBOL vmlinux 0x00000000 pci_read_config_dword +EXPORT_SYMBOL vmlinux 0x00000000 pci_read_config_word +EXPORT_SYMBOL vmlinux 0x00000000 pci_read_vpd +EXPORT_SYMBOL vmlinux 0x00000000 pci_reenable_device +EXPORT_SYMBOL vmlinux 0x00000000 pci_release_region +EXPORT_SYMBOL vmlinux 0x00000000 pci_release_regions +EXPORT_SYMBOL vmlinux 0x00000000 pci_release_resource +EXPORT_SYMBOL vmlinux 0x00000000 pci_release_selected_regions +EXPORT_SYMBOL vmlinux 0x00000000 pci_remap_iospace +EXPORT_SYMBOL vmlinux 0x00000000 pci_remove_bus +EXPORT_SYMBOL vmlinux 0x00000000 pci_request_irq +EXPORT_SYMBOL vmlinux 0x00000000 pci_request_region +EXPORT_SYMBOL vmlinux 0x00000000 pci_request_regions +EXPORT_SYMBOL vmlinux 0x00000000 pci_request_regions_exclusive +EXPORT_SYMBOL vmlinux 0x00000000 pci_request_selected_regions +EXPORT_SYMBOL vmlinux 0x00000000 pci_request_selected_regions_exclusive +EXPORT_SYMBOL vmlinux 0x00000000 pci_resize_resource +EXPORT_SYMBOL vmlinux 0x00000000 pci_restore_state +EXPORT_SYMBOL vmlinux 0x00000000 pci_root_buses +EXPORT_SYMBOL vmlinux 0x00000000 pci_save_state +EXPORT_SYMBOL vmlinux 0x00000000 pci_scan_bridge +EXPORT_SYMBOL vmlinux 0x00000000 pci_scan_bus +EXPORT_SYMBOL vmlinux 0x00000000 pci_scan_root_bus +EXPORT_SYMBOL vmlinux 0x00000000 pci_scan_root_bus_bridge +EXPORT_SYMBOL vmlinux 0x00000000 pci_scan_single_device +EXPORT_SYMBOL vmlinux 0x00000000 pci_scan_slot +EXPORT_SYMBOL vmlinux 0x00000000 pci_select_bars +EXPORT_SYMBOL vmlinux 0x00000000 pci_set_master +EXPORT_SYMBOL vmlinux 0x00000000 pci_set_mwi +EXPORT_SYMBOL vmlinux 0x00000000 pci_set_power_state +EXPORT_SYMBOL vmlinux 0x00000000 pci_set_vpd_size +EXPORT_SYMBOL vmlinux 0x00000000 pci_setup_cardbus +EXPORT_SYMBOL vmlinux 0x00000000 pci_stop_and_remove_bus_device +EXPORT_SYMBOL vmlinux 0x00000000 pci_try_set_mwi +EXPORT_SYMBOL vmlinux 0x00000000 pci_unmap_biosrom +EXPORT_SYMBOL vmlinux 0x00000000 pci_unmap_iospace +EXPORT_SYMBOL vmlinux 0x00000000 pci_unmap_rom +EXPORT_SYMBOL vmlinux 0x00000000 pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x00000000 pci_wait_for_pending_transaction +EXPORT_SYMBOL vmlinux 0x00000000 pci_wake_from_d3 +EXPORT_SYMBOL vmlinux 0x00000000 pci_write_config_byte +EXPORT_SYMBOL vmlinux 0x00000000 pci_write_config_dword +EXPORT_SYMBOL vmlinux 0x00000000 pci_write_config_word +EXPORT_SYMBOL vmlinux 0x00000000 pci_write_vpd +EXPORT_SYMBOL vmlinux 0x00000000 pcibios_align_resource +EXPORT_SYMBOL vmlinux 0x00000000 pcibios_bus_to_resource +EXPORT_SYMBOL vmlinux 0x00000000 pcibios_resource_to_bus +EXPORT_SYMBOL vmlinux 0x00000000 pcie_aspm_support_enabled +EXPORT_SYMBOL vmlinux 0x00000000 pcie_bandwidth_available +EXPORT_SYMBOL vmlinux 0x00000000 pcie_capability_clear_and_set_dword +EXPORT_SYMBOL vmlinux 0x00000000 pcie_capability_clear_and_set_word +EXPORT_SYMBOL vmlinux 0x00000000 pcie_capability_read_dword +EXPORT_SYMBOL vmlinux 0x00000000 pcie_capability_read_word +EXPORT_SYMBOL vmlinux 0x00000000 pcie_capability_write_dword +EXPORT_SYMBOL vmlinux 0x00000000 pcie_capability_write_word +EXPORT_SYMBOL vmlinux 0x00000000 pcie_get_mps +EXPORT_SYMBOL vmlinux 0x00000000 pcie_get_readrq +EXPORT_SYMBOL vmlinux 0x00000000 pcie_get_speed_cap +EXPORT_SYMBOL vmlinux 0x00000000 pcie_get_width_cap +EXPORT_SYMBOL vmlinux 0x00000000 pcie_port_service_register +EXPORT_SYMBOL vmlinux 0x00000000 pcie_port_service_unregister +EXPORT_SYMBOL vmlinux 0x00000000 pcie_print_link_status +EXPORT_SYMBOL vmlinux 0x00000000 pcie_relaxed_ordering_enabled +EXPORT_SYMBOL vmlinux 0x00000000 pcie_set_mps +EXPORT_SYMBOL vmlinux 0x00000000 pcie_set_readrq +EXPORT_SYMBOL vmlinux 0x00000000 pcim_enable_device +EXPORT_SYMBOL vmlinux 0x00000000 pcim_iomap +EXPORT_SYMBOL vmlinux 0x00000000 pcim_iomap_regions +EXPORT_SYMBOL vmlinux 0x00000000 pcim_iomap_regions_request_all +EXPORT_SYMBOL vmlinux 0x00000000 pcim_iomap_table +EXPORT_SYMBOL vmlinux 0x00000000 pcim_iounmap +EXPORT_SYMBOL vmlinux 0x00000000 pcim_iounmap_regions +EXPORT_SYMBOL vmlinux 0x00000000 pcim_pin_device +EXPORT_SYMBOL vmlinux 0x00000000 pcim_set_mwi +EXPORT_SYMBOL vmlinux 0x00000000 pcix_get_max_mmrbc +EXPORT_SYMBOL vmlinux 0x00000000 pcix_get_mmrbc +EXPORT_SYMBOL vmlinux 0x00000000 pcix_set_mmrbc +EXPORT_SYMBOL vmlinux 0x00000000 peernet2id +EXPORT_SYMBOL vmlinux 0x00000000 percpu_counter_add_batch +EXPORT_SYMBOL vmlinux 0x00000000 percpu_counter_batch +EXPORT_SYMBOL vmlinux 0x00000000 percpu_counter_destroy +EXPORT_SYMBOL vmlinux 0x00000000 percpu_counter_set +EXPORT_SYMBOL vmlinux 0x00000000 pfifo_fast_ops +EXPORT_SYMBOL vmlinux 0x00000000 pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x00000000 phy_advertise_supported +EXPORT_SYMBOL vmlinux 0x00000000 phy_aneg_done +EXPORT_SYMBOL vmlinux 0x00000000 phy_attach +EXPORT_SYMBOL vmlinux 0x00000000 phy_attach_direct +EXPORT_SYMBOL vmlinux 0x00000000 phy_attached_info +EXPORT_SYMBOL vmlinux 0x00000000 phy_attached_info_irq +EXPORT_SYMBOL vmlinux 0x00000000 phy_attached_print +EXPORT_SYMBOL vmlinux 0x00000000 phy_connect +EXPORT_SYMBOL vmlinux 0x00000000 phy_connect_direct +EXPORT_SYMBOL vmlinux 0x00000000 phy_detach +EXPORT_SYMBOL vmlinux 0x00000000 phy_device_create +EXPORT_SYMBOL vmlinux 0x00000000 phy_device_free +EXPORT_SYMBOL vmlinux 0x00000000 phy_device_register +EXPORT_SYMBOL vmlinux 0x00000000 phy_device_remove +EXPORT_SYMBOL vmlinux 0x00000000 phy_disconnect +EXPORT_SYMBOL vmlinux 0x00000000 phy_do_ioctl +EXPORT_SYMBOL vmlinux 0x00000000 phy_do_ioctl_running +EXPORT_SYMBOL vmlinux 0x00000000 phy_driver_register +EXPORT_SYMBOL vmlinux 0x00000000 phy_driver_unregister +EXPORT_SYMBOL vmlinux 0x00000000 phy_drivers_register +EXPORT_SYMBOL vmlinux 0x00000000 phy_drivers_unregister +EXPORT_SYMBOL vmlinux 0x00000000 phy_ethtool_get_eee +EXPORT_SYMBOL vmlinux 0x00000000 phy_ethtool_get_link_ksettings +EXPORT_SYMBOL vmlinux 0x00000000 phy_ethtool_get_wol +EXPORT_SYMBOL vmlinux 0x00000000 phy_ethtool_ksettings_get +EXPORT_SYMBOL vmlinux 0x00000000 phy_ethtool_ksettings_set +EXPORT_SYMBOL vmlinux 0x00000000 phy_ethtool_nway_reset +EXPORT_SYMBOL vmlinux 0x00000000 phy_ethtool_set_eee +EXPORT_SYMBOL vmlinux 0x00000000 phy_ethtool_set_link_ksettings +EXPORT_SYMBOL vmlinux 0x00000000 phy_ethtool_set_wol +EXPORT_SYMBOL vmlinux 0x00000000 phy_find_first +EXPORT_SYMBOL vmlinux 0x00000000 phy_free_interrupt +EXPORT_SYMBOL vmlinux 0x00000000 phy_get_eee_err +EXPORT_SYMBOL vmlinux 0x00000000 phy_init_eee +EXPORT_SYMBOL vmlinux 0x00000000 phy_init_hw +EXPORT_SYMBOL vmlinux 0x00000000 phy_loopback +EXPORT_SYMBOL vmlinux 0x00000000 phy_mac_interrupt +EXPORT_SYMBOL vmlinux 0x00000000 phy_mii_ioctl +EXPORT_SYMBOL vmlinux 0x00000000 phy_modify_paged +EXPORT_SYMBOL vmlinux 0x00000000 phy_modify_paged_changed +EXPORT_SYMBOL vmlinux 0x00000000 phy_print_status +EXPORT_SYMBOL vmlinux 0x00000000 phy_queue_state_machine +EXPORT_SYMBOL vmlinux 0x00000000 phy_read_mmd +EXPORT_SYMBOL vmlinux 0x00000000 phy_read_paged +EXPORT_SYMBOL vmlinux 0x00000000 phy_register_fixup +EXPORT_SYMBOL vmlinux 0x00000000 phy_register_fixup_for_id +EXPORT_SYMBOL vmlinux 0x00000000 phy_register_fixup_for_uid +EXPORT_SYMBOL vmlinux 0x00000000 phy_remove_link_mode +EXPORT_SYMBOL vmlinux 0x00000000 phy_request_interrupt +EXPORT_SYMBOL vmlinux 0x00000000 phy_reset_after_clk_enable +EXPORT_SYMBOL vmlinux 0x00000000 phy_resume +EXPORT_SYMBOL vmlinux 0x00000000 phy_set_asym_pause +EXPORT_SYMBOL vmlinux 0x00000000 phy_set_max_speed +EXPORT_SYMBOL vmlinux 0x00000000 phy_set_sym_pause +EXPORT_SYMBOL vmlinux 0x00000000 phy_sfp_attach +EXPORT_SYMBOL vmlinux 0x00000000 phy_sfp_detach +EXPORT_SYMBOL vmlinux 0x00000000 phy_sfp_probe +EXPORT_SYMBOL vmlinux 0x00000000 phy_start +EXPORT_SYMBOL vmlinux 0x00000000 phy_start_aneg +EXPORT_SYMBOL vmlinux 0x00000000 phy_stop +EXPORT_SYMBOL vmlinux 0x00000000 phy_support_asym_pause +EXPORT_SYMBOL vmlinux 0x00000000 phy_support_sym_pause +EXPORT_SYMBOL vmlinux 0x00000000 phy_suspend +EXPORT_SYMBOL vmlinux 0x00000000 phy_unregister_fixup +EXPORT_SYMBOL vmlinux 0x00000000 phy_unregister_fixup_for_id +EXPORT_SYMBOL vmlinux 0x00000000 phy_unregister_fixup_for_uid +EXPORT_SYMBOL vmlinux 0x00000000 phy_validate_pause +EXPORT_SYMBOL vmlinux 0x00000000 phy_write_mmd +EXPORT_SYMBOL vmlinux 0x00000000 phy_write_paged +EXPORT_SYMBOL vmlinux 0x00000000 phys_base +EXPORT_SYMBOL vmlinux 0x00000000 physical_mask +EXPORT_SYMBOL vmlinux 0x00000000 pid_task +EXPORT_SYMBOL vmlinux 0x00000000 pin_user_pages +EXPORT_SYMBOL vmlinux 0x00000000 pin_user_pages_remote +EXPORT_SYMBOL vmlinux 0x00000000 ping_prot +EXPORT_SYMBOL vmlinux 0x00000000 pipe_lock +EXPORT_SYMBOL vmlinux 0x00000000 pipe_unlock +EXPORT_SYMBOL vmlinux 0x00000000 platform_thermal_notify +EXPORT_SYMBOL vmlinux 0x00000000 pm8606_osc_disable +EXPORT_SYMBOL vmlinux 0x00000000 pm8606_osc_enable +EXPORT_SYMBOL vmlinux 0x00000000 pm860x_bulk_read +EXPORT_SYMBOL vmlinux 0x00000000 pm860x_bulk_write +EXPORT_SYMBOL vmlinux 0x00000000 pm860x_page_bulk_read +EXPORT_SYMBOL vmlinux 0x00000000 pm860x_page_reg_write +EXPORT_SYMBOL vmlinux 0x00000000 pm860x_reg_read +EXPORT_SYMBOL vmlinux 0x00000000 pm860x_reg_write +EXPORT_SYMBOL vmlinux 0x00000000 pm860x_set_bits +EXPORT_SYMBOL vmlinux 0x00000000 pm_power_off +EXPORT_SYMBOL vmlinux 0x00000000 pm_set_vt_switch +EXPORT_SYMBOL vmlinux 0x00000000 pm_suspend +EXPORT_SYMBOL vmlinux 0x00000000 pm_vt_switch_required +EXPORT_SYMBOL vmlinux 0x00000000 pm_vt_switch_unregister +EXPORT_SYMBOL vmlinux 0x00000000 pmem_sector_size +EXPORT_SYMBOL vmlinux 0x00000000 pmem_should_map_pages +EXPORT_SYMBOL vmlinux 0x00000000 pneigh_enqueue +EXPORT_SYMBOL vmlinux 0x00000000 pneigh_lookup +EXPORT_SYMBOL vmlinux 0x00000000 pnp_activate_dev +EXPORT_SYMBOL vmlinux 0x00000000 pnp_device_attach +EXPORT_SYMBOL vmlinux 0x00000000 pnp_device_detach +EXPORT_SYMBOL vmlinux 0x00000000 pnp_disable_dev +EXPORT_SYMBOL vmlinux 0x00000000 pnp_get_resource +EXPORT_SYMBOL vmlinux 0x00000000 pnp_is_active +EXPORT_SYMBOL vmlinux 0x00000000 pnp_platform_devices +EXPORT_SYMBOL vmlinux 0x00000000 pnp_possible_config +EXPORT_SYMBOL vmlinux 0x00000000 pnp_range_reserved +EXPORT_SYMBOL vmlinux 0x00000000 pnp_register_card_driver +EXPORT_SYMBOL vmlinux 0x00000000 pnp_register_driver +EXPORT_SYMBOL vmlinux 0x00000000 pnp_release_card_device +EXPORT_SYMBOL vmlinux 0x00000000 pnp_request_card_device +EXPORT_SYMBOL vmlinux 0x00000000 pnp_start_dev +EXPORT_SYMBOL vmlinux 0x00000000 pnp_stop_dev +EXPORT_SYMBOL vmlinux 0x00000000 pnp_unregister_card_driver +EXPORT_SYMBOL vmlinux 0x00000000 pnp_unregister_driver +EXPORT_SYMBOL vmlinux 0x00000000 pnpacpi_protocol +EXPORT_SYMBOL vmlinux 0x00000000 poll_freewait +EXPORT_SYMBOL vmlinux 0x00000000 poll_initwait +EXPORT_SYMBOL vmlinux 0x00000000 posix_acl_alloc +EXPORT_SYMBOL vmlinux 0x00000000 posix_acl_chmod +EXPORT_SYMBOL vmlinux 0x00000000 posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0x00000000 posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0x00000000 posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0x00000000 posix_acl_init +EXPORT_SYMBOL vmlinux 0x00000000 posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0x00000000 posix_acl_update_mode +EXPORT_SYMBOL vmlinux 0x00000000 posix_acl_valid +EXPORT_SYMBOL vmlinux 0x00000000 posix_lock_file +EXPORT_SYMBOL vmlinux 0x00000000 posix_test_lock +EXPORT_SYMBOL vmlinux 0x00000000 ppp_channel_index +EXPORT_SYMBOL vmlinux 0x00000000 ppp_dev_name +EXPORT_SYMBOL vmlinux 0x00000000 ppp_input +EXPORT_SYMBOL vmlinux 0x00000000 ppp_input_error +EXPORT_SYMBOL vmlinux 0x00000000 ppp_output_wakeup +EXPORT_SYMBOL vmlinux 0x00000000 ppp_register_channel +EXPORT_SYMBOL vmlinux 0x00000000 ppp_register_compressor +EXPORT_SYMBOL vmlinux 0x00000000 ppp_register_net_channel +EXPORT_SYMBOL vmlinux 0x00000000 ppp_unit_number +EXPORT_SYMBOL vmlinux 0x00000000 ppp_unregister_channel +EXPORT_SYMBOL vmlinux 0x00000000 ppp_unregister_compressor +EXPORT_SYMBOL vmlinux 0x00000000 pps_event +EXPORT_SYMBOL vmlinux 0x00000000 pps_lookup_dev +EXPORT_SYMBOL vmlinux 0x00000000 pps_register_source +EXPORT_SYMBOL vmlinux 0x00000000 pps_unregister_source +EXPORT_SYMBOL vmlinux 0x00000000 prandom_bytes +EXPORT_SYMBOL vmlinux 0x00000000 prandom_bytes_state +EXPORT_SYMBOL vmlinux 0x00000000 prandom_seed +EXPORT_SYMBOL vmlinux 0x00000000 prandom_seed_full_state +EXPORT_SYMBOL vmlinux 0x00000000 prandom_u32 +EXPORT_SYMBOL vmlinux 0x00000000 prandom_u32_state +EXPORT_SYMBOL vmlinux 0x00000000 prepare_binprm +EXPORT_SYMBOL vmlinux 0x00000000 prepare_creds +EXPORT_SYMBOL vmlinux 0x00000000 prepare_kernel_cred +EXPORT_SYMBOL vmlinux 0x00000000 prepare_to_swait_event +EXPORT_SYMBOL vmlinux 0x00000000 prepare_to_swait_exclusive +EXPORT_SYMBOL vmlinux 0x00000000 prepare_to_wait +EXPORT_SYMBOL vmlinux 0x00000000 prepare_to_wait_event +EXPORT_SYMBOL vmlinux 0x00000000 prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0x00000000 print_hex_dump +EXPORT_SYMBOL vmlinux 0x00000000 printk +EXPORT_SYMBOL vmlinux 0x00000000 printk_timed_ratelimit +EXPORT_SYMBOL vmlinux 0x00000000 probe_irq_mask +EXPORT_SYMBOL vmlinux 0x00000000 probe_irq_off +EXPORT_SYMBOL vmlinux 0x00000000 probe_irq_on +EXPORT_SYMBOL vmlinux 0x00000000 proc_create +EXPORT_SYMBOL vmlinux 0x00000000 proc_create_data +EXPORT_SYMBOL vmlinux 0x00000000 proc_create_mount_point +EXPORT_SYMBOL vmlinux 0x00000000 proc_create_seq_private +EXPORT_SYMBOL vmlinux 0x00000000 proc_create_single_data +EXPORT_SYMBOL vmlinux 0x00000000 proc_do_large_bitmap +EXPORT_SYMBOL vmlinux 0x00000000 proc_dointvec +EXPORT_SYMBOL vmlinux 0x00000000 proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0x00000000 proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0x00000000 proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x00000000 proc_dointvec_userhz_jiffies +EXPORT_SYMBOL vmlinux 0x00000000 proc_dostring +EXPORT_SYMBOL vmlinux 0x00000000 proc_douintvec +EXPORT_SYMBOL vmlinux 0x00000000 proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0x00000000 proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0x00000000 proc_mkdir +EXPORT_SYMBOL vmlinux 0x00000000 proc_mkdir_mode +EXPORT_SYMBOL vmlinux 0x00000000 proc_remove +EXPORT_SYMBOL vmlinux 0x00000000 proc_set_size +EXPORT_SYMBOL vmlinux 0x00000000 proc_set_user +EXPORT_SYMBOL vmlinux 0x00000000 proc_symlink +EXPORT_SYMBOL vmlinux 0x00000000 processors +EXPORT_SYMBOL vmlinux 0x00000000 profile_pc +EXPORT_SYMBOL vmlinux 0x00000000 proto_register +EXPORT_SYMBOL vmlinux 0x00000000 proto_unregister +EXPORT_SYMBOL vmlinux 0x00000000 ps2_begin_command +EXPORT_SYMBOL vmlinux 0x00000000 ps2_cmd_aborted +EXPORT_SYMBOL vmlinux 0x00000000 ps2_command +EXPORT_SYMBOL vmlinux 0x00000000 ps2_drain +EXPORT_SYMBOL vmlinux 0x00000000 ps2_end_command +EXPORT_SYMBOL vmlinux 0x00000000 ps2_handle_ack +EXPORT_SYMBOL vmlinux 0x00000000 ps2_handle_response +EXPORT_SYMBOL vmlinux 0x00000000 ps2_init +EXPORT_SYMBOL vmlinux 0x00000000 ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x00000000 ps2_sendbyte +EXPORT_SYMBOL vmlinux 0x00000000 ps2_sliced_command +EXPORT_SYMBOL vmlinux 0x00000000 psched_ratecfg_precompute +EXPORT_SYMBOL vmlinux 0x00000000 pskb_expand_head +EXPORT_SYMBOL vmlinux 0x00000000 pskb_extract +EXPORT_SYMBOL vmlinux 0x00000000 pskb_trim_rcsum_slow +EXPORT_SYMBOL vmlinux 0x00000000 ptp_cancel_worker_sync +EXPORT_SYMBOL vmlinux 0x00000000 ptp_clock_event +EXPORT_SYMBOL vmlinux 0x00000000 ptp_clock_index +EXPORT_SYMBOL vmlinux 0x00000000 ptp_clock_register +EXPORT_SYMBOL vmlinux 0x00000000 ptp_clock_unregister +EXPORT_SYMBOL vmlinux 0x00000000 ptp_find_pin +EXPORT_SYMBOL vmlinux 0x00000000 ptp_schedule_worker +EXPORT_SYMBOL vmlinux 0x00000000 put_cmsg +EXPORT_SYMBOL vmlinux 0x00000000 put_cmsg_scm_timestamping +EXPORT_SYMBOL vmlinux 0x00000000 put_cmsg_scm_timestamping64 +EXPORT_SYMBOL vmlinux 0x00000000 put_devmap_managed_page +EXPORT_SYMBOL vmlinux 0x00000000 put_disk +EXPORT_SYMBOL vmlinux 0x00000000 put_disk_and_module +EXPORT_SYMBOL vmlinux 0x00000000 put_fs_context +EXPORT_SYMBOL vmlinux 0x00000000 put_ipc_ns +EXPORT_SYMBOL vmlinux 0x00000000 put_pages_list +EXPORT_SYMBOL vmlinux 0x00000000 put_sg_io_hdr +EXPORT_SYMBOL vmlinux 0x00000000 put_tty_driver +EXPORT_SYMBOL vmlinux 0x00000000 put_unused_fd +EXPORT_SYMBOL vmlinux 0x00000000 put_vaddr_frames +EXPORT_SYMBOL vmlinux 0x00000000 pv_ops +EXPORT_SYMBOL vmlinux 0x00000000 qdf2400_e44_present +EXPORT_SYMBOL vmlinux 0x00000000 qdisc_class_hash_destroy +EXPORT_SYMBOL vmlinux 0x00000000 qdisc_class_hash_grow +EXPORT_SYMBOL vmlinux 0x00000000 qdisc_class_hash_init +EXPORT_SYMBOL vmlinux 0x00000000 qdisc_class_hash_insert +EXPORT_SYMBOL vmlinux 0x00000000 qdisc_class_hash_remove +EXPORT_SYMBOL vmlinux 0x00000000 qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0x00000000 qdisc_get_rtab +EXPORT_SYMBOL vmlinux 0x00000000 qdisc_hash_add +EXPORT_SYMBOL vmlinux 0x00000000 qdisc_hash_del +EXPORT_SYMBOL vmlinux 0x00000000 qdisc_offload_dump_helper +EXPORT_SYMBOL vmlinux 0x00000000 qdisc_offload_graft_helper +EXPORT_SYMBOL vmlinux 0x00000000 qdisc_put +EXPORT_SYMBOL vmlinux 0x00000000 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0x00000000 qdisc_put_stab +EXPORT_SYMBOL vmlinux 0x00000000 qdisc_put_unlocked +EXPORT_SYMBOL vmlinux 0x00000000 qdisc_reset +EXPORT_SYMBOL vmlinux 0x00000000 qdisc_tree_reduce_backlog +EXPORT_SYMBOL vmlinux 0x00000000 qdisc_warn_nonwc +EXPORT_SYMBOL vmlinux 0x00000000 qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0x00000000 qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0x00000000 qdisc_watchdog_init_clockid +EXPORT_SYMBOL vmlinux 0x00000000 qdisc_watchdog_schedule_ns +EXPORT_SYMBOL vmlinux 0x00000000 qid_eq +EXPORT_SYMBOL vmlinux 0x00000000 qid_lt +EXPORT_SYMBOL vmlinux 0x00000000 qid_valid +EXPORT_SYMBOL vmlinux 0x00000000 queue_delayed_work_on +EXPORT_SYMBOL vmlinux 0x00000000 queue_rcu_work +EXPORT_SYMBOL vmlinux 0x00000000 queue_work_on +EXPORT_SYMBOL vmlinux 0x00000000 queued_read_lock_slowpath +EXPORT_SYMBOL vmlinux 0x00000000 queued_write_lock_slowpath +EXPORT_SYMBOL vmlinux 0x00000000 quota_send_warning +EXPORT_SYMBOL vmlinux 0x00000000 radix_tree_delete +EXPORT_SYMBOL vmlinux 0x00000000 radix_tree_delete_item +EXPORT_SYMBOL vmlinux 0x00000000 radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0x00000000 radix_tree_gang_lookup_tag +EXPORT_SYMBOL vmlinux 0x00000000 radix_tree_gang_lookup_tag_slot +EXPORT_SYMBOL vmlinux 0x00000000 radix_tree_insert +EXPORT_SYMBOL vmlinux 0x00000000 radix_tree_iter_delete +EXPORT_SYMBOL vmlinux 0x00000000 radix_tree_iter_resume +EXPORT_SYMBOL vmlinux 0x00000000 radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x00000000 radix_tree_lookup_slot +EXPORT_SYMBOL vmlinux 0x00000000 radix_tree_maybe_preload +EXPORT_SYMBOL vmlinux 0x00000000 radix_tree_next_chunk +EXPORT_SYMBOL vmlinux 0x00000000 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x00000000 radix_tree_replace_slot +EXPORT_SYMBOL vmlinux 0x00000000 radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0x00000000 radix_tree_tag_get +EXPORT_SYMBOL vmlinux 0x00000000 radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0x00000000 radix_tree_tagged +EXPORT_SYMBOL vmlinux 0x00000000 rational_best_approximation +EXPORT_SYMBOL vmlinux 0x00000000 rawv6_mh_filter_register +EXPORT_SYMBOL vmlinux 0x00000000 rawv6_mh_filter_unregister +EXPORT_SYMBOL vmlinux 0x00000000 rb_erase +EXPORT_SYMBOL vmlinux 0x00000000 rb_first +EXPORT_SYMBOL vmlinux 0x00000000 rb_first_postorder +EXPORT_SYMBOL vmlinux 0x00000000 rb_insert_color +EXPORT_SYMBOL vmlinux 0x00000000 rb_last +EXPORT_SYMBOL vmlinux 0x00000000 rb_next +EXPORT_SYMBOL vmlinux 0x00000000 rb_next_postorder +EXPORT_SYMBOL vmlinux 0x00000000 rb_prev +EXPORT_SYMBOL vmlinux 0x00000000 rb_replace_node +EXPORT_SYMBOL vmlinux 0x00000000 rb_replace_node_rcu +EXPORT_SYMBOL vmlinux 0x00000000 rc5t583_ext_power_req_config +EXPORT_SYMBOL vmlinux 0x00000000 rdma_dim +EXPORT_SYMBOL vmlinux 0x00000000 rdmacg_register_device +EXPORT_SYMBOL vmlinux 0x00000000 rdmacg_try_charge +EXPORT_SYMBOL vmlinux 0x00000000 rdmacg_uncharge +EXPORT_SYMBOL vmlinux 0x00000000 rdmacg_unregister_device +EXPORT_SYMBOL vmlinux 0x00000000 rdmsr_on_cpu +EXPORT_SYMBOL vmlinux 0x00000000 rdmsr_on_cpus +EXPORT_SYMBOL vmlinux 0x00000000 rdmsr_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x00000000 rdmsr_safe_regs +EXPORT_SYMBOL vmlinux 0x00000000 rdmsr_safe_regs_on_cpu +EXPORT_SYMBOL vmlinux 0x00000000 rdmsrl_on_cpu +EXPORT_SYMBOL vmlinux 0x00000000 rdmsrl_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x00000000 read_cache_page +EXPORT_SYMBOL vmlinux 0x00000000 read_cache_page_gfp +EXPORT_SYMBOL vmlinux 0x00000000 read_cache_pages +EXPORT_SYMBOL vmlinux 0x00000000 read_code +EXPORT_SYMBOL vmlinux 0x00000000 read_dev_sector +EXPORT_SYMBOL vmlinux 0x00000000 recalc_sigpending +EXPORT_SYMBOL vmlinux 0x00000000 recalibrate_cpu_khz +EXPORT_SYMBOL vmlinux 0x00000000 reciprocal_value +EXPORT_SYMBOL vmlinux 0x00000000 reciprocal_value_adv +EXPORT_SYMBOL vmlinux 0x00000000 redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0x00000000 redraw_screen +EXPORT_SYMBOL vmlinux 0x00000000 refcount_dec_and_lock +EXPORT_SYMBOL vmlinux 0x00000000 refcount_dec_and_lock_irqsave +EXPORT_SYMBOL vmlinux 0x00000000 refcount_dec_and_mutex_lock +EXPORT_SYMBOL vmlinux 0x00000000 refcount_dec_and_rtnl_lock +EXPORT_SYMBOL vmlinux 0x00000000 refcount_dec_if_one +EXPORT_SYMBOL vmlinux 0x00000000 refcount_dec_not_one +EXPORT_SYMBOL vmlinux 0x00000000 refcount_warn_saturate +EXPORT_SYMBOL vmlinux 0x00000000 refresh_frequency_limits +EXPORT_SYMBOL vmlinux 0x00000000 register_acpi_notifier +EXPORT_SYMBOL vmlinux 0x00000000 register_blkdev +EXPORT_SYMBOL vmlinux 0x00000000 register_blocking_lsm_notifier +EXPORT_SYMBOL vmlinux 0x00000000 register_cdrom +EXPORT_SYMBOL vmlinux 0x00000000 register_chrdev_region +EXPORT_SYMBOL vmlinux 0x00000000 register_console +EXPORT_SYMBOL vmlinux 0x00000000 register_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x00000000 register_fib_notifier +EXPORT_SYMBOL vmlinux 0x00000000 register_filesystem +EXPORT_SYMBOL vmlinux 0x00000000 register_framebuffer +EXPORT_SYMBOL vmlinux 0x00000000 register_gifconf +EXPORT_SYMBOL vmlinux 0x00000000 register_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x00000000 register_inet6addr_validator_notifier +EXPORT_SYMBOL vmlinux 0x00000000 register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x00000000 register_inetaddr_validator_notifier +EXPORT_SYMBOL vmlinux 0x00000000 register_key_type +EXPORT_SYMBOL vmlinux 0x00000000 register_kmmio_probe +EXPORT_SYMBOL vmlinux 0x00000000 register_md_cluster_operations +EXPORT_SYMBOL vmlinux 0x00000000 register_md_personality +EXPORT_SYMBOL vmlinux 0x00000000 register_memory_notifier +EXPORT_SYMBOL vmlinux 0x00000000 register_mii_timestamper +EXPORT_SYMBOL vmlinux 0x00000000 register_mii_tstamp_controller +EXPORT_SYMBOL vmlinux 0x00000000 register_module_notifier +EXPORT_SYMBOL vmlinux 0x00000000 register_netdev +EXPORT_SYMBOL vmlinux 0x00000000 register_netdevice +EXPORT_SYMBOL vmlinux 0x00000000 register_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x00000000 register_netdevice_notifier_dev_net +EXPORT_SYMBOL vmlinux 0x00000000 register_netdevice_notifier_net +EXPORT_SYMBOL vmlinux 0x00000000 register_qdisc +EXPORT_SYMBOL vmlinux 0x00000000 register_quota_format +EXPORT_SYMBOL vmlinux 0x00000000 register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x00000000 register_restart_handler +EXPORT_SYMBOL vmlinux 0x00000000 register_shrinker +EXPORT_SYMBOL vmlinux 0x00000000 register_sysctl +EXPORT_SYMBOL vmlinux 0x00000000 register_sysctl_paths +EXPORT_SYMBOL vmlinux 0x00000000 register_sysctl_table +EXPORT_SYMBOL vmlinux 0x00000000 register_sysrq_key +EXPORT_SYMBOL vmlinux 0x00000000 register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x00000000 registered_fb +EXPORT_SYMBOL vmlinux 0x00000000 release_dentry_name_snapshot +EXPORT_SYMBOL vmlinux 0x00000000 release_evntsel_nmi +EXPORT_SYMBOL vmlinux 0x00000000 release_firmware +EXPORT_SYMBOL vmlinux 0x00000000 release_pages +EXPORT_SYMBOL vmlinux 0x00000000 release_perfctr_nmi +EXPORT_SYMBOL vmlinux 0x00000000 release_resource +EXPORT_SYMBOL vmlinux 0x00000000 release_sock +EXPORT_SYMBOL vmlinux 0x00000000 remap_pfn_range +EXPORT_SYMBOL vmlinux 0x00000000 remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0x00000000 remap_vmalloc_range_partial +EXPORT_SYMBOL vmlinux 0x00000000 remove_arg_zero +EXPORT_SYMBOL vmlinux 0x00000000 remove_conflicting_framebuffers +EXPORT_SYMBOL vmlinux 0x00000000 remove_conflicting_pci_framebuffers +EXPORT_SYMBOL vmlinux 0x00000000 remove_proc_entry +EXPORT_SYMBOL vmlinux 0x00000000 remove_proc_subtree +EXPORT_SYMBOL vmlinux 0x00000000 remove_wait_queue +EXPORT_SYMBOL vmlinux 0x00000000 rename_lock +EXPORT_SYMBOL vmlinux 0x00000000 request_dma +EXPORT_SYMBOL vmlinux 0x00000000 request_firmware +EXPORT_SYMBOL vmlinux 0x00000000 request_firmware_into_buf +EXPORT_SYMBOL vmlinux 0x00000000 request_firmware_nowait +EXPORT_SYMBOL vmlinux 0x00000000 request_key_rcu +EXPORT_SYMBOL vmlinux 0x00000000 request_key_tag +EXPORT_SYMBOL vmlinux 0x00000000 request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0x00000000 request_resource +EXPORT_SYMBOL vmlinux 0x00000000 request_threaded_irq +EXPORT_SYMBOL vmlinux 0x00000000 reservation_seqcount_class +EXPORT_SYMBOL vmlinux 0x00000000 reservation_seqcount_string +EXPORT_SYMBOL vmlinux 0x00000000 reservation_ww_class +EXPORT_SYMBOL vmlinux 0x00000000 reserve_evntsel_nmi +EXPORT_SYMBOL vmlinux 0x00000000 reserve_perfctr_nmi +EXPORT_SYMBOL vmlinux 0x00000000 reset_devices +EXPORT_SYMBOL vmlinux 0x00000000 resource_list_create_entry +EXPORT_SYMBOL vmlinux 0x00000000 resource_list_free +EXPORT_SYMBOL vmlinux 0x00000000 reuseport_add_sock +EXPORT_SYMBOL vmlinux 0x00000000 reuseport_alloc +EXPORT_SYMBOL vmlinux 0x00000000 reuseport_attach_prog +EXPORT_SYMBOL vmlinux 0x00000000 reuseport_detach_prog +EXPORT_SYMBOL vmlinux 0x00000000 reuseport_detach_sock +EXPORT_SYMBOL vmlinux 0x00000000 reuseport_select_sock +EXPORT_SYMBOL vmlinux 0x00000000 revalidate_disk +EXPORT_SYMBOL vmlinux 0x00000000 revert_creds +EXPORT_SYMBOL vmlinux 0x00000000 rfkill_alloc +EXPORT_SYMBOL vmlinux 0x00000000 rfkill_blocked +EXPORT_SYMBOL vmlinux 0x00000000 rfkill_destroy +EXPORT_SYMBOL vmlinux 0x00000000 rfkill_find_type +EXPORT_SYMBOL vmlinux 0x00000000 rfkill_get_led_trigger_name +EXPORT_SYMBOL vmlinux 0x00000000 rfkill_init_sw_state +EXPORT_SYMBOL vmlinux 0x00000000 rfkill_pause_polling +EXPORT_SYMBOL vmlinux 0x00000000 rfkill_register +EXPORT_SYMBOL vmlinux 0x00000000 rfkill_resume_polling +EXPORT_SYMBOL vmlinux 0x00000000 rfkill_set_hw_state +EXPORT_SYMBOL vmlinux 0x00000000 rfkill_set_led_trigger_name +EXPORT_SYMBOL vmlinux 0x00000000 rfkill_set_states +EXPORT_SYMBOL vmlinux 0x00000000 rfkill_set_sw_state +EXPORT_SYMBOL vmlinux 0x00000000 rfkill_unregister +EXPORT_SYMBOL vmlinux 0x00000000 rfs_needed +EXPORT_SYMBOL vmlinux 0x00000000 rio_query_mport +EXPORT_SYMBOL vmlinux 0x00000000 rng_is_initialized +EXPORT_SYMBOL vmlinux 0x00000000 rproc_add +EXPORT_SYMBOL vmlinux 0x00000000 rproc_add_carveout +EXPORT_SYMBOL vmlinux 0x00000000 rproc_add_subdev +EXPORT_SYMBOL vmlinux 0x00000000 rproc_alloc +EXPORT_SYMBOL vmlinux 0x00000000 rproc_boot +EXPORT_SYMBOL vmlinux 0x00000000 rproc_coredump_add_custom_segment +EXPORT_SYMBOL vmlinux 0x00000000 rproc_coredump_add_segment +EXPORT_SYMBOL vmlinux 0x00000000 rproc_da_to_va +EXPORT_SYMBOL vmlinux 0x00000000 rproc_del +EXPORT_SYMBOL vmlinux 0x00000000 rproc_elf_find_loaded_rsc_table +EXPORT_SYMBOL vmlinux 0x00000000 rproc_elf_get_boot_addr +EXPORT_SYMBOL vmlinux 0x00000000 rproc_elf_load_rsc_table +EXPORT_SYMBOL vmlinux 0x00000000 rproc_elf_load_segments +EXPORT_SYMBOL vmlinux 0x00000000 rproc_elf_sanity_check +EXPORT_SYMBOL vmlinux 0x00000000 rproc_free +EXPORT_SYMBOL vmlinux 0x00000000 rproc_get_by_child +EXPORT_SYMBOL vmlinux 0x00000000 rproc_get_by_phandle +EXPORT_SYMBOL vmlinux 0x00000000 rproc_mem_entry_init +EXPORT_SYMBOL vmlinux 0x00000000 rproc_of_resm_mem_entry_init +EXPORT_SYMBOL vmlinux 0x00000000 rproc_put +EXPORT_SYMBOL vmlinux 0x00000000 rproc_remove_subdev +EXPORT_SYMBOL vmlinux 0x00000000 rproc_report_crash +EXPORT_SYMBOL vmlinux 0x00000000 rproc_shutdown +EXPORT_SYMBOL vmlinux 0x00000000 rproc_va_to_pa +EXPORT_SYMBOL vmlinux 0x00000000 rproc_vq_interrupt +EXPORT_SYMBOL vmlinux 0x00000000 rps_cpu_mask +EXPORT_SYMBOL vmlinux 0x00000000 rps_may_expire_flow +EXPORT_SYMBOL vmlinux 0x00000000 rps_needed +EXPORT_SYMBOL vmlinux 0x00000000 rps_sock_flow_table +EXPORT_SYMBOL vmlinux 0x00000000 rt6_lookup +EXPORT_SYMBOL vmlinux 0x00000000 rt_dst_alloc +EXPORT_SYMBOL vmlinux 0x00000000 rt_dst_clone +EXPORT_SYMBOL vmlinux 0x00000000 rtc_add_group +EXPORT_SYMBOL vmlinux 0x00000000 rtc_add_groups +EXPORT_SYMBOL vmlinux 0x00000000 rtc_cmos_read +EXPORT_SYMBOL vmlinux 0x00000000 rtc_cmos_write +EXPORT_SYMBOL vmlinux 0x00000000 rtc_lock +EXPORT_SYMBOL vmlinux 0x00000000 rtc_month_days +EXPORT_SYMBOL vmlinux 0x00000000 rtc_time64_to_tm +EXPORT_SYMBOL vmlinux 0x00000000 rtc_tm_to_time64 +EXPORT_SYMBOL vmlinux 0x00000000 rtc_valid_tm +EXPORT_SYMBOL vmlinux 0x00000000 rtc_year_days +EXPORT_SYMBOL vmlinux 0x00000000 rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0x00000000 rtnl_configure_link +EXPORT_SYMBOL vmlinux 0x00000000 rtnl_create_link +EXPORT_SYMBOL vmlinux 0x00000000 rtnl_is_locked +EXPORT_SYMBOL vmlinux 0x00000000 rtnl_kfree_skbs +EXPORT_SYMBOL vmlinux 0x00000000 rtnl_link_get_net +EXPORT_SYMBOL vmlinux 0x00000000 rtnl_lock +EXPORT_SYMBOL vmlinux 0x00000000 rtnl_lock_killable +EXPORT_SYMBOL vmlinux 0x00000000 rtnl_nla_parse_ifla +EXPORT_SYMBOL vmlinux 0x00000000 rtnl_notify +EXPORT_SYMBOL vmlinux 0x00000000 rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0x00000000 rtnl_trylock +EXPORT_SYMBOL vmlinux 0x00000000 rtnl_unicast +EXPORT_SYMBOL vmlinux 0x00000000 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x00000000 sb_min_blocksize +EXPORT_SYMBOL vmlinux 0x00000000 sb_set_blocksize +EXPORT_SYMBOL vmlinux 0x00000000 scaled_ppm_to_ppb +EXPORT_SYMBOL vmlinux 0x00000000 sched_autogroup_create_attach +EXPORT_SYMBOL vmlinux 0x00000000 sched_autogroup_detach +EXPORT_SYMBOL vmlinux 0x00000000 schedule +EXPORT_SYMBOL vmlinux 0x00000000 schedule_timeout +EXPORT_SYMBOL vmlinux 0x00000000 schedule_timeout_idle +EXPORT_SYMBOL vmlinux 0x00000000 schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x00000000 schedule_timeout_killable +EXPORT_SYMBOL vmlinux 0x00000000 schedule_timeout_uninterruptible +EXPORT_SYMBOL vmlinux 0x00000000 scm_detach_fds +EXPORT_SYMBOL vmlinux 0x00000000 scm_fp_dup +EXPORT_SYMBOL vmlinux 0x00000000 scmd_printk +EXPORT_SYMBOL vmlinux 0x00000000 scnprintf +EXPORT_SYMBOL vmlinux 0x00000000 screen_info +EXPORT_SYMBOL vmlinux 0x00000000 scsi_add_device +EXPORT_SYMBOL vmlinux 0x00000000 scsi_add_host_with_dma +EXPORT_SYMBOL vmlinux 0x00000000 scsi_bios_ptable +EXPORT_SYMBOL vmlinux 0x00000000 scsi_block_requests +EXPORT_SYMBOL vmlinux 0x00000000 scsi_block_when_processing_errors +EXPORT_SYMBOL vmlinux 0x00000000 scsi_build_sense_buffer +EXPORT_SYMBOL vmlinux 0x00000000 scsi_change_queue_depth +EXPORT_SYMBOL vmlinux 0x00000000 scsi_cmd_blk_ioctl +EXPORT_SYMBOL vmlinux 0x00000000 scsi_cmd_ioctl +EXPORT_SYMBOL vmlinux 0x00000000 scsi_command_normalize_sense +EXPORT_SYMBOL vmlinux 0x00000000 scsi_command_size_tbl +EXPORT_SYMBOL vmlinux 0x00000000 scsi_compat_ioctl +EXPORT_SYMBOL vmlinux 0x00000000 scsi_dev_info_add_list +EXPORT_SYMBOL vmlinux 0x00000000 scsi_dev_info_list_add_keyed +EXPORT_SYMBOL vmlinux 0x00000000 scsi_dev_info_list_del_keyed +EXPORT_SYMBOL vmlinux 0x00000000 scsi_dev_info_remove_list +EXPORT_SYMBOL vmlinux 0x00000000 scsi_device_get +EXPORT_SYMBOL vmlinux 0x00000000 scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x00000000 scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x00000000 scsi_device_put +EXPORT_SYMBOL vmlinux 0x00000000 scsi_device_quiesce +EXPORT_SYMBOL vmlinux 0x00000000 scsi_device_resume +EXPORT_SYMBOL vmlinux 0x00000000 scsi_device_set_state +EXPORT_SYMBOL vmlinux 0x00000000 scsi_device_type +EXPORT_SYMBOL vmlinux 0x00000000 scsi_dma_map +EXPORT_SYMBOL vmlinux 0x00000000 scsi_dma_unmap +EXPORT_SYMBOL vmlinux 0x00000000 scsi_driverbyte_string +EXPORT_SYMBOL vmlinux 0x00000000 scsi_eh_finish_cmd +EXPORT_SYMBOL vmlinux 0x00000000 scsi_eh_flush_done_q +EXPORT_SYMBOL vmlinux 0x00000000 scsi_eh_prep_cmnd +EXPORT_SYMBOL vmlinux 0x00000000 scsi_eh_restore_cmnd +EXPORT_SYMBOL vmlinux 0x00000000 scsi_extd_sense_format +EXPORT_SYMBOL vmlinux 0x00000000 scsi_free_host_dev +EXPORT_SYMBOL vmlinux 0x00000000 scsi_get_device_flags_keyed +EXPORT_SYMBOL vmlinux 0x00000000 scsi_get_host_dev +EXPORT_SYMBOL vmlinux 0x00000000 scsi_get_sense_info_fld +EXPORT_SYMBOL vmlinux 0x00000000 scsi_host_alloc +EXPORT_SYMBOL vmlinux 0x00000000 scsi_host_busy +EXPORT_SYMBOL vmlinux 0x00000000 scsi_host_get +EXPORT_SYMBOL vmlinux 0x00000000 scsi_host_lookup +EXPORT_SYMBOL vmlinux 0x00000000 scsi_host_put +EXPORT_SYMBOL vmlinux 0x00000000 scsi_hostbyte_string +EXPORT_SYMBOL vmlinux 0x00000000 scsi_init_io +EXPORT_SYMBOL vmlinux 0x00000000 scsi_ioctl +EXPORT_SYMBOL vmlinux 0x00000000 scsi_is_host_device +EXPORT_SYMBOL vmlinux 0x00000000 scsi_is_sdev_device +EXPORT_SYMBOL vmlinux 0x00000000 scsi_is_target_device +EXPORT_SYMBOL vmlinux 0x00000000 scsi_kmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x00000000 scsi_kunmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x00000000 scsi_logging_level +EXPORT_SYMBOL vmlinux 0x00000000 scsi_mlreturn_string +EXPORT_SYMBOL vmlinux 0x00000000 scsi_mode_sense +EXPORT_SYMBOL vmlinux 0x00000000 scsi_normalize_sense +EXPORT_SYMBOL vmlinux 0x00000000 scsi_partsize +EXPORT_SYMBOL vmlinux 0x00000000 scsi_print_command +EXPORT_SYMBOL vmlinux 0x00000000 scsi_print_result +EXPORT_SYMBOL vmlinux 0x00000000 scsi_print_sense +EXPORT_SYMBOL vmlinux 0x00000000 scsi_print_sense_hdr +EXPORT_SYMBOL vmlinux 0x00000000 scsi_register_driver +EXPORT_SYMBOL vmlinux 0x00000000 scsi_register_interface +EXPORT_SYMBOL vmlinux 0x00000000 scsi_remove_device +EXPORT_SYMBOL vmlinux 0x00000000 scsi_remove_host +EXPORT_SYMBOL vmlinux 0x00000000 scsi_remove_target +EXPORT_SYMBOL vmlinux 0x00000000 scsi_report_bus_reset +EXPORT_SYMBOL vmlinux 0x00000000 scsi_report_device_reset +EXPORT_SYMBOL vmlinux 0x00000000 scsi_report_opcode +EXPORT_SYMBOL vmlinux 0x00000000 scsi_req_init +EXPORT_SYMBOL vmlinux 0x00000000 scsi_rescan_device +EXPORT_SYMBOL vmlinux 0x00000000 scsi_sanitize_inquiry_string +EXPORT_SYMBOL vmlinux 0x00000000 scsi_scan_host +EXPORT_SYMBOL vmlinux 0x00000000 scsi_scan_target +EXPORT_SYMBOL vmlinux 0x00000000 scsi_sd_pm_domain +EXPORT_SYMBOL vmlinux 0x00000000 scsi_sense_desc_find +EXPORT_SYMBOL vmlinux 0x00000000 scsi_sense_key_string +EXPORT_SYMBOL vmlinux 0x00000000 scsi_set_medium_removal +EXPORT_SYMBOL vmlinux 0x00000000 scsi_set_sense_field_pointer +EXPORT_SYMBOL vmlinux 0x00000000 scsi_set_sense_information +EXPORT_SYMBOL vmlinux 0x00000000 scsi_target_quiesce +EXPORT_SYMBOL vmlinux 0x00000000 scsi_target_resume +EXPORT_SYMBOL vmlinux 0x00000000 scsi_test_unit_ready +EXPORT_SYMBOL vmlinux 0x00000000 scsi_track_queue_full +EXPORT_SYMBOL vmlinux 0x00000000 scsi_unblock_requests +EXPORT_SYMBOL vmlinux 0x00000000 scsi_verify_blk_ioctl +EXPORT_SYMBOL vmlinux 0x00000000 scsi_vpd_lun_id +EXPORT_SYMBOL vmlinux 0x00000000 scsi_vpd_tpg_id +EXPORT_SYMBOL vmlinux 0x00000000 scsicam_bios_param +EXPORT_SYMBOL vmlinux 0x00000000 scsilun_to_int +EXPORT_SYMBOL vmlinux 0x00000000 sdev_disable_disk_events +EXPORT_SYMBOL vmlinux 0x00000000 sdev_enable_disk_events +EXPORT_SYMBOL vmlinux 0x00000000 sdev_prefix_printk +EXPORT_SYMBOL vmlinux 0x00000000 search_binary_handler +EXPORT_SYMBOL vmlinux 0x00000000 secpath_set +EXPORT_SYMBOL vmlinux 0x00000000 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0x00000000 secure_dccpv6_sequence_number +EXPORT_SYMBOL vmlinux 0x00000000 secure_ipv6_port_ephemeral +EXPORT_SYMBOL vmlinux 0x00000000 secure_tcpv6_seq +EXPORT_SYMBOL vmlinux 0x00000000 secure_tcpv6_ts_off +EXPORT_SYMBOL vmlinux 0x00000000 security_add_mnt_opt +EXPORT_SYMBOL vmlinux 0x00000000 security_binder_set_context_mgr +EXPORT_SYMBOL vmlinux 0x00000000 security_binder_transaction +EXPORT_SYMBOL vmlinux 0x00000000 security_binder_transfer_binder +EXPORT_SYMBOL vmlinux 0x00000000 security_binder_transfer_file +EXPORT_SYMBOL vmlinux 0x00000000 security_cred_getsecid +EXPORT_SYMBOL vmlinux 0x00000000 security_d_instantiate +EXPORT_SYMBOL vmlinux 0x00000000 security_dentry_create_files_as +EXPORT_SYMBOL vmlinux 0x00000000 security_dentry_init_security +EXPORT_SYMBOL vmlinux 0x00000000 security_free_mnt_opts +EXPORT_SYMBOL vmlinux 0x00000000 security_ib_alloc_security +EXPORT_SYMBOL vmlinux 0x00000000 security_ib_endport_manage_subnet +EXPORT_SYMBOL vmlinux 0x00000000 security_ib_free_security +EXPORT_SYMBOL vmlinux 0x00000000 security_ib_pkey_access +EXPORT_SYMBOL vmlinux 0x00000000 security_inet_conn_established +EXPORT_SYMBOL vmlinux 0x00000000 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0x00000000 security_inode_copy_up +EXPORT_SYMBOL vmlinux 0x00000000 security_inode_copy_up_xattr +EXPORT_SYMBOL vmlinux 0x00000000 security_inode_getsecctx +EXPORT_SYMBOL vmlinux 0x00000000 security_inode_init_security +EXPORT_SYMBOL vmlinux 0x00000000 security_inode_invalidate_secctx +EXPORT_SYMBOL vmlinux 0x00000000 security_inode_listsecurity +EXPORT_SYMBOL vmlinux 0x00000000 security_inode_notifysecctx +EXPORT_SYMBOL vmlinux 0x00000000 security_inode_setsecctx +EXPORT_SYMBOL vmlinux 0x00000000 security_ismaclabel +EXPORT_SYMBOL vmlinux 0x00000000 security_lock_kernel_down +EXPORT_SYMBOL vmlinux 0x00000000 security_locked_down +EXPORT_SYMBOL vmlinux 0x00000000 security_old_inode_init_security +EXPORT_SYMBOL vmlinux 0x00000000 security_path_mkdir +EXPORT_SYMBOL vmlinux 0x00000000 security_path_mknod +EXPORT_SYMBOL vmlinux 0x00000000 security_path_rename +EXPORT_SYMBOL vmlinux 0x00000000 security_path_unlink +EXPORT_SYMBOL vmlinux 0x00000000 security_release_secctx +EXPORT_SYMBOL vmlinux 0x00000000 security_req_classify_flow +EXPORT_SYMBOL vmlinux 0x00000000 security_sb_clone_mnt_opts +EXPORT_SYMBOL vmlinux 0x00000000 security_sb_eat_lsm_opts +EXPORT_SYMBOL vmlinux 0x00000000 security_sb_remount +EXPORT_SYMBOL vmlinux 0x00000000 security_sb_set_mnt_opts +EXPORT_SYMBOL vmlinux 0x00000000 security_sctp_assoc_request +EXPORT_SYMBOL vmlinux 0x00000000 security_sctp_bind_connect +EXPORT_SYMBOL vmlinux 0x00000000 security_sctp_sk_clone +EXPORT_SYMBOL vmlinux 0x00000000 security_secctx_to_secid +EXPORT_SYMBOL vmlinux 0x00000000 security_secid_to_secctx +EXPORT_SYMBOL vmlinux 0x00000000 security_secmark_refcount_dec +EXPORT_SYMBOL vmlinux 0x00000000 security_secmark_refcount_inc +EXPORT_SYMBOL vmlinux 0x00000000 security_secmark_relabel_packet +EXPORT_SYMBOL vmlinux 0x00000000 security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0x00000000 security_sk_clone +EXPORT_SYMBOL vmlinux 0x00000000 security_skb_classify_flow +EXPORT_SYMBOL vmlinux 0x00000000 security_sock_graft +EXPORT_SYMBOL vmlinux 0x00000000 security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x00000000 security_socket_getpeersec_dgram +EXPORT_SYMBOL vmlinux 0x00000000 security_socket_socketpair +EXPORT_SYMBOL vmlinux 0x00000000 security_task_getsecid +EXPORT_SYMBOL vmlinux 0x00000000 security_tun_dev_alloc_security +EXPORT_SYMBOL vmlinux 0x00000000 security_tun_dev_attach +EXPORT_SYMBOL vmlinux 0x00000000 security_tun_dev_attach_queue +EXPORT_SYMBOL vmlinux 0x00000000 security_tun_dev_create +EXPORT_SYMBOL vmlinux 0x00000000 security_tun_dev_free_security +EXPORT_SYMBOL vmlinux 0x00000000 security_tun_dev_open +EXPORT_SYMBOL vmlinux 0x00000000 security_unix_may_send +EXPORT_SYMBOL vmlinux 0x00000000 security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0x00000000 security_xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0x00000000 security_xfrm_policy_free +EXPORT_SYMBOL vmlinux 0x00000000 security_xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0x00000000 security_xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x00000000 seg6_hmac_compute +EXPORT_SYMBOL vmlinux 0x00000000 seg6_hmac_exit +EXPORT_SYMBOL vmlinux 0x00000000 seg6_hmac_info_add +EXPORT_SYMBOL vmlinux 0x00000000 seg6_hmac_info_del +EXPORT_SYMBOL vmlinux 0x00000000 seg6_hmac_info_lookup +EXPORT_SYMBOL vmlinux 0x00000000 seg6_hmac_init +EXPORT_SYMBOL vmlinux 0x00000000 seg6_hmac_net_exit +EXPORT_SYMBOL vmlinux 0x00000000 seg6_hmac_net_init +EXPORT_SYMBOL vmlinux 0x00000000 seg6_hmac_validate_skb +EXPORT_SYMBOL vmlinux 0x00000000 seg6_push_hmac +EXPORT_SYMBOL vmlinux 0x00000000 send_sig +EXPORT_SYMBOL vmlinux 0x00000000 send_sig_info +EXPORT_SYMBOL vmlinux 0x00000000 send_sig_mceerr +EXPORT_SYMBOL vmlinux 0x00000000 seq_dentry +EXPORT_SYMBOL vmlinux 0x00000000 seq_escape +EXPORT_SYMBOL vmlinux 0x00000000 seq_escape_mem_ascii +EXPORT_SYMBOL vmlinux 0x00000000 seq_file_path +EXPORT_SYMBOL vmlinux 0x00000000 seq_hex_dump +EXPORT_SYMBOL vmlinux 0x00000000 seq_hlist_next +EXPORT_SYMBOL vmlinux 0x00000000 seq_hlist_next_percpu +EXPORT_SYMBOL vmlinux 0x00000000 seq_hlist_next_rcu +EXPORT_SYMBOL vmlinux 0x00000000 seq_hlist_start +EXPORT_SYMBOL vmlinux 0x00000000 seq_hlist_start_head +EXPORT_SYMBOL vmlinux 0x00000000 seq_hlist_start_head_rcu +EXPORT_SYMBOL vmlinux 0x00000000 seq_hlist_start_percpu +EXPORT_SYMBOL vmlinux 0x00000000 seq_hlist_start_rcu +EXPORT_SYMBOL vmlinux 0x00000000 seq_list_next +EXPORT_SYMBOL vmlinux 0x00000000 seq_list_start +EXPORT_SYMBOL vmlinux 0x00000000 seq_list_start_head +EXPORT_SYMBOL vmlinux 0x00000000 seq_lseek +EXPORT_SYMBOL vmlinux 0x00000000 seq_open +EXPORT_SYMBOL vmlinux 0x00000000 seq_open_private +EXPORT_SYMBOL vmlinux 0x00000000 seq_pad +EXPORT_SYMBOL vmlinux 0x00000000 seq_path +EXPORT_SYMBOL vmlinux 0x00000000 seq_printf +EXPORT_SYMBOL vmlinux 0x00000000 seq_put_decimal_ll +EXPORT_SYMBOL vmlinux 0x00000000 seq_put_decimal_ull +EXPORT_SYMBOL vmlinux 0x00000000 seq_putc +EXPORT_SYMBOL vmlinux 0x00000000 seq_puts +EXPORT_SYMBOL vmlinux 0x00000000 seq_read +EXPORT_SYMBOL vmlinux 0x00000000 seq_release +EXPORT_SYMBOL vmlinux 0x00000000 seq_release_private +EXPORT_SYMBOL vmlinux 0x00000000 seq_vprintf +EXPORT_SYMBOL vmlinux 0x00000000 seq_write +EXPORT_SYMBOL vmlinux 0x00000000 seqno_fence_ops +EXPORT_SYMBOL vmlinux 0x00000000 serial8250_do_pm +EXPORT_SYMBOL vmlinux 0x00000000 serial8250_do_set_termios +EXPORT_SYMBOL vmlinux 0x00000000 serial8250_register_8250_port +EXPORT_SYMBOL vmlinux 0x00000000 serial8250_resume_port +EXPORT_SYMBOL vmlinux 0x00000000 serial8250_set_isa_configurator +EXPORT_SYMBOL vmlinux 0x00000000 serial8250_suspend_port +EXPORT_SYMBOL vmlinux 0x00000000 serial8250_unregister_port +EXPORT_SYMBOL vmlinux 0x00000000 serio_bus +EXPORT_SYMBOL vmlinux 0x00000000 serio_close +EXPORT_SYMBOL vmlinux 0x00000000 serio_interrupt +EXPORT_SYMBOL vmlinux 0x00000000 serio_open +EXPORT_SYMBOL vmlinux 0x00000000 serio_reconnect +EXPORT_SYMBOL vmlinux 0x00000000 serio_rescan +EXPORT_SYMBOL vmlinux 0x00000000 serio_unregister_child_port +EXPORT_SYMBOL vmlinux 0x00000000 serio_unregister_driver +EXPORT_SYMBOL vmlinux 0x00000000 serio_unregister_port +EXPORT_SYMBOL vmlinux 0x00000000 set_anon_super +EXPORT_SYMBOL vmlinux 0x00000000 set_anon_super_fc +EXPORT_SYMBOL vmlinux 0x00000000 set_bh_page +EXPORT_SYMBOL vmlinux 0x00000000 set_binfmt +EXPORT_SYMBOL vmlinux 0x00000000 set_blocksize +EXPORT_SYMBOL vmlinux 0x00000000 set_cached_acl +EXPORT_SYMBOL vmlinux 0x00000000 set_create_files_as +EXPORT_SYMBOL vmlinux 0x00000000 set_current_groups +EXPORT_SYMBOL vmlinux 0x00000000 set_device_ro +EXPORT_SYMBOL vmlinux 0x00000000 set_disk_ro +EXPORT_SYMBOL vmlinux 0x00000000 set_freezable +EXPORT_SYMBOL vmlinux 0x00000000 set_groups +EXPORT_SYMBOL vmlinux 0x00000000 set_memory_uc +EXPORT_SYMBOL vmlinux 0x00000000 set_memory_wb +EXPORT_SYMBOL vmlinux 0x00000000 set_memory_wc +EXPORT_SYMBOL vmlinux 0x00000000 set_nlink +EXPORT_SYMBOL vmlinux 0x00000000 set_normalized_timespec64 +EXPORT_SYMBOL vmlinux 0x00000000 set_page_dirty +EXPORT_SYMBOL vmlinux 0x00000000 set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0x00000000 set_pages_array_uc +EXPORT_SYMBOL vmlinux 0x00000000 set_pages_array_wb +EXPORT_SYMBOL vmlinux 0x00000000 set_pages_array_wc +EXPORT_SYMBOL vmlinux 0x00000000 set_pages_uc +EXPORT_SYMBOL vmlinux 0x00000000 set_pages_wb +EXPORT_SYMBOL vmlinux 0x00000000 set_posix_acl +EXPORT_SYMBOL vmlinux 0x00000000 set_security_override +EXPORT_SYMBOL vmlinux 0x00000000 set_security_override_from_ctx +EXPORT_SYMBOL vmlinux 0x00000000 set_trace_device +EXPORT_SYMBOL vmlinux 0x00000000 set_user_nice +EXPORT_SYMBOL vmlinux 0x00000000 set_wb_congested +EXPORT_SYMBOL vmlinux 0x00000000 setattr_copy +EXPORT_SYMBOL vmlinux 0x00000000 setattr_prepare +EXPORT_SYMBOL vmlinux 0x00000000 setup_arg_pages +EXPORT_SYMBOL vmlinux 0x00000000 setup_max_cpus +EXPORT_SYMBOL vmlinux 0x00000000 setup_new_exec +EXPORT_SYMBOL vmlinux 0x00000000 sfi_disabled +EXPORT_SYMBOL vmlinux 0x00000000 sg_alloc_table +EXPORT_SYMBOL vmlinux 0x00000000 sg_alloc_table_from_pages +EXPORT_SYMBOL vmlinux 0x00000000 sg_copy_buffer +EXPORT_SYMBOL vmlinux 0x00000000 sg_copy_from_buffer +EXPORT_SYMBOL vmlinux 0x00000000 sg_copy_to_buffer +EXPORT_SYMBOL vmlinux 0x00000000 sg_free_table +EXPORT_SYMBOL vmlinux 0x00000000 sg_init_one +EXPORT_SYMBOL vmlinux 0x00000000 sg_init_table +EXPORT_SYMBOL vmlinux 0x00000000 sg_last +EXPORT_SYMBOL vmlinux 0x00000000 sg_miter_next +EXPORT_SYMBOL vmlinux 0x00000000 sg_miter_skip +EXPORT_SYMBOL vmlinux 0x00000000 sg_miter_start +EXPORT_SYMBOL vmlinux 0x00000000 sg_miter_stop +EXPORT_SYMBOL vmlinux 0x00000000 sg_nents +EXPORT_SYMBOL vmlinux 0x00000000 sg_nents_for_len +EXPORT_SYMBOL vmlinux 0x00000000 sg_next +EXPORT_SYMBOL vmlinux 0x00000000 sg_pcopy_from_buffer +EXPORT_SYMBOL vmlinux 0x00000000 sg_pcopy_to_buffer +EXPORT_SYMBOL vmlinux 0x00000000 sg_zero_buffer +EXPORT_SYMBOL vmlinux 0x00000000 sget +EXPORT_SYMBOL vmlinux 0x00000000 sget_fc +EXPORT_SYMBOL vmlinux 0x00000000 sgl_alloc +EXPORT_SYMBOL vmlinux 0x00000000 sgl_alloc_order +EXPORT_SYMBOL vmlinux 0x00000000 sgl_free +EXPORT_SYMBOL vmlinux 0x00000000 sgl_free_n_order +EXPORT_SYMBOL vmlinux 0x00000000 sgl_free_order +EXPORT_SYMBOL vmlinux 0x00000000 sha224_final +EXPORT_SYMBOL vmlinux 0x00000000 sha224_update +EXPORT_SYMBOL vmlinux 0x00000000 sha256_final +EXPORT_SYMBOL vmlinux 0x00000000 sha256_update +EXPORT_SYMBOL vmlinux 0x00000000 sha_init +EXPORT_SYMBOL vmlinux 0x00000000 sha_transform +EXPORT_SYMBOL vmlinux 0x00000000 should_remove_suid +EXPORT_SYMBOL vmlinux 0x00000000 show_init_ipc_ns +EXPORT_SYMBOL vmlinux 0x00000000 shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0x00000000 shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0x00000000 si_meminfo +EXPORT_SYMBOL vmlinux 0x00000000 sigprocmask +EXPORT_SYMBOL vmlinux 0x00000000 simple_dentry_operations +EXPORT_SYMBOL vmlinux 0x00000000 simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0x00000000 simple_dir_operations +EXPORT_SYMBOL vmlinux 0x00000000 simple_empty +EXPORT_SYMBOL vmlinux 0x00000000 simple_fill_super +EXPORT_SYMBOL vmlinux 0x00000000 simple_get_link +EXPORT_SYMBOL vmlinux 0x00000000 simple_getattr +EXPORT_SYMBOL vmlinux 0x00000000 simple_link +EXPORT_SYMBOL vmlinux 0x00000000 simple_lookup +EXPORT_SYMBOL vmlinux 0x00000000 simple_nosetlease +EXPORT_SYMBOL vmlinux 0x00000000 simple_open +EXPORT_SYMBOL vmlinux 0x00000000 simple_pin_fs +EXPORT_SYMBOL vmlinux 0x00000000 simple_read_from_buffer +EXPORT_SYMBOL vmlinux 0x00000000 simple_readpage +EXPORT_SYMBOL vmlinux 0x00000000 simple_recursive_removal +EXPORT_SYMBOL vmlinux 0x00000000 simple_release_fs +EXPORT_SYMBOL vmlinux 0x00000000 simple_rename +EXPORT_SYMBOL vmlinux 0x00000000 simple_rmdir +EXPORT_SYMBOL vmlinux 0x00000000 simple_setattr +EXPORT_SYMBOL vmlinux 0x00000000 simple_statfs +EXPORT_SYMBOL vmlinux 0x00000000 simple_strtol +EXPORT_SYMBOL vmlinux 0x00000000 simple_strtoll +EXPORT_SYMBOL vmlinux 0x00000000 simple_strtoul +EXPORT_SYMBOL vmlinux 0x00000000 simple_strtoull +EXPORT_SYMBOL vmlinux 0x00000000 simple_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0x00000000 simple_transaction_get +EXPORT_SYMBOL vmlinux 0x00000000 simple_transaction_read +EXPORT_SYMBOL vmlinux 0x00000000 simple_transaction_release +EXPORT_SYMBOL vmlinux 0x00000000 simple_transaction_set +EXPORT_SYMBOL vmlinux 0x00000000 simple_unlink +EXPORT_SYMBOL vmlinux 0x00000000 simple_write_begin +EXPORT_SYMBOL vmlinux 0x00000000 simple_write_end +EXPORT_SYMBOL vmlinux 0x00000000 simple_write_to_buffer +EXPORT_SYMBOL vmlinux 0x00000000 single_open +EXPORT_SYMBOL vmlinux 0x00000000 single_open_size +EXPORT_SYMBOL vmlinux 0x00000000 single_release +EXPORT_SYMBOL vmlinux 0x00000000 single_task_running +EXPORT_SYMBOL vmlinux 0x00000000 siphash_1u32 +EXPORT_SYMBOL vmlinux 0x00000000 siphash_1u64 +EXPORT_SYMBOL vmlinux 0x00000000 siphash_2u64 +EXPORT_SYMBOL vmlinux 0x00000000 siphash_3u32 +EXPORT_SYMBOL vmlinux 0x00000000 siphash_3u64 +EXPORT_SYMBOL vmlinux 0x00000000 siphash_4u64 +EXPORT_SYMBOL vmlinux 0x00000000 sk_alloc +EXPORT_SYMBOL vmlinux 0x00000000 sk_busy_loop_end +EXPORT_SYMBOL vmlinux 0x00000000 sk_capable +EXPORT_SYMBOL vmlinux 0x00000000 sk_common_release +EXPORT_SYMBOL vmlinux 0x00000000 sk_dst_check +EXPORT_SYMBOL vmlinux 0x00000000 sk_filter_trim_cap +EXPORT_SYMBOL vmlinux 0x00000000 sk_free +EXPORT_SYMBOL vmlinux 0x00000000 sk_mc_loop +EXPORT_SYMBOL vmlinux 0x00000000 sk_net_capable +EXPORT_SYMBOL vmlinux 0x00000000 sk_ns_capable +EXPORT_SYMBOL vmlinux 0x00000000 sk_page_frag_refill +EXPORT_SYMBOL vmlinux 0x00000000 sk_reset_timer +EXPORT_SYMBOL vmlinux 0x00000000 sk_send_sigurg +EXPORT_SYMBOL vmlinux 0x00000000 sk_stop_timer +EXPORT_SYMBOL vmlinux 0x00000000 sk_stream_error +EXPORT_SYMBOL vmlinux 0x00000000 sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0x00000000 sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0x00000000 sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0x00000000 sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0x00000000 sk_wait_data +EXPORT_SYMBOL vmlinux 0x00000000 skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0x00000000 skb_add_rx_frag +EXPORT_SYMBOL vmlinux 0x00000000 skb_append +EXPORT_SYMBOL vmlinux 0x00000000 skb_checksum +EXPORT_SYMBOL vmlinux 0x00000000 skb_checksum_help +EXPORT_SYMBOL vmlinux 0x00000000 skb_checksum_setup +EXPORT_SYMBOL vmlinux 0x00000000 skb_checksum_trimmed +EXPORT_SYMBOL vmlinux 0x00000000 skb_clone +EXPORT_SYMBOL vmlinux 0x00000000 skb_clone_sk +EXPORT_SYMBOL vmlinux 0x00000000 skb_coalesce_rx_frag +EXPORT_SYMBOL vmlinux 0x00000000 skb_copy +EXPORT_SYMBOL vmlinux 0x00000000 skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0x00000000 skb_copy_and_csum_datagram_msg +EXPORT_SYMBOL vmlinux 0x00000000 skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0x00000000 skb_copy_and_hash_datagram_iter +EXPORT_SYMBOL vmlinux 0x00000000 skb_copy_bits +EXPORT_SYMBOL vmlinux 0x00000000 skb_copy_datagram_from_iter +EXPORT_SYMBOL vmlinux 0x00000000 skb_copy_datagram_iter +EXPORT_SYMBOL vmlinux 0x00000000 skb_copy_expand +EXPORT_SYMBOL vmlinux 0x00000000 skb_copy_header +EXPORT_SYMBOL vmlinux 0x00000000 skb_csum_hwoffload_help +EXPORT_SYMBOL vmlinux 0x00000000 skb_dequeue +EXPORT_SYMBOL vmlinux 0x00000000 skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0x00000000 skb_dump +EXPORT_SYMBOL vmlinux 0x00000000 skb_ensure_writable +EXPORT_SYMBOL vmlinux 0x00000000 skb_ext_add +EXPORT_SYMBOL vmlinux 0x00000000 skb_find_text +EXPORT_SYMBOL vmlinux 0x00000000 skb_flow_dissect_ct +EXPORT_SYMBOL vmlinux 0x00000000 skb_flow_dissect_meta +EXPORT_SYMBOL vmlinux 0x00000000 skb_flow_dissect_tunnel_info +EXPORT_SYMBOL vmlinux 0x00000000 skb_flow_dissector_init +EXPORT_SYMBOL vmlinux 0x00000000 skb_flow_get_icmp_tci +EXPORT_SYMBOL vmlinux 0x00000000 skb_free_datagram +EXPORT_SYMBOL vmlinux 0x00000000 skb_get_hash_perturb +EXPORT_SYMBOL vmlinux 0x00000000 skb_headers_offset_update +EXPORT_SYMBOL vmlinux 0x00000000 skb_kill_datagram +EXPORT_SYMBOL vmlinux 0x00000000 skb_mac_gso_segment +EXPORT_SYMBOL vmlinux 0x00000000 skb_orphan_partial +EXPORT_SYMBOL vmlinux 0x00000000 skb_page_frag_refill +EXPORT_SYMBOL vmlinux 0x00000000 skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0x00000000 skb_pull +EXPORT_SYMBOL vmlinux 0x00000000 skb_push +EXPORT_SYMBOL vmlinux 0x00000000 skb_put +EXPORT_SYMBOL vmlinux 0x00000000 skb_queue_head +EXPORT_SYMBOL vmlinux 0x00000000 skb_queue_purge +EXPORT_SYMBOL vmlinux 0x00000000 skb_queue_tail +EXPORT_SYMBOL vmlinux 0x00000000 skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0x00000000 skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x00000000 skb_seq_read +EXPORT_SYMBOL vmlinux 0x00000000 skb_set_owner_w +EXPORT_SYMBOL vmlinux 0x00000000 skb_split +EXPORT_SYMBOL vmlinux 0x00000000 skb_store_bits +EXPORT_SYMBOL vmlinux 0x00000000 skb_trim +EXPORT_SYMBOL vmlinux 0x00000000 skb_try_coalesce +EXPORT_SYMBOL vmlinux 0x00000000 skb_tx_error +EXPORT_SYMBOL vmlinux 0x00000000 skb_udp_tunnel_segment +EXPORT_SYMBOL vmlinux 0x00000000 skb_unlink +EXPORT_SYMBOL vmlinux 0x00000000 skb_vlan_pop +EXPORT_SYMBOL vmlinux 0x00000000 skb_vlan_push +EXPORT_SYMBOL vmlinux 0x00000000 skb_vlan_untag +EXPORT_SYMBOL vmlinux 0x00000000 skip_spaces +EXPORT_SYMBOL vmlinux 0x00000000 slash_name +EXPORT_SYMBOL vmlinux 0x00000000 slhc_compress +EXPORT_SYMBOL vmlinux 0x00000000 slhc_free +EXPORT_SYMBOL vmlinux 0x00000000 slhc_init +EXPORT_SYMBOL vmlinux 0x00000000 slhc_remember +EXPORT_SYMBOL vmlinux 0x00000000 slhc_toss +EXPORT_SYMBOL vmlinux 0x00000000 slhc_uncompress +EXPORT_SYMBOL vmlinux 0x00000000 sme_me_mask +EXPORT_SYMBOL vmlinux 0x00000000 smp_call_function +EXPORT_SYMBOL vmlinux 0x00000000 smp_call_function_many +EXPORT_SYMBOL vmlinux 0x00000000 smp_call_function_single +EXPORT_SYMBOL vmlinux 0x00000000 smp_num_siblings +EXPORT_SYMBOL vmlinux 0x00000000 snprintf +EXPORT_SYMBOL vmlinux 0x00000000 sock_alloc +EXPORT_SYMBOL vmlinux 0x00000000 sock_alloc_file +EXPORT_SYMBOL vmlinux 0x00000000 sock_alloc_send_pskb +EXPORT_SYMBOL vmlinux 0x00000000 sock_alloc_send_skb +EXPORT_SYMBOL vmlinux 0x00000000 sock_cmsg_send +EXPORT_SYMBOL vmlinux 0x00000000 sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x00000000 sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0x00000000 sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0x00000000 sock_create +EXPORT_SYMBOL vmlinux 0x00000000 sock_create_kern +EXPORT_SYMBOL vmlinux 0x00000000 sock_create_lite +EXPORT_SYMBOL vmlinux 0x00000000 sock_dequeue_err_skb +EXPORT_SYMBOL vmlinux 0x00000000 sock_diag_put_filterinfo +EXPORT_SYMBOL vmlinux 0x00000000 sock_edemux +EXPORT_SYMBOL vmlinux 0x00000000 sock_efree +EXPORT_SYMBOL vmlinux 0x00000000 sock_from_file +EXPORT_SYMBOL vmlinux 0x00000000 sock_gettstamp +EXPORT_SYMBOL vmlinux 0x00000000 sock_i_ino +EXPORT_SYMBOL vmlinux 0x00000000 sock_i_uid +EXPORT_SYMBOL vmlinux 0x00000000 sock_init_data +EXPORT_SYMBOL vmlinux 0x00000000 sock_kfree_s +EXPORT_SYMBOL vmlinux 0x00000000 sock_kmalloc +EXPORT_SYMBOL vmlinux 0x00000000 sock_kzfree_s +EXPORT_SYMBOL vmlinux 0x00000000 sock_load_diag_module +EXPORT_SYMBOL vmlinux 0x00000000 sock_no_accept +EXPORT_SYMBOL vmlinux 0x00000000 sock_no_bind +EXPORT_SYMBOL vmlinux 0x00000000 sock_no_connect +EXPORT_SYMBOL vmlinux 0x00000000 sock_no_getname +EXPORT_SYMBOL vmlinux 0x00000000 sock_no_getsockopt +EXPORT_SYMBOL vmlinux 0x00000000 sock_no_ioctl +EXPORT_SYMBOL vmlinux 0x00000000 sock_no_listen +EXPORT_SYMBOL vmlinux 0x00000000 sock_no_mmap +EXPORT_SYMBOL vmlinux 0x00000000 sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0x00000000 sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0x00000000 sock_no_sendmsg_locked +EXPORT_SYMBOL vmlinux 0x00000000 sock_no_sendpage +EXPORT_SYMBOL vmlinux 0x00000000 sock_no_sendpage_locked +EXPORT_SYMBOL vmlinux 0x00000000 sock_no_setsockopt +EXPORT_SYMBOL vmlinux 0x00000000 sock_no_shutdown +EXPORT_SYMBOL vmlinux 0x00000000 sock_no_socketpair +EXPORT_SYMBOL vmlinux 0x00000000 sock_queue_err_skb +EXPORT_SYMBOL vmlinux 0x00000000 sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0x00000000 sock_recv_errqueue +EXPORT_SYMBOL vmlinux 0x00000000 sock_recvmsg +EXPORT_SYMBOL vmlinux 0x00000000 sock_register +EXPORT_SYMBOL vmlinux 0x00000000 sock_release +EXPORT_SYMBOL vmlinux 0x00000000 sock_rfree +EXPORT_SYMBOL vmlinux 0x00000000 sock_sendmsg +EXPORT_SYMBOL vmlinux 0x00000000 sock_setsockopt +EXPORT_SYMBOL vmlinux 0x00000000 sock_unregister +EXPORT_SYMBOL vmlinux 0x00000000 sock_wake_async +EXPORT_SYMBOL vmlinux 0x00000000 sock_wfree +EXPORT_SYMBOL vmlinux 0x00000000 sock_wmalloc +EXPORT_SYMBOL vmlinux 0x00000000 sockfd_lookup +EXPORT_SYMBOL vmlinux 0x00000000 soft_cursor +EXPORT_SYMBOL vmlinux 0x00000000 softnet_data +EXPORT_SYMBOL vmlinux 0x00000000 sort +EXPORT_SYMBOL vmlinux 0x00000000 sort_r +EXPORT_SYMBOL vmlinux 0x00000000 splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0x00000000 sprintf +EXPORT_SYMBOL vmlinux 0x00000000 sscanf +EXPORT_SYMBOL vmlinux 0x00000000 starget_for_each_device +EXPORT_SYMBOL vmlinux 0x00000000 start_tty +EXPORT_SYMBOL vmlinux 0x00000000 stop_tty +EXPORT_SYMBOL vmlinux 0x00000000 strcasecmp +EXPORT_SYMBOL vmlinux 0x00000000 strcat +EXPORT_SYMBOL vmlinux 0x00000000 strchr +EXPORT_SYMBOL vmlinux 0x00000000 strchrnul +EXPORT_SYMBOL vmlinux 0x00000000 strcmp +EXPORT_SYMBOL vmlinux 0x00000000 strcpy +EXPORT_SYMBOL vmlinux 0x00000000 strcspn +EXPORT_SYMBOL vmlinux 0x00000000 stream_open +EXPORT_SYMBOL vmlinux 0x00000000 strim +EXPORT_SYMBOL vmlinux 0x00000000 string_escape_mem +EXPORT_SYMBOL vmlinux 0x00000000 string_escape_mem_ascii +EXPORT_SYMBOL vmlinux 0x00000000 string_get_size +EXPORT_SYMBOL vmlinux 0x00000000 string_unescape +EXPORT_SYMBOL vmlinux 0x00000000 strlcat +EXPORT_SYMBOL vmlinux 0x00000000 strlcpy +EXPORT_SYMBOL vmlinux 0x00000000 strlen +EXPORT_SYMBOL vmlinux 0x00000000 strncasecmp +EXPORT_SYMBOL vmlinux 0x00000000 strncat +EXPORT_SYMBOL vmlinux 0x00000000 strnchr +EXPORT_SYMBOL vmlinux 0x00000000 strncmp +EXPORT_SYMBOL vmlinux 0x00000000 strncpy +EXPORT_SYMBOL vmlinux 0x00000000 strncpy_from_user +EXPORT_SYMBOL vmlinux 0x00000000 strndup_user +EXPORT_SYMBOL vmlinux 0x00000000 strnlen +EXPORT_SYMBOL vmlinux 0x00000000 strnlen_user +EXPORT_SYMBOL vmlinux 0x00000000 strnstr +EXPORT_SYMBOL vmlinux 0x00000000 strpbrk +EXPORT_SYMBOL vmlinux 0x00000000 strrchr +EXPORT_SYMBOL vmlinux 0x00000000 strreplace +EXPORT_SYMBOL vmlinux 0x00000000 strscpy +EXPORT_SYMBOL vmlinux 0x00000000 strscpy_pad +EXPORT_SYMBOL vmlinux 0x00000000 strsep +EXPORT_SYMBOL vmlinux 0x00000000 strspn +EXPORT_SYMBOL vmlinux 0x00000000 strstr +EXPORT_SYMBOL vmlinux 0x00000000 submit_bh +EXPORT_SYMBOL vmlinux 0x00000000 submit_bio +EXPORT_SYMBOL vmlinux 0x00000000 submit_bio_wait +EXPORT_SYMBOL vmlinux 0x00000000 super_setup_bdi +EXPORT_SYMBOL vmlinux 0x00000000 super_setup_bdi_name +EXPORT_SYMBOL vmlinux 0x00000000 swake_up_all +EXPORT_SYMBOL vmlinux 0x00000000 swake_up_locked +EXPORT_SYMBOL vmlinux 0x00000000 swake_up_one +EXPORT_SYMBOL vmlinux 0x00000000 sync_blockdev +EXPORT_SYMBOL vmlinux 0x00000000 sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x00000000 sync_file_create +EXPORT_SYMBOL vmlinux 0x00000000 sync_file_get_fence +EXPORT_SYMBOL vmlinux 0x00000000 sync_filesystem +EXPORT_SYMBOL vmlinux 0x00000000 sync_inode +EXPORT_SYMBOL vmlinux 0x00000000 sync_inode_metadata +EXPORT_SYMBOL vmlinux 0x00000000 sync_inodes_sb +EXPORT_SYMBOL vmlinux 0x00000000 sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0x00000000 synchronize_hardirq +EXPORT_SYMBOL vmlinux 0x00000000 synchronize_irq +EXPORT_SYMBOL vmlinux 0x00000000 synchronize_net +EXPORT_SYMBOL vmlinux 0x00000000 sys_tz +EXPORT_SYMBOL vmlinux 0x00000000 sysctl_devconf_inherit_init_net +EXPORT_SYMBOL vmlinux 0x00000000 sysctl_fb_tunnels_only_for_init_net +EXPORT_SYMBOL vmlinux 0x00000000 sysctl_max_skb_frags +EXPORT_SYMBOL vmlinux 0x00000000 sysctl_nf_log_all_netns +EXPORT_SYMBOL vmlinux 0x00000000 sysctl_optmem_max +EXPORT_SYMBOL vmlinux 0x00000000 sysctl_rmem_max +EXPORT_SYMBOL vmlinux 0x00000000 sysctl_tcp_mem +EXPORT_SYMBOL vmlinux 0x00000000 sysctl_udp_mem +EXPORT_SYMBOL vmlinux 0x00000000 sysctl_vals +EXPORT_SYMBOL vmlinux 0x00000000 sysctl_wmem_max +EXPORT_SYMBOL vmlinux 0x00000000 sysfs_format_mac +EXPORT_SYMBOL vmlinux 0x00000000 sysfs_streq +EXPORT_SYMBOL vmlinux 0x00000000 system_entering_hibernation +EXPORT_SYMBOL vmlinux 0x00000000 system_freezing_cnt +EXPORT_SYMBOL vmlinux 0x00000000 system_state +EXPORT_SYMBOL vmlinux 0x00000000 system_wq +EXPORT_SYMBOL vmlinux 0x00000000 t10_pi_type1_crc +EXPORT_SYMBOL vmlinux 0x00000000 t10_pi_type1_ip +EXPORT_SYMBOL vmlinux 0x00000000 t10_pi_type3_crc +EXPORT_SYMBOL vmlinux 0x00000000 t10_pi_type3_ip +EXPORT_SYMBOL vmlinux 0x00000000 tag_pages_for_writeback +EXPORT_SYMBOL vmlinux 0x00000000 take_dentry_name_snapshot +EXPORT_SYMBOL vmlinux 0x00000000 task_work_add +EXPORT_SYMBOL vmlinux 0x00000000 tasklet_init +EXPORT_SYMBOL vmlinux 0x00000000 tasklet_kill +EXPORT_SYMBOL vmlinux 0x00000000 tboot +EXPORT_SYMBOL vmlinux 0x00000000 tc_cleanup_flow_action +EXPORT_SYMBOL vmlinux 0x00000000 tc_setup_cb_add +EXPORT_SYMBOL vmlinux 0x00000000 tc_setup_cb_call +EXPORT_SYMBOL vmlinux 0x00000000 tc_setup_cb_destroy +EXPORT_SYMBOL vmlinux 0x00000000 tc_setup_cb_reoffload +EXPORT_SYMBOL vmlinux 0x00000000 tc_setup_cb_replace +EXPORT_SYMBOL vmlinux 0x00000000 tc_setup_flow_action +EXPORT_SYMBOL vmlinux 0x00000000 tcf_action_check_ctrlact +EXPORT_SYMBOL vmlinux 0x00000000 tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0x00000000 tcf_action_exec +EXPORT_SYMBOL vmlinux 0x00000000 tcf_action_set_ctrlact +EXPORT_SYMBOL vmlinux 0x00000000 tcf_action_update_stats +EXPORT_SYMBOL vmlinux 0x00000000 tcf_block_get +EXPORT_SYMBOL vmlinux 0x00000000 tcf_block_get_ext +EXPORT_SYMBOL vmlinux 0x00000000 tcf_block_netif_keep_dst +EXPORT_SYMBOL vmlinux 0x00000000 tcf_block_put +EXPORT_SYMBOL vmlinux 0x00000000 tcf_block_put_ext +EXPORT_SYMBOL vmlinux 0x00000000 tcf_chain_get_by_act +EXPORT_SYMBOL vmlinux 0x00000000 tcf_chain_put_by_act +EXPORT_SYMBOL vmlinux 0x00000000 tcf_classify +EXPORT_SYMBOL vmlinux 0x00000000 tcf_em_register +EXPORT_SYMBOL vmlinux 0x00000000 tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0x00000000 tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0x00000000 tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0x00000000 tcf_em_unregister +EXPORT_SYMBOL vmlinux 0x00000000 tcf_exts_change +EXPORT_SYMBOL vmlinux 0x00000000 tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0x00000000 tcf_exts_dump +EXPORT_SYMBOL vmlinux 0x00000000 tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0x00000000 tcf_exts_num_actions +EXPORT_SYMBOL vmlinux 0x00000000 tcf_exts_validate +EXPORT_SYMBOL vmlinux 0x00000000 tcf_generic_walker +EXPORT_SYMBOL vmlinux 0x00000000 tcf_get_next_chain +EXPORT_SYMBOL vmlinux 0x00000000 tcf_get_next_proto +EXPORT_SYMBOL vmlinux 0x00000000 tcf_idr_check_alloc +EXPORT_SYMBOL vmlinux 0x00000000 tcf_idr_cleanup +EXPORT_SYMBOL vmlinux 0x00000000 tcf_idr_create +EXPORT_SYMBOL vmlinux 0x00000000 tcf_idr_create_from_flags +EXPORT_SYMBOL vmlinux 0x00000000 tcf_idr_insert +EXPORT_SYMBOL vmlinux 0x00000000 tcf_idr_search +EXPORT_SYMBOL vmlinux 0x00000000 tcf_idrinfo_destroy +EXPORT_SYMBOL vmlinux 0x00000000 tcf_queue_work +EXPORT_SYMBOL vmlinux 0x00000000 tcf_register_action +EXPORT_SYMBOL vmlinux 0x00000000 tcf_unregister_action +EXPORT_SYMBOL vmlinux 0x00000000 tcp_add_backlog +EXPORT_SYMBOL vmlinux 0x00000000 tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0x00000000 tcp_check_req +EXPORT_SYMBOL vmlinux 0x00000000 tcp_child_process +EXPORT_SYMBOL vmlinux 0x00000000 tcp_close +EXPORT_SYMBOL vmlinux 0x00000000 tcp_conn_request +EXPORT_SYMBOL vmlinux 0x00000000 tcp_connect +EXPORT_SYMBOL vmlinux 0x00000000 tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0x00000000 tcp_disconnect +EXPORT_SYMBOL vmlinux 0x00000000 tcp_enter_cwr +EXPORT_SYMBOL vmlinux 0x00000000 tcp_enter_quickack_mode +EXPORT_SYMBOL vmlinux 0x00000000 tcp_fastopen_defer_connect +EXPORT_SYMBOL vmlinux 0x00000000 tcp_filter +EXPORT_SYMBOL vmlinux 0x00000000 tcp_get_cookie_sock +EXPORT_SYMBOL vmlinux 0x00000000 tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0x00000000 tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x00000000 tcp_gro_complete +EXPORT_SYMBOL vmlinux 0x00000000 tcp_hashinfo +EXPORT_SYMBOL vmlinux 0x00000000 tcp_have_smc +EXPORT_SYMBOL vmlinux 0x00000000 tcp_init_sock +EXPORT_SYMBOL vmlinux 0x00000000 tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0x00000000 tcp_ioctl +EXPORT_SYMBOL vmlinux 0x00000000 tcp_make_synack +EXPORT_SYMBOL vmlinux 0x00000000 tcp_md5_do_add +EXPORT_SYMBOL vmlinux 0x00000000 tcp_md5_do_del +EXPORT_SYMBOL vmlinux 0x00000000 tcp_md5_hash_key +EXPORT_SYMBOL vmlinux 0x00000000 tcp_md5_hash_skb_data +EXPORT_SYMBOL vmlinux 0x00000000 tcp_md5_needed +EXPORT_SYMBOL vmlinux 0x00000000 tcp_memory_allocated +EXPORT_SYMBOL vmlinux 0x00000000 tcp_mmap +EXPORT_SYMBOL vmlinux 0x00000000 tcp_mss_to_mtu +EXPORT_SYMBOL vmlinux 0x00000000 tcp_mtup_init +EXPORT_SYMBOL vmlinux 0x00000000 tcp_openreq_init_rwin +EXPORT_SYMBOL vmlinux 0x00000000 tcp_parse_md5sig_option +EXPORT_SYMBOL vmlinux 0x00000000 tcp_parse_options +EXPORT_SYMBOL vmlinux 0x00000000 tcp_peek_len +EXPORT_SYMBOL vmlinux 0x00000000 tcp_poll +EXPORT_SYMBOL vmlinux 0x00000000 tcp_prot +EXPORT_SYMBOL vmlinux 0x00000000 tcp_rcv_established +EXPORT_SYMBOL vmlinux 0x00000000 tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0x00000000 tcp_read_sock +EXPORT_SYMBOL vmlinux 0x00000000 tcp_recvmsg +EXPORT_SYMBOL vmlinux 0x00000000 tcp_release_cb +EXPORT_SYMBOL vmlinux 0x00000000 tcp_req_err +EXPORT_SYMBOL vmlinux 0x00000000 tcp_rtx_synack +EXPORT_SYMBOL vmlinux 0x00000000 tcp_rx_skb_cache_key +EXPORT_SYMBOL vmlinux 0x00000000 tcp_select_initial_window +EXPORT_SYMBOL vmlinux 0x00000000 tcp_sendmsg +EXPORT_SYMBOL vmlinux 0x00000000 tcp_sendpage +EXPORT_SYMBOL vmlinux 0x00000000 tcp_seq_next +EXPORT_SYMBOL vmlinux 0x00000000 tcp_seq_start +EXPORT_SYMBOL vmlinux 0x00000000 tcp_seq_stop +EXPORT_SYMBOL vmlinux 0x00000000 tcp_set_rcvlowat +EXPORT_SYMBOL vmlinux 0x00000000 tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x00000000 tcp_shutdown +EXPORT_SYMBOL vmlinux 0x00000000 tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0x00000000 tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0x00000000 tcp_splice_read +EXPORT_SYMBOL vmlinux 0x00000000 tcp_syn_ack_timeout +EXPORT_SYMBOL vmlinux 0x00000000 tcp_sync_mss +EXPORT_SYMBOL vmlinux 0x00000000 tcp_time_wait +EXPORT_SYMBOL vmlinux 0x00000000 tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0x00000000 tcp_tx_delay_enabled +EXPORT_SYMBOL vmlinux 0x00000000 tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0x00000000 tcp_v4_connect +EXPORT_SYMBOL vmlinux 0x00000000 tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0x00000000 tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0x00000000 tcp_v4_md5_hash_skb +EXPORT_SYMBOL vmlinux 0x00000000 tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0x00000000 tcp_v4_mtu_reduced +EXPORT_SYMBOL vmlinux 0x00000000 tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0x00000000 tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0x00000000 test_taint +EXPORT_SYMBOL vmlinux 0x00000000 textsearch_destroy +EXPORT_SYMBOL vmlinux 0x00000000 textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0x00000000 textsearch_prepare +EXPORT_SYMBOL vmlinux 0x00000000 textsearch_register +EXPORT_SYMBOL vmlinux 0x00000000 textsearch_unregister +EXPORT_SYMBOL vmlinux 0x00000000 thaw_bdev +EXPORT_SYMBOL vmlinux 0x00000000 thaw_super +EXPORT_SYMBOL vmlinux 0x00000000 thermal_cdev_update +EXPORT_SYMBOL vmlinux 0x00000000 this_cpu_off +EXPORT_SYMBOL vmlinux 0x00000000 time64_to_tm +EXPORT_SYMBOL vmlinux 0x00000000 timer_reduce +EXPORT_SYMBOL vmlinux 0x00000000 timespec64_to_jiffies +EXPORT_SYMBOL vmlinux 0x00000000 timestamp_truncate +EXPORT_SYMBOL vmlinux 0x00000000 to_nd_btt +EXPORT_SYMBOL vmlinux 0x00000000 to_nd_dax +EXPORT_SYMBOL vmlinux 0x00000000 to_nd_pfn +EXPORT_SYMBOL vmlinux 0x00000000 to_ndd +EXPORT_SYMBOL vmlinux 0x00000000 topology_phys_to_logical_die +EXPORT_SYMBOL vmlinux 0x00000000 topology_phys_to_logical_pkg +EXPORT_SYMBOL vmlinux 0x00000000 touch_atime +EXPORT_SYMBOL vmlinux 0x00000000 touch_buffer +EXPORT_SYMBOL vmlinux 0x00000000 touch_softlockup_watchdog +EXPORT_SYMBOL vmlinux 0x00000000 touchscreen_parse_properties +EXPORT_SYMBOL vmlinux 0x00000000 touchscreen_report_pos +EXPORT_SYMBOL vmlinux 0x00000000 touchscreen_set_mt_pos +EXPORT_SYMBOL vmlinux 0x00000000 trace_print_array_seq +EXPORT_SYMBOL vmlinux 0x00000000 trace_print_flags_seq +EXPORT_SYMBOL vmlinux 0x00000000 trace_print_hex_dump_seq +EXPORT_SYMBOL vmlinux 0x00000000 trace_print_hex_seq +EXPORT_SYMBOL vmlinux 0x00000000 trace_print_symbols_seq +EXPORT_SYMBOL vmlinux 0x00000000 trace_raw_output_prep +EXPORT_SYMBOL vmlinux 0x00000000 trace_seq_hex_dump +EXPORT_SYMBOL vmlinux 0x00000000 translation_pre_enabled +EXPORT_SYMBOL vmlinux 0x00000000 truncate_inode_pages +EXPORT_SYMBOL vmlinux 0x00000000 truncate_inode_pages_final +EXPORT_SYMBOL vmlinux 0x00000000 truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0x00000000 truncate_pagecache +EXPORT_SYMBOL vmlinux 0x00000000 truncate_pagecache_range +EXPORT_SYMBOL vmlinux 0x00000000 truncate_setsize +EXPORT_SYMBOL vmlinux 0x00000000 try_lookup_one_len +EXPORT_SYMBOL vmlinux 0x00000000 try_module_get +EXPORT_SYMBOL vmlinux 0x00000000 try_offline_node +EXPORT_SYMBOL vmlinux 0x00000000 try_to_del_timer_sync +EXPORT_SYMBOL vmlinux 0x00000000 try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x00000000 try_to_release_page +EXPORT_SYMBOL vmlinux 0x00000000 try_to_writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0x00000000 try_wait_for_completion +EXPORT_SYMBOL vmlinux 0x00000000 tsc_khz +EXPORT_SYMBOL vmlinux 0x00000000 tso_build_data +EXPORT_SYMBOL vmlinux 0x00000000 tso_build_hdr +EXPORT_SYMBOL vmlinux 0x00000000 tso_count_descs +EXPORT_SYMBOL vmlinux 0x00000000 tso_start +EXPORT_SYMBOL vmlinux 0x00000000 tty_chars_in_buffer +EXPORT_SYMBOL vmlinux 0x00000000 tty_check_change +EXPORT_SYMBOL vmlinux 0x00000000 tty_devnum +EXPORT_SYMBOL vmlinux 0x00000000 tty_do_resize +EXPORT_SYMBOL vmlinux 0x00000000 tty_driver_flush_buffer +EXPORT_SYMBOL vmlinux 0x00000000 tty_driver_kref_put +EXPORT_SYMBOL vmlinux 0x00000000 tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0x00000000 tty_hangup +EXPORT_SYMBOL vmlinux 0x00000000 tty_hung_up_p +EXPORT_SYMBOL vmlinux 0x00000000 tty_insert_flip_string_fixed_flag +EXPORT_SYMBOL vmlinux 0x00000000 tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0x00000000 tty_kref_put +EXPORT_SYMBOL vmlinux 0x00000000 tty_lock +EXPORT_SYMBOL vmlinux 0x00000000 tty_name +EXPORT_SYMBOL vmlinux 0x00000000 tty_port_alloc_xmit_buf +EXPORT_SYMBOL vmlinux 0x00000000 tty_port_block_til_ready +EXPORT_SYMBOL vmlinux 0x00000000 tty_port_carrier_raised +EXPORT_SYMBOL vmlinux 0x00000000 tty_port_close +EXPORT_SYMBOL vmlinux 0x00000000 tty_port_close_end +EXPORT_SYMBOL vmlinux 0x00000000 tty_port_close_start +EXPORT_SYMBOL vmlinux 0x00000000 tty_port_destroy +EXPORT_SYMBOL vmlinux 0x00000000 tty_port_free_xmit_buf +EXPORT_SYMBOL vmlinux 0x00000000 tty_port_hangup +EXPORT_SYMBOL vmlinux 0x00000000 tty_port_init +EXPORT_SYMBOL vmlinux 0x00000000 tty_port_lower_dtr_rts +EXPORT_SYMBOL vmlinux 0x00000000 tty_port_open +EXPORT_SYMBOL vmlinux 0x00000000 tty_port_put +EXPORT_SYMBOL vmlinux 0x00000000 tty_port_raise_dtr_rts +EXPORT_SYMBOL vmlinux 0x00000000 tty_port_tty_get +EXPORT_SYMBOL vmlinux 0x00000000 tty_port_tty_set +EXPORT_SYMBOL vmlinux 0x00000000 tty_register_device +EXPORT_SYMBOL vmlinux 0x00000000 tty_register_driver +EXPORT_SYMBOL vmlinux 0x00000000 tty_register_ldisc +EXPORT_SYMBOL vmlinux 0x00000000 tty_schedule_flip +EXPORT_SYMBOL vmlinux 0x00000000 tty_set_operations +EXPORT_SYMBOL vmlinux 0x00000000 tty_std_termios +EXPORT_SYMBOL vmlinux 0x00000000 tty_termios_baud_rate +EXPORT_SYMBOL vmlinux 0x00000000 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0x00000000 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0x00000000 tty_termios_input_baud_rate +EXPORT_SYMBOL vmlinux 0x00000000 tty_throttle +EXPORT_SYMBOL vmlinux 0x00000000 tty_unlock +EXPORT_SYMBOL vmlinux 0x00000000 tty_unregister_device +EXPORT_SYMBOL vmlinux 0x00000000 tty_unregister_driver +EXPORT_SYMBOL vmlinux 0x00000000 tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0x00000000 tty_unthrottle +EXPORT_SYMBOL vmlinux 0x00000000 tty_vhangup +EXPORT_SYMBOL vmlinux 0x00000000 tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0x00000000 tty_write_room +EXPORT_SYMBOL vmlinux 0x00000000 tun_is_xdp_frame +EXPORT_SYMBOL vmlinux 0x00000000 tun_ptr_to_xdp +EXPORT_SYMBOL vmlinux 0x00000000 tun_xdp_to_ptr +EXPORT_SYMBOL vmlinux 0x00000000 twl6030_interrupt_mask +EXPORT_SYMBOL vmlinux 0x00000000 twl6030_interrupt_unmask +EXPORT_SYMBOL vmlinux 0x00000000 twl6030_mmc_card_detect +EXPORT_SYMBOL vmlinux 0x00000000 twl6030_mmc_card_detect_config +EXPORT_SYMBOL vmlinux 0x00000000 twl6040_clear_bits +EXPORT_SYMBOL vmlinux 0x00000000 twl6040_get_pll +EXPORT_SYMBOL vmlinux 0x00000000 twl6040_get_sysclk +EXPORT_SYMBOL vmlinux 0x00000000 twl6040_get_vibralr_status +EXPORT_SYMBOL vmlinux 0x00000000 twl6040_power +EXPORT_SYMBOL vmlinux 0x00000000 twl6040_reg_read +EXPORT_SYMBOL vmlinux 0x00000000 twl6040_reg_write +EXPORT_SYMBOL vmlinux 0x00000000 twl6040_set_bits +EXPORT_SYMBOL vmlinux 0x00000000 twl6040_set_pll +EXPORT_SYMBOL vmlinux 0x00000000 twl_i2c_read +EXPORT_SYMBOL vmlinux 0x00000000 twl_i2c_write +EXPORT_SYMBOL vmlinux 0x00000000 twl_rev +EXPORT_SYMBOL vmlinux 0x00000000 twl_set_regcache_bypass +EXPORT_SYMBOL vmlinux 0x00000000 uart_add_one_port +EXPORT_SYMBOL vmlinux 0x00000000 uart_get_baud_rate +EXPORT_SYMBOL vmlinux 0x00000000 uart_get_divisor +EXPORT_SYMBOL vmlinux 0x00000000 uart_match_port +EXPORT_SYMBOL vmlinux 0x00000000 uart_register_driver +EXPORT_SYMBOL vmlinux 0x00000000 uart_remove_one_port +EXPORT_SYMBOL vmlinux 0x00000000 uart_resume_port +EXPORT_SYMBOL vmlinux 0x00000000 uart_suspend_port +EXPORT_SYMBOL vmlinux 0x00000000 uart_unregister_driver +EXPORT_SYMBOL vmlinux 0x00000000 uart_update_timeout +EXPORT_SYMBOL vmlinux 0x00000000 uart_write_wakeup +EXPORT_SYMBOL vmlinux 0x00000000 ucs2_as_utf8 +EXPORT_SYMBOL vmlinux 0x00000000 ucs2_strlen +EXPORT_SYMBOL vmlinux 0x00000000 ucs2_strncmp +EXPORT_SYMBOL vmlinux 0x00000000 ucs2_strnlen +EXPORT_SYMBOL vmlinux 0x00000000 ucs2_strsize +EXPORT_SYMBOL vmlinux 0x00000000 ucs2_utf8size +EXPORT_SYMBOL vmlinux 0x00000000 udp6_csum_init +EXPORT_SYMBOL vmlinux 0x00000000 udp6_seq_ops +EXPORT_SYMBOL vmlinux 0x00000000 udp6_set_csum +EXPORT_SYMBOL vmlinux 0x00000000 udp_disconnect +EXPORT_SYMBOL vmlinux 0x00000000 udp_encap_enable +EXPORT_SYMBOL vmlinux 0x00000000 udp_flow_hashrnd +EXPORT_SYMBOL vmlinux 0x00000000 udp_flush_pending_frames +EXPORT_SYMBOL vmlinux 0x00000000 udp_gro_complete +EXPORT_SYMBOL vmlinux 0x00000000 udp_gro_receive +EXPORT_SYMBOL vmlinux 0x00000000 udp_ioctl +EXPORT_SYMBOL vmlinux 0x00000000 udp_lib_get_port +EXPORT_SYMBOL vmlinux 0x00000000 udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0x00000000 udp_lib_rehash +EXPORT_SYMBOL vmlinux 0x00000000 udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0x00000000 udp_lib_unhash +EXPORT_SYMBOL vmlinux 0x00000000 udp_memory_allocated +EXPORT_SYMBOL vmlinux 0x00000000 udp_poll +EXPORT_SYMBOL vmlinux 0x00000000 udp_pre_connect +EXPORT_SYMBOL vmlinux 0x00000000 udp_prot +EXPORT_SYMBOL vmlinux 0x00000000 udp_push_pending_frames +EXPORT_SYMBOL vmlinux 0x00000000 udp_sendmsg +EXPORT_SYMBOL vmlinux 0x00000000 udp_seq_next +EXPORT_SYMBOL vmlinux 0x00000000 udp_seq_ops +EXPORT_SYMBOL vmlinux 0x00000000 udp_seq_start +EXPORT_SYMBOL vmlinux 0x00000000 udp_seq_stop +EXPORT_SYMBOL vmlinux 0x00000000 udp_set_csum +EXPORT_SYMBOL vmlinux 0x00000000 udp_sk_rx_dst_set +EXPORT_SYMBOL vmlinux 0x00000000 udp_skb_destructor +EXPORT_SYMBOL vmlinux 0x00000000 udp_table +EXPORT_SYMBOL vmlinux 0x00000000 udplite_prot +EXPORT_SYMBOL vmlinux 0x00000000 udplite_table +EXPORT_SYMBOL vmlinux 0x00000000 udpv6_encap_enable +EXPORT_SYMBOL vmlinux 0x00000000 unix_attach_fds +EXPORT_SYMBOL vmlinux 0x00000000 unix_destruct_scm +EXPORT_SYMBOL vmlinux 0x00000000 unix_detach_fds +EXPORT_SYMBOL vmlinux 0x00000000 unix_gc_lock +EXPORT_SYMBOL vmlinux 0x00000000 unix_get_socket +EXPORT_SYMBOL vmlinux 0x00000000 unix_tot_inflight +EXPORT_SYMBOL vmlinux 0x00000000 unload_nls +EXPORT_SYMBOL vmlinux 0x00000000 unlock_buffer +EXPORT_SYMBOL vmlinux 0x00000000 unlock_new_inode +EXPORT_SYMBOL vmlinux 0x00000000 unlock_page +EXPORT_SYMBOL vmlinux 0x00000000 unlock_page_memcg +EXPORT_SYMBOL vmlinux 0x00000000 unlock_rename +EXPORT_SYMBOL vmlinux 0x00000000 unlock_two_nondirectories +EXPORT_SYMBOL vmlinux 0x00000000 unmap_mapping_range +EXPORT_SYMBOL vmlinux 0x00000000 unpin_user_pages +EXPORT_SYMBOL vmlinux 0x00000000 unpin_user_pages_dirty_lock +EXPORT_SYMBOL vmlinux 0x00000000 unpoison_memory +EXPORT_SYMBOL vmlinux 0x00000000 unregister_acpi_notifier +EXPORT_SYMBOL vmlinux 0x00000000 unregister_binfmt +EXPORT_SYMBOL vmlinux 0x00000000 unregister_blkdev +EXPORT_SYMBOL vmlinux 0x00000000 unregister_blocking_lsm_notifier +EXPORT_SYMBOL vmlinux 0x00000000 unregister_cdrom +EXPORT_SYMBOL vmlinux 0x00000000 unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x00000000 unregister_console +EXPORT_SYMBOL vmlinux 0x00000000 unregister_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x00000000 unregister_fib_notifier +EXPORT_SYMBOL vmlinux 0x00000000 unregister_filesystem +EXPORT_SYMBOL vmlinux 0x00000000 unregister_framebuffer +EXPORT_SYMBOL vmlinux 0x00000000 unregister_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x00000000 unregister_inet6addr_validator_notifier +EXPORT_SYMBOL vmlinux 0x00000000 unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x00000000 unregister_inetaddr_validator_notifier +EXPORT_SYMBOL vmlinux 0x00000000 unregister_key_type +EXPORT_SYMBOL vmlinux 0x00000000 unregister_kmmio_probe +EXPORT_SYMBOL vmlinux 0x00000000 unregister_md_cluster_operations +EXPORT_SYMBOL vmlinux 0x00000000 unregister_md_personality +EXPORT_SYMBOL vmlinux 0x00000000 unregister_memory_notifier +EXPORT_SYMBOL vmlinux 0x00000000 unregister_mii_timestamper +EXPORT_SYMBOL vmlinux 0x00000000 unregister_mii_tstamp_controller +EXPORT_SYMBOL vmlinux 0x00000000 unregister_module_notifier +EXPORT_SYMBOL vmlinux 0x00000000 unregister_netdev +EXPORT_SYMBOL vmlinux 0x00000000 unregister_netdevice_many +EXPORT_SYMBOL vmlinux 0x00000000 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x00000000 unregister_netdevice_notifier_dev_net +EXPORT_SYMBOL vmlinux 0x00000000 unregister_netdevice_notifier_net +EXPORT_SYMBOL vmlinux 0x00000000 unregister_netdevice_queue +EXPORT_SYMBOL vmlinux 0x00000000 unregister_nls +EXPORT_SYMBOL vmlinux 0x00000000 unregister_qdisc +EXPORT_SYMBOL vmlinux 0x00000000 unregister_quota_format +EXPORT_SYMBOL vmlinux 0x00000000 unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0x00000000 unregister_restart_handler +EXPORT_SYMBOL vmlinux 0x00000000 unregister_shrinker +EXPORT_SYMBOL vmlinux 0x00000000 unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0x00000000 unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0x00000000 unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x00000000 up +EXPORT_SYMBOL vmlinux 0x00000000 up_read +EXPORT_SYMBOL vmlinux 0x00000000 up_write +EXPORT_SYMBOL vmlinux 0x00000000 update_devfreq +EXPORT_SYMBOL vmlinux 0x00000000 update_region +EXPORT_SYMBOL vmlinux 0x00000000 user_path_at_empty +EXPORT_SYMBOL vmlinux 0x00000000 user_path_create +EXPORT_SYMBOL vmlinux 0x00000000 user_revoke +EXPORT_SYMBOL vmlinux 0x00000000 usleep_range +EXPORT_SYMBOL vmlinux 0x00000000 utf16s_to_utf8s +EXPORT_SYMBOL vmlinux 0x00000000 utf32_to_utf8 +EXPORT_SYMBOL vmlinux 0x00000000 utf8_casefold +EXPORT_SYMBOL vmlinux 0x00000000 utf8_load +EXPORT_SYMBOL vmlinux 0x00000000 utf8_normalize +EXPORT_SYMBOL vmlinux 0x00000000 utf8_strncasecmp +EXPORT_SYMBOL vmlinux 0x00000000 utf8_strncasecmp_folded +EXPORT_SYMBOL vmlinux 0x00000000 utf8_strncmp +EXPORT_SYMBOL vmlinux 0x00000000 utf8_to_utf32 +EXPORT_SYMBOL vmlinux 0x00000000 utf8_unload +EXPORT_SYMBOL vmlinux 0x00000000 utf8_validate +EXPORT_SYMBOL vmlinux 0x00000000 utf8agemax +EXPORT_SYMBOL vmlinux 0x00000000 utf8agemin +EXPORT_SYMBOL vmlinux 0x00000000 utf8byte +EXPORT_SYMBOL vmlinux 0x00000000 utf8cursor +EXPORT_SYMBOL vmlinux 0x00000000 utf8len +EXPORT_SYMBOL vmlinux 0x00000000 utf8nagemax +EXPORT_SYMBOL vmlinux 0x00000000 utf8nagemin +EXPORT_SYMBOL vmlinux 0x00000000 utf8ncursor +EXPORT_SYMBOL vmlinux 0x00000000 utf8nfdi +EXPORT_SYMBOL vmlinux 0x00000000 utf8nfdicf +EXPORT_SYMBOL vmlinux 0x00000000 utf8nlen +EXPORT_SYMBOL vmlinux 0x00000000 utf8s_to_utf16s +EXPORT_SYMBOL vmlinux 0x00000000 utf8version_is_supported +EXPORT_SYMBOL vmlinux 0x00000000 utf8version_latest +EXPORT_SYMBOL vmlinux 0x00000000 uuid_is_valid +EXPORT_SYMBOL vmlinux 0x00000000 uuid_null +EXPORT_SYMBOL vmlinux 0x00000000 uuid_parse +EXPORT_SYMBOL vmlinux 0x00000000 vc_cons +EXPORT_SYMBOL vmlinux 0x00000000 vc_resize +EXPORT_SYMBOL vmlinux 0x00000000 verify_spi_info +EXPORT_SYMBOL vmlinux 0x00000000 vesa_modes +EXPORT_SYMBOL vmlinux 0x00000000 vfio_info_add_capability +EXPORT_SYMBOL vmlinux 0x00000000 vfio_info_cap_shift +EXPORT_SYMBOL vmlinux 0x00000000 vfio_pin_pages +EXPORT_SYMBOL vmlinux 0x00000000 vfio_register_notifier +EXPORT_SYMBOL vmlinux 0x00000000 vfio_set_irqs_validate_and_prepare +EXPORT_SYMBOL vmlinux 0x00000000 vfio_unpin_pages +EXPORT_SYMBOL vmlinux 0x00000000 vfio_unregister_notifier +EXPORT_SYMBOL vmlinux 0x00000000 vfree +EXPORT_SYMBOL vmlinux 0x00000000 vfs_clone_file_range +EXPORT_SYMBOL vmlinux 0x00000000 vfs_copy_file_range +EXPORT_SYMBOL vmlinux 0x00000000 vfs_create +EXPORT_SYMBOL vmlinux 0x00000000 vfs_create_mount +EXPORT_SYMBOL vmlinux 0x00000000 vfs_dedupe_file_range +EXPORT_SYMBOL vmlinux 0x00000000 vfs_dedupe_file_range_one +EXPORT_SYMBOL vmlinux 0x00000000 vfs_dup_fs_context +EXPORT_SYMBOL vmlinux 0x00000000 vfs_fadvise +EXPORT_SYMBOL vmlinux 0x00000000 vfs_fsync +EXPORT_SYMBOL vmlinux 0x00000000 vfs_fsync_range +EXPORT_SYMBOL vmlinux 0x00000000 vfs_get_fsid +EXPORT_SYMBOL vmlinux 0x00000000 vfs_get_link +EXPORT_SYMBOL vmlinux 0x00000000 vfs_get_super +EXPORT_SYMBOL vmlinux 0x00000000 vfs_get_tree +EXPORT_SYMBOL vmlinux 0x00000000 vfs_getattr +EXPORT_SYMBOL vmlinux 0x00000000 vfs_getattr_nosec +EXPORT_SYMBOL vmlinux 0x00000000 vfs_ioc_fssetxattr_check +EXPORT_SYMBOL vmlinux 0x00000000 vfs_ioc_setflags_prepare +EXPORT_SYMBOL vmlinux 0x00000000 vfs_iocb_iter_read +EXPORT_SYMBOL vmlinux 0x00000000 vfs_iocb_iter_write +EXPORT_SYMBOL vmlinux 0x00000000 vfs_ioctl +EXPORT_SYMBOL vmlinux 0x00000000 vfs_iter_read +EXPORT_SYMBOL vmlinux 0x00000000 vfs_iter_write +EXPORT_SYMBOL vmlinux 0x00000000 vfs_link +EXPORT_SYMBOL vmlinux 0x00000000 vfs_llseek +EXPORT_SYMBOL vmlinux 0x00000000 vfs_mkdir +EXPORT_SYMBOL vmlinux 0x00000000 vfs_mknod +EXPORT_SYMBOL vmlinux 0x00000000 vfs_mkobj +EXPORT_SYMBOL vmlinux 0x00000000 vfs_parse_fs_param +EXPORT_SYMBOL vmlinux 0x00000000 vfs_parse_fs_string +EXPORT_SYMBOL vmlinux 0x00000000 vfs_path_lookup +EXPORT_SYMBOL vmlinux 0x00000000 vfs_readlink +EXPORT_SYMBOL vmlinux 0x00000000 vfs_rename +EXPORT_SYMBOL vmlinux 0x00000000 vfs_rmdir +EXPORT_SYMBOL vmlinux 0x00000000 vfs_setpos +EXPORT_SYMBOL vmlinux 0x00000000 vfs_statfs +EXPORT_SYMBOL vmlinux 0x00000000 vfs_statx +EXPORT_SYMBOL vmlinux 0x00000000 vfs_statx_fd +EXPORT_SYMBOL vmlinux 0x00000000 vfs_symlink +EXPORT_SYMBOL vmlinux 0x00000000 vfs_tmpfile +EXPORT_SYMBOL vmlinux 0x00000000 vfs_unlink +EXPORT_SYMBOL vmlinux 0x00000000 vfs_whiteout +EXPORT_SYMBOL vmlinux 0x00000000 vga_client_register +EXPORT_SYMBOL vmlinux 0x00000000 vga_con +EXPORT_SYMBOL vmlinux 0x00000000 vga_get +EXPORT_SYMBOL vmlinux 0x00000000 vga_put +EXPORT_SYMBOL vmlinux 0x00000000 vga_remove_vgacon +EXPORT_SYMBOL vmlinux 0x00000000 vga_set_legacy_decoding +EXPORT_SYMBOL vmlinux 0x00000000 vga_switcheroo_client_fb_set +EXPORT_SYMBOL vmlinux 0x00000000 vga_switcheroo_client_probe_defer +EXPORT_SYMBOL vmlinux 0x00000000 vga_switcheroo_fini_domain_pm_ops +EXPORT_SYMBOL vmlinux 0x00000000 vga_switcheroo_get_client_state +EXPORT_SYMBOL vmlinux 0x00000000 vga_switcheroo_handler_flags +EXPORT_SYMBOL vmlinux 0x00000000 vga_switcheroo_init_domain_pm_ops +EXPORT_SYMBOL vmlinux 0x00000000 vga_switcheroo_lock_ddc +EXPORT_SYMBOL vmlinux 0x00000000 vga_switcheroo_process_delayed_switch +EXPORT_SYMBOL vmlinux 0x00000000 vga_switcheroo_register_audio_client +EXPORT_SYMBOL vmlinux 0x00000000 vga_switcheroo_register_client +EXPORT_SYMBOL vmlinux 0x00000000 vga_switcheroo_register_handler +EXPORT_SYMBOL vmlinux 0x00000000 vga_switcheroo_unlock_ddc +EXPORT_SYMBOL vmlinux 0x00000000 vga_switcheroo_unregister_client +EXPORT_SYMBOL vmlinux 0x00000000 vga_switcheroo_unregister_handler +EXPORT_SYMBOL vmlinux 0x00000000 vga_tryget +EXPORT_SYMBOL vmlinux 0x00000000 vgacon_text_force +EXPORT_SYMBOL vmlinux 0x00000000 vif_device_init +EXPORT_SYMBOL vmlinux 0x00000000 vlan_dev_real_dev +EXPORT_SYMBOL vmlinux 0x00000000 vlan_dev_vlan_id +EXPORT_SYMBOL vmlinux 0x00000000 vlan_dev_vlan_proto +EXPORT_SYMBOL vmlinux 0x00000000 vlan_filter_drop_vids +EXPORT_SYMBOL vmlinux 0x00000000 vlan_filter_push_vids +EXPORT_SYMBOL vmlinux 0x00000000 vlan_for_each +EXPORT_SYMBOL vmlinux 0x00000000 vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0x00000000 vlan_uses_dev +EXPORT_SYMBOL vmlinux 0x00000000 vlan_vid_add +EXPORT_SYMBOL vmlinux 0x00000000 vlan_vid_del +EXPORT_SYMBOL vmlinux 0x00000000 vlan_vids_add_by_dev +EXPORT_SYMBOL vmlinux 0x00000000 vlan_vids_del_by_dev +EXPORT_SYMBOL vmlinux 0x00000000 vm_brk +EXPORT_SYMBOL vmlinux 0x00000000 vm_brk_flags +EXPORT_SYMBOL vmlinux 0x00000000 vm_event_states +EXPORT_SYMBOL vmlinux 0x00000000 vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x00000000 vm_insert_page +EXPORT_SYMBOL vmlinux 0x00000000 vm_iomap_memory +EXPORT_SYMBOL vmlinux 0x00000000 vm_map_pages +EXPORT_SYMBOL vmlinux 0x00000000 vm_map_pages_zero +EXPORT_SYMBOL vmlinux 0x00000000 vm_map_ram +EXPORT_SYMBOL vmlinux 0x00000000 vm_mmap +EXPORT_SYMBOL vmlinux 0x00000000 vm_munmap +EXPORT_SYMBOL vmlinux 0x00000000 vm_node_stat +EXPORT_SYMBOL vmlinux 0x00000000 vm_numa_stat +EXPORT_SYMBOL vmlinux 0x00000000 vm_unmap_ram +EXPORT_SYMBOL vmlinux 0x00000000 vm_zone_stat +EXPORT_SYMBOL vmlinux 0x00000000 vmalloc +EXPORT_SYMBOL vmlinux 0x00000000 vmalloc_32 +EXPORT_SYMBOL vmlinux 0x00000000 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x00000000 vmalloc_base +EXPORT_SYMBOL vmlinux 0x00000000 vmalloc_node +EXPORT_SYMBOL vmlinux 0x00000000 vmalloc_to_page +EXPORT_SYMBOL vmlinux 0x00000000 vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0x00000000 vmalloc_user +EXPORT_SYMBOL vmlinux 0x00000000 vmalloc_user_node_flags +EXPORT_SYMBOL vmlinux 0x00000000 vmap +EXPORT_SYMBOL vmlinux 0x00000000 vmcore_add_device_dump +EXPORT_SYMBOL vmlinux 0x00000000 vme_alloc_consistent +EXPORT_SYMBOL vmlinux 0x00000000 vme_bus_error_handler +EXPORT_SYMBOL vmlinux 0x00000000 vme_bus_num +EXPORT_SYMBOL vmlinux 0x00000000 vme_bus_type +EXPORT_SYMBOL vmlinux 0x00000000 vme_check_window +EXPORT_SYMBOL vmlinux 0x00000000 vme_dma_free +EXPORT_SYMBOL vmlinux 0x00000000 vme_dma_free_attribute +EXPORT_SYMBOL vmlinux 0x00000000 vme_dma_list_add +EXPORT_SYMBOL vmlinux 0x00000000 vme_dma_list_exec +EXPORT_SYMBOL vmlinux 0x00000000 vme_dma_list_free +EXPORT_SYMBOL vmlinux 0x00000000 vme_dma_pattern_attribute +EXPORT_SYMBOL vmlinux 0x00000000 vme_dma_pci_attribute +EXPORT_SYMBOL vmlinux 0x00000000 vme_dma_request +EXPORT_SYMBOL vmlinux 0x00000000 vme_dma_vme_attribute +EXPORT_SYMBOL vmlinux 0x00000000 vme_free_consistent +EXPORT_SYMBOL vmlinux 0x00000000 vme_get_size +EXPORT_SYMBOL vmlinux 0x00000000 vme_init_bridge +EXPORT_SYMBOL vmlinux 0x00000000 vme_irq_free +EXPORT_SYMBOL vmlinux 0x00000000 vme_irq_generate +EXPORT_SYMBOL vmlinux 0x00000000 vme_irq_handler +EXPORT_SYMBOL vmlinux 0x00000000 vme_irq_request +EXPORT_SYMBOL vmlinux 0x00000000 vme_lm_attach +EXPORT_SYMBOL vmlinux 0x00000000 vme_lm_count +EXPORT_SYMBOL vmlinux 0x00000000 vme_lm_detach +EXPORT_SYMBOL vmlinux 0x00000000 vme_lm_free +EXPORT_SYMBOL vmlinux 0x00000000 vme_lm_get +EXPORT_SYMBOL vmlinux 0x00000000 vme_lm_request +EXPORT_SYMBOL vmlinux 0x00000000 vme_lm_set +EXPORT_SYMBOL vmlinux 0x00000000 vme_master_free +EXPORT_SYMBOL vmlinux 0x00000000 vme_master_get +EXPORT_SYMBOL vmlinux 0x00000000 vme_master_mmap +EXPORT_SYMBOL vmlinux 0x00000000 vme_master_read +EXPORT_SYMBOL vmlinux 0x00000000 vme_master_request +EXPORT_SYMBOL vmlinux 0x00000000 vme_master_rmw +EXPORT_SYMBOL vmlinux 0x00000000 vme_master_set +EXPORT_SYMBOL vmlinux 0x00000000 vme_master_write +EXPORT_SYMBOL vmlinux 0x00000000 vme_new_dma_list +EXPORT_SYMBOL vmlinux 0x00000000 vme_register_bridge +EXPORT_SYMBOL vmlinux 0x00000000 vme_register_driver +EXPORT_SYMBOL vmlinux 0x00000000 vme_register_error_handler +EXPORT_SYMBOL vmlinux 0x00000000 vme_slave_free +EXPORT_SYMBOL vmlinux 0x00000000 vme_slave_get +EXPORT_SYMBOL vmlinux 0x00000000 vme_slave_request +EXPORT_SYMBOL vmlinux 0x00000000 vme_slave_set +EXPORT_SYMBOL vmlinux 0x00000000 vme_slot_num +EXPORT_SYMBOL vmlinux 0x00000000 vme_unregister_bridge +EXPORT_SYMBOL vmlinux 0x00000000 vme_unregister_driver +EXPORT_SYMBOL vmlinux 0x00000000 vme_unregister_error_handler +EXPORT_SYMBOL vmlinux 0x00000000 vmemdup_user +EXPORT_SYMBOL vmlinux 0x00000000 vmemmap_base +EXPORT_SYMBOL vmlinux 0x00000000 vmf_insert_mixed +EXPORT_SYMBOL vmlinux 0x00000000 vmf_insert_mixed_mkwrite +EXPORT_SYMBOL vmlinux 0x00000000 vmf_insert_mixed_prot +EXPORT_SYMBOL vmlinux 0x00000000 vmf_insert_pfn +EXPORT_SYMBOL vmlinux 0x00000000 vmf_insert_pfn_prot +EXPORT_SYMBOL vmlinux 0x00000000 vprintk +EXPORT_SYMBOL vmlinux 0x00000000 vprintk_emit +EXPORT_SYMBOL vmlinux 0x00000000 vscnprintf +EXPORT_SYMBOL vmlinux 0x00000000 vsnprintf +EXPORT_SYMBOL vmlinux 0x00000000 vsprintf +EXPORT_SYMBOL vmlinux 0x00000000 vsscanf +EXPORT_SYMBOL vmlinux 0x00000000 vunmap +EXPORT_SYMBOL vmlinux 0x00000000 vzalloc +EXPORT_SYMBOL vmlinux 0x00000000 vzalloc_node +EXPORT_SYMBOL vmlinux 0x00000000 wait_for_completion +EXPORT_SYMBOL vmlinux 0x00000000 wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0x00000000 wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0x00000000 wait_for_completion_io +EXPORT_SYMBOL vmlinux 0x00000000 wait_for_completion_io_timeout +EXPORT_SYMBOL vmlinux 0x00000000 wait_for_completion_killable +EXPORT_SYMBOL vmlinux 0x00000000 wait_for_completion_killable_timeout +EXPORT_SYMBOL vmlinux 0x00000000 wait_for_completion_timeout +EXPORT_SYMBOL vmlinux 0x00000000 wait_for_key_construction +EXPORT_SYMBOL vmlinux 0x00000000 wait_for_random_bytes +EXPORT_SYMBOL vmlinux 0x00000000 wait_iff_congested +EXPORT_SYMBOL vmlinux 0x00000000 wait_on_page_bit +EXPORT_SYMBOL vmlinux 0x00000000 wait_on_page_bit_killable +EXPORT_SYMBOL vmlinux 0x00000000 wait_woken +EXPORT_SYMBOL vmlinux 0x00000000 wake_bit_function +EXPORT_SYMBOL vmlinux 0x00000000 wake_up_bit +EXPORT_SYMBOL vmlinux 0x00000000 wake_up_process +EXPORT_SYMBOL vmlinux 0x00000000 wake_up_var +EXPORT_SYMBOL vmlinux 0x00000000 watchdog_register_governor +EXPORT_SYMBOL vmlinux 0x00000000 watchdog_unregister_governor +EXPORT_SYMBOL vmlinux 0x00000000 wbinvd_on_all_cpus +EXPORT_SYMBOL vmlinux 0x00000000 wbinvd_on_cpu +EXPORT_SYMBOL vmlinux 0x00000000 wireless_send_event +EXPORT_SYMBOL vmlinux 0x00000000 wireless_spy_update +EXPORT_SYMBOL vmlinux 0x00000000 wl1251_get_platform_data +EXPORT_SYMBOL vmlinux 0x00000000 woken_wake_function +EXPORT_SYMBOL vmlinux 0x00000000 would_dump +EXPORT_SYMBOL vmlinux 0x00000000 write_cache_pages +EXPORT_SYMBOL vmlinux 0x00000000 write_dirty_buffer +EXPORT_SYMBOL vmlinux 0x00000000 write_inode_now +EXPORT_SYMBOL vmlinux 0x00000000 write_one_page +EXPORT_SYMBOL vmlinux 0x00000000 writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0x00000000 writeback_inodes_sb_nr +EXPORT_SYMBOL vmlinux 0x00000000 wrmsr_on_cpu +EXPORT_SYMBOL vmlinux 0x00000000 wrmsr_on_cpus +EXPORT_SYMBOL vmlinux 0x00000000 wrmsr_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x00000000 wrmsr_safe_regs +EXPORT_SYMBOL vmlinux 0x00000000 wrmsr_safe_regs_on_cpu +EXPORT_SYMBOL vmlinux 0x00000000 wrmsrl_on_cpu +EXPORT_SYMBOL vmlinux 0x00000000 wrmsrl_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x00000000 ww_mutex_lock +EXPORT_SYMBOL vmlinux 0x00000000 ww_mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0x00000000 ww_mutex_unlock +EXPORT_SYMBOL vmlinux 0x00000000 x86_apple_machine +EXPORT_SYMBOL vmlinux 0x00000000 x86_bios_cpu_apicid +EXPORT_SYMBOL vmlinux 0x00000000 x86_cpu_to_acpiid +EXPORT_SYMBOL vmlinux 0x00000000 x86_cpu_to_apicid +EXPORT_SYMBOL vmlinux 0x00000000 x86_cpu_to_node_map +EXPORT_SYMBOL vmlinux 0x00000000 x86_hyper_type +EXPORT_SYMBOL vmlinux 0x00000000 x86_match_cpu +EXPORT_SYMBOL vmlinux 0x00000000 xa_clear_mark +EXPORT_SYMBOL vmlinux 0x00000000 xa_destroy +EXPORT_SYMBOL vmlinux 0x00000000 xa_erase +EXPORT_SYMBOL vmlinux 0x00000000 xa_extract +EXPORT_SYMBOL vmlinux 0x00000000 xa_find +EXPORT_SYMBOL vmlinux 0x00000000 xa_find_after +EXPORT_SYMBOL vmlinux 0x00000000 xa_get_mark +EXPORT_SYMBOL vmlinux 0x00000000 xa_load +EXPORT_SYMBOL vmlinux 0x00000000 xa_set_mark +EXPORT_SYMBOL vmlinux 0x00000000 xa_store +EXPORT_SYMBOL vmlinux 0x00000000 xa_store_range +EXPORT_SYMBOL vmlinux 0x00000000 xattr_full_name +EXPORT_SYMBOL vmlinux 0x00000000 xdp_get_umem_from_qid +EXPORT_SYMBOL vmlinux 0x00000000 xen_alloc_p2m_entry +EXPORT_SYMBOL vmlinux 0x00000000 xen_arch_register_cpu +EXPORT_SYMBOL vmlinux 0x00000000 xen_arch_unregister_cpu +EXPORT_SYMBOL vmlinux 0x00000000 xen_clear_irq_pending +EXPORT_SYMBOL vmlinux 0x00000000 xen_poll_irq_timeout +EXPORT_SYMBOL vmlinux 0x00000000 xen_start_flags +EXPORT_SYMBOL vmlinux 0x00000000 xen_vcpu_id +EXPORT_SYMBOL vmlinux 0x00000000 xenbus_dev_request_and_reply +EXPORT_SYMBOL vmlinux 0x00000000 xfrm4_protocol_deregister +EXPORT_SYMBOL vmlinux 0x00000000 xfrm4_protocol_init +EXPORT_SYMBOL vmlinux 0x00000000 xfrm4_protocol_register +EXPORT_SYMBOL vmlinux 0x00000000 xfrm4_rcv +EXPORT_SYMBOL vmlinux 0x00000000 xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0x00000000 xfrm6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0x00000000 xfrm6_input_addr +EXPORT_SYMBOL vmlinux 0x00000000 xfrm6_protocol_deregister +EXPORT_SYMBOL vmlinux 0x00000000 xfrm6_protocol_register +EXPORT_SYMBOL vmlinux 0x00000000 xfrm6_rcv +EXPORT_SYMBOL vmlinux 0x00000000 xfrm6_rcv_spi +EXPORT_SYMBOL vmlinux 0x00000000 xfrm6_rcv_tnl +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_dev_state_flush +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_find_acq +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_flush_gc +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_if_register_cb +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_if_unregister_cb +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_init_replay +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_init_state +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_input +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_input_register_afinfo +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_input_resume +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_input_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_lookup +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_lookup_route +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_lookup_with_ifid +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_parse_spi +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_policy_hash_rebuild +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_policy_walk_done +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_policy_walk_init +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_register_km +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_register_type +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_register_type_offload +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_replay_seqhi +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_state_add +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_state_flush +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_state_free +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_state_insert +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_state_lookup_byspi +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_state_update +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_state_walk +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_state_walk_done +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_state_walk_init +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_trans_queue +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_trans_queue_net +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_unregister_type_offload +EXPORT_SYMBOL vmlinux 0x00000000 xfrm_user_policy +EXPORT_SYMBOL vmlinux 0x00000000 xps_needed +EXPORT_SYMBOL vmlinux 0x00000000 xps_rxqs_needed +EXPORT_SYMBOL vmlinux 0x00000000 xsk_clear_rx_need_wakeup +EXPORT_SYMBOL vmlinux 0x00000000 xsk_clear_tx_need_wakeup +EXPORT_SYMBOL vmlinux 0x00000000 xsk_set_rx_need_wakeup +EXPORT_SYMBOL vmlinux 0x00000000 xsk_set_tx_need_wakeup +EXPORT_SYMBOL vmlinux 0x00000000 xsk_umem_complete_tx +EXPORT_SYMBOL vmlinux 0x00000000 xsk_umem_consume_tx +EXPORT_SYMBOL vmlinux 0x00000000 xsk_umem_consume_tx_done +EXPORT_SYMBOL vmlinux 0x00000000 xsk_umem_has_addrs +EXPORT_SYMBOL vmlinux 0x00000000 xsk_umem_peek_addr +EXPORT_SYMBOL vmlinux 0x00000000 xsk_umem_release_addr +EXPORT_SYMBOL vmlinux 0x00000000 xsk_umem_uses_need_wakeup +EXPORT_SYMBOL vmlinux 0x00000000 xxh32 +EXPORT_SYMBOL vmlinux 0x00000000 xxh32_copy_state +EXPORT_SYMBOL vmlinux 0x00000000 xxh32_digest +EXPORT_SYMBOL vmlinux 0x00000000 xxh32_reset +EXPORT_SYMBOL vmlinux 0x00000000 xxh32_update +EXPORT_SYMBOL vmlinux 0x00000000 xxh64 +EXPORT_SYMBOL vmlinux 0x00000000 xxh64_copy_state +EXPORT_SYMBOL vmlinux 0x00000000 xxh64_digest +EXPORT_SYMBOL vmlinux 0x00000000 xxh64_reset +EXPORT_SYMBOL vmlinux 0x00000000 xxh64_update +EXPORT_SYMBOL vmlinux 0x00000000 xz_dec_end +EXPORT_SYMBOL vmlinux 0x00000000 xz_dec_init +EXPORT_SYMBOL vmlinux 0x00000000 xz_dec_reset +EXPORT_SYMBOL vmlinux 0x00000000 xz_dec_run +EXPORT_SYMBOL vmlinux 0x00000000 yield +EXPORT_SYMBOL vmlinux 0x00000000 zalloc_cpumask_var +EXPORT_SYMBOL vmlinux 0x00000000 zalloc_cpumask_var_node +EXPORT_SYMBOL vmlinux 0x00000000 zap_page_range +EXPORT_SYMBOL vmlinux 0x00000000 zero_fill_bio_iter +EXPORT_SYMBOL vmlinux 0x00000000 zero_pfn +EXPORT_SYMBOL vmlinux 0x00000000 zerocopy_sg_from_iter +EXPORT_SYMBOL vmlinux 0x00000000 zlib_deflate +EXPORT_SYMBOL vmlinux 0x00000000 zlib_deflateEnd +EXPORT_SYMBOL vmlinux 0x00000000 zlib_deflateInit2 +EXPORT_SYMBOL vmlinux 0x00000000 zlib_deflateReset +EXPORT_SYMBOL vmlinux 0x00000000 zlib_deflate_dfltcc_enabled +EXPORT_SYMBOL vmlinux 0x00000000 zlib_deflate_workspacesize +EXPORT_SYMBOL vmlinux 0x00000000 zlib_inflate +EXPORT_SYMBOL vmlinux 0x00000000 zlib_inflateEnd +EXPORT_SYMBOL vmlinux 0x00000000 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x00000000 zlib_inflateInit2 +EXPORT_SYMBOL vmlinux 0x00000000 zlib_inflateReset +EXPORT_SYMBOL vmlinux 0x00000000 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x00000000 zlib_inflate_workspacesize +EXPORT_SYMBOL vmlinux 0x00000000 zpool_has_pool +EXPORT_SYMBOL vmlinux 0x00000000 zpool_register_driver +EXPORT_SYMBOL vmlinux 0x00000000 zpool_unregister_driver +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-aesni-avx-x86_64 0x00000000 camellia_cbc_dec_16way +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-aesni-avx-x86_64 0x00000000 camellia_ctr_16way +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-aesni-avx-x86_64 0x00000000 camellia_ecb_dec_16way +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-aesni-avx-x86_64 0x00000000 camellia_ecb_enc_16way +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-aesni-avx-x86_64 0x00000000 camellia_xts_dec +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-aesni-avx-x86_64 0x00000000 camellia_xts_dec_16way +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-aesni-avx-x86_64 0x00000000 camellia_xts_enc +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-aesni-avx-x86_64 0x00000000 camellia_xts_enc_16way +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-aesni-avx-x86_64 0x00000000 xts_camellia_setkey +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-x86_64 0x00000000 __camellia_enc_blk +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-x86_64 0x00000000 __camellia_enc_blk_2way +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-x86_64 0x00000000 __camellia_setkey +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-x86_64 0x00000000 camellia_crypt_ctr +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-x86_64 0x00000000 camellia_crypt_ctr_2way +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-x86_64 0x00000000 camellia_dec_blk +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-x86_64 0x00000000 camellia_dec_blk_2way +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-x86_64 0x00000000 camellia_decrypt_cbc_2way +EXPORT_SYMBOL_GPL arch/x86/crypto/glue_helper 0x00000000 glue_cbc_decrypt_req_128bit +EXPORT_SYMBOL_GPL arch/x86/crypto/glue_helper 0x00000000 glue_cbc_encrypt_req_128bit +EXPORT_SYMBOL_GPL arch/x86/crypto/glue_helper 0x00000000 glue_ctr_req_128bit +EXPORT_SYMBOL_GPL arch/x86/crypto/glue_helper 0x00000000 glue_ecb_req_128bit +EXPORT_SYMBOL_GPL arch/x86/crypto/glue_helper 0x00000000 glue_xts_crypt_128bit_one +EXPORT_SYMBOL_GPL arch/x86/crypto/glue_helper 0x00000000 glue_xts_req_128bit +EXPORT_SYMBOL_GPL arch/x86/crypto/serpent-avx-x86_64 0x00000000 __serpent_crypt_ctr +EXPORT_SYMBOL_GPL arch/x86/crypto/serpent-avx-x86_64 0x00000000 serpent_cbc_dec_8way_avx +EXPORT_SYMBOL_GPL arch/x86/crypto/serpent-avx-x86_64 0x00000000 serpent_ctr_8way_avx +EXPORT_SYMBOL_GPL arch/x86/crypto/serpent-avx-x86_64 0x00000000 serpent_ecb_dec_8way_avx +EXPORT_SYMBOL_GPL arch/x86/crypto/serpent-avx-x86_64 0x00000000 serpent_ecb_enc_8way_avx +EXPORT_SYMBOL_GPL arch/x86/crypto/serpent-avx-x86_64 0x00000000 serpent_xts_dec +EXPORT_SYMBOL_GPL arch/x86/crypto/serpent-avx-x86_64 0x00000000 serpent_xts_dec_8way_avx +EXPORT_SYMBOL_GPL arch/x86/crypto/serpent-avx-x86_64 0x00000000 serpent_xts_enc +EXPORT_SYMBOL_GPL arch/x86/crypto/serpent-avx-x86_64 0x00000000 serpent_xts_enc_8way_avx +EXPORT_SYMBOL_GPL arch/x86/crypto/serpent-avx-x86_64 0x00000000 xts_serpent_setkey +EXPORT_SYMBOL_GPL arch/x86/crypto/twofish-x86_64 0x00000000 twofish_dec_blk +EXPORT_SYMBOL_GPL arch/x86/crypto/twofish-x86_64 0x00000000 twofish_enc_blk +EXPORT_SYMBOL_GPL arch/x86/crypto/twofish-x86_64-3way 0x00000000 __twofish_enc_blk_3way +EXPORT_SYMBOL_GPL arch/x86/crypto/twofish-x86_64-3way 0x00000000 twofish_dec_blk_3way +EXPORT_SYMBOL_GPL arch/x86/crypto/twofish-x86_64-3way 0x00000000 twofish_dec_blk_cbc_3way +EXPORT_SYMBOL_GPL arch/x86/crypto/twofish-x86_64-3way 0x00000000 twofish_enc_blk_ctr +EXPORT_SYMBOL_GPL arch/x86/crypto/twofish-x86_64-3way 0x00000000 twofish_enc_blk_ctr_3way +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 __gfn_to_pfn_memslot +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 __kvm_apic_update_irr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 __kvm_request_immediate_exit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 __kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 __tracepoint_kvm_apicv_update_request +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 __tracepoint_kvm_avic_incomplete_ipi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 __tracepoint_kvm_avic_unaccelerated_access +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 __tracepoint_kvm_cr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 __tracepoint_kvm_exit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 __tracepoint_kvm_fast_mmio +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 __tracepoint_kvm_inj_virq +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 __tracepoint_kvm_invlpga +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 __tracepoint_kvm_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 __tracepoint_kvm_nested_intercepts +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 __tracepoint_kvm_nested_intr_vmexit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 __tracepoint_kvm_nested_vmenter_failed +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 __tracepoint_kvm_nested_vmexit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 __tracepoint_kvm_nested_vmexit_inject +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 __tracepoint_kvm_nested_vmrun +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 __tracepoint_kvm_page_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 __tracepoint_kvm_pi_irte_update +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 __tracepoint_kvm_ple_window_update +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 __tracepoint_kvm_pml_full +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 __tracepoint_kvm_skinit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 __tracepoint_kvm_write_tsc_offset +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 __x86_set_memory_region +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 cpuid_query_maxphyaddr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 current_vcpu +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 enable_vmware_backdoor +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 gfn_to_hva +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 gfn_to_hva_memslot +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 gfn_to_memslot +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 gfn_to_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 gfn_to_page_many_atomic +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 gfn_to_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 gfn_to_pfn_atomic +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 gfn_to_pfn_memslot +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 gfn_to_pfn_memslot_atomic +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 gfn_to_pfn_prot +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 halt_poll_ns +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 halt_poll_ns_grow +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 halt_poll_ns_grow_start +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 halt_poll_ns_shrink +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 handle_fastpath_set_msr_irqoff +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 handle_ud +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_apic_match_dest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_apic_set_eoi_accelerated +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_apic_update_apicv +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_apic_update_irr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_apic_update_ppr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_apic_write_nodecode +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_apicv_activated +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_apicv_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_arch_end_assignment +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_arch_has_assigned_device +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_arch_has_noncoherent_dma +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_arch_no_poll +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_arch_register_noncoherent_dma +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_arch_start_assignment +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_arch_unregister_noncoherent_dma +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_can_post_timer_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_clear_dirty_log_protect +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_clear_guest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_clear_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_complete_insn_gp +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_cpu_get_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_cpu_has_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_cpuid +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_debugfs_dir +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_default_tsc_scaling_ratio +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_define_shared_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_deliver_exception_payload +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_disable_largepages +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_disable_tdp +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_emulate_cpuid +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_emulate_halt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_emulate_hypercall +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_emulate_instruction +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_emulate_instruction_from_buffer +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_emulate_rdmsr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_emulate_wbinvd +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_emulate_wrmsr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_enable_efer_bits +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_enable_tdp +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_exit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_fast_pio +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_find_cpuid_entry +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_flush_remote_tlbs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_get_apic_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_get_apic_mode +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_get_cr8 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_get_cs_db_l_bits +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_get_dirty_log +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_get_dirty_log_protect +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_get_dr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_get_kvm +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_get_linear_rip +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_get_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_get_msr_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_get_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_get_rflags +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_gfn_to_hva_cache_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_handle_page_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_has_tsc_control +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_hv_assist_page_enabled +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_hv_get_assist_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_init_mmu +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_init_shadow_ept_mmu +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_init_shadow_mmu +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_inject_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_inject_page_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_inject_pending_timer_irqs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_inject_realmode_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_intr_is_single_vcpu +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_io_bus_get_dev +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_io_bus_write +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_irq_has_notifier +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_is_linear_rip +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_is_visible_gfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_lapic_expired_hv_timer +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_lapic_find_highest_irr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_lapic_hv_timer_in_use +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_lapic_reg_read +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_lapic_reg_write +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_lapic_set_eoi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_lapic_switch_to_hv_timer +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_lapic_switch_to_sw_timer +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_lmsw +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_load_guest_xsave_state +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_load_host_xsave_state +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_map_gfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_max_guest_tsc_khz +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_max_tsc_scaling_ratio +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_mce_cap_supported +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_mmu_clear_dirty_pt_masked +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_mmu_free_roots +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_mmu_invlpg +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_mmu_invpcid_gva +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_mmu_load +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_mmu_new_cr3 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_mmu_page_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_mmu_reset_context +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_mmu_set_mask_ptes +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_mmu_set_mmio_spte_mask +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_mmu_slot_largepage_remove_write_access +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_mmu_slot_leaf_clear_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_mmu_slot_set_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_mmu_sync_roots +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_mmu_unload +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_mmu_unprotect_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_mmu_unprotect_page_virt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_mpx_supported +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_mtrr_get_guest_memory_type +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_mtrr_valid +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_no_apic_vcpu +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_page_track_register_notifier +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_page_track_unregister_notifier +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_put_kvm +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_put_kvm_no_destroy +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_queue_exception +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_queue_exception_e +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_rdpmc +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_read_guest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_read_guest_cached +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_read_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_read_guest_page_mmu +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_read_guest_virt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_read_l1_tsc +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_rebooting +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_release_page_clean +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_release_page_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_release_pfn_clean +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_release_pfn_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_request_apicv_update +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_requeue_exception +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_requeue_exception_e +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_require_cpl +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_require_dr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_scale_tsc +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_set_apic_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_set_cr0 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_set_cr3 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_set_cr4 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_set_cr8 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_set_dr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_set_msi_irq +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_set_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_set_msr_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_set_pfn_accessed +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_set_pfn_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_set_rflags +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_set_shared_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_set_xcr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_skip_emulated_instruction +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_slot_page_track_add_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_slot_page_track_remove_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_spec_ctrl_valid_bits +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_spurious_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_task_switch +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_tsc_scaling_ratio_frac_bits +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_unmap_gfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_valid_efer +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_vcpu_block +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_vcpu_destroy +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_vcpu_gfn_to_hva +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_vcpu_gfn_to_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_vcpu_gfn_to_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_vcpu_gfn_to_pfn_atomic +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_vcpu_halt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_vcpu_is_reset_bsp +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_vcpu_kick +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_vcpu_map +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_vcpu_mark_page_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_vcpu_on_spin +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_vcpu_read_guest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_vcpu_read_guest_atomic +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_vcpu_read_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_vcpu_unmap +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_vcpu_update_apicv +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_vcpu_wake_up +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_vcpu_write_guest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_vcpu_write_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_vcpu_yield_to +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_wait_lapic_expire +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_write_guest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_write_guest_cached +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_write_guest_offset_cached +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_write_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_write_guest_virt_system +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_write_tsc +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 kvm_x86_ops +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 load_pdptrs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 mark_page_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 pdptrs_changed +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 reprogram_counter +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 reprogram_fixed_counter +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 reprogram_gp_counter +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 reset_shadow_zero_bits_mask +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 vcpu_load +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 vcpu_put +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00000000 x86_fpu_cache +EXPORT_SYMBOL_GPL crypto/af_alg 0x00000000 af_alg_accept +EXPORT_SYMBOL_GPL crypto/af_alg 0x00000000 af_alg_alloc_areq +EXPORT_SYMBOL_GPL crypto/af_alg 0x00000000 af_alg_async_cb +EXPORT_SYMBOL_GPL crypto/af_alg 0x00000000 af_alg_count_tsgl +EXPORT_SYMBOL_GPL crypto/af_alg 0x00000000 af_alg_free_resources +EXPORT_SYMBOL_GPL crypto/af_alg 0x00000000 af_alg_free_sg +EXPORT_SYMBOL_GPL crypto/af_alg 0x00000000 af_alg_get_rsgl +EXPORT_SYMBOL_GPL crypto/af_alg 0x00000000 af_alg_make_sg +EXPORT_SYMBOL_GPL crypto/af_alg 0x00000000 af_alg_poll +EXPORT_SYMBOL_GPL crypto/af_alg 0x00000000 af_alg_pull_tsgl +EXPORT_SYMBOL_GPL crypto/af_alg 0x00000000 af_alg_register_type +EXPORT_SYMBOL_GPL crypto/af_alg 0x00000000 af_alg_release +EXPORT_SYMBOL_GPL crypto/af_alg 0x00000000 af_alg_release_parent +EXPORT_SYMBOL_GPL crypto/af_alg 0x00000000 af_alg_sendmsg +EXPORT_SYMBOL_GPL crypto/af_alg 0x00000000 af_alg_sendpage +EXPORT_SYMBOL_GPL crypto/af_alg 0x00000000 af_alg_unregister_type +EXPORT_SYMBOL_GPL crypto/af_alg 0x00000000 af_alg_wait_for_data +EXPORT_SYMBOL_GPL crypto/af_alg 0x00000000 af_alg_wmem_wakeup +EXPORT_SYMBOL_GPL crypto/asymmetric_keys/asym_tpm 0x00000000 asym_tpm_subtype +EXPORT_SYMBOL_GPL crypto/asymmetric_keys/asym_tpm 0x00000000 tpm_key_create +EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0x00000000 async_memcpy +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x00000000 async_gen_syndrome +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x00000000 async_syndrome_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x00000000 async_raid6_2data_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x00000000 async_raid6_datap_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x00000000 __async_tx_find_channel +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x00000000 async_trigger_callback +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x00000000 async_tx_quiesce +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x00000000 async_tx_submit +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x00000000 async_xor +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x00000000 async_xor_val +EXPORT_SYMBOL_GPL crypto/authenc 0x00000000 crypto_authenc_extractkeys +EXPORT_SYMBOL_GPL crypto/blowfish_common 0x00000000 blowfish_setkey +EXPORT_SYMBOL_GPL crypto/cast5_generic 0x00000000 __cast5_decrypt +EXPORT_SYMBOL_GPL crypto/cast5_generic 0x00000000 __cast5_encrypt +EXPORT_SYMBOL_GPL crypto/cast5_generic 0x00000000 cast5_setkey +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x00000000 __cast6_decrypt +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x00000000 __cast6_encrypt +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x00000000 __cast6_setkey +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x00000000 cast6_setkey +EXPORT_SYMBOL_GPL crypto/cast_common 0x00000000 cast_s1 +EXPORT_SYMBOL_GPL crypto/cast_common 0x00000000 cast_s2 +EXPORT_SYMBOL_GPL crypto/cast_common 0x00000000 cast_s3 +EXPORT_SYMBOL_GPL crypto/cast_common 0x00000000 cast_s4 +EXPORT_SYMBOL_GPL crypto/cryptd 0x00000000 cryptd_aead_child +EXPORT_SYMBOL_GPL crypto/cryptd 0x00000000 cryptd_aead_queued +EXPORT_SYMBOL_GPL crypto/cryptd 0x00000000 cryptd_ahash_child +EXPORT_SYMBOL_GPL crypto/cryptd 0x00000000 cryptd_ahash_queued +EXPORT_SYMBOL_GPL crypto/cryptd 0x00000000 cryptd_alloc_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0x00000000 cryptd_alloc_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0x00000000 cryptd_alloc_skcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0x00000000 cryptd_free_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0x00000000 cryptd_free_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0x00000000 cryptd_free_skcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0x00000000 cryptd_shash_desc +EXPORT_SYMBOL_GPL crypto/cryptd 0x00000000 cryptd_skcipher_child +EXPORT_SYMBOL_GPL crypto/cryptd 0x00000000 cryptd_skcipher_queued +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x00000000 crypto_engine_alloc_init +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x00000000 crypto_engine_exit +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x00000000 crypto_engine_start +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x00000000 crypto_engine_stop +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x00000000 crypto_finalize_aead_request +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x00000000 crypto_finalize_akcipher_request +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x00000000 crypto_finalize_hash_request +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x00000000 crypto_finalize_skcipher_request +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x00000000 crypto_transfer_aead_request_to_engine +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x00000000 crypto_transfer_akcipher_request_to_engine +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x00000000 crypto_transfer_hash_request_to_engine +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x00000000 crypto_transfer_skcipher_request_to_engine +EXPORT_SYMBOL_GPL crypto/crypto_simd 0x00000000 simd_aead_create +EXPORT_SYMBOL_GPL crypto/crypto_simd 0x00000000 simd_aead_create_compat +EXPORT_SYMBOL_GPL crypto/crypto_simd 0x00000000 simd_aead_free +EXPORT_SYMBOL_GPL crypto/crypto_simd 0x00000000 simd_register_aeads_compat +EXPORT_SYMBOL_GPL crypto/crypto_simd 0x00000000 simd_register_skciphers_compat +EXPORT_SYMBOL_GPL crypto/crypto_simd 0x00000000 simd_skcipher_create +EXPORT_SYMBOL_GPL crypto/crypto_simd 0x00000000 simd_skcipher_create_compat +EXPORT_SYMBOL_GPL crypto/crypto_simd 0x00000000 simd_skcipher_free +EXPORT_SYMBOL_GPL crypto/crypto_simd 0x00000000 simd_unregister_aeads +EXPORT_SYMBOL_GPL crypto/crypto_simd 0x00000000 simd_unregister_skciphers +EXPORT_SYMBOL_GPL crypto/ecdh_generic 0x00000000 crypto_ecdh_decode_key +EXPORT_SYMBOL_GPL crypto/ecdh_generic 0x00000000 crypto_ecdh_encode_key +EXPORT_SYMBOL_GPL crypto/ecdh_generic 0x00000000 crypto_ecdh_key_len +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x00000000 __serpent_decrypt +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x00000000 __serpent_encrypt +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x00000000 __serpent_setkey +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x00000000 serpent_setkey +EXPORT_SYMBOL_GPL crypto/sm3_generic 0x00000000 sm3_zero_message_hash +EXPORT_SYMBOL_GPL crypto/sm4_generic 0x00000000 crypto_sm4_decrypt +EXPORT_SYMBOL_GPL crypto/sm4_generic 0x00000000 crypto_sm4_encrypt +EXPORT_SYMBOL_GPL crypto/sm4_generic 0x00000000 crypto_sm4_expand_key +EXPORT_SYMBOL_GPL crypto/sm4_generic 0x00000000 crypto_sm4_set_key +EXPORT_SYMBOL_GPL crypto/twofish_common 0x00000000 __twofish_setkey +EXPORT_SYMBOL_GPL crypto/twofish_common 0x00000000 twofish_setkey +EXPORT_SYMBOL_GPL drivers/acpi/nfit/nfit 0x00000000 __acpi_nfit_notify +EXPORT_SYMBOL_GPL drivers/acpi/nfit/nfit 0x00000000 __acpi_nvdimm_notify +EXPORT_SYMBOL_GPL drivers/acpi/nfit/nfit 0x00000000 acpi_nfit_ctl +EXPORT_SYMBOL_GPL drivers/acpi/nfit/nfit 0x00000000 acpi_nfit_desc_init +EXPORT_SYMBOL_GPL drivers/acpi/nfit/nfit 0x00000000 acpi_nfit_init +EXPORT_SYMBOL_GPL drivers/acpi/nfit/nfit 0x00000000 acpi_nfit_shutdown +EXPORT_SYMBOL_GPL drivers/acpi/nfit/nfit 0x00000000 nfit_get_smbios_id +EXPORT_SYMBOL_GPL drivers/acpi/sbshc 0x00000000 acpi_smbus_read +EXPORT_SYMBOL_GPL drivers/acpi/sbshc 0x00000000 acpi_smbus_register_callback +EXPORT_SYMBOL_GPL drivers/acpi/sbshc 0x00000000 acpi_smbus_unregister_callback +EXPORT_SYMBOL_GPL drivers/acpi/sbshc 0x00000000 acpi_smbus_write +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x00000000 ahci_check_ready +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x00000000 ahci_dev_classify +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x00000000 ahci_do_hardreset +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x00000000 ahci_do_softreset +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x00000000 ahci_error_handler +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x00000000 ahci_fill_cmd_slot +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x00000000 ahci_handle_port_intr +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x00000000 ahci_host_activate +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x00000000 ahci_ignore_sss +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x00000000 ahci_init_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x00000000 ahci_kick_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x00000000 ahci_ops +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x00000000 ahci_pmp_retry_srst_ops +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x00000000 ahci_port_resume +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x00000000 ahci_print_info +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x00000000 ahci_qc_issue +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x00000000 ahci_reset_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x00000000 ahci_reset_em +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x00000000 ahci_save_initial_config +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x00000000 ahci_sdev_attrs +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x00000000 ahci_set_em_messages +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x00000000 ahci_shost_attrs +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x00000000 ahci_start_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x00000000 ahci_start_fis_rx +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x00000000 ahci_stop_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x00000000 ahci_platform_disable_clks +EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x00000000 ahci_platform_disable_phys +EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x00000000 ahci_platform_disable_regulators +EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x00000000 ahci_platform_disable_resources +EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x00000000 ahci_platform_enable_clks +EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x00000000 ahci_platform_enable_phys +EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x00000000 ahci_platform_enable_regulators +EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x00000000 ahci_platform_enable_resources +EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x00000000 ahci_platform_get_resources +EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x00000000 ahci_platform_init_host +EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x00000000 ahci_platform_ops +EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x00000000 ahci_platform_resume +EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x00000000 ahci_platform_resume_host +EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x00000000 ahci_platform_shutdown +EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x00000000 ahci_platform_suspend +EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x00000000 ahci_platform_suspend_host +EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0x00000000 __pata_platform_probe +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x00000000 cfag12864b_buffer +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x00000000 cfag12864b_disable +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x00000000 cfag12864b_enable +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x00000000 cfag12864b_getrate +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x00000000 cfag12864b_isenabled +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x00000000 cfag12864b_isinited +EXPORT_SYMBOL_GPL drivers/auxdisplay/charlcd 0x00000000 charlcd_alloc +EXPORT_SYMBOL_GPL drivers/auxdisplay/charlcd 0x00000000 charlcd_free +EXPORT_SYMBOL_GPL drivers/auxdisplay/charlcd 0x00000000 charlcd_poke +EXPORT_SYMBOL_GPL drivers/auxdisplay/charlcd 0x00000000 charlcd_register +EXPORT_SYMBOL_GPL drivers/auxdisplay/charlcd 0x00000000 charlcd_unregister +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x00000000 ks0108_address +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x00000000 ks0108_displaystate +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x00000000 ks0108_isinited +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x00000000 ks0108_page +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x00000000 ks0108_startline +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x00000000 ks0108_writecontrol +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x00000000 ks0108_writedata +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-i3c 0x00000000 __devm_regmap_init_i3c +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-sccb 0x00000000 __devm_regmap_init_sccb +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-sccb 0x00000000 __regmap_init_sccb +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-sdw 0x00000000 __devm_regmap_init_sdw +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-sdw 0x00000000 __regmap_init_sdw +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-slimbus 0x00000000 __devm_regmap_init_slimbus +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-slimbus 0x00000000 __regmap_init_slimbus +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-spmi 0x00000000 __devm_regmap_init_spmi_base +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-spmi 0x00000000 __devm_regmap_init_spmi_ext +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-spmi 0x00000000 __regmap_init_spmi_base +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-spmi 0x00000000 __regmap_init_spmi_ext +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-w1 0x00000000 __devm_regmap_init_w1 +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-w1 0x00000000 __regmap_init_w1 +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x00000000 __bcma_driver_register +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x00000000 bcma_chipco_b_mii_write +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x00000000 bcma_chipco_chipctl_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x00000000 bcma_chipco_get_alp_clock +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x00000000 bcma_chipco_gpio_control +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x00000000 bcma_chipco_gpio_out +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x00000000 bcma_chipco_gpio_outen +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x00000000 bcma_chipco_pll_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x00000000 bcma_chipco_pll_read +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x00000000 bcma_chipco_pll_write +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x00000000 bcma_chipco_regctl_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x00000000 bcma_core_disable +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x00000000 bcma_core_enable +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x00000000 bcma_core_is_enabled +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x00000000 bcma_core_pci_power_save +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x00000000 bcma_core_pll_ctl +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x00000000 bcma_core_set_clockmode +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x00000000 bcma_driver_unregister +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x00000000 bcma_find_core_unit +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x00000000 bcma_host_pci_down +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x00000000 bcma_host_pci_irq_ctl +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x00000000 bcma_host_pci_up +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x00000000 bcma_pmu_get_bus_clock +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x00000000 bcma_pmu_spuravoid_pllupdate +EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0x00000000 btbcm_check_bdaddr +EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0x00000000 btbcm_finalize +EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0x00000000 btbcm_initialize +EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0x00000000 btbcm_read_pcm_int_params +EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0x00000000 btbcm_set_bdaddr +EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0x00000000 btbcm_setup_apple +EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0x00000000 btbcm_setup_patchram +EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0x00000000 btbcm_write_pcm_int_params +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x00000000 btintel_check_bdaddr +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x00000000 btintel_download_firmware +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x00000000 btintel_enter_mfg +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x00000000 btintel_exit_mfg +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x00000000 btintel_hw_error +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x00000000 btintel_load_ddc_config +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x00000000 btintel_read_boot_params +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x00000000 btintel_read_version +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x00000000 btintel_regmap_init +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x00000000 btintel_reset_to_bootloader +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x00000000 btintel_secure_send +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x00000000 btintel_send_intel_reset +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x00000000 btintel_set_bdaddr +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x00000000 btintel_set_diag +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x00000000 btintel_set_diag_mfg +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x00000000 btintel_set_event_mask +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x00000000 btintel_set_event_mask_mfg +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x00000000 btintel_version_info +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x00000000 btmrvl_add_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x00000000 btmrvl_check_evtpkt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x00000000 btmrvl_enable_hs +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x00000000 btmrvl_enable_ps +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x00000000 btmrvl_interrupt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x00000000 btmrvl_process_event +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x00000000 btmrvl_pscan_window_reporting +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x00000000 btmrvl_register_hdev +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x00000000 btmrvl_remove_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x00000000 btmrvl_send_hscfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x00000000 btmrvl_send_module_cfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btqca 0x00000000 qca_read_soc_version +EXPORT_SYMBOL_GPL drivers/bluetooth/btqca 0x00000000 qca_send_pre_shutdown_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btqca 0x00000000 qca_set_bdaddr +EXPORT_SYMBOL_GPL drivers/bluetooth/btqca 0x00000000 qca_set_bdaddr_rome +EXPORT_SYMBOL_GPL drivers/bluetooth/btqca 0x00000000 qca_uart_setup +EXPORT_SYMBOL_GPL drivers/bluetooth/btrtl 0x00000000 btrtl_download_firmware +EXPORT_SYMBOL_GPL drivers/bluetooth/btrtl 0x00000000 btrtl_free +EXPORT_SYMBOL_GPL drivers/bluetooth/btrtl 0x00000000 btrtl_get_uart_settings +EXPORT_SYMBOL_GPL drivers/bluetooth/btrtl 0x00000000 btrtl_initialize +EXPORT_SYMBOL_GPL drivers/bluetooth/btrtl 0x00000000 btrtl_setup_realtek +EXPORT_SYMBOL_GPL drivers/bluetooth/btrtl 0x00000000 btrtl_shutdown_realtek +EXPORT_SYMBOL_GPL drivers/bluetooth/hci_uart 0x00000000 h4_recv_buf +EXPORT_SYMBOL_GPL drivers/bluetooth/hci_uart 0x00000000 hci_uart_register_device +EXPORT_SYMBOL_GPL drivers/bluetooth/hci_uart 0x00000000 hci_uart_tx_wakeup +EXPORT_SYMBOL_GPL drivers/bluetooth/hci_uart 0x00000000 hci_uart_unregister_device +EXPORT_SYMBOL_GPL drivers/counter/counter 0x00000000 counter_count_direction_str +EXPORT_SYMBOL_GPL drivers/counter/counter 0x00000000 counter_count_enum_available_read +EXPORT_SYMBOL_GPL drivers/counter/counter 0x00000000 counter_count_enum_read +EXPORT_SYMBOL_GPL drivers/counter/counter 0x00000000 counter_count_enum_write +EXPORT_SYMBOL_GPL drivers/counter/counter 0x00000000 counter_count_mode_str +EXPORT_SYMBOL_GPL drivers/counter/counter 0x00000000 counter_device_enum_available_read +EXPORT_SYMBOL_GPL drivers/counter/counter 0x00000000 counter_device_enum_read +EXPORT_SYMBOL_GPL drivers/counter/counter 0x00000000 counter_device_enum_write +EXPORT_SYMBOL_GPL drivers/counter/counter 0x00000000 counter_register +EXPORT_SYMBOL_GPL drivers/counter/counter 0x00000000 counter_signal_enum_available_read +EXPORT_SYMBOL_GPL drivers/counter/counter 0x00000000 counter_signal_enum_read +EXPORT_SYMBOL_GPL drivers/counter/counter 0x00000000 counter_signal_enum_write +EXPORT_SYMBOL_GPL drivers/counter/counter 0x00000000 counter_unregister +EXPORT_SYMBOL_GPL drivers/counter/counter 0x00000000 devm_counter_register +EXPORT_SYMBOL_GPL drivers/counter/counter 0x00000000 devm_counter_unregister +EXPORT_SYMBOL_GPL drivers/cpufreq/speedstep-lib 0x00000000 speedstep_detect_processor +EXPORT_SYMBOL_GPL drivers/cpufreq/speedstep-lib 0x00000000 speedstep_get_freqs +EXPORT_SYMBOL_GPL drivers/cpufreq/speedstep-lib 0x00000000 speedstep_get_frequency +EXPORT_SYMBOL_GPL drivers/crypto/ccp/ccp 0x00000000 ccp_enqueue_cmd +EXPORT_SYMBOL_GPL drivers/crypto/ccp/ccp 0x00000000 ccp_present +EXPORT_SYMBOL_GPL drivers/crypto/ccp/ccp 0x00000000 ccp_version +EXPORT_SYMBOL_GPL drivers/crypto/ccp/ccp 0x00000000 psp_copy_user_blob +EXPORT_SYMBOL_GPL drivers/crypto/ccp/ccp 0x00000000 sev_guest_activate +EXPORT_SYMBOL_GPL drivers/crypto/ccp/ccp 0x00000000 sev_guest_deactivate +EXPORT_SYMBOL_GPL drivers/crypto/ccp/ccp 0x00000000 sev_guest_decommission +EXPORT_SYMBOL_GPL drivers/crypto/ccp/ccp 0x00000000 sev_guest_df_flush +EXPORT_SYMBOL_GPL drivers/crypto/ccp/ccp 0x00000000 sev_issue_cmd_external_user +EXPORT_SYMBOL_GPL drivers/crypto/ccp/ccp 0x00000000 sev_platform_init +EXPORT_SYMBOL_GPL drivers/crypto/ccp/ccp 0x00000000 sev_platform_status +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_cfg_add_key_value_param +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_cfg_dev_add +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_cfg_dev_remove +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_cfg_section_add +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_clean_vf_map +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_cleanup_etr_data +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_dev_get +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_dev_in_use +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_dev_init +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_dev_put +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_dev_shutdown +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_dev_start +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_dev_started +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_dev_stop +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_devmgr_add_dev +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_devmgr_in_reset +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_devmgr_pci_to_accel_dev +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_devmgr_rm_dev +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_devmgr_update_class_index +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_disable_aer +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_disable_sriov +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_enable_aer +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_enable_vf2pf_comms +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_exit_admin_comms +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_exit_arb +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_init_admin_comms +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_init_arb +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_init_etr_data +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_iov_putmsg +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_isr_resource_alloc +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_isr_resource_free +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_reset_flr +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_reset_sbr +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_send_admin_init +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_sriov_configure +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_vf2pf_init +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_vf2pf_shutdown +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_vf_isr_resource_alloc +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 adf_vf_isr_resource_free +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x00000000 qat_crypto_dev_config +EXPORT_SYMBOL_GPL drivers/dax/device_dax 0x00000000 dev_dax_probe +EXPORT_SYMBOL_GPL drivers/dax/pmem/dax_pmem_core 0x00000000 __dax_pmem_probe +EXPORT_SYMBOL_GPL drivers/dca/dca 0x00000000 alloc_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0x00000000 dca3_get_tag +EXPORT_SYMBOL_GPL drivers/dca/dca 0x00000000 dca_add_requester +EXPORT_SYMBOL_GPL drivers/dca/dca 0x00000000 dca_get_tag +EXPORT_SYMBOL_GPL drivers/dca/dca 0x00000000 dca_register_notify +EXPORT_SYMBOL_GPL drivers/dca/dca 0x00000000 dca_remove_requester +EXPORT_SYMBOL_GPL drivers/dca/dca 0x00000000 dca_unregister_notify +EXPORT_SYMBOL_GPL drivers/dca/dca 0x00000000 free_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0x00000000 register_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0x00000000 unregister_dca_provider +EXPORT_SYMBOL_GPL drivers/dma/dw-edma/dw-edma 0x00000000 dw_edma_probe +EXPORT_SYMBOL_GPL drivers/dma/dw-edma/dw-edma 0x00000000 dw_edma_remove +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x00000000 do_dw_dma_disable +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x00000000 do_dw_dma_enable +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x00000000 dw_dma_filter +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x00000000 dw_dma_probe +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x00000000 dw_dma_remove +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x00000000 idma32_dma_probe +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x00000000 idma32_dma_remove +EXPORT_SYMBOL_GPL drivers/dma/hsu/hsu_dma 0x00000000 hsu_dma_do_irq +EXPORT_SYMBOL_GPL drivers/dma/hsu/hsu_dma 0x00000000 hsu_dma_get_status +EXPORT_SYMBOL_GPL drivers/dma/hsu/hsu_dma 0x00000000 hsu_dma_probe +EXPORT_SYMBOL_GPL drivers/dma/hsu/hsu_dma 0x00000000 hsu_dma_remove +EXPORT_SYMBOL_GPL drivers/dma/qcom/hdma_mgmt 0x00000000 hidma_mgmt_init_sys +EXPORT_SYMBOL_GPL drivers/dma/qcom/hdma_mgmt 0x00000000 hidma_mgmt_setup +EXPORT_SYMBOL_GPL drivers/dma/virt-dma 0x00000000 vchan_dma_desc_free_list +EXPORT_SYMBOL_GPL drivers/dma/virt-dma 0x00000000 vchan_find_desc +EXPORT_SYMBOL_GPL drivers/dma/virt-dma 0x00000000 vchan_init +EXPORT_SYMBOL_GPL drivers/dma/virt-dma 0x00000000 vchan_tx_desc_free +EXPORT_SYMBOL_GPL drivers/dma/virt-dma 0x00000000 vchan_tx_submit +EXPORT_SYMBOL_GPL drivers/edac/amd64_edac_mod 0x00000000 amd64_get_dram_hole_info +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x00000000 amd_register_ecc_decoder +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x00000000 amd_report_gart_errors +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x00000000 amd_unregister_ecc_decoder +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x00000000 pp_msgs +EXPORT_SYMBOL_GPL drivers/firewire/firewire-core 0x00000000 fw_card_release +EXPORT_SYMBOL_GPL drivers/fpga/altera-pr-ip-core 0x00000000 alt_pr_register +EXPORT_SYMBOL_GPL drivers/fpga/altera-pr-ip-core 0x00000000 alt_pr_unregister +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x00000000 __dfl_fpga_cdev_find_port +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x00000000 dfl_fpga_cdev_assign_port +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x00000000 dfl_fpga_cdev_config_ports_pf +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x00000000 dfl_fpga_cdev_config_ports_vf +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x00000000 dfl_fpga_cdev_release_port +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x00000000 dfl_fpga_check_port_id +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x00000000 dfl_fpga_dev_feature_init +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x00000000 dfl_fpga_dev_feature_uinit +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x00000000 dfl_fpga_dev_ops_register +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x00000000 dfl_fpga_dev_ops_unregister +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x00000000 dfl_fpga_enum_info_add_dfl +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x00000000 dfl_fpga_enum_info_alloc +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x00000000 dfl_fpga_enum_info_free +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x00000000 dfl_fpga_feature_devs_enumerate +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x00000000 dfl_fpga_feature_devs_remove +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x00000000 dfl_fpga_port_ops_add +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x00000000 dfl_fpga_port_ops_del +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x00000000 dfl_fpga_port_ops_get +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x00000000 dfl_fpga_port_ops_put +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x00000000 devm_fpga_bridge_create +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x00000000 fpga_bridge_create +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x00000000 fpga_bridge_disable +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x00000000 fpga_bridge_enable +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x00000000 fpga_bridge_free +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x00000000 fpga_bridge_get +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x00000000 fpga_bridge_get_to_list +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x00000000 fpga_bridge_put +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x00000000 fpga_bridge_register +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x00000000 fpga_bridge_unregister +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x00000000 fpga_bridges_disable +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x00000000 fpga_bridges_enable +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x00000000 fpga_bridges_put +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x00000000 of_fpga_bridge_get +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x00000000 of_fpga_bridge_get_to_list +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x00000000 devm_fpga_mgr_create +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x00000000 fpga_image_info_alloc +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x00000000 fpga_image_info_free +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x00000000 fpga_mgr_create +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x00000000 fpga_mgr_free +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x00000000 fpga_mgr_get +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x00000000 fpga_mgr_load +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x00000000 fpga_mgr_lock +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x00000000 fpga_mgr_put +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x00000000 fpga_mgr_register +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x00000000 fpga_mgr_unlock +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x00000000 fpga_mgr_unregister +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x00000000 of_fpga_mgr_get +EXPORT_SYMBOL_GPL drivers/fpga/fpga-region 0x00000000 devm_fpga_region_create +EXPORT_SYMBOL_GPL drivers/fpga/fpga-region 0x00000000 fpga_region_class_find +EXPORT_SYMBOL_GPL drivers/fpga/fpga-region 0x00000000 fpga_region_create +EXPORT_SYMBOL_GPL drivers/fpga/fpga-region 0x00000000 fpga_region_free +EXPORT_SYMBOL_GPL drivers/fpga/fpga-region 0x00000000 fpga_region_program_fpga +EXPORT_SYMBOL_GPL drivers/fpga/fpga-region 0x00000000 fpga_region_register +EXPORT_SYMBOL_GPL drivers/fpga/fpga-region 0x00000000 fpga_region_unregister +EXPORT_SYMBOL_GPL drivers/gnss/gnss 0x00000000 gnss_allocate_device +EXPORT_SYMBOL_GPL drivers/gnss/gnss 0x00000000 gnss_deregister_device +EXPORT_SYMBOL_GPL drivers/gnss/gnss 0x00000000 gnss_insert_raw +EXPORT_SYMBOL_GPL drivers/gnss/gnss 0x00000000 gnss_put_device +EXPORT_SYMBOL_GPL drivers/gnss/gnss 0x00000000 gnss_register_device +EXPORT_SYMBOL_GPL drivers/gnss/gnss-serial 0x00000000 gnss_serial_allocate +EXPORT_SYMBOL_GPL drivers/gnss/gnss-serial 0x00000000 gnss_serial_deregister +EXPORT_SYMBOL_GPL drivers/gnss/gnss-serial 0x00000000 gnss_serial_free +EXPORT_SYMBOL_GPL drivers/gnss/gnss-serial 0x00000000 gnss_serial_pm_ops +EXPORT_SYMBOL_GPL drivers/gnss/gnss-serial 0x00000000 gnss_serial_register +EXPORT_SYMBOL_GPL drivers/gpio/gpio-generic 0x00000000 bgpio_init +EXPORT_SYMBOL_GPL drivers/gpio/gpio-max730x 0x00000000 __max730x_probe +EXPORT_SYMBOL_GPL drivers/gpio/gpio-max730x 0x00000000 __max730x_remove +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0x00000000 analogix_dp_bind +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0x00000000 analogix_dp_probe +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0x00000000 analogix_dp_remove +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0x00000000 analogix_dp_resume +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0x00000000 analogix_dp_start_crc +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0x00000000 analogix_dp_stop_crc +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0x00000000 analogix_dp_suspend +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0x00000000 analogix_dp_unbind +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0x00000000 anx_dp_aux_transfer +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x00000000 drm_bus_flags_from_videomode +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x00000000 drm_class_device_register +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x00000000 drm_class_device_unregister +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x00000000 drm_crtc_add_crc_entry +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x00000000 drm_display_mode_from_videomode +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x00000000 drm_display_mode_to_videomode +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x00000000 drm_do_get_edid +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x00000000 drm_gem_cma_create +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x00000000 drm_gem_cma_dumb_create +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x00000000 drm_gem_cma_dumb_create_internal +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x00000000 drm_gem_cma_free_object +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x00000000 drm_gem_cma_mmap +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x00000000 drm_gem_cma_prime_get_sg_table +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x00000000 drm_gem_cma_prime_import_sg_table +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x00000000 drm_gem_cma_prime_mmap +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x00000000 drm_gem_cma_prime_vmap +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x00000000 drm_gem_cma_prime_vunmap +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x00000000 drm_gem_cma_vm_ops +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x00000000 drm_gem_dumb_map_offset +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x00000000 drm_gem_shmem_create +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x00000000 drm_gem_shmem_dumb_create +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x00000000 drm_gem_shmem_free_object +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x00000000 drm_gem_shmem_get_pages_sgt +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x00000000 drm_gem_shmem_get_sg_table +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x00000000 drm_gem_shmem_mmap +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x00000000 drm_gem_shmem_prime_import_sg_table +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x00000000 drm_hdcp_check_ksvs_revoked +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_cma_get_gem_addr +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_fb_cma_get_gem_obj +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_gem_fb_create +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_gem_fb_create_with_dirty +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_gem_fb_create_with_funcs +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_gem_fb_get_obj +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x00000000 drm_gem_fb_prepare_fb +EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x00000000 i915_gpu_busy +EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x00000000 i915_gpu_lower +EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x00000000 i915_gpu_raise +EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x00000000 i915_gpu_turbo_disable +EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x00000000 i915_read_mch_val +EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x00000000 intel_gvt_register_hypervisor +EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x00000000 intel_gvt_unregister_hypervisor +EXPORT_SYMBOL_GPL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_dma_page_alloc_debugfs +EXPORT_SYMBOL_GPL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_dma_populate +EXPORT_SYMBOL_GPL drivers/gpu/drm/ttm/ttm 0x00000000 ttm_dma_unpopulate +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 __tracepoint_gb_hd_add +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 __tracepoint_gb_hd_create +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 __tracepoint_gb_hd_del +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 __tracepoint_gb_hd_in +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 __tracepoint_gb_hd_release +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 __tracepoint_gb_message_submit +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 gb_connection_create +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 gb_connection_create_flags +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 gb_connection_create_offloaded +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 gb_connection_destroy +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 gb_connection_disable +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 gb_connection_disable_forced +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 gb_connection_disable_rx +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 gb_connection_enable +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 gb_connection_enable_tx +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 gb_connection_latency_tag_disable +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 gb_connection_latency_tag_enable +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 gb_debugfs_get +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 gb_hd_add +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 gb_hd_cport_release_reserved +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 gb_hd_cport_reserve +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 gb_hd_create +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 gb_hd_del +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 gb_hd_output +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 gb_hd_put +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 gb_hd_shutdown +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 gb_interface_request_mode_switch +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 gb_operation_cancel +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 gb_operation_create_flags +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 gb_operation_get +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 gb_operation_get_payload_size_max +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 gb_operation_put +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 gb_operation_request_send +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 gb_operation_request_send_sync_timeout +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 gb_operation_response_alloc +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 gb_operation_result +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 gb_operation_sync_timeout +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 gb_operation_unidirectional_timeout +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 gb_svc_intf_set_power_mode +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 greybus_data_rcvd +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 greybus_deregister_driver +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 greybus_disabled +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 greybus_message_sent +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00000000 greybus_register_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 __hid_register_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 __hid_request +EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_add_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_alloc_report_buf +EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_allocate_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_check_keys_pressed +EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_compare_device_paths +EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_debug +EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_debug_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_destroy_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_dump_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_dump_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_dump_input +EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_dump_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_field_extract +EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_hw_close +EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_hw_open +EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_hw_start +EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_hw_stop +EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_ignore +EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_input_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_lookup_quirk +EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_match_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_open_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_output_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_parse_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_quirks_exit +EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_quirks_init +EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_register_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_report_raw_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_resolv_usage +EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_set_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_setup_resolution_multiplier +EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_snto32 +EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_unregister_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hid_validate_values +EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hidinput_calc_abs_res +EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hidinput_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hidinput_count_leds +EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hidinput_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hidinput_find_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hidinput_get_led_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hidinput_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hidraw_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hidraw_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x00000000 hidraw_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x00000000 roccat_connect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x00000000 roccat_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x00000000 roccat_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x00000000 roccat_common2_device_init_struct +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x00000000 roccat_common2_receive +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x00000000 roccat_common2_send +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x00000000 roccat_common2_send_with_status +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x00000000 roccat_common2_sysfs_read +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x00000000 roccat_common2_sysfs_write +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x00000000 hid_sensor_get_usage_index +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x00000000 sensor_hub_device_close +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x00000000 sensor_hub_device_open +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x00000000 sensor_hub_get_feature +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x00000000 sensor_hub_input_attr_get_raw_value +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x00000000 sensor_hub_input_get_attribute_info +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x00000000 sensor_hub_register_callback +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x00000000 sensor_hub_remove_callback +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x00000000 sensor_hub_set_feature +EXPORT_SYMBOL_GPL drivers/hid/i2c-hid/i2c-hid 0x00000000 i2c_hid_ll_driver +EXPORT_SYMBOL_GPL drivers/hid/uhid 0x00000000 uhid_hid_driver +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x00000000 hiddev_hid_event +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x00000000 usb_hid_driver +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x00000000 hsi_alloc_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x00000000 hsi_alloc_msg +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x00000000 hsi_async +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x00000000 hsi_board_list +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x00000000 hsi_claim_port +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x00000000 hsi_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x00000000 hsi_free_msg +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x00000000 hsi_get_channel_id_by_name +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x00000000 hsi_new_client +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x00000000 hsi_port_unregister_clients +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x00000000 hsi_put_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x00000000 hsi_register_client_driver +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x00000000 hsi_register_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x00000000 hsi_register_port_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x00000000 hsi_release_port +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x00000000 hsi_remove_client +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x00000000 hsi_unregister_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x00000000 hsi_unregister_port_event +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x00000000 __hv_pkt_iter_next +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x00000000 __vmbus_driver_register +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x00000000 hv_pkt_iter_close +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x00000000 hv_pkt_iter_first +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x00000000 hv_ringbuffer_get_debuginfo +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x00000000 vmbus_alloc_ring +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x00000000 vmbus_allocate_mmio +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x00000000 vmbus_are_subchannels_present +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x00000000 vmbus_close +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x00000000 vmbus_connect_ring +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x00000000 vmbus_connection +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x00000000 vmbus_disconnect_ring +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x00000000 vmbus_driver_unregister +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x00000000 vmbus_establish_gpadl +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x00000000 vmbus_free_mmio +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x00000000 vmbus_free_ring +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x00000000 vmbus_hvsock_device_unregister +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x00000000 vmbus_open +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x00000000 vmbus_prep_negotiate_resp +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x00000000 vmbus_proto_version +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x00000000 vmbus_recvpacket_raw +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x00000000 vmbus_send_tl_connect_request +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x00000000 vmbus_sendpacket_mpb_desc +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x00000000 vmbus_sendpacket_pagebuffer +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x00000000 vmbus_set_chn_rescind_callback +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x00000000 vmbus_set_event +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x00000000 vmbus_set_sc_create_callback +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x00000000 vmbus_setevent +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x00000000 vmbus_teardown_gpadl +EXPORT_SYMBOL_GPL drivers/hwmon/adt7x10 0x00000000 adt7x10_dev_pm_ops +EXPORT_SYMBOL_GPL drivers/hwmon/adt7x10 0x00000000 adt7x10_probe +EXPORT_SYMBOL_GPL drivers/hwmon/adt7x10 0x00000000 adt7x10_remove +EXPORT_SYMBOL_GPL drivers/hwmon/ltc2947-core 0x00000000 ltc2947_core_probe +EXPORT_SYMBOL_GPL drivers/hwmon/ltc2947-core 0x00000000 ltc2947_of_match +EXPORT_SYMBOL_GPL drivers/hwmon/ltc2947-core 0x00000000 ltc2947_pm_ops +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x00000000 pmbus_check_byte_register +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x00000000 pmbus_check_word_register +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x00000000 pmbus_clear_cache +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x00000000 pmbus_clear_faults +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x00000000 pmbus_do_probe +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x00000000 pmbus_do_remove +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x00000000 pmbus_get_debugfs_dir +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x00000000 pmbus_get_driver_info +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x00000000 pmbus_get_fan_rate_cached +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x00000000 pmbus_get_fan_rate_device +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x00000000 pmbus_read_byte_data +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x00000000 pmbus_read_word_data +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x00000000 pmbus_regulator_ops +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x00000000 pmbus_set_page +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x00000000 pmbus_update_byte_data +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x00000000 pmbus_update_fan +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x00000000 pmbus_write_byte +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x00000000 pmbus_write_byte_data +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x00000000 pmbus_write_word_data +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x00000000 intel_th_alloc +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x00000000 intel_th_driver_register +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x00000000 intel_th_driver_unregister +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x00000000 intel_th_free +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x00000000 intel_th_output_enable +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x00000000 intel_th_set_output +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x00000000 intel_th_trace_disable +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x00000000 intel_th_trace_enable +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x00000000 intel_th_trace_switch +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th_msu 0x00000000 intel_th_msc_window_unlock +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th_msu 0x00000000 intel_th_msu_buffer_register +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th_msu 0x00000000 intel_th_msu_buffer_unregister +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x00000000 stm_data_write +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x00000000 stm_register_device +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x00000000 stm_register_protocol +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x00000000 stm_source_register_device +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x00000000 stm_source_unregister_device +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x00000000 stm_source_write +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x00000000 stm_unregister_device +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x00000000 stm_unregister_protocol +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x00000000 to_pdrv_policy_node +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-amd-mp2-pci 0x00000000 amd_mp2_bus_enable_set +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-amd-mp2-pci 0x00000000 amd_mp2_find_device +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-amd-mp2-pci 0x00000000 amd_mp2_process_event +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-amd-mp2-pci 0x00000000 amd_mp2_register_cb +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-amd-mp2-pci 0x00000000 amd_mp2_rw +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-amd-mp2-pci 0x00000000 amd_mp2_rw_timeout +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-amd-mp2-pci 0x00000000 amd_mp2_unregister_cb +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-nforce2 0x00000000 nforce2_smbus +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x00000000 i2c_mux_add_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x00000000 i2c_mux_alloc +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x00000000 i2c_mux_del_adapters +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x00000000 i2c_root_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x00000000 i2c_handle_smbus_alert +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x00000000 dev_to_i3cdev +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x00000000 i3c_device_disable_ibi +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x00000000 i3c_device_do_priv_xfers +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x00000000 i3c_device_enable_ibi +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x00000000 i3c_device_free_ibi +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x00000000 i3c_device_get_info +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x00000000 i3c_device_match_id +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x00000000 i3c_device_request_ibi +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x00000000 i3c_driver_register_with_owner +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x00000000 i3c_driver_unregister +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x00000000 i3c_generic_ibi_alloc_pool +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x00000000 i3c_generic_ibi_free_pool +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x00000000 i3c_generic_ibi_get_free_slot +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x00000000 i3c_generic_ibi_recycle_slot +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x00000000 i3c_master_add_i3c_dev_locked +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x00000000 i3c_master_defslvs_locked +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x00000000 i3c_master_disec_locked +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x00000000 i3c_master_do_daa +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x00000000 i3c_master_enec_locked +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x00000000 i3c_master_entdaa_locked +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x00000000 i3c_master_get_free_addr +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x00000000 i3c_master_queue_ibi +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x00000000 i3c_master_register +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x00000000 i3c_master_set_info +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x00000000 i3c_master_unregister +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x00000000 i3cdev_to_dev +EXPORT_SYMBOL_GPL drivers/iio/accel/adxl372 0x00000000 adxl372_probe +EXPORT_SYMBOL_GPL drivers/iio/accel/adxl372 0x00000000 adxl372_readable_noinc_reg +EXPORT_SYMBOL_GPL drivers/iio/accel/bmc150-accel-core 0x00000000 bmc150_accel_core_probe +EXPORT_SYMBOL_GPL drivers/iio/accel/bmc150-accel-core 0x00000000 bmc150_accel_core_remove +EXPORT_SYMBOL_GPL drivers/iio/accel/bmc150-accel-core 0x00000000 bmc150_accel_pm_ops +EXPORT_SYMBOL_GPL drivers/iio/accel/bmc150-accel-core 0x00000000 bmc150_regmap_conf +EXPORT_SYMBOL_GPL drivers/iio/accel/mma7455_core 0x00000000 mma7455_core_probe +EXPORT_SYMBOL_GPL drivers/iio/accel/mma7455_core 0x00000000 mma7455_core_regmap +EXPORT_SYMBOL_GPL drivers/iio/accel/mma7455_core 0x00000000 mma7455_core_remove +EXPORT_SYMBOL_GPL drivers/iio/adc/ad7091r-base 0x00000000 ad7091r_probe +EXPORT_SYMBOL_GPL drivers/iio/adc/ad7091r-base 0x00000000 ad7091r_regmap_config +EXPORT_SYMBOL_GPL drivers/iio/adc/ad7606 0x00000000 ad7606_pm_ops +EXPORT_SYMBOL_GPL drivers/iio/adc/ad7606 0x00000000 ad7606_probe +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x00000000 ad_sd_calibrate +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x00000000 ad_sd_calibrate_all +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x00000000 ad_sd_cleanup_buffer_and_trigger +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x00000000 ad_sd_init +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x00000000 ad_sd_read_reg +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x00000000 ad_sd_reset +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x00000000 ad_sd_set_comm +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x00000000 ad_sd_setup_buffer_and_trigger +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x00000000 ad_sd_validate_trigger +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x00000000 ad_sd_write_reg +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x00000000 ad_sigma_delta_single_conversion +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-cb 0x00000000 iio_channel_cb_get_channels +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-cb 0x00000000 iio_channel_cb_get_iio_dev +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-cb 0x00000000 iio_channel_cb_set_buffer_watermark +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-cb 0x00000000 iio_channel_get_all_cb +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-cb 0x00000000 iio_channel_release_all_cb +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-cb 0x00000000 iio_channel_start_all_cb +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-cb 0x00000000 iio_channel_stop_all_cb +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-hw-consumer 0x00000000 devm_iio_hw_consumer_alloc +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-hw-consumer 0x00000000 devm_iio_hw_consumer_free +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-hw-consumer 0x00000000 iio_hw_consumer_alloc +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-hw-consumer 0x00000000 iio_hw_consumer_disable +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-hw-consumer 0x00000000 iio_hw_consumer_enable +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-hw-consumer 0x00000000 iio_hw_consumer_free +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-triggered-buffer 0x00000000 devm_iio_triggered_buffer_cleanup +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-triggered-buffer 0x00000000 devm_iio_triggered_buffer_setup +EXPORT_SYMBOL_GPL drivers/iio/chemical/bme680_core 0x00000000 bme680_core_probe +EXPORT_SYMBOL_GPL drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x00000000 cros_ec_motion_send_host_cmd +EXPORT_SYMBOL_GPL drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x00000000 cros_ec_sensors_capture +EXPORT_SYMBOL_GPL drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x00000000 cros_ec_sensors_core_init +EXPORT_SYMBOL_GPL drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x00000000 cros_ec_sensors_core_read +EXPORT_SYMBOL_GPL drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x00000000 cros_ec_sensors_core_read_avail +EXPORT_SYMBOL_GPL drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x00000000 cros_ec_sensors_core_write +EXPORT_SYMBOL_GPL drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x00000000 cros_ec_sensors_ext_info +EXPORT_SYMBOL_GPL drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x00000000 cros_ec_sensors_pm_ops +EXPORT_SYMBOL_GPL drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x00000000 cros_ec_sensors_read_cmd +EXPORT_SYMBOL_GPL drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x00000000 cros_ec_sensors_read_lpc +EXPORT_SYMBOL_GPL drivers/iio/dac/ad5592r-base 0x00000000 ad5592r_probe +EXPORT_SYMBOL_GPL drivers/iio/dac/ad5592r-base 0x00000000 ad5592r_remove +EXPORT_SYMBOL_GPL drivers/iio/dac/ad5686 0x00000000 ad5686_probe +EXPORT_SYMBOL_GPL drivers/iio/dac/ad5686 0x00000000 ad5686_remove +EXPORT_SYMBOL_GPL drivers/iio/gyro/bmg160_core 0x00000000 bmg160_core_probe +EXPORT_SYMBOL_GPL drivers/iio/gyro/bmg160_core 0x00000000 bmg160_core_remove +EXPORT_SYMBOL_GPL drivers/iio/gyro/bmg160_core 0x00000000 bmg160_pm_ops +EXPORT_SYMBOL_GPL drivers/iio/gyro/fxas21002c_core 0x00000000 fxas21002c_core_probe +EXPORT_SYMBOL_GPL drivers/iio/gyro/fxas21002c_core 0x00000000 fxas21002c_core_remove +EXPORT_SYMBOL_GPL drivers/iio/gyro/fxas21002c_core 0x00000000 fxas21002c_pm_ops +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x00000000 __adis_check_status +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x00000000 __adis_read_reg +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x00000000 __adis_reset +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x00000000 __adis_write_reg +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x00000000 adis_cleanup_buffer_and_trigger +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x00000000 adis_init +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x00000000 adis_initial_startup +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x00000000 adis_probe_trigger +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x00000000 adis_remove_trigger +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x00000000 adis_setup_buffer_and_trigger +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x00000000 adis_single_conversion +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x00000000 adis_update_scan_mode +EXPORT_SYMBOL_GPL drivers/iio/imu/bmi160/bmi160_core 0x00000000 bmi160_core_probe +EXPORT_SYMBOL_GPL drivers/iio/imu/fxos8700_core 0x00000000 fxos8700_core_probe +EXPORT_SYMBOL_GPL drivers/iio/imu/inv_mpu6050/inv-mpu6050 0x00000000 inv_mpu6050_set_power_itg +EXPORT_SYMBOL_GPL drivers/iio/imu/inv_mpu6050/inv-mpu6050 0x00000000 inv_mpu_core_probe +EXPORT_SYMBOL_GPL drivers/iio/imu/inv_mpu6050/inv-mpu6050 0x00000000 inv_mpu_pmops +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 __devm_iio_device_register +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 __devm_iio_trigger_register +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 devm_iio_channel_get +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 devm_iio_channel_get_all +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 devm_iio_channel_release +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 devm_iio_channel_release_all +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 devm_iio_device_alloc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 devm_iio_device_free +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 devm_iio_device_match +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 devm_iio_device_unregister +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 devm_iio_trigger_alloc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 devm_iio_trigger_free +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 devm_iio_trigger_unregister +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_alloc_pollfunc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_buffer_get +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_buffer_put +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_buffer_set_attrs +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_channel_get +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_channel_get_all +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_channel_release +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_channel_release_all +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_convert_raw_to_processed +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_dealloc_pollfunc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_device_attach_buffer +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_device_claim_direct_mode +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_device_release_direct_mode +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_enum_available_read +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_enum_read +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_enum_write +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_format_value +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_get_channel_ext_info_count +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_get_channel_type +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_map_array_register +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_map_array_unregister +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_push_to_buffers +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_read_avail_channel_attribute +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_read_avail_channel_raw +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_read_channel_attribute +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_read_channel_average_raw +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_read_channel_ext_info +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_read_channel_offset +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_read_channel_processed +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_read_channel_raw +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_read_channel_scale +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_read_max_channel_raw +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_show_mount_matrix +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_str_to_fixpoint +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_update_buffers +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_validate_scan_mask_onehot +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_write_channel_attribute +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_write_channel_ext_info +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00000000 iio_write_channel_raw +EXPORT_SYMBOL_GPL drivers/iio/magnetometer/rm3100-core 0x00000000 rm3100_common_probe +EXPORT_SYMBOL_GPL drivers/iio/magnetometer/rm3100-core 0x00000000 rm3100_readable_table +EXPORT_SYMBOL_GPL drivers/iio/magnetometer/rm3100-core 0x00000000 rm3100_volatile_table +EXPORT_SYMBOL_GPL drivers/iio/magnetometer/rm3100-core 0x00000000 rm3100_writable_table +EXPORT_SYMBOL_GPL drivers/iio/pressure/mpl115 0x00000000 mpl115_probe +EXPORT_SYMBOL_GPL drivers/iio/pressure/zpa2326 0x00000000 zpa2326_isreg_precious +EXPORT_SYMBOL_GPL drivers/iio/pressure/zpa2326 0x00000000 zpa2326_isreg_readable +EXPORT_SYMBOL_GPL drivers/iio/pressure/zpa2326 0x00000000 zpa2326_isreg_writeable +EXPORT_SYMBOL_GPL drivers/iio/pressure/zpa2326 0x00000000 zpa2326_pm_ops +EXPORT_SYMBOL_GPL drivers/iio/pressure/zpa2326 0x00000000 zpa2326_probe +EXPORT_SYMBOL_GPL drivers/iio/pressure/zpa2326 0x00000000 zpa2326_remove +EXPORT_SYMBOL_GPL drivers/infiniband/core/ib_core 0x00000000 ib_wq +EXPORT_SYMBOL_GPL drivers/input/ff-memless 0x00000000 input_ff_create_memless +EXPORT_SYMBOL_GPL drivers/input/matrix-keymap 0x00000000 matrix_keypad_parse_properties +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x00000000 adxl34x_probe +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x00000000 adxl34x_remove +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x00000000 adxl34x_resume +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x00000000 adxl34x_suspend +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x00000000 __rmi_register_function_handler +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x00000000 rmi_2d_sensor_abs_process +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x00000000 rmi_2d_sensor_abs_report +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x00000000 rmi_2d_sensor_configure_input +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x00000000 rmi_2d_sensor_of_probe +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x00000000 rmi_2d_sensor_rel_report +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x00000000 rmi_dbg +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x00000000 rmi_driver_resume +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x00000000 rmi_driver_suspend +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x00000000 rmi_of_property_read_u32 +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x00000000 rmi_register_transport_device +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x00000000 rmi_set_attn_data +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x00000000 rmi_unregister_function_handler +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0x00000000 cyttsp4_pm_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0x00000000 cyttsp4_probe +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0x00000000 cyttsp4_remove +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_core 0x00000000 cyttsp_pm_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_core 0x00000000 cyttsp_probe +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_i2c_common 0x00000000 cyttsp_i2c_read_block_data +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_i2c_common 0x00000000 cyttsp_i2c_write_block_data +EXPORT_SYMBOL_GPL drivers/input/touchscreen/tsc200x-core 0x00000000 tsc200x_pm_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/tsc200x-core 0x00000000 tsc200x_probe +EXPORT_SYMBOL_GPL drivers/input/touchscreen/tsc200x-core 0x00000000 tsc200x_regmap_config +EXPORT_SYMBOL_GPL drivers/input/touchscreen/tsc200x-core 0x00000000 tsc200x_remove +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x00000000 wm9705_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x00000000 wm9712_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x00000000 wm9713_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x00000000 wm97xx_config_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x00000000 wm97xx_get_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x00000000 wm97xx_read_aux_adc +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x00000000 wm97xx_reg_read +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x00000000 wm97xx_reg_write +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x00000000 wm97xx_register_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x00000000 wm97xx_set_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x00000000 wm97xx_set_suspend_mode +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x00000000 wm97xx_unregister_mach_ops +EXPORT_SYMBOL_GPL drivers/interconnect/icc-core 0x00000000 icc_get +EXPORT_SYMBOL_GPL drivers/interconnect/icc-core 0x00000000 icc_link_create +EXPORT_SYMBOL_GPL drivers/interconnect/icc-core 0x00000000 icc_link_destroy +EXPORT_SYMBOL_GPL drivers/interconnect/icc-core 0x00000000 icc_node_add +EXPORT_SYMBOL_GPL drivers/interconnect/icc-core 0x00000000 icc_node_create +EXPORT_SYMBOL_GPL drivers/interconnect/icc-core 0x00000000 icc_node_del +EXPORT_SYMBOL_GPL drivers/interconnect/icc-core 0x00000000 icc_node_destroy +EXPORT_SYMBOL_GPL drivers/interconnect/icc-core 0x00000000 icc_nodes_remove +EXPORT_SYMBOL_GPL drivers/interconnect/icc-core 0x00000000 icc_provider_add +EXPORT_SYMBOL_GPL drivers/interconnect/icc-core 0x00000000 icc_provider_del +EXPORT_SYMBOL_GPL drivers/interconnect/icc-core 0x00000000 icc_put +EXPORT_SYMBOL_GPL drivers/interconnect/icc-core 0x00000000 icc_set_bw +EXPORT_SYMBOL_GPL drivers/interconnect/icc-core 0x00000000 icc_set_tag +EXPORT_SYMBOL_GPL drivers/interconnect/icc-core 0x00000000 icc_std_aggregate +EXPORT_SYMBOL_GPL drivers/interconnect/icc-core 0x00000000 of_icc_get +EXPORT_SYMBOL_GPL drivers/interconnect/icc-core 0x00000000 of_icc_xlate_onecell +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x00000000 ipack_bus_register +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x00000000 ipack_bus_unregister +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x00000000 ipack_device_add +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x00000000 ipack_device_del +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x00000000 ipack_device_init +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x00000000 ipack_driver_register +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x00000000 ipack_driver_unregister +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x00000000 ipack_get_device +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x00000000 ipack_put_device +EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0x00000000 devm_led_classdev_flash_register_ext +EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0x00000000 devm_led_classdev_flash_unregister +EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0x00000000 led_classdev_flash_register_ext +EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0x00000000 led_classdev_flash_unregister +EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0x00000000 led_get_flash_fault +EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0x00000000 led_set_flash_brightness +EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0x00000000 led_set_flash_timeout +EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0x00000000 led_update_flash_brightness +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x00000000 lp55xx_deinit_device +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x00000000 lp55xx_init_device +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x00000000 lp55xx_is_extclk_used +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x00000000 lp55xx_of_populate_pdata +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x00000000 lp55xx_read +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x00000000 lp55xx_register_leds +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x00000000 lp55xx_register_sysfs +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x00000000 lp55xx_unregister_leds +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x00000000 lp55xx_unregister_sysfs +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x00000000 lp55xx_update_bits +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x00000000 lp55xx_write +EXPORT_SYMBOL_GPL drivers/leds/trigger/ledtrig-audio 0x00000000 ledtrig_audio_get +EXPORT_SYMBOL_GPL drivers/leds/trigger/ledtrig-audio 0x00000000 ledtrig_audio_set +EXPORT_SYMBOL_GPL drivers/leds/trigger/ledtrig-camera 0x00000000 ledtrig_flash_ctrl +EXPORT_SYMBOL_GPL drivers/leds/trigger/ledtrig-camera 0x00000000 ledtrig_torch_ctrl +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x00000000 __tracepoint_bcache_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x00000000 __tracepoint_bcache_btree_cache_cannibalize +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x00000000 __tracepoint_bcache_btree_gc_coalesce +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x00000000 __tracepoint_bcache_btree_insert_key +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x00000000 __tracepoint_bcache_btree_node_alloc +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x00000000 __tracepoint_bcache_btree_node_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x00000000 __tracepoint_bcache_btree_node_compact +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x00000000 __tracepoint_bcache_btree_node_free +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x00000000 __tracepoint_bcache_btree_node_split +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x00000000 __tracepoint_bcache_btree_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x00000000 __tracepoint_bcache_btree_set_root +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x00000000 __tracepoint_bcache_btree_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x00000000 __tracepoint_bcache_bypass_congested +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x00000000 __tracepoint_bcache_bypass_sequential +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x00000000 __tracepoint_bcache_cache_insert +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x00000000 __tracepoint_bcache_gc_copy +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x00000000 __tracepoint_bcache_gc_copy_collision +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x00000000 __tracepoint_bcache_gc_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x00000000 __tracepoint_bcache_gc_start +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x00000000 __tracepoint_bcache_invalidate +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x00000000 __tracepoint_bcache_journal_entry_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x00000000 __tracepoint_bcache_journal_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x00000000 __tracepoint_bcache_journal_replay_key +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x00000000 __tracepoint_bcache_journal_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x00000000 __tracepoint_bcache_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x00000000 __tracepoint_bcache_read_retry +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x00000000 __tracepoint_bcache_request_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x00000000 __tracepoint_bcache_request_start +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x00000000 __tracepoint_bcache_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x00000000 __tracepoint_bcache_writeback +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x00000000 __tracepoint_bcache_writeback_collision +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x00000000 dm_bio_detain +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x00000000 dm_bio_prison_alloc_cell +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x00000000 dm_bio_prison_alloc_cell_v2 +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x00000000 dm_bio_prison_create +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x00000000 dm_bio_prison_create_v2 +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x00000000 dm_bio_prison_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x00000000 dm_bio_prison_destroy_v2 +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x00000000 dm_bio_prison_free_cell +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x00000000 dm_bio_prison_free_cell_v2 +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x00000000 dm_cell_error +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x00000000 dm_cell_get_v2 +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x00000000 dm_cell_lock_promote_v2 +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x00000000 dm_cell_lock_v2 +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x00000000 dm_cell_promote_or_release +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x00000000 dm_cell_put_v2 +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x00000000 dm_cell_quiesce_v2 +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x00000000 dm_cell_release +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x00000000 dm_cell_release_no_holder +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x00000000 dm_cell_unlock_v2 +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x00000000 dm_cell_visit_release +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x00000000 dm_deferred_entry_dec +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x00000000 dm_deferred_entry_inc +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x00000000 dm_deferred_set_add_work +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x00000000 dm_deferred_set_create +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x00000000 dm_deferred_set_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x00000000 dm_get_cell +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x00000000 dm_bufio_client_create +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x00000000 dm_bufio_client_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x00000000 dm_bufio_forget +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x00000000 dm_bufio_get +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x00000000 dm_bufio_get_aux_data +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x00000000 dm_bufio_get_block_data +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x00000000 dm_bufio_get_block_number +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x00000000 dm_bufio_get_block_size +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x00000000 dm_bufio_get_client +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x00000000 dm_bufio_get_device_size +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x00000000 dm_bufio_issue_flush +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x00000000 dm_bufio_mark_buffer_dirty +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x00000000 dm_bufio_mark_partial_buffer_dirty +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x00000000 dm_bufio_new +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x00000000 dm_bufio_prefetch +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x00000000 dm_bufio_read +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x00000000 dm_bufio_release +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x00000000 dm_bufio_release_move +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x00000000 dm_bufio_set_minimum_buffers +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x00000000 dm_bufio_set_sector_offset +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x00000000 dm_bufio_write_dirty_buffers +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x00000000 dm_bufio_write_dirty_buffers_async +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x00000000 btracker_complete +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x00000000 btracker_create +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x00000000 btracker_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x00000000 btracker_issue +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x00000000 btracker_nr_demotions_queued +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x00000000 btracker_nr_writebacks_queued +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x00000000 btracker_promotion_already_present +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x00000000 btracker_queue +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x00000000 dm_cache_policy_create +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x00000000 dm_cache_policy_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x00000000 dm_cache_policy_get_hint_size +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x00000000 dm_cache_policy_get_name +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x00000000 dm_cache_policy_get_version +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x00000000 dm_cache_policy_register +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x00000000 dm_cache_policy_unregister +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x00000000 dm_register_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x00000000 dm_unregister_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x00000000 dm_region_hash_create +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x00000000 dm_region_hash_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x00000000 dm_rh_bio_to_region +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x00000000 dm_rh_dec +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x00000000 dm_rh_delay +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x00000000 dm_rh_dirty_log +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x00000000 dm_rh_flush +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x00000000 dm_rh_get_region_key +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x00000000 dm_rh_get_region_size +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x00000000 dm_rh_get_state +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x00000000 dm_rh_inc_pending +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x00000000 dm_rh_mark_nosync +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x00000000 dm_rh_recovery_end +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x00000000 dm_rh_recovery_in_flight +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x00000000 dm_rh_recovery_prepare +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x00000000 dm_rh_recovery_start +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x00000000 dm_rh_region_context +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x00000000 dm_rh_region_to_sector +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x00000000 dm_rh_start_recovery +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x00000000 dm_rh_stop_recovery +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x00000000 dm_rh_update_states +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_array_cursor_begin +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_array_cursor_end +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_array_cursor_get_value +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_array_cursor_next +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_array_cursor_skip +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_array_del +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_array_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_array_get_value +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_array_info_init +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_array_new +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_array_resize +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_array_set_value +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_array_walk +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_bitset_clear_bit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_bitset_cursor_begin +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_bitset_cursor_end +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_bitset_cursor_get_value +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_bitset_cursor_next +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_bitset_cursor_skip +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_bitset_del +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_bitset_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_bitset_flush +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_bitset_new +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_bitset_resize +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_bitset_set_bit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_bitset_test_bit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_block_data +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_block_location +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_block_manager_create +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_block_manager_destroy +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_bm_block_size +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_bm_checksum +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_bm_flush +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_bm_is_read_only +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_bm_read_lock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_bm_set_read_only +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_bm_set_read_write +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_bm_unlock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_bm_write_lock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_bm_write_lock_zero +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_btree_cursor_begin +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_btree_cursor_end +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_btree_cursor_get_value +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_btree_cursor_next +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_btree_cursor_skip +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_btree_del +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_btree_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_btree_find_highest_key +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_btree_find_lowest_key +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_btree_insert +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_btree_insert_notify +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_btree_lookup +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_btree_lookup_next +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_btree_remove +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_btree_remove_leaves +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_btree_walk +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_disk_bitset_init +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_sm_disk_create +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_sm_disk_open +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_tm_commit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_tm_create_non_blocking_clone +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_tm_create_with_sm +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_tm_dec +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_tm_destroy +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_tm_inc +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_tm_issue_prefetches +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_tm_open_with_sm +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_tm_pre_commit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_tm_read_lock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_tm_shadow_block +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x00000000 dm_tm_unlock +EXPORT_SYMBOL_GPL drivers/media/cec/cec 0x00000000 cec_allocate_adapter +EXPORT_SYMBOL_GPL drivers/media/cec/cec 0x00000000 cec_delete_adapter +EXPORT_SYMBOL_GPL drivers/media/cec/cec 0x00000000 cec_fill_conn_info_from_drm +EXPORT_SYMBOL_GPL drivers/media/cec/cec 0x00000000 cec_get_edid_phys_addr +EXPORT_SYMBOL_GPL drivers/media/cec/cec 0x00000000 cec_notifier_cec_adap_register +EXPORT_SYMBOL_GPL drivers/media/cec/cec 0x00000000 cec_notifier_cec_adap_unregister +EXPORT_SYMBOL_GPL drivers/media/cec/cec 0x00000000 cec_notifier_conn_register +EXPORT_SYMBOL_GPL drivers/media/cec/cec 0x00000000 cec_notifier_conn_unregister +EXPORT_SYMBOL_GPL drivers/media/cec/cec 0x00000000 cec_notifier_get_conn +EXPORT_SYMBOL_GPL drivers/media/cec/cec 0x00000000 cec_notifier_parse_hdmi_phandle +EXPORT_SYMBOL_GPL drivers/media/cec/cec 0x00000000 cec_notifier_set_phys_addr +EXPORT_SYMBOL_GPL drivers/media/cec/cec 0x00000000 cec_notifier_set_phys_addr_from_edid +EXPORT_SYMBOL_GPL drivers/media/cec/cec 0x00000000 cec_queue_pin_5v_event +EXPORT_SYMBOL_GPL drivers/media/cec/cec 0x00000000 cec_queue_pin_cec_event +EXPORT_SYMBOL_GPL drivers/media/cec/cec 0x00000000 cec_queue_pin_hpd_event +EXPORT_SYMBOL_GPL drivers/media/cec/cec 0x00000000 cec_received_msg_ts +EXPORT_SYMBOL_GPL drivers/media/cec/cec 0x00000000 cec_register_adapter +EXPORT_SYMBOL_GPL drivers/media/cec/cec 0x00000000 cec_s_conn_info +EXPORT_SYMBOL_GPL drivers/media/cec/cec 0x00000000 cec_s_log_addrs +EXPORT_SYMBOL_GPL drivers/media/cec/cec 0x00000000 cec_s_phys_addr +EXPORT_SYMBOL_GPL drivers/media/cec/cec 0x00000000 cec_s_phys_addr_from_edid +EXPORT_SYMBOL_GPL drivers/media/cec/cec 0x00000000 cec_transmit_attempt_done_ts +EXPORT_SYMBOL_GPL drivers/media/cec/cec 0x00000000 cec_transmit_done_ts +EXPORT_SYMBOL_GPL drivers/media/cec/cec 0x00000000 cec_transmit_msg +EXPORT_SYMBOL_GPL drivers/media/cec/cec 0x00000000 cec_unregister_adapter +EXPORT_SYMBOL_GPL drivers/media/common/b2c2/b2c2-flexcop 0x00000000 b2c2_flexcop_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x00000000 saa7146_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x00000000 saa7146_i2c_adapter_prepare +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x00000000 saa7146_pgtable_alloc +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x00000000 saa7146_pgtable_build_single +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x00000000 saa7146_pgtable_free +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x00000000 saa7146_register_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x00000000 saa7146_setgpio +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x00000000 saa7146_unregister_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x00000000 saa7146_vfree_destroy_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x00000000 saa7146_vmalloc_build_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x00000000 saa7146_wait_for_debi_done +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x00000000 saa7146_register_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x00000000 saa7146_set_hps_source_and_sync +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x00000000 saa7146_start_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x00000000 saa7146_stop_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x00000000 saa7146_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x00000000 saa7146_vv_init +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x00000000 saa7146_vv_release +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x00000000 sms_board_event +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x00000000 sms_board_led_feedback +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x00000000 sms_board_lna_control +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x00000000 sms_board_load_modules +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x00000000 sms_board_power +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x00000000 sms_board_setup +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x00000000 sms_get_board +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x00000000 smsclient_sendrequest +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x00000000 smscore_get_board_id +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x00000000 smscore_get_device_mode +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x00000000 smscore_getbuffer +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x00000000 smscore_onresponse +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x00000000 smscore_putbuffer +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x00000000 smscore_register_client +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x00000000 smscore_register_device +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x00000000 smscore_register_hotplug +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x00000000 smscore_registry_getmode +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x00000000 smscore_set_board_id +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x00000000 smscore_start_device +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x00000000 smscore_translate_msg +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x00000000 smscore_unregister_client +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x00000000 smscore_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x00000000 smscore_unregister_hotplug +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x00000000 smsendian_handle_message_header +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x00000000 smsendian_handle_rx_message +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x00000000 smsendian_handle_tx_message +EXPORT_SYMBOL_GPL drivers/media/common/v4l2-tpg/v4l2-tpg 0x00000000 tpg_alloc +EXPORT_SYMBOL_GPL drivers/media/common/v4l2-tpg/v4l2-tpg 0x00000000 tpg_aspect_strings +EXPORT_SYMBOL_GPL drivers/media/common/v4l2-tpg/v4l2-tpg 0x00000000 tpg_calc_text_basep +EXPORT_SYMBOL_GPL drivers/media/common/v4l2-tpg/v4l2-tpg 0x00000000 tpg_fill_plane_buffer +EXPORT_SYMBOL_GPL drivers/media/common/v4l2-tpg/v4l2-tpg 0x00000000 tpg_fillbuffer +EXPORT_SYMBOL_GPL drivers/media/common/v4l2-tpg/v4l2-tpg 0x00000000 tpg_free +EXPORT_SYMBOL_GPL drivers/media/common/v4l2-tpg/v4l2-tpg 0x00000000 tpg_g_interleaved_plane +EXPORT_SYMBOL_GPL drivers/media/common/v4l2-tpg/v4l2-tpg 0x00000000 tpg_gen_text +EXPORT_SYMBOL_GPL drivers/media/common/v4l2-tpg/v4l2-tpg 0x00000000 tpg_init +EXPORT_SYMBOL_GPL drivers/media/common/v4l2-tpg/v4l2-tpg 0x00000000 tpg_log_status +EXPORT_SYMBOL_GPL drivers/media/common/v4l2-tpg/v4l2-tpg 0x00000000 tpg_pattern_strings +EXPORT_SYMBOL_GPL drivers/media/common/v4l2-tpg/v4l2-tpg 0x00000000 tpg_reset_source +EXPORT_SYMBOL_GPL drivers/media/common/v4l2-tpg/v4l2-tpg 0x00000000 tpg_s_crop_compose +EXPORT_SYMBOL_GPL drivers/media/common/v4l2-tpg/v4l2-tpg 0x00000000 tpg_s_fourcc +EXPORT_SYMBOL_GPL drivers/media/common/v4l2-tpg/v4l2-tpg 0x00000000 tpg_set_font +EXPORT_SYMBOL_GPL drivers/media/common/v4l2-tpg/v4l2-tpg 0x00000000 tpg_update_mv_step +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x00000000 __tracepoint_vb2_buf_done +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x00000000 __tracepoint_vb2_buf_queue +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x00000000 __tracepoint_vb2_dqbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x00000000 __tracepoint_vb2_qbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x00000000 vb2_buffer_done +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x00000000 vb2_core_create_bufs +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x00000000 vb2_core_dqbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x00000000 vb2_core_expbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x00000000 vb2_core_poll +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x00000000 vb2_core_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x00000000 vb2_core_qbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x00000000 vb2_core_querybuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x00000000 vb2_core_queue_init +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x00000000 vb2_core_queue_release +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x00000000 vb2_core_reqbufs +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x00000000 vb2_core_streamoff +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x00000000 vb2_core_streamon +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x00000000 vb2_discard_done +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x00000000 vb2_mmap +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x00000000 vb2_plane_cookie +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x00000000 vb2_plane_vaddr +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x00000000 vb2_queue_error +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x00000000 vb2_read +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x00000000 vb2_request_buffer_cnt +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x00000000 vb2_request_object_is_buffer +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x00000000 vb2_thread_start +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x00000000 vb2_thread_stop +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x00000000 vb2_wait_for_all_buffers +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x00000000 vb2_write +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-dma-contig 0x00000000 vb2_dma_contig_memops +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-dma-contig 0x00000000 vb2_dma_contig_set_max_seg_size +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-dma-sg 0x00000000 vb2_dma_sg_memops +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-memops 0x00000000 vb2_common_vm_ops +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x00000000 _vb2_fop_release +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x00000000 vb2_create_bufs +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x00000000 vb2_dqbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x00000000 vb2_expbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x00000000 vb2_find_timestamp +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x00000000 vb2_fop_mmap +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x00000000 vb2_fop_poll +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x00000000 vb2_fop_read +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x00000000 vb2_fop_release +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x00000000 vb2_fop_write +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x00000000 vb2_ioctl_create_bufs +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x00000000 vb2_ioctl_dqbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x00000000 vb2_ioctl_expbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x00000000 vb2_ioctl_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x00000000 vb2_ioctl_qbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x00000000 vb2_ioctl_querybuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x00000000 vb2_ioctl_reqbufs +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x00000000 vb2_ioctl_streamoff +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x00000000 vb2_ioctl_streamon +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x00000000 vb2_ops_wait_finish +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x00000000 vb2_ops_wait_prepare +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x00000000 vb2_poll +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x00000000 vb2_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x00000000 vb2_qbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x00000000 vb2_queue_init +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x00000000 vb2_queue_release +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x00000000 vb2_reqbufs +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x00000000 vb2_request_queue +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x00000000 vb2_request_validate +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x00000000 vb2_streamoff +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x00000000 vb2_streamon +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-vmalloc 0x00000000 vb2_vmalloc_memops +EXPORT_SYMBOL_GPL drivers/media/dvb-core/dvb-core 0x00000000 dvb_create_media_graph +EXPORT_SYMBOL_GPL drivers/media/dvb-core/dvb-core 0x00000000 dvb_module_probe +EXPORT_SYMBOL_GPL drivers/media/dvb-core/dvb-core 0x00000000 dvb_module_release +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/as102_fe 0x00000000 as102_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/cx24117 0x00000000 cx24117_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/gp8psk-fe 0x00000000 gp8psk_fe_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/mxl5xx 0x00000000 mxl5xx_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/stv0910 0x00000000 stv0910_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/stv6111 0x00000000 stv6111_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/tda18271c2dd 0x00000000 tda18271c2dd_attach +EXPORT_SYMBOL_GPL drivers/media/i2c/aptina-pll 0x00000000 aptina_pll_calculate +EXPORT_SYMBOL_GPL drivers/media/i2c/smiapp-pll 0x00000000 smiapp_pll_calculate +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 __media_device_register +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 __media_device_usb_init +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 __media_entity_enum_init +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 __media_entity_remove_links +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 __media_entity_setup_link +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 __media_pipeline_start +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 __media_pipeline_stop +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 __media_remove_intf_link +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 __media_remove_intf_links +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_create_intf_link +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_create_pad_link +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_create_pad_links +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_device_cleanup +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_device_delete +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_device_init +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_device_pci_init +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_device_register_entity +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_device_register_entity_notify +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_device_unregister +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_device_unregister_entity +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_device_unregister_entity_notify +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_device_usb_allocate +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_devnode_create +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_devnode_remove +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_entity_enum_cleanup +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_entity_find_link +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_entity_get_fwnode_pad +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_entity_pads_init +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_entity_remote_pad +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_entity_remove_links +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_entity_setup_link +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_get_pad_index +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_graph_walk_cleanup +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_graph_walk_init +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_graph_walk_next +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_graph_walk_start +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_pipeline_start +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_pipeline_stop +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_remove_intf_link +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_remove_intf_links +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_request_get_by_fd +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_request_object_bind +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_request_object_complete +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_request_object_find +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_request_object_init +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_request_object_put +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_request_object_unbind +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x00000000 media_request_put +EXPORT_SYMBOL_GPL drivers/media/pci/cx88/cx88xx 0x00000000 cx88_setup_xc3028 +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x00000000 mantis_ca_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x00000000 mantis_ca_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x00000000 mantis_dma_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x00000000 mantis_dma_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x00000000 mantis_dvb_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x00000000 mantis_dvb_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x00000000 mantis_frontend_power +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x00000000 mantis_frontend_soft_reset +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x00000000 mantis_get_mac +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x00000000 mantis_gpio_set_bits +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x00000000 mantis_i2c_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x00000000 mantis_i2c_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x00000000 mantis_input_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x00000000 mantis_input_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x00000000 mantis_pci_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x00000000 mantis_pci_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x00000000 mantis_stream_control +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x00000000 mantis_uart_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x00000000 mantis_uart_init +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x00000000 saa7134_enum_input +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x00000000 saa7134_g_frequency +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x00000000 saa7134_g_input +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x00000000 saa7134_g_std +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x00000000 saa7134_g_tuner +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x00000000 saa7134_querycap +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x00000000 saa7134_querystd +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x00000000 saa7134_s_frequency +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x00000000 saa7134_s_input +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x00000000 saa7134_s_std +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x00000000 saa7134_s_tuner +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x00000000 saa7134_stop_streaming +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x00000000 saa7134_ts_buffer_init +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x00000000 saa7134_ts_buffer_prepare +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x00000000 saa7134_ts_qops +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x00000000 saa7134_ts_queue_setup +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x00000000 saa7134_ts_start_streaming +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x00000000 saa7134_ts_stop_streaming +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x00000000 saa7134_vb2_buffer_queue +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x00000000 budget_debug +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x00000000 ttpci_budget_debiread +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x00000000 ttpci_budget_debiwrite +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x00000000 ttpci_budget_deinit +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x00000000 ttpci_budget_init +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x00000000 ttpci_budget_init_hooks +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x00000000 ttpci_budget_irq10_handler +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x00000000 ttpci_budget_set_video_port +EXPORT_SYMBOL_GPL drivers/media/platform/marvell-ccic/mcam-core 0x00000000 mccic_irq +EXPORT_SYMBOL_GPL drivers/media/platform/marvell-ccic/mcam-core 0x00000000 mccic_register +EXPORT_SYMBOL_GPL drivers/media/platform/marvell-ccic/mcam-core 0x00000000 mccic_resume +EXPORT_SYMBOL_GPL drivers/media/platform/marvell-ccic/mcam-core 0x00000000 mccic_shutdown +EXPORT_SYMBOL_GPL drivers/media/platform/marvell-ccic/mcam-core 0x00000000 mccic_suspend +EXPORT_SYMBOL_GPL drivers/media/radio/shark2 0x00000000 radio_tea5777_exit +EXPORT_SYMBOL_GPL drivers/media/radio/shark2 0x00000000 radio_tea5777_init +EXPORT_SYMBOL_GPL drivers/media/radio/si470x/radio-si470x-common 0x00000000 si470x_ctrl_ops +EXPORT_SYMBOL_GPL drivers/media/radio/si470x/radio-si470x-common 0x00000000 si470x_set_freq +EXPORT_SYMBOL_GPL drivers/media/radio/si470x/radio-si470x-common 0x00000000 si470x_start +EXPORT_SYMBOL_GPL drivers/media/radio/si470x/radio-si470x-common 0x00000000 si470x_stop +EXPORT_SYMBOL_GPL drivers/media/radio/si470x/radio-si470x-common 0x00000000 si470x_viddev_template +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x00000000 devm_rc_allocate_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x00000000 devm_rc_register_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x00000000 ir_lirc_scancode_event +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x00000000 ir_raw_event_handle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x00000000 ir_raw_event_set_idle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x00000000 ir_raw_event_store +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x00000000 ir_raw_event_store_edge +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x00000000 ir_raw_event_store_with_filter +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x00000000 ir_raw_event_store_with_timeout +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x00000000 rc_allocate_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x00000000 rc_free_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x00000000 rc_g_keycode_from_table +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x00000000 rc_keydown +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x00000000 rc_keydown_notimeout +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x00000000 rc_keyup +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x00000000 rc_map_get +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x00000000 rc_map_register +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x00000000 rc_map_unregister +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x00000000 rc_register_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x00000000 rc_repeat +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x00000000 rc_unregister_device +EXPORT_SYMBOL_GPL drivers/media/tuners/mt2063 0x00000000 mt2063_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/mt20xx 0x00000000 microtune_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/mxl5007t 0x00000000 mxl5007t_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/r820t 0x00000000 r820t_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda18271 0x00000000 tda18271_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda827x 0x00000000 tda827x_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda8290 0x00000000 tda829x_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda8290 0x00000000 tda829x_probe +EXPORT_SYMBOL_GPL drivers/media/tuners/tda9887 0x00000000 tda9887_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5761 0x00000000 tea5761_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5761 0x00000000 tea5761_autodetection +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5767 0x00000000 tea5767_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5767 0x00000000 tea5767_autodetection +EXPORT_SYMBOL_GPL drivers/media/tuners/tuner-simple 0x00000000 simple_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x00000000 cx231xx_capture_start +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x00000000 cx231xx_demod_reset +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x00000000 cx231xx_dev_init +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x00000000 cx231xx_dev_uninit +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x00000000 cx231xx_disable656 +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x00000000 cx231xx_enable656 +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x00000000 cx231xx_enable_i2c_port_3 +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x00000000 cx231xx_get_i2c_adap +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x00000000 cx231xx_init_bulk +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x00000000 cx231xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x00000000 cx231xx_init_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x00000000 cx231xx_send_gpio_cmd +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x00000000 cx231xx_send_usb_command +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x00000000 cx231xx_set_alt_setting +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x00000000 cx231xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x00000000 cx231xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x00000000 cx231xx_uninit_bulk +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x00000000 cx231xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x00000000 cx231xx_uninit_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x00000000 cx231xx_unmute_audio +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x00000000 is_fw_load +EXPORT_SYMBOL_GPL drivers/media/usb/dvb-usb-v2/mxl111sf-demod 0x00000000 mxl111sf_demod_attach +EXPORT_SYMBOL_GPL drivers/media/usb/dvb-usb-v2/mxl111sf-tuner 0x00000000 mxl111sf_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x00000000 em28xx_alloc_urbs +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x00000000 em28xx_audio_analog_set +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x00000000 em28xx_audio_setup +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x00000000 em28xx_boards +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x00000000 em28xx_find_led +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x00000000 em28xx_free_device +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x00000000 em28xx_gpio_set +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x00000000 em28xx_init_camera +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x00000000 em28xx_init_usb_xfer +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x00000000 em28xx_read_ac97 +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x00000000 em28xx_read_reg +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x00000000 em28xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x00000000 em28xx_setup_xc3028 +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x00000000 em28xx_stop_urbs +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x00000000 em28xx_toggle_reg_bits +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x00000000 em28xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x00000000 em28xx_uninit_usb_xfer +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x00000000 em28xx_write_ac97 +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x00000000 em28xx_write_reg +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x00000000 em28xx_write_reg_bits +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x00000000 em28xx_write_regs +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x00000000 tm6000_debug +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x00000000 tm6000_get_reg +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x00000000 tm6000_set_audio_bitrate +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x00000000 tm6000_set_reg +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x00000000 tm6000_set_reg_mask +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x00000000 tm6000_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x00000000 tm6000_xc5000_callback +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x00000000 v4l2_calc_aspect_ratio +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x00000000 v4l2_calc_timeperframe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x00000000 v4l2_detect_cvt +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x00000000 v4l2_detect_gtf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x00000000 v4l2_dv_timings_aspect_ratio +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x00000000 v4l2_dv_timings_presets +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x00000000 v4l2_enum_dv_timings_cap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x00000000 v4l2_find_dv_timings_cap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x00000000 v4l2_find_dv_timings_cea861_vic +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x00000000 v4l2_get_edid_phys_addr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x00000000 v4l2_hdmi_rx_colorimetry +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x00000000 v4l2_match_dv_timings +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x00000000 v4l2_phys_addr_for_input +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x00000000 v4l2_phys_addr_validate +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x00000000 v4l2_print_dv_timings +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x00000000 v4l2_set_edid_phys_addr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x00000000 v4l2_valid_dv_timings +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-flash-led-class 0x00000000 v4l2_flash_indicator_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-flash-led-class 0x00000000 v4l2_flash_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-flash-led-class 0x00000000 v4l2_flash_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x00000000 v4l2_async_notifier_parse_fwnode_endpoints +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x00000000 v4l2_async_notifier_parse_fwnode_endpoints_by_port +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x00000000 v4l2_async_notifier_parse_fwnode_sensor_common +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x00000000 v4l2_async_register_fwnode_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x00000000 v4l2_async_register_subdev_sensor_common +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x00000000 v4l2_fwnode_endpoint_alloc_parse +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x00000000 v4l2_fwnode_endpoint_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x00000000 v4l2_fwnode_endpoint_parse +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x00000000 v4l2_fwnode_parse_link +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x00000000 v4l2_fwnode_put_link +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_buf_copy_metadata +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_buf_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_buf_remove +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_buf_remove_by_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_buf_remove_by_idx +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_create_bufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_ctx_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_ctx_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_expbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_fop_mmap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_fop_poll +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_ioctl_create_bufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_ioctl_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_ioctl_expbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_ioctl_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_ioctl_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_ioctl_querybuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_ioctl_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_ioctl_stateless_decoder_cmd +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_ioctl_stateless_try_decoder_cmd +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_ioctl_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_ioctl_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_ioctl_try_decoder_cmd +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_ioctl_try_encoder_cmd +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_last_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_next_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_poll +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_querybuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_register_media_controller +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_request_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_try_schedule +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x00000000 v4l2_m2m_unregister_media_controller +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x00000000 __videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x00000000 videobuf_alloc_vb +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x00000000 videobuf_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x00000000 videobuf_iolock +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x00000000 videobuf_mmap_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x00000000 videobuf_mmap_mapper +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x00000000 videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x00000000 videobuf_next_field +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x00000000 videobuf_poll_stream +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x00000000 videobuf_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x00000000 videobuf_querybuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x00000000 videobuf_queue_cancel +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x00000000 videobuf_queue_core_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x00000000 videobuf_queue_is_busy +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x00000000 videobuf_queue_to_vaddr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x00000000 videobuf_read_one +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x00000000 videobuf_read_start +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x00000000 videobuf_read_stop +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x00000000 videobuf_read_stream +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x00000000 videobuf_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x00000000 videobuf_stop +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x00000000 videobuf_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x00000000 videobuf_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x00000000 videobuf_waiton +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x00000000 videobuf_dma_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x00000000 videobuf_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x00000000 videobuf_queue_sg_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x00000000 videobuf_sg_alloc +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x00000000 videobuf_to_dma +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-vmalloc 0x00000000 videobuf_queue_vmalloc_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-vmalloc 0x00000000 videobuf_to_vmalloc +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-vmalloc 0x00000000 videobuf_vmalloc_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 __tracepoint_vb2_v4l2_buf_done +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 __tracepoint_vb2_v4l2_buf_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 __tracepoint_vb2_v4l2_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 __tracepoint_vb2_v4l2_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 __v4l2_ctrl_handler_setup +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 __v4l2_find_nearest_size +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_apply_frmsize_constraints +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_async_notifier_add_devname_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_async_notifier_add_fwnode_remote_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_async_notifier_add_fwnode_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_async_notifier_add_i2c_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_async_notifier_add_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_async_notifier_cleanup +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_compat_ioctl32 +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_ctrl_request_hdl_ctrl_find +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_ctrl_request_hdl_find +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_device_disconnect +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_device_put +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_device_register +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_device_register_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_device_register_subdev_nodes +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_device_set_name +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_device_unregister +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_device_unregister_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_event_dequeue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_event_pending +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_event_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_event_queue_fh +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_event_subdev_unsubscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_event_subscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_event_unsubscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_event_unsubscribe_all +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_fh_add +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_fh_del +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_fh_exit +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_fh_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_fh_is_singular +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_fh_open +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_fh_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_fill_pixfmt +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_fill_pixfmt_mp +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_g_parm_cap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_i2c_new_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_i2c_new_subdev_board +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_i2c_subdev_addr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_i2c_subdev_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_i2c_subdev_set_name +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_i2c_tuner_addrs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_mc_create_media_graph +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_pipeline_link_notify +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_pipeline_pm_use +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_s_parm_cap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_spi_new_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_spi_subdev_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_src_change_event_subdev_subscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_src_change_event_subscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_subdev_alloc_pad_config +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_subdev_free_pad_config +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_subdev_link_validate +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_subdev_link_validate_default +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l2_subdev_notify_event +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l_bound_align_image +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l_disable_media_source +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l_enable_media_source +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00000000 v4l_vb2q_enable_media_source +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0x00000000 pm80x_deinit +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0x00000000 pm80x_init +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0x00000000 pm80x_pm_ops +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0x00000000 pm80x_regmap_config +EXPORT_SYMBOL_GPL drivers/mfd/da9150-core 0x00000000 da9150_bulk_read +EXPORT_SYMBOL_GPL drivers/mfd/da9150-core 0x00000000 da9150_bulk_write +EXPORT_SYMBOL_GPL drivers/mfd/da9150-core 0x00000000 da9150_read_qif +EXPORT_SYMBOL_GPL drivers/mfd/da9150-core 0x00000000 da9150_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/da9150-core 0x00000000 da9150_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/da9150-core 0x00000000 da9150_set_bits +EXPORT_SYMBOL_GPL drivers/mfd/da9150-core 0x00000000 da9150_write_qif +EXPORT_SYMBOL_GPL drivers/mfd/intel-lpss 0x00000000 intel_lpss_prepare +EXPORT_SYMBOL_GPL drivers/mfd/intel-lpss 0x00000000 intel_lpss_probe +EXPORT_SYMBOL_GPL drivers/mfd/intel-lpss 0x00000000 intel_lpss_remove +EXPORT_SYMBOL_GPL drivers/mfd/intel-lpss 0x00000000 intel_lpss_resume +EXPORT_SYMBOL_GPL drivers/mfd/intel-lpss 0x00000000 intel_lpss_suspend +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x00000000 kempld_get_mutex +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x00000000 kempld_read16 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x00000000 kempld_read32 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x00000000 kempld_read8 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x00000000 kempld_release_mutex +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x00000000 kempld_write16 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x00000000 kempld_write32 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x00000000 kempld_write8 +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0x00000000 lm3533_read +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0x00000000 lm3533_update +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0x00000000 lm3533_write +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x00000000 lm3533_ctrlbank_disable +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x00000000 lm3533_ctrlbank_enable +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x00000000 lm3533_ctrlbank_get_brightness +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x00000000 lm3533_ctrlbank_get_pwm +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x00000000 lm3533_ctrlbank_set_brightness +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x00000000 lm3533_ctrlbank_set_max_current +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x00000000 lm3533_ctrlbank_set_pwm +EXPORT_SYMBOL_GPL drivers/mfd/lp3943 0x00000000 lp3943_read_byte +EXPORT_SYMBOL_GPL drivers/mfd/lp3943 0x00000000 lp3943_update_bits +EXPORT_SYMBOL_GPL drivers/mfd/lp3943 0x00000000 lp3943_write_byte +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x00000000 cs47l15_16bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x00000000 cs47l15_16bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x00000000 cs47l15_32bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x00000000 cs47l15_32bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x00000000 cs47l15_patch +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x00000000 cs47l35_16bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x00000000 cs47l35_16bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x00000000 cs47l35_32bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x00000000 cs47l35_32bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x00000000 cs47l35_patch +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x00000000 cs47l85_16bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x00000000 cs47l85_16bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x00000000 cs47l85_32bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x00000000 cs47l85_32bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x00000000 cs47l85_patch +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x00000000 cs47l90_16bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x00000000 cs47l90_16bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x00000000 cs47l90_32bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x00000000 cs47l90_32bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x00000000 cs47l90_patch +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x00000000 cs47l92_16bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x00000000 cs47l92_16bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x00000000 cs47l92_32bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x00000000 cs47l92_32bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x00000000 cs47l92_patch +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x00000000 madera_dev_exit +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x00000000 madera_dev_init +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x00000000 madera_name_from_type +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x00000000 madera_of_match +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x00000000 madera_pm_ops +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x00000000 mc13xxx_adc_do_conversion +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x00000000 mc13xxx_common_exit +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x00000000 mc13xxx_common_init +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x00000000 mc13xxx_variant_mc13783 +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x00000000 mc13xxx_variant_mc13892 +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x00000000 mc13xxx_variant_mc34708 +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x00000000 pcf50633_free_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x00000000 pcf50633_irq_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x00000000 pcf50633_irq_mask_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x00000000 pcf50633_irq_unmask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x00000000 pcf50633_read_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x00000000 pcf50633_reg_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x00000000 pcf50633_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x00000000 pcf50633_reg_set_bit_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x00000000 pcf50633_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x00000000 pcf50633_register_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x00000000 pcf50633_write_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x00000000 pcf50633_adc_async_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x00000000 pcf50633_adc_sync_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x00000000 pcf50633_gpio_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x00000000 pcf50633_gpio_invert_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x00000000 pcf50633_gpio_invert_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x00000000 pcf50633_gpio_power_supply_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x00000000 pcf50633_gpio_set +EXPORT_SYMBOL_GPL drivers/mfd/rave-sp 0x00000000 devm_rave_sp_register_event_notifier +EXPORT_SYMBOL_GPL drivers/mfd/rave-sp 0x00000000 rave_sp_exec +EXPORT_SYMBOL_GPL drivers/mfd/retu-mfd 0x00000000 retu_read +EXPORT_SYMBOL_GPL drivers/mfd/retu-mfd 0x00000000 retu_write +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x00000000 devm_regmap_init_si476x +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x00000000 si476x_core_cmd_agc_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x00000000 si476x_core_cmd_am_acf_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x00000000 si476x_core_cmd_am_rsq_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x00000000 si476x_core_cmd_am_seek_start +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x00000000 si476x_core_cmd_am_tune_freq +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x00000000 si476x_core_cmd_ana_audio_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x00000000 si476x_core_cmd_dig_audio_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x00000000 si476x_core_cmd_fm_acf_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x00000000 si476x_core_cmd_fm_phase_div_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x00000000 si476x_core_cmd_fm_phase_diversity +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x00000000 si476x_core_cmd_fm_rds_blockcount +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x00000000 si476x_core_cmd_fm_rds_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x00000000 si476x_core_cmd_fm_rsq_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x00000000 si476x_core_cmd_fm_seek_start +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x00000000 si476x_core_cmd_fm_tune_freq +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x00000000 si476x_core_cmd_func_info +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x00000000 si476x_core_cmd_get_property +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x00000000 si476x_core_cmd_ic_link_gpo_ctl_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x00000000 si476x_core_cmd_intb_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x00000000 si476x_core_cmd_power_down +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x00000000 si476x_core_cmd_power_up +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x00000000 si476x_core_cmd_set_property +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x00000000 si476x_core_cmd_zif_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x00000000 si476x_core_has_am +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x00000000 si476x_core_has_diversity +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x00000000 si476x_core_i2c_xfer +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x00000000 si476x_core_is_a_primary_tuner +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x00000000 si476x_core_is_a_secondary_tuner +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x00000000 si476x_core_is_in_am_receiver_mode +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x00000000 si476x_core_is_powered_up +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x00000000 si476x_core_set_power_state +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x00000000 si476x_core_start +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x00000000 si476x_core_stop +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x00000000 sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x00000000 sm501_misc_control +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x00000000 sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x00000000 sm501_set_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x00000000 sm501_unit_power +EXPORT_SYMBOL_GPL drivers/mfd/ti_am335x_tscadc 0x00000000 am335x_tsc_se_adc_done +EXPORT_SYMBOL_GPL drivers/mfd/ti_am335x_tscadc 0x00000000 am335x_tsc_se_clr +EXPORT_SYMBOL_GPL drivers/mfd/ti_am335x_tscadc 0x00000000 am335x_tsc_se_set_cache +EXPORT_SYMBOL_GPL drivers/mfd/ti_am335x_tscadc 0x00000000 am335x_tsc_se_set_once +EXPORT_SYMBOL_GPL drivers/mfd/ucb1400_core 0x00000000 ucb1400_adc_read +EXPORT_SYMBOL_GPL drivers/misc/cardreader/alcor_pci 0x00000000 alcor_read32 +EXPORT_SYMBOL_GPL drivers/misc/cardreader/alcor_pci 0x00000000 alcor_read32be +EXPORT_SYMBOL_GPL drivers/misc/cardreader/alcor_pci 0x00000000 alcor_read8 +EXPORT_SYMBOL_GPL drivers/misc/cardreader/alcor_pci 0x00000000 alcor_write16 +EXPORT_SYMBOL_GPL drivers/misc/cardreader/alcor_pci 0x00000000 alcor_write32 +EXPORT_SYMBOL_GPL drivers/misc/cardreader/alcor_pci 0x00000000 alcor_write32be +EXPORT_SYMBOL_GPL drivers/misc/cardreader/alcor_pci 0x00000000 alcor_write8 +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x00000000 rtsx_pci_add_cmd +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x00000000 rtsx_pci_card_exclusive_check +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x00000000 rtsx_pci_card_exist +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x00000000 rtsx_pci_card_power_off +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x00000000 rtsx_pci_card_power_on +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x00000000 rtsx_pci_card_pull_ctl_disable +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x00000000 rtsx_pci_card_pull_ctl_enable +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x00000000 rtsx_pci_complete_unfinished_transfer +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x00000000 rtsx_pci_dma_map_sg +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x00000000 rtsx_pci_dma_transfer +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x00000000 rtsx_pci_dma_unmap_sg +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x00000000 rtsx_pci_read_phy_register +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x00000000 rtsx_pci_read_ppbuf +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x00000000 rtsx_pci_read_register +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x00000000 rtsx_pci_send_cmd +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x00000000 rtsx_pci_send_cmd_no_wait +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x00000000 rtsx_pci_start_run +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x00000000 rtsx_pci_stop_cmd +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x00000000 rtsx_pci_switch_clock +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x00000000 rtsx_pci_switch_output_voltage +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x00000000 rtsx_pci_transfer_data +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x00000000 rtsx_pci_write_phy_register +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x00000000 rtsx_pci_write_ppbuf +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x00000000 rtsx_pci_write_register +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x00000000 rtsx_usb_add_cmd +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x00000000 rtsx_usb_card_exclusive_check +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x00000000 rtsx_usb_ep0_read_register +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x00000000 rtsx_usb_ep0_write_register +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x00000000 rtsx_usb_get_card_status +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x00000000 rtsx_usb_get_rsp +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x00000000 rtsx_usb_read_ppbuf +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x00000000 rtsx_usb_read_register +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x00000000 rtsx_usb_send_cmd +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x00000000 rtsx_usb_switch_clock +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x00000000 rtsx_usb_transfer_data +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x00000000 rtsx_usb_write_ppbuf +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x00000000 rtsx_usb_write_register +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x00000000 cb710_pci_update_config_reg +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x00000000 cb710_set_irq_handler +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x00000000 cb710_sg_dwiter_read_next_block +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x00000000 cb710_sg_dwiter_write_next_block +EXPORT_SYMBOL_GPL drivers/misc/echo/echo 0x00000000 oslec_adaption_mode +EXPORT_SYMBOL_GPL drivers/misc/echo/echo 0x00000000 oslec_create +EXPORT_SYMBOL_GPL drivers/misc/echo/echo 0x00000000 oslec_flush +EXPORT_SYMBOL_GPL drivers/misc/echo/echo 0x00000000 oslec_free +EXPORT_SYMBOL_GPL drivers/misc/echo/echo 0x00000000 oslec_hpf_tx +EXPORT_SYMBOL_GPL drivers/misc/echo/echo 0x00000000 oslec_snapshot +EXPORT_SYMBOL_GPL drivers/misc/echo/echo 0x00000000 oslec_update +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x00000000 eeprom_93cx6_multiread +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x00000000 eeprom_93cx6_multireadb +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x00000000 eeprom_93cx6_read +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x00000000 eeprom_93cx6_readb +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x00000000 eeprom_93cx6_wren +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x00000000 eeprom_93cx6_write +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x00000000 enclosure_add_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x00000000 enclosure_component_alloc +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x00000000 enclosure_component_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x00000000 enclosure_find +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x00000000 enclosure_for_each_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x00000000 enclosure_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x00000000 enclosure_remove_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x00000000 enclosure_unregister +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x00000000 lis3_dev +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x00000000 lis3lv02d_init_device +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x00000000 lis3lv02d_init_dt +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x00000000 lis3lv02d_joystick_disable +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x00000000 lis3lv02d_joystick_enable +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x00000000 lis3lv02d_poweroff +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x00000000 lis3lv02d_poweron +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x00000000 lis3lv02d_remove_fs +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x00000000 __mei_cldev_driver_register +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x00000000 mei_cancel_work +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x00000000 mei_cldev_disable +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x00000000 mei_cldev_driver_unregister +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x00000000 mei_cldev_enable +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x00000000 mei_cldev_enabled +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x00000000 mei_cldev_get_drvdata +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x00000000 mei_cldev_recv +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x00000000 mei_cldev_recv_nonblock +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x00000000 mei_cldev_register_notif_cb +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x00000000 mei_cldev_register_rx_cb +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x00000000 mei_cldev_send +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x00000000 mei_cldev_set_drvdata +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x00000000 mei_cldev_uuid +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x00000000 mei_cldev_ver +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x00000000 mei_deregister +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x00000000 mei_device_init +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x00000000 mei_fw_status2str +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x00000000 mei_hbm_pg +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x00000000 mei_hbm_pg_resume +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x00000000 mei_irq_compl_handler +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x00000000 mei_irq_read_handler +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x00000000 mei_irq_write_handler +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x00000000 mei_register +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x00000000 mei_reset +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x00000000 mei_restart +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x00000000 mei_start +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x00000000 mei_stop +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x00000000 mei_write_is_idle +EXPORT_SYMBOL_GPL drivers/misc/mic/bus/cosm_bus 0x00000000 cosm_find_cdev_by_id +EXPORT_SYMBOL_GPL drivers/misc/mic/bus/cosm_bus 0x00000000 cosm_register_device +EXPORT_SYMBOL_GPL drivers/misc/mic/bus/cosm_bus 0x00000000 cosm_register_driver +EXPORT_SYMBOL_GPL drivers/misc/mic/bus/cosm_bus 0x00000000 cosm_unregister_device +EXPORT_SYMBOL_GPL drivers/misc/mic/bus/cosm_bus 0x00000000 cosm_unregister_driver +EXPORT_SYMBOL_GPL drivers/misc/mic/bus/mic_bus 0x00000000 mbus_register_device +EXPORT_SYMBOL_GPL drivers/misc/mic/bus/mic_bus 0x00000000 mbus_register_driver +EXPORT_SYMBOL_GPL drivers/misc/mic/bus/mic_bus 0x00000000 mbus_unregister_device +EXPORT_SYMBOL_GPL drivers/misc/mic/bus/mic_bus 0x00000000 mbus_unregister_driver +EXPORT_SYMBOL_GPL drivers/misc/mic/bus/scif_bus 0x00000000 scif_register_device +EXPORT_SYMBOL_GPL drivers/misc/mic/bus/scif_bus 0x00000000 scif_register_driver +EXPORT_SYMBOL_GPL drivers/misc/mic/bus/scif_bus 0x00000000 scif_unregister_device +EXPORT_SYMBOL_GPL drivers/misc/mic/bus/scif_bus 0x00000000 scif_unregister_driver +EXPORT_SYMBOL_GPL drivers/misc/mic/bus/vop_bus 0x00000000 vop_register_device +EXPORT_SYMBOL_GPL drivers/misc/mic/bus/vop_bus 0x00000000 vop_register_driver +EXPORT_SYMBOL_GPL drivers/misc/mic/bus/vop_bus 0x00000000 vop_unregister_device +EXPORT_SYMBOL_GPL drivers/misc/mic/bus/vop_bus 0x00000000 vop_unregister_driver +EXPORT_SYMBOL_GPL drivers/misc/mic/scif/scif 0x00000000 scif_accept +EXPORT_SYMBOL_GPL drivers/misc/mic/scif/scif 0x00000000 scif_bind +EXPORT_SYMBOL_GPL drivers/misc/mic/scif/scif 0x00000000 scif_client_register +EXPORT_SYMBOL_GPL drivers/misc/mic/scif/scif 0x00000000 scif_client_unregister +EXPORT_SYMBOL_GPL drivers/misc/mic/scif/scif 0x00000000 scif_close +EXPORT_SYMBOL_GPL drivers/misc/mic/scif/scif 0x00000000 scif_connect +EXPORT_SYMBOL_GPL drivers/misc/mic/scif/scif 0x00000000 scif_fence_mark +EXPORT_SYMBOL_GPL drivers/misc/mic/scif/scif 0x00000000 scif_fence_signal +EXPORT_SYMBOL_GPL drivers/misc/mic/scif/scif 0x00000000 scif_fence_wait +EXPORT_SYMBOL_GPL drivers/misc/mic/scif/scif 0x00000000 scif_get_node_ids +EXPORT_SYMBOL_GPL drivers/misc/mic/scif/scif 0x00000000 scif_get_pages +EXPORT_SYMBOL_GPL drivers/misc/mic/scif/scif 0x00000000 scif_listen +EXPORT_SYMBOL_GPL drivers/misc/mic/scif/scif 0x00000000 scif_open +EXPORT_SYMBOL_GPL drivers/misc/mic/scif/scif 0x00000000 scif_pin_pages +EXPORT_SYMBOL_GPL drivers/misc/mic/scif/scif 0x00000000 scif_poll +EXPORT_SYMBOL_GPL drivers/misc/mic/scif/scif 0x00000000 scif_put_pages +EXPORT_SYMBOL_GPL drivers/misc/mic/scif/scif 0x00000000 scif_readfrom +EXPORT_SYMBOL_GPL drivers/misc/mic/scif/scif 0x00000000 scif_recv +EXPORT_SYMBOL_GPL drivers/misc/mic/scif/scif 0x00000000 scif_register +EXPORT_SYMBOL_GPL drivers/misc/mic/scif/scif 0x00000000 scif_register_pinned_pages +EXPORT_SYMBOL_GPL drivers/misc/mic/scif/scif 0x00000000 scif_send +EXPORT_SYMBOL_GPL drivers/misc/mic/scif/scif 0x00000000 scif_unpin_pages +EXPORT_SYMBOL_GPL drivers/misc/mic/scif/scif 0x00000000 scif_unregister +EXPORT_SYMBOL_GPL drivers/misc/mic/scif/scif 0x00000000 scif_vreadfrom +EXPORT_SYMBOL_GPL drivers/misc/mic/scif/scif 0x00000000 scif_vwriteto +EXPORT_SYMBOL_GPL drivers/misc/mic/scif/scif 0x00000000 scif_writeto +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0x00000000 st_register +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0x00000000 st_unregister +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x00000000 vmci_context_get_priv_flags +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x00000000 vmci_datagram_create_handle +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x00000000 vmci_datagram_create_handle_priv +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x00000000 vmci_datagram_destroy_handle +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x00000000 vmci_datagram_send +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x00000000 vmci_doorbell_create +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x00000000 vmci_doorbell_destroy +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x00000000 vmci_doorbell_notify +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x00000000 vmci_event_subscribe +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x00000000 vmci_event_unsubscribe +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x00000000 vmci_get_context_id +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x00000000 vmci_is_context_owner +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x00000000 vmci_qpair_alloc +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x00000000 vmci_qpair_consume_buf_ready +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x00000000 vmci_qpair_consume_free_space +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x00000000 vmci_qpair_dequeue +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x00000000 vmci_qpair_dequev +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x00000000 vmci_qpair_detach +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x00000000 vmci_qpair_enqueue +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x00000000 vmci_qpair_enquev +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x00000000 vmci_qpair_get_consume_indexes +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x00000000 vmci_qpair_get_produce_indexes +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x00000000 vmci_qpair_peek +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x00000000 vmci_qpair_peekv +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x00000000 vmci_qpair_produce_buf_ready +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x00000000 vmci_qpair_produce_free_space +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x00000000 vmci_register_vsock_callback +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x00000000 vmci_send_datagram +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 __sdhci_add_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 __sdhci_read_caps +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 __sdhci_set_timeout +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 sdhci_abort_tuning +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 sdhci_add_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 sdhci_adma_write_desc +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 sdhci_alloc_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 sdhci_calc_clk +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 sdhci_cleanup_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 sdhci_cqe_disable +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 sdhci_cqe_enable +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 sdhci_cqe_irq +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 sdhci_dumpregs +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 sdhci_enable_clk +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 sdhci_enable_sdio_irq +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 sdhci_enable_v4_mode +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 sdhci_end_tuning +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 sdhci_execute_tuning +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 sdhci_free_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 sdhci_remove_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 sdhci_request +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 sdhci_reset +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 sdhci_reset_tuning +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 sdhci_resume_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 sdhci_runtime_resume_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 sdhci_runtime_suspend_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 sdhci_send_command +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 sdhci_send_tuning +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 sdhci_set_bus_width +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 sdhci_set_clock +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 sdhci_set_data_timeout_irq +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 sdhci_set_ios +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 sdhci_set_power +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 sdhci_set_power_noreg +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 sdhci_set_uhs_signaling +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 sdhci_setup_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 sdhci_start_signal_voltage_switch +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 sdhci_start_tuning +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 sdhci_suspend_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00000000 sdhci_switch_external_dma +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x00000000 sdhci_get_property +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x00000000 sdhci_pltfm_clk_get_max_clock +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x00000000 sdhci_pltfm_free +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x00000000 sdhci_pltfm_init +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x00000000 sdhci_pltfm_pmops +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x00000000 sdhci_pltfm_register +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x00000000 sdhci_pltfm_resume +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x00000000 sdhci_pltfm_suspend +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x00000000 sdhci_pltfm_unregister +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x00000000 cfi_cmdset_0001 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x00000000 cfi_cmdset_0003 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x00000000 cfi_cmdset_0200 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x00000000 cfi_cmdset_0002 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x00000000 cfi_cmdset_0006 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x00000000 cfi_cmdset_0701 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0x00000000 cfi_cmdset_0020 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x00000000 cfi_qry_mode_off +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x00000000 cfi_qry_mode_on +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x00000000 cfi_qry_present +EXPORT_SYMBOL_GPL drivers/mtd/hyperbus/hyperbus-core 0x00000000 hyperbus_register_device +EXPORT_SYMBOL_GPL drivers/mtd/hyperbus/hyperbus-core 0x00000000 hyperbus_unregister_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 __get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 __mtd_next_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 __put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 __register_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 deregister_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 get_mtd_device_nm +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 get_tree_mtd +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 kill_mtd_super +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_add_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_block_isbad +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_block_isreserved +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_block_markbad +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_del_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_device_parse_register +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_device_unregister +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_erase +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_get_device_size +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_get_fact_prot_info +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_get_unmapped_area +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_get_user_prot_info +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_is_locked +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_is_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_kmalloc_up_to +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_lock +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_lock_user_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_ooblayout_count_eccbytes +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_ooblayout_count_freebytes +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_ooblayout_ecc +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_ooblayout_find_eccregion +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_ooblayout_free +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_ooblayout_get_databytes +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_ooblayout_get_eccbytes +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_ooblayout_set_databytes +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_ooblayout_set_eccbytes +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_pairing_groups +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_pairing_info_to_wunit +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_panic_write +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_point +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_read +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_read_fact_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_read_oob +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_read_user_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_table_mutex +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_unlock +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_unpoint +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_write +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_write_oob +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_write_user_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_writev +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 mtd_wunit_to_pairing_info +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 register_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00000000 unregister_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x00000000 add_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x00000000 del_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x00000000 deregister_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x00000000 mtd_blktrans_cease_background +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x00000000 register_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x00000000 nanddev_bbt_cleanup +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x00000000 nanddev_bbt_get_block_status +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x00000000 nanddev_bbt_init +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x00000000 nanddev_bbt_set_block_status +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x00000000 nanddev_bbt_update +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x00000000 nanddev_cleanup +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x00000000 nanddev_erase +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x00000000 nanddev_init +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x00000000 nanddev_isbad +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x00000000 nanddev_isreserved +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x00000000 nanddev_markbad +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x00000000 nanddev_mtd_erase +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x00000000 nanddev_mtd_max_bad_blocks +EXPORT_SYMBOL_GPL drivers/mtd/nand/onenand/onenand 0x00000000 onenand_release +EXPORT_SYMBOL_GPL drivers/mtd/nand/onenand/onenand 0x00000000 onenand_scan +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/denali 0x00000000 denali_chip_init +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x00000000 nand_change_read_column_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x00000000 nand_change_write_column_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x00000000 nand_cleanup +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x00000000 nand_decode_ext_id +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x00000000 nand_deselect_target +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x00000000 nand_ecc_choose_conf +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x00000000 nand_erase_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x00000000 nand_gpio_waitrdy +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x00000000 nand_ooblayout_lp_ops +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x00000000 nand_ooblayout_sp_ops +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x00000000 nand_op_parser_exec_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x00000000 nand_prog_page_begin_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x00000000 nand_prog_page_end_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x00000000 nand_prog_page_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x00000000 nand_read_data_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x00000000 nand_read_oob_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x00000000 nand_read_page_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x00000000 nand_readid_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x00000000 nand_release +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x00000000 nand_reset +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x00000000 nand_reset_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x00000000 nand_select_target +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x00000000 nand_soft_waitrdy +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x00000000 nand_status_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x00000000 nand_subop_get_addr_start_off +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x00000000 nand_subop_get_data_len +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x00000000 nand_subop_get_data_start_off +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x00000000 nand_subop_get_num_addr_cyc +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x00000000 nand_wait_ready +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x00000000 nand_write_data_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/sm_common 0x00000000 sm_register_device +EXPORT_SYMBOL_GPL drivers/mtd/spi-nor/spi-nor 0x00000000 spi_nor_restore +EXPORT_SYMBOL_GPL drivers/mtd/spi-nor/spi-nor 0x00000000 spi_nor_scan +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x00000000 ubi_close_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x00000000 ubi_do_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x00000000 ubi_flush +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x00000000 ubi_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x00000000 ubi_get_volume_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x00000000 ubi_is_mapped +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x00000000 ubi_leb_change +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x00000000 ubi_leb_erase +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x00000000 ubi_leb_map +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x00000000 ubi_leb_read +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x00000000 ubi_leb_read_sg +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x00000000 ubi_leb_unmap +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x00000000 ubi_leb_write +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x00000000 ubi_open_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x00000000 ubi_open_volume_nm +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x00000000 ubi_open_volume_path +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x00000000 ubi_register_volume_notifier +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x00000000 ubi_sync +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x00000000 ubi_unregister_volume_notifier +EXPORT_SYMBOL_GPL drivers/net/arcnet/arcnet 0x00000000 arcnet_led_event +EXPORT_SYMBOL_GPL drivers/net/arcnet/arcnet 0x00000000 devm_arcnet_led_init +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x00000000 alloc_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x00000000 c_can_power_down +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x00000000 c_can_power_up +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x00000000 free_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x00000000 register_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x00000000 unregister_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x00000000 alloc_can_err_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x00000000 alloc_can_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x00000000 alloc_candev_mqs +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x00000000 alloc_canfd_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x00000000 can_bus_off +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x00000000 can_change_mtu +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x00000000 can_change_state +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x00000000 can_dlc2len +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x00000000 can_free_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x00000000 can_get_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x00000000 can_len2dlc +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x00000000 can_put_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x00000000 can_rx_offload_add_fifo +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x00000000 can_rx_offload_add_timestamp +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x00000000 can_rx_offload_del +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x00000000 can_rx_offload_enable +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x00000000 can_rx_offload_get_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x00000000 can_rx_offload_irq_offload_fifo +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x00000000 can_rx_offload_irq_offload_timestamp +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x00000000 can_rx_offload_queue_sorted +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x00000000 can_rx_offload_queue_tail +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x00000000 close_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x00000000 free_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x00000000 open_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x00000000 register_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x00000000 safe_candev_priv +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x00000000 unregister_candev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0x00000000 alloc_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0x00000000 free_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0x00000000 register_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0x00000000 unregister_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0x00000000 m_can_class_allocate_dev +EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0x00000000 m_can_class_get_clocks +EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0x00000000 m_can_class_register +EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0x00000000 m_can_class_resume +EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0x00000000 m_can_class_suspend +EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0x00000000 m_can_class_unregister +EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0x00000000 m_can_init_ram +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x00000000 alloc_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x00000000 free_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x00000000 register_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x00000000 sja1000_interrupt +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x00000000 unregister_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/dsa/lan9303-core 0x00000000 lan9303_indirect_phy_ops +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x00000000 ksz_adjust_link +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x00000000 ksz_disable_port +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x00000000 ksz_enable_port +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x00000000 ksz_get_ethtool_stats +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x00000000 ksz_init_mib_timer +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x00000000 ksz_phy_read16 +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x00000000 ksz_phy_write16 +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x00000000 ksz_port_bridge_join +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x00000000 ksz_port_bridge_leave +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x00000000 ksz_port_fast_age +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x00000000 ksz_port_fdb_dump +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x00000000 ksz_port_mdb_add +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x00000000 ksz_port_mdb_del +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x00000000 ksz_port_mdb_prepare +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x00000000 ksz_port_vlan_prepare +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x00000000 ksz_sset_count +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x00000000 ksz_update_port_member +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek-smi 0x00000000 realtek_smi_write_reg_noack +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek-smi 0x00000000 rtl8366_enable_vlan +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek-smi 0x00000000 rtl8366_enable_vlan4k +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek-smi 0x00000000 rtl8366_get_ethtool_stats +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek-smi 0x00000000 rtl8366_get_pvid +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek-smi 0x00000000 rtl8366_get_sset_count +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek-smi 0x00000000 rtl8366_get_strings +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek-smi 0x00000000 rtl8366_init_vlan +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek-smi 0x00000000 rtl8366_mc_is_used +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek-smi 0x00000000 rtl8366_reset_vlan +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek-smi 0x00000000 rtl8366_set_pvid +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek-smi 0x00000000 rtl8366_set_vlan +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek-smi 0x00000000 rtl8366_vlan_add +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek-smi 0x00000000 rtl8366_vlan_del +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek-smi 0x00000000 rtl8366_vlan_filtering +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek-smi 0x00000000 rtl8366_vlan_prepare +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek-smi 0x00000000 rtl8366rb_variant +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 __mlx4_cmd +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 __mlx4_register_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 __mlx4_replace_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 __mlx4_unregister_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_ACCESS_PTYS_REG +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_CLOSE_PORT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_FLOW_STEERING_IB_UC_QP_RANGE +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_INIT_PORT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_SYNC_TPT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_alloc_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_alloc_hwq_res +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_bf_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_bf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_bond +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_buf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_buf_write_mtt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_config_dev_retrieval +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_config_roce_v2_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_config_vxlan_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_counter_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_counter_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_cq_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_cq_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_cq_modify +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_cq_resize +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_db_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_db_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_find_cached_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_find_cached_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_flow_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_flow_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_flow_steer_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_flow_steer_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_fmr_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_fmr_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_fmr_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_fmr_unmap +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_free_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_free_hwq_res +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_get_active_ports +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_get_admin_guid +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_get_base_gid_ix +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_get_base_qpn +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_get_counter_stats +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_get_default_counter_index +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_get_devlink_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_get_internal_clock_params +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_get_protocol_dev +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_get_slave_default_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_get_vf_config +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_get_vf_stats +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_hw_rule_sz +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_map_phys_fmr +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_map_sw_to_hw_steering_id +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_map_sw_to_hw_steering_mode +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_mr_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_mr_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_mr_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_mr_hw_change_access +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_mr_hw_change_pd +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_mr_hw_get_mpt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_mr_hw_put_mpt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_mr_hw_write_mpt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_mr_rereg_mem_cleanup +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_mr_rereg_mem_write +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_mtt_addr +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_mtt_cleanup +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_mtt_init +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_multicast_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_multicast_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_multicast_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_multicast_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_mw_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_mw_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_mw_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_pd_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_pd_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_phys_to_slave_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_phys_to_slaves_pport +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_phys_to_slaves_pport_actv +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_port_map_set +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_qp_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_qp_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_qp_modify +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_qp_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_qp_release_range +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_qp_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_qp_reserve_range +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_qp_to_ready +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_read_clock +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_register_interface +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_register_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_register_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_replace_zero_macs +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_set_admin_guid +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_set_vf_link_state +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_set_vf_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_set_vf_rate +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_set_vf_spoofchk +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_set_vf_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_slave_convert_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_srq_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_srq_arm +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_srq_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_srq_lookup +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_srq_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_uar_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_uar_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_unbond +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_unicast_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_unicast_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_unicast_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_unicast_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_unregister_interface +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_unregister_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_unregister_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_update_qp +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_vf_get_enable_smi_admin +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_vf_set_enable_smi_admin +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_vf_smi_enabled +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_wol_read +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_wol_write +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_write_mtt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_xrcd_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00000000 mlx4_xrcd_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_accel_esp_create_xfrm +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_accel_esp_destroy_xfrm +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_accel_esp_modify_xfrm +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_accel_ipsec_device_caps +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_buf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_access_reg +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_alloc_q_counter +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_create_dct +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_create_qp +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_dct_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_dealloc_q_counter +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_destroy_dct +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_destroy_qp +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_modify_hca_vport_context +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_qp_modify +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_qp_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_query_ib_ppcnt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_query_q_counter +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_query_sq_state +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_query_vport_counter +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_res_hold +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_res_put +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_reserved_gids_count +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_set_delay_drop +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_xrcd_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_core_xrcd_dealloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_db_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_db_alloc_node +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_db_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_dm_sw_icm_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_dm_sw_icm_dealloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_eswitch_mode +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_fill_page_array +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_fill_page_frag_array +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_frag_buf_alloc_node +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_frag_buf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_modify_nic_vport_mac_address +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_modify_nic_vport_mac_list +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_modify_nic_vport_mtu +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_modify_nic_vport_promisc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_modify_nic_vport_vlans +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_modify_port_ets_rate_limit +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_nic_vport_affiliate_multiport +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_nic_vport_disable_roce +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_nic_vport_enable_roce +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_nic_vport_query_local_lb +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_nic_vport_unaffiliate_multiport +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_nic_vport_update_local_lb +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_query_hca_vport_context +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_query_hca_vport_gid +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_query_hca_vport_node_guid +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_query_hca_vport_pkey +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_query_hca_vport_system_image_guid +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_query_mac_address +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_query_min_inline +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_query_module_eeprom +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_query_nic_system_image_guid +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_query_nic_vport_mac_address +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_query_nic_vport_mac_list +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_query_nic_vport_min_inline +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_query_nic_vport_mtu +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_query_nic_vport_node_guid +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_query_nic_vport_promisc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_query_nic_vport_qkey_viol_cntr +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_query_nic_vport_system_image_guid +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_query_port_admin_status +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_query_port_ets_rate_limit +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_query_port_link_width_oper +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_query_port_max_mtu +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_query_port_oper_mtu +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_query_port_pause +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_query_port_pfc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_query_port_prio_tc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_query_port_ptys +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_query_port_tc_bw_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_query_port_tc_group +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_query_port_vl_hw_cap +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_query_port_wol +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_set_port_admin_status +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_set_port_caps +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_set_port_mtu +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_set_port_pause +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_set_port_pfc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_set_port_prio_tc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_set_port_tc_bw_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_set_port_tc_group +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_set_port_wol +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00000000 mlx5_toggle_port_link +EXPORT_SYMBOL_GPL drivers/net/ethernet/microchip/encx24j600-regmap 0x00000000 devm_regmap_init_encx24j600 +EXPORT_SYMBOL_GPL drivers/net/ethernet/microchip/encx24j600-regmap 0x00000000 regmap_encx24j600_spi_read +EXPORT_SYMBOL_GPL drivers/net/ethernet/microchip/encx24j600-regmap 0x00000000 regmap_encx24j600_spi_write +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac 0x00000000 stmmac_dvr_probe +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac 0x00000000 stmmac_dvr_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac 0x00000000 stmmac_get_mac_addr +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac 0x00000000 stmmac_resume +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac 0x00000000 stmmac_set_mac_addr +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac 0x00000000 stmmac_suspend +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x00000000 stmmac_get_platform_resources +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x00000000 stmmac_pltfr_pm_ops +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x00000000 stmmac_pltfr_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x00000000 stmmac_probe_config_dt +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x00000000 stmmac_remove_config_dt +EXPORT_SYMBOL_GPL drivers/net/ethernet/wiznet/w5100 0x00000000 w5100_ops_priv +EXPORT_SYMBOL_GPL drivers/net/ethernet/wiznet/w5100 0x00000000 w5100_pm_ops +EXPORT_SYMBOL_GPL drivers/net/ethernet/wiznet/w5100 0x00000000 w5100_probe +EXPORT_SYMBOL_GPL drivers/net/ethernet/wiznet/w5100 0x00000000 w5100_remove +EXPORT_SYMBOL_GPL drivers/net/geneve 0x00000000 geneve_dev_create_fb +EXPORT_SYMBOL_GPL drivers/net/ipvlan/ipvlan 0x00000000 ipvlan_count_rx +EXPORT_SYMBOL_GPL drivers/net/ipvlan/ipvlan 0x00000000 ipvlan_link_delete +EXPORT_SYMBOL_GPL drivers/net/ipvlan/ipvlan 0x00000000 ipvlan_link_new +EXPORT_SYMBOL_GPL drivers/net/ipvlan/ipvlan 0x00000000 ipvlan_link_register +EXPORT_SYMBOL_GPL drivers/net/ipvlan/ipvlan 0x00000000 ipvlan_link_setup +EXPORT_SYMBOL_GPL drivers/net/macsec 0x00000000 macsec_pn_wrapped +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x00000000 macvlan_common_newlink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x00000000 macvlan_common_setup +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x00000000 macvlan_dellink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x00000000 macvlan_link_register +EXPORT_SYMBOL_GPL drivers/net/net_failover 0x00000000 net_failover_create +EXPORT_SYMBOL_GPL drivers/net/net_failover 0x00000000 net_failover_destroy +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x00000000 bcm54xx_auxctl_read +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x00000000 bcm_phy_28nm_a0b0_afe_config_init +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x00000000 bcm_phy_ack_intr +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x00000000 bcm_phy_config_intr +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x00000000 bcm_phy_downshift_get +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x00000000 bcm_phy_downshift_set +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x00000000 bcm_phy_enable_apd +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x00000000 bcm_phy_get_sset_count +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x00000000 bcm_phy_get_stats +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x00000000 bcm_phy_get_strings +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x00000000 bcm_phy_r_rc_cal_reset +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x00000000 bcm_phy_read_exp +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x00000000 bcm_phy_read_misc +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x00000000 bcm_phy_read_shadow +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x00000000 bcm_phy_set_eee +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x00000000 bcm_phy_write_exp +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x00000000 bcm_phy_write_misc +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x00000000 bcm_phy_write_shadow +EXPORT_SYMBOL_GPL drivers/net/phy/mdio-i2c 0x00000000 mdio_i2c_alloc +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x00000000 phylink_connect_phy +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x00000000 phylink_create +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x00000000 phylink_destroy +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x00000000 phylink_disconnect_phy +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x00000000 phylink_ethtool_get_eee +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x00000000 phylink_ethtool_get_pauseparam +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x00000000 phylink_ethtool_get_wol +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x00000000 phylink_ethtool_ksettings_get +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x00000000 phylink_ethtool_ksettings_set +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x00000000 phylink_ethtool_nway_reset +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x00000000 phylink_ethtool_set_eee +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x00000000 phylink_ethtool_set_pauseparam +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x00000000 phylink_ethtool_set_wol +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x00000000 phylink_fixed_state_cb +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x00000000 phylink_get_eee_err +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x00000000 phylink_helper_basex_speed +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x00000000 phylink_init_eee +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x00000000 phylink_mac_change +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x00000000 phylink_mii_ioctl +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x00000000 phylink_of_phy_connect +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x00000000 phylink_set_port_modes +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x00000000 phylink_start +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x00000000 phylink_stop +EXPORT_SYMBOL_GPL drivers/net/tap 0x00000000 tap_create_cdev +EXPORT_SYMBOL_GPL drivers/net/tap 0x00000000 tap_del_queues +EXPORT_SYMBOL_GPL drivers/net/tap 0x00000000 tap_destroy_cdev +EXPORT_SYMBOL_GPL drivers/net/tap 0x00000000 tap_free_minor +EXPORT_SYMBOL_GPL drivers/net/tap 0x00000000 tap_get_minor +EXPORT_SYMBOL_GPL drivers/net/tap 0x00000000 tap_get_ptr_ring +EXPORT_SYMBOL_GPL drivers/net/tap 0x00000000 tap_get_socket +EXPORT_SYMBOL_GPL drivers/net/tap 0x00000000 tap_handle_frame +EXPORT_SYMBOL_GPL drivers/net/tap 0x00000000 tap_queue_resize +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x00000000 usbnet_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x00000000 usbnet_cdc_status +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x00000000 usbnet_cdc_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x00000000 usbnet_ether_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x00000000 usbnet_generic_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x00000000 cdc_ncm_bind_common +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x00000000 cdc_ncm_change_mtu +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x00000000 cdc_ncm_fill_tx_frame +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x00000000 cdc_ncm_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x00000000 cdc_ncm_rx_verify_ndp16 +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x00000000 cdc_ncm_rx_verify_nth16 +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x00000000 cdc_ncm_select_altsetting +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x00000000 cdc_ncm_tx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x00000000 cdc_ncm_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x00000000 generic_rndis_bind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x00000000 rndis_command +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x00000000 rndis_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x00000000 rndis_status +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x00000000 rndis_tx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x00000000 rndis_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_change_mtu +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_defer_kevent +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_disconnect +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_get_drvinfo +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_get_endpoints +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_get_ethernet_addr +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_get_link +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_get_link_ksettings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_get_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_get_stats64 +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_nway_reset +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_open +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_pause_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_probe +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_purge_paused_rxq +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_read_cmd +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_read_cmd_nopm +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_resume +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_resume_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_set_link_ksettings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_set_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_skb_return +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_start_xmit +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_status_start +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_status_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_suspend +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_tx_timeout +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_unlink_rx_urbs +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_update_max_qlen +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_write_cmd +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_write_cmd_async +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00000000 usbnet_write_cmd_nopm +EXPORT_SYMBOL_GPL drivers/net/vxlan 0x00000000 vxlan_dev_create +EXPORT_SYMBOL_GPL drivers/net/vxlan 0x00000000 vxlan_fdb_clear_offload +EXPORT_SYMBOL_GPL drivers/net/vxlan 0x00000000 vxlan_fdb_find_uc +EXPORT_SYMBOL_GPL drivers/net/vxlan 0x00000000 vxlan_fdb_replay +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x00000000 i2400m_bm_cmd_prepare +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x00000000 i2400m_cmd_enter_powersave +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x00000000 i2400m_dev_bootstrap +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x00000000 i2400m_dev_reset_handle +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x00000000 i2400m_error_recovery +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x00000000 i2400m_init +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x00000000 i2400m_is_boot_barker +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x00000000 i2400m_netdev_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x00000000 i2400m_post_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x00000000 i2400m_pre_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x00000000 i2400m_release +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x00000000 i2400m_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x00000000 i2400m_rx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x00000000 i2400m_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x00000000 i2400m_tx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x00000000 i2400m_tx_msg_get +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x00000000 i2400m_tx_msg_sent +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/ipw2x00/libipw 0x00000000 libipw_rx_any +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 _il_grab_nic_access +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_dealloc_bcast_stations +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_mac_tx_last_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_prep_station +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00000000 il_remove_station +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 __iwl_crit +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 __iwl_dbg +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 __iwl_err +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 __iwl_info +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 __iwl_warn +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_abort_notification_waits +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_acpi_get_eckv +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_acpi_get_mcc +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_acpi_get_object +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_acpi_get_pwr_limit +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_acpi_get_wifi_pkg +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_clear_bits_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_cmd_groups_verify_sorted +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_dbg_tlv_del_timers +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_dbg_tlv_time_point +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_dump_desc_assert +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_finish_nic_init +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_force_nmi +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_free_fw_paging +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_fw_dbg_collect +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_fw_dbg_collect_desc +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_fw_dbg_collect_trig +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_fw_dbg_error_collect +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_fw_dbg_read_d3_debug_data +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_fw_dbg_stop_restart_recording +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_fw_dbg_stop_sync +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_fw_error_print_fseq_regs +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_fw_runtime_init +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_fw_runtime_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_fw_runtime_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_fw_start_dbg_conf +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_get_cmd_string +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_get_nvm +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_get_shared_mem_conf +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_init_notification_wait +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_init_paging +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_notification_wait +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_notification_wait_init +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_nvm_fixups +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_opmode_deregister +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_opmode_register +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_parse_eeprom_data +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_parse_nvm_data +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_parse_nvm_mcc_info +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_phy_db_free +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_phy_db_init +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_phy_db_set_section +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_poll_bit +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_poll_direct_bit +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_read32 +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_read_direct32 +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_read_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_read_external_nvm +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_read_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_read_prph_no_grab +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_remove_notification +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_sar_geo_init +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_sar_geo_support +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_sar_get_ewrd_table +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_sar_get_wgds_table +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_sar_get_wrds_table +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_sar_select_profile +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_sar_set_profile +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_send_phy_db_data +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_set_bits_mask_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_set_bits_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_trans_send_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_validate_sar_geo_profile +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_wait_notification +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_write32 +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_write64 +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_write8 +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_write_direct32 +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_write_direct64 +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_write_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_write_prph64_no_grab +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwl_write_prph_no_grab +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x00000000 iwlwifi_mod_params +EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0x00000000 p54_free_common +EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0x00000000 p54_free_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0x00000000 p54_init_common +EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0x00000000 p54_parse_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0x00000000 p54_parse_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0x00000000 p54_read_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0x00000000 p54_register_common +EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0x00000000 p54_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0x00000000 p54_unregister_common +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x00000000 __lbs_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x00000000 lbs_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x00000000 lbs_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x00000000 lbs_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x00000000 lbs_disablemesh +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x00000000 lbs_get_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x00000000 lbs_get_firmware_async +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x00000000 lbs_host_sleep_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x00000000 lbs_host_to_card_done +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x00000000 lbs_notify_command_response +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x00000000 lbs_process_rxed_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x00000000 lbs_queue_event +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x00000000 lbs_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x00000000 lbs_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x00000000 lbs_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x00000000 lbs_start_card +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x00000000 lbs_stop_card +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x00000000 lbs_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x00000000 __lbtf_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x00000000 lbtf_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x00000000 lbtf_bcn_sent +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x00000000 lbtf_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x00000000 lbtf_cmd_response_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x00000000 lbtf_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x00000000 lbtf_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x00000000 lbtf_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x00000000 lbtf_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x00000000 _mwifiex_dbg +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x00000000 mwifiex_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x00000000 mwifiex_add_virtual_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x00000000 mwifiex_alloc_dma_align_buf +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x00000000 mwifiex_cancel_hs +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x00000000 mwifiex_deauthenticate_all +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x00000000 mwifiex_del_virtual_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x00000000 mwifiex_disable_auto_ds +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x00000000 mwifiex_dnld_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x00000000 mwifiex_drv_info_dump +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x00000000 mwifiex_enable_hs +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x00000000 mwifiex_fw_dump_event +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x00000000 mwifiex_handle_rx_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x00000000 mwifiex_init_shutdown_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x00000000 mwifiex_main_process +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x00000000 mwifiex_multi_chan_resync +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x00000000 mwifiex_prepare_fw_dump_info +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x00000000 mwifiex_process_hs_config +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x00000000 mwifiex_process_sleep_confirm_resp +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x00000000 mwifiex_queue_main_work +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x00000000 mwifiex_reinit_sw +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x00000000 mwifiex_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x00000000 mwifiex_shutdown_sw +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x00000000 mwifiex_upload_device_dump +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x00000000 mwifiex_write_data_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 __mt76_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 __mt76_poll_msec +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 __mt76_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_ac_to_hwq +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_alloc_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_calc_tx_airtime +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_csa_check +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_csa_finish +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_dma_attach +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_dma_cleanup +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_eeprom_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_eeprom_override +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_free_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_get_antenna +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_get_min_avg_rssi +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_get_rate +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_get_survey +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_get_txpower +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_has_tx_pending +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_insert_ccmp_hdr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_mcu_get_response +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_mcu_msg_alloc +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_mcu_rx_event +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_mmio_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_pci_disable_aspm +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_put_txwi +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_queues_read +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_register_debugfs +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_register_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_release_buffered_frames +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_rx_aggr_start +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_rx_aggr_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_rx_poll_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_seq_puts_array +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_set_channel +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_set_irq_mask +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_set_stream_caps +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_set_tim +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_sta_state +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_stop_tx_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_sw_scan +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_sw_scan_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_tx_complete_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_tx_status_check +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_tx_status_lock +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_tx_status_skb_add +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_tx_status_skb_done +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_tx_status_skb_get +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_tx_status_unlock +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_txq_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_txq_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_txq_schedule +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_txq_schedule_all +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_unregister_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_update_survey +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_wake_tx_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x00000000 mt76_wcid_alloc +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x00000000 mt76u_alloc_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x00000000 mt76u_deinit +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x00000000 mt76u_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x00000000 mt76u_queues_deinit +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x00000000 mt76u_resume_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x00000000 mt76u_single_wr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x00000000 mt76u_stop_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x00000000 mt76u_stop_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x00000000 mt76u_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x00000000 mt76x0_chip_onoff +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x00000000 mt76x0_config +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x00000000 mt76x0_init_hardware +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x00000000 mt76x0_mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x00000000 mt76x0_phy_calibrate +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x00000000 mt76x0_register_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_add_rate_power_offset +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_ampdu_action +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_bss_info_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_config_mac_addr_list +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_configure_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_dfs_init_params +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_dma_cleanup +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_dma_disable +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_dma_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_edcca_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_eeprom_copy +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_eeprom_parse_hw_cap +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_enqueue_buffered_bc +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_ext_pa_enabled +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_get_efuse_data +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_get_lna_gain +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_get_max_rate_power +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_get_rx_gain +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_init_agc_gain +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_init_beacon_config +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_init_debugfs +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_init_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_irq_handler +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_limit_rate_power +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_mac_cc_reset +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_mac_reset_counters +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_mac_set_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_mac_setaddr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_mac_shared_key_setup +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_mac_wcid_setup +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_mac_write_txwi +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_mcu_calibrate +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_mcu_cleanup +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_mcu_function_select +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_mcu_msg_send +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_mcu_set_radio_state +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_phy_adjust_vga_gain +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_phy_dfs_adjust_agc +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_phy_set_band +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_phy_set_bw +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_phy_set_rxpath +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_phy_set_txdac +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_phy_set_txpower +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_queue_rx_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_rates +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_remove_hdr_pad +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_resync_beacon_timer +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_rx_poll_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_set_coverage_class +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_set_ethtool_fwver +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_set_rts_threshold +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_set_tx_ackto +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_sta_ps +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_sta_rate_tbl_update +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_sw_scan_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_tx_complete_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_tx_prepare_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_tx_set_txpwr_auto +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_tx_status_data +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_update_beacon_iter +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02_update_channel +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00000000 mt76x02e_init_beacon_config +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x00000000 mt76x02u_exit_beacon_config +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x00000000 mt76x02u_init_beacon_config +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x00000000 mt76x02u_init_mcu +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x00000000 mt76x02u_mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x00000000 mt76x02u_mcu_fw_reset +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x00000000 mt76x02u_mcu_fw_send_data +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x00000000 mt76x02u_tx_complete_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x00000000 mt76x02u_tx_prepare_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x00000000 mt76_write_mac_initvals +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x00000000 mt76x2_apply_gain_adj +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x00000000 mt76x2_configure_tx_delay +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x00000000 mt76x2_eeprom_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x00000000 mt76x2_get_power_info +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x00000000 mt76x2_get_rate_power +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x00000000 mt76x2_get_temp_comp +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x00000000 mt76x2_init_txpower +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x00000000 mt76x2_mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x00000000 mt76x2_mcu_init_gain +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x00000000 mt76x2_mcu_load_cr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x00000000 mt76x2_mcu_set_channel +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x00000000 mt76x2_mcu_tssi_comp +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x00000000 mt76x2_phy_set_txpower +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x00000000 mt76x2_phy_set_txpower_regs +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x00000000 mt76x2_phy_tssi_compensate +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x00000000 mt76x2_phy_update_channel_gain +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x00000000 mt76x2_read_rx_gain +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x00000000 mt76x2_reset_wlan +EXPORT_SYMBOL_GPL drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x00000000 qtnf_chipid_to_string +EXPORT_SYMBOL_GPL drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x00000000 qtnf_classify_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x00000000 qtnf_core_attach +EXPORT_SYMBOL_GPL drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x00000000 qtnf_core_detach +EXPORT_SYMBOL_GPL drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x00000000 qtnf_get_debugfs_dir +EXPORT_SYMBOL_GPL drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x00000000 qtnf_trans_handle_rx_ctl_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x00000000 qtnf_update_rx_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x00000000 qtnf_update_tx_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x00000000 qtnf_wake_all_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_ampdu_action +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_check_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_clear_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_config +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_config_ant +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_config_erp +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_config_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_config_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_config_pairwise_key +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_config_shared_key +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_disable_wpdma +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_efuse_detect +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_gain_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_get_key_seq +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_get_survey +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_get_tsf +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_get_txwi_rxwi_size +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_link_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_link_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_load_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_mcu_request +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_pre_reset_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_probe_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_process_rxwi +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_read_eeprom_efuse +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_reset_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_set_rts_threshold +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_txdone_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_txdone_nostatus +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_txstatus_pending +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_txstatus_timeout +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_vco_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_wait_csr_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_wait_wpdma_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_watchdog +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_write_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00000000 rt2800_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x00000000 rt2800mmio_autowake_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x00000000 rt2800mmio_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x00000000 rt2800mmio_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x00000000 rt2800mmio_fill_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x00000000 rt2800mmio_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x00000000 rt2800mmio_get_dma_done +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x00000000 rt2800mmio_get_entry_state +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x00000000 rt2800mmio_get_txwi +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x00000000 rt2800mmio_init_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x00000000 rt2800mmio_init_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x00000000 rt2800mmio_interrupt +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x00000000 rt2800mmio_kick_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x00000000 rt2800mmio_pretbtt_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x00000000 rt2800mmio_probe_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x00000000 rt2800mmio_queue_init +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x00000000 rt2800mmio_rxdone_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x00000000 rt2800mmio_start_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x00000000 rt2800mmio_stop_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x00000000 rt2800mmio_tbtt_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x00000000 rt2800mmio_toggle_irq +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x00000000 rt2800mmio_txstatus_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x00000000 rt2800mmio_write_tx_desc +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00lib_dmadone +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00lib_dmastart +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00lib_get_bssidx +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00lib_pretbtt +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00lib_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00lib_set_mac_address +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00lib_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00lib_txdone_noinfo +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00lib_txdone_nomatch +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00mac_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00mac_bss_info_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00mac_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00mac_config +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00mac_configure_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00mac_flush +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00mac_get_antenna +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00mac_get_ringparam +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00mac_get_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00mac_reconfig_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00mac_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00mac_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00mac_set_antenna +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00mac_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00mac_set_tim +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00mac_sw_scan_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00mac_sw_scan_start +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00mac_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00mac_tx_frames_pending +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00queue_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00queue_flush_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00queue_for_each_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00queue_get_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00queue_map_txskb +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00queue_pause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00queue_start_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00queue_start_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00queue_stop_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00queue_stop_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00queue_unmap_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00000000 rt2x00queue_unpause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x00000000 rt2x00mmio_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x00000000 rt2x00mmio_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x00000000 rt2x00mmio_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x00000000 rt2x00mmio_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x00000000 rt2x00mmio_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00pci 0x00000000 rt2x00pci_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00pci 0x00000000 rt2x00pci_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00pci 0x00000000 rt2x00pci_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00pci 0x00000000 rt2x00pci_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x00000000 rt2x00usb_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x00000000 rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x00000000 rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x00000000 rt2x00usb_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x00000000 rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x00000000 rt2x00usb_kick_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x00000000 rt2x00usb_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x00000000 rt2x00usb_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x00000000 rt2x00usb_register_read_async +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x00000000 rt2x00usb_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x00000000 rt2x00usb_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x00000000 rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x00000000 rt2x00usb_vendor_req_buff_lock +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x00000000 rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x00000000 rt2x00usb_vendor_request_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x00000000 rt2x00usb_watchdog +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 dm_restorepowerindex +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 dm_savepowerindex +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 dm_writepowerindex +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x00000000 rtl92c_set_p2p_ps_offload_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x00000000 rtl8723_cmd_send_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x00000000 rtl8723_dm_init_dynamic_bb_powersaving +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x00000000 rtl8723_dm_init_dynamic_txpower +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x00000000 rtl8723_dm_init_edca_turbo +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x00000000 rtl8723_download_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x00000000 rtl8723_enable_fw_download +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x00000000 rtl8723_fw_free_to_go +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x00000000 rtl8723_phy_calculate_bit_shift +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x00000000 rtl8723_phy_init_bb_rf_reg_def +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x00000000 rtl8723_phy_mac_setting_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x00000000 rtl8723_phy_path_a_fill_iqk_matrix +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x00000000 rtl8723_phy_path_a_standby +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x00000000 rtl8723_phy_path_adda_on +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x00000000 rtl8723_phy_pi_mode_switch +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x00000000 rtl8723_phy_query_bb_reg +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x00000000 rtl8723_phy_reload_adda_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x00000000 rtl8723_phy_reload_mac_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x00000000 rtl8723_phy_rf_serial_read +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x00000000 rtl8723_phy_rf_serial_write +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x00000000 rtl8723_phy_save_mac_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x00000000 rtl8723_phy_set_bb_reg +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x00000000 rtl8723_phy_set_sw_chnl_cmdarray +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x00000000 rtl8723_phy_txpwr_idx_to_dbm +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x00000000 rtl8723_save_adda_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x00000000 rtl8723_write_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x00000000 rtl8723ae_firmware_selfreset +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x00000000 rtl8723be_firmware_selfreset +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 read_efuse_byte +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_action_proc +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_beacon_statistic +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_btc_status_false +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_deinit_core +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_deinit_deferred_work +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_deinit_rfkill +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_efuse_ops_init +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_fill_dummy +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_fw_block_write +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_fw_page_write +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_get_hal_edca_param +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_get_hwinfo +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_global_var +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_init_core +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_init_rx_config +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_ips_nic_on +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_is_special_data +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_lps_change_work_callback +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_lps_enter +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_lps_leave +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_ops +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_p2p_info +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_recognize_peer +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_set_tx_report +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_swlps_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_tid_to_ac +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_tx_ackqueue +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_tx_mgmt_proc +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00000000 rtl_tx_report_handler +EXPORT_SYMBOL_GPL drivers/net/wireless/rsi/rsi_91x 0x00000000 rsi_91x_deinit +EXPORT_SYMBOL_GPL drivers/net/wireless/rsi/rsi_91x 0x00000000 rsi_91x_init +EXPORT_SYMBOL_GPL drivers/net/wireless/rsi/rsi_91x 0x00000000 rsi_dbg +EXPORT_SYMBOL_GPL drivers/net/wireless/rsi/rsi_91x 0x00000000 rsi_hal_device_init +EXPORT_SYMBOL_GPL drivers/net/wireless/rsi/rsi_91x 0x00000000 rsi_mac80211_detach +EXPORT_SYMBOL_GPL drivers/net/wireless/rsi/rsi_91x 0x00000000 rsi_read_pkt +EXPORT_SYMBOL_GPL drivers/net/wireless/rsi/rsi_91x 0x00000000 rsi_zone_enabled +EXPORT_SYMBOL_GPL drivers/net/wireless/st/cw1200/cw1200_core 0x00000000 cw1200_can_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/st/cw1200/cw1200_core 0x00000000 cw1200_core_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/st/cw1200/cw1200_core 0x00000000 cw1200_core_release +EXPORT_SYMBOL_GPL drivers/net/wireless/st/cw1200/cw1200_core 0x00000000 cw1200_irq_handler +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0x00000000 wl1251_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0x00000000 wl1251_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0x00000000 wl1251_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wl1271_acx_init_mem_config +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wl1271_acx_pm_config +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wl1271_acx_set_ht_capabilities +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wl1271_acx_sleep_auth +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wl1271_cmd_configure +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wl1271_cmd_data_path +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wl1271_cmd_send +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wl1271_cmd_test +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wl1271_debugfs_update_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wl1271_format_buffer +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wl1271_tx_flush +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wl1271_tx_min_rate_get +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wl12xx_acx_mem_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wl12xx_cmd_build_probe_req +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wl12xx_debug_level +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wlcore_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wlcore_boot_run_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wlcore_boot_upload_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wlcore_boot_upload_nvs +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wlcore_cmd_generic_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wlcore_cmd_wait_for_event_or_timeout +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wlcore_disable_interrupts +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wlcore_disable_interrupts_nosync +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wlcore_enable_interrupts +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wlcore_event_ba_rx_constraint +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wlcore_event_beacon_loss +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wlcore_event_channel_switch +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wlcore_event_dummy_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wlcore_event_fw_logger +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wlcore_event_inactive_sta +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wlcore_event_max_tx_failure +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wlcore_event_roc_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wlcore_event_rssi_trigger +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wlcore_event_sched_scan_completed +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wlcore_event_soft_gemini_sense +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wlcore_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wlcore_get_native_channel_type +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wlcore_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wlcore_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wlcore_scan_sched_scan_results +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wlcore_scan_sched_scan_ssid_list +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wlcore_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wlcore_set_partition +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wlcore_set_scan_chan_params +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wlcore_synchronize_interrupts +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00000000 wlcore_translate_addr +EXPORT_SYMBOL_GPL drivers/nfc/mei_phy 0x00000000 mei_phy_ops +EXPORT_SYMBOL_GPL drivers/nfc/mei_phy 0x00000000 nfc_mei_phy_alloc +EXPORT_SYMBOL_GPL drivers/nfc/mei_phy 0x00000000 nfc_mei_phy_free +EXPORT_SYMBOL_GPL drivers/nfc/nfcmrvl/nfcmrvl 0x00000000 nfcmrvl_nci_recv_frame +EXPORT_SYMBOL_GPL drivers/nfc/nfcmrvl/nfcmrvl 0x00000000 nfcmrvl_nci_register_dev +EXPORT_SYMBOL_GPL drivers/nfc/nfcmrvl/nfcmrvl 0x00000000 nfcmrvl_nci_unregister_dev +EXPORT_SYMBOL_GPL drivers/nfc/nfcmrvl/nfcmrvl 0x00000000 nfcmrvl_parse_dt +EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0x00000000 pn532_i2c_nfc_alloc +EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0x00000000 pn533_finalize_setup +EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0x00000000 pn533_rx_frame_is_ack +EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0x00000000 pn533_rx_frame_is_cmd_response +EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0x00000000 pn53x_common_clean +EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0x00000000 pn53x_common_init +EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0x00000000 pn53x_register_nfc +EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0x00000000 pn53x_unregister_nfc +EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0x00000000 st_nci_disable_se +EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0x00000000 st_nci_discover_se +EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0x00000000 st_nci_enable_se +EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0x00000000 st_nci_hci_cmd_received +EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0x00000000 st_nci_hci_event_received +EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0x00000000 st_nci_hci_load_session +EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0x00000000 st_nci_probe +EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0x00000000 st_nci_remove +EXPORT_SYMBOL_GPL drivers/nfc/st95hf/st95hf 0x00000000 st95hf_spi_recv_echo_res +EXPORT_SYMBOL_GPL drivers/nfc/st95hf/st95hf 0x00000000 st95hf_spi_recv_response +EXPORT_SYMBOL_GPL drivers/nfc/st95hf/st95hf 0x00000000 st95hf_spi_send +EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0x00000000 ntb_transport_create_queue +EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0x00000000 ntb_transport_free_queue +EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0x00000000 ntb_transport_link_down +EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0x00000000 ntb_transport_link_query +EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0x00000000 ntb_transport_link_up +EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0x00000000 ntb_transport_max_size +EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0x00000000 ntb_transport_qp_num +EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0x00000000 ntb_transport_register_client +EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0x00000000 ntb_transport_register_client_dev +EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0x00000000 ntb_transport_rx_enqueue +EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0x00000000 ntb_transport_rx_remove +EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0x00000000 ntb_transport_tx_enqueue +EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0x00000000 ntb_transport_tx_free_entry +EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0x00000000 ntb_transport_unregister_client +EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0x00000000 ntb_transport_unregister_client_dev +EXPORT_SYMBOL_GPL drivers/nvdimm/nd_virtio 0x00000000 async_pmem_flush +EXPORT_SYMBOL_GPL drivers/nvdimm/nd_virtio 0x00000000 virtio_pmem_host_ack +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 __nvme_submit_sync_cmd +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 __tracepoint_nvme_sq +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 admin_timeout +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_alloc_request +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_cancel_request +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_change_ctrl_state +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_cleanup_cmd +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_complete_async_event +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_complete_rq +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_delete_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_delete_wq +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_disable_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_enable_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_get_features +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_init_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_init_identify +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_io_timeout +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_kill_queues +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_remove_namespaces +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_reset_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_reset_ctrl_sync +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_reset_wq +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_sec_submit +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_set_features +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_set_queue_count +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_setup_cmd +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_shutdown_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_start_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_start_freeze +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_start_queues +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_stop_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_stop_keep_alive +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_stop_queues +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_submit_sync_cmd +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_sync_queues +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_try_sched_reset +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_unfreeze +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_uninit_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_wait_freeze +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_wait_freeze_timeout +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_wait_reset +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x00000000 nvme_wq +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x00000000 __nvmf_check_ready +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x00000000 nvmf_connect_admin_queue +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x00000000 nvmf_connect_io_queue +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x00000000 nvmf_fail_nonready_command +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x00000000 nvmf_free_options +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x00000000 nvmf_get_address +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x00000000 nvmf_ip_options_match +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x00000000 nvmf_reg_read32 +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x00000000 nvmf_reg_read64 +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x00000000 nvmf_reg_write32 +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x00000000 nvmf_register_transport +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x00000000 nvmf_should_reconnect +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x00000000 nvmf_unregister_transport +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fc 0x00000000 nvme_fc_register_localport +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fc 0x00000000 nvme_fc_register_remoteport +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fc 0x00000000 nvme_fc_rescan_remoteport +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fc 0x00000000 nvme_fc_set_remoteport_devloss +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fc 0x00000000 nvme_fc_unregister_localport +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fc 0x00000000 nvme_fc_unregister_remoteport +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x00000000 nvmet_check_data_len +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x00000000 nvmet_ctrl_fatal_error +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x00000000 nvmet_register_transport +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x00000000 nvmet_req_alloc_sgl +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x00000000 nvmet_req_complete +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x00000000 nvmet_req_free_sgl +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x00000000 nvmet_req_init +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x00000000 nvmet_req_uninit +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x00000000 nvmet_sq_destroy +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x00000000 nvmet_sq_init +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x00000000 nvmet_unregister_transport +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet-fc 0x00000000 nvmet_fc_rcv_fcp_abort +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet-fc 0x00000000 nvmet_fc_rcv_fcp_req +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet-fc 0x00000000 nvmet_fc_rcv_ls_req +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet-fc 0x00000000 nvmet_fc_register_targetport +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet-fc 0x00000000 nvmet_fc_unregister_targetport +EXPORT_SYMBOL_GPL drivers/pci/controller/pci-hyperv-intf 0x00000000 hvpci_block_ops +EXPORT_SYMBOL_GPL drivers/pci/controller/pci-hyperv-intf 0x00000000 hyperv_read_cfg_blk +EXPORT_SYMBOL_GPL drivers/pci/controller/pci-hyperv-intf 0x00000000 hyperv_reg_block_invalidate +EXPORT_SYMBOL_GPL drivers/pci/controller/pci-hyperv-intf 0x00000000 hyperv_write_cfg_blk +EXPORT_SYMBOL_GPL drivers/pci/switch/switchtec 0x00000000 switchtec_class +EXPORT_SYMBOL_GPL drivers/pinctrl/intel/pinctrl-intel 0x00000000 intel_pinctrl_probe_by_hid +EXPORT_SYMBOL_GPL drivers/pinctrl/intel/pinctrl-intel 0x00000000 intel_pinctrl_probe_by_uid +EXPORT_SYMBOL_GPL drivers/pinctrl/intel/pinctrl-intel 0x00000000 intel_pinctrl_resume_noirq +EXPORT_SYMBOL_GPL drivers/pinctrl/intel/pinctrl-intel 0x00000000 intel_pinctrl_suspend_noirq +EXPORT_SYMBOL_GPL drivers/platform/chrome/wilco_ec/wilco_ec 0x00000000 wilco_ec_get_byte_property +EXPORT_SYMBOL_GPL drivers/platform/chrome/wilco_ec/wilco_ec 0x00000000 wilco_ec_get_property +EXPORT_SYMBOL_GPL drivers/platform/chrome/wilco_ec/wilco_ec 0x00000000 wilco_ec_mailbox +EXPORT_SYMBOL_GPL drivers/platform/chrome/wilco_ec/wilco_ec 0x00000000 wilco_ec_set_byte_property +EXPORT_SYMBOL_GPL drivers/platform/chrome/wilco_ec/wilco_ec 0x00000000 wilco_ec_set_property +EXPORT_SYMBOL_GPL drivers/platform/x86/asus-wmi 0x00000000 asus_wmi_evaluate_method +EXPORT_SYMBOL_GPL drivers/platform/x86/asus-wmi 0x00000000 asus_wmi_register_driver +EXPORT_SYMBOL_GPL drivers/platform/x86/asus-wmi 0x00000000 asus_wmi_unregister_driver +EXPORT_SYMBOL_GPL drivers/platform/x86/dell-rbtn 0x00000000 dell_rbtn_notifier_register +EXPORT_SYMBOL_GPL drivers/platform/x86/dell-rbtn 0x00000000 dell_rbtn_notifier_unregister +EXPORT_SYMBOL_GPL drivers/platform/x86/dell-smbios 0x00000000 dell_laptop_call_notifier +EXPORT_SYMBOL_GPL drivers/platform/x86/dell-smbios 0x00000000 dell_laptop_register_notifier +EXPORT_SYMBOL_GPL drivers/platform/x86/dell-smbios 0x00000000 dell_laptop_unregister_notifier +EXPORT_SYMBOL_GPL drivers/platform/x86/dell-smbios 0x00000000 dell_smbios_call +EXPORT_SYMBOL_GPL drivers/platform/x86/dell-smbios 0x00000000 dell_smbios_call_filter +EXPORT_SYMBOL_GPL drivers/platform/x86/dell-smbios 0x00000000 dell_smbios_error +EXPORT_SYMBOL_GPL drivers/platform/x86/dell-smbios 0x00000000 dell_smbios_find_token +EXPORT_SYMBOL_GPL drivers/platform/x86/dell-smbios 0x00000000 dell_smbios_register_device +EXPORT_SYMBOL_GPL drivers/platform/x86/dell-smbios 0x00000000 dell_smbios_unregister_device +EXPORT_SYMBOL_GPL drivers/platform/x86/dell-wmi-descriptor 0x00000000 dell_wmi_get_descriptor_valid +EXPORT_SYMBOL_GPL drivers/platform/x86/dell-wmi-descriptor 0x00000000 dell_wmi_get_hotfix +EXPORT_SYMBOL_GPL drivers/platform/x86/dell-wmi-descriptor 0x00000000 dell_wmi_get_interface_version +EXPORT_SYMBOL_GPL drivers/platform/x86/dell-wmi-descriptor 0x00000000 dell_wmi_get_size +EXPORT_SYMBOL_GPL drivers/platform/x86/intel_ips 0x00000000 ips_link_to_i915_driver +EXPORT_SYMBOL_GPL drivers/platform/x86/intel_pmc_ipc 0x00000000 intel_pmc_gcr_read64 +EXPORT_SYMBOL_GPL drivers/platform/x86/intel_pmc_ipc 0x00000000 intel_pmc_ipc_command +EXPORT_SYMBOL_GPL drivers/platform/x86/intel_pmc_ipc 0x00000000 intel_pmc_s0ix_counter_read +EXPORT_SYMBOL_GPL drivers/platform/x86/intel_punit_ipc 0x00000000 intel_punit_ipc_command +EXPORT_SYMBOL_GPL drivers/platform/x86/intel_speed_select_if/isst_if_common 0x00000000 isst_if_cdev_register +EXPORT_SYMBOL_GPL drivers/platform/x86/intel_speed_select_if/isst_if_common 0x00000000 isst_if_cdev_unregister +EXPORT_SYMBOL_GPL drivers/platform/x86/intel_speed_select_if/isst_if_common 0x00000000 isst_if_get_pci_dev +EXPORT_SYMBOL_GPL drivers/platform/x86/intel_speed_select_if/isst_if_common 0x00000000 isst_if_mbox_cmd_invalid +EXPORT_SYMBOL_GPL drivers/platform/x86/intel_speed_select_if/isst_if_common 0x00000000 isst_if_mbox_cmd_set_req +EXPORT_SYMBOL_GPL drivers/platform/x86/intel_speed_select_if/isst_if_common 0x00000000 isst_resume_common +EXPORT_SYMBOL_GPL drivers/platform/x86/intel_speed_select_if/isst_if_common 0x00000000 isst_store_cmd +EXPORT_SYMBOL_GPL drivers/platform/x86/intel_telemetry_core 0x00000000 telemetry_add_events +EXPORT_SYMBOL_GPL drivers/platform/x86/intel_telemetry_core 0x00000000 telemetry_clear_pltdata +EXPORT_SYMBOL_GPL drivers/platform/x86/intel_telemetry_core 0x00000000 telemetry_get_eventconfig +EXPORT_SYMBOL_GPL drivers/platform/x86/intel_telemetry_core 0x00000000 telemetry_get_evtname +EXPORT_SYMBOL_GPL drivers/platform/x86/intel_telemetry_core 0x00000000 telemetry_get_sampling_period +EXPORT_SYMBOL_GPL drivers/platform/x86/intel_telemetry_core 0x00000000 telemetry_get_trace_verbosity +EXPORT_SYMBOL_GPL drivers/platform/x86/intel_telemetry_core 0x00000000 telemetry_pltconfig_valid +EXPORT_SYMBOL_GPL drivers/platform/x86/intel_telemetry_core 0x00000000 telemetry_raw_read_eventlog +EXPORT_SYMBOL_GPL drivers/platform/x86/intel_telemetry_core 0x00000000 telemetry_raw_read_events +EXPORT_SYMBOL_GPL drivers/platform/x86/intel_telemetry_core 0x00000000 telemetry_read_eventlog +EXPORT_SYMBOL_GPL drivers/platform/x86/intel_telemetry_core 0x00000000 telemetry_read_events +EXPORT_SYMBOL_GPL drivers/platform/x86/intel_telemetry_core 0x00000000 telemetry_reset_events +EXPORT_SYMBOL_GPL drivers/platform/x86/intel_telemetry_core 0x00000000 telemetry_set_pltdata +EXPORT_SYMBOL_GPL drivers/platform/x86/intel_telemetry_core 0x00000000 telemetry_set_sampling_period +EXPORT_SYMBOL_GPL drivers/platform/x86/intel_telemetry_core 0x00000000 telemetry_set_trace_verbosity +EXPORT_SYMBOL_GPL drivers/platform/x86/intel_telemetry_core 0x00000000 telemetry_update_events +EXPORT_SYMBOL_GPL drivers/platform/x86/mxm-wmi 0x00000000 mxm_wmi_call_mxds +EXPORT_SYMBOL_GPL drivers/platform/x86/mxm-wmi 0x00000000 mxm_wmi_call_mxmx +EXPORT_SYMBOL_GPL drivers/platform/x86/mxm-wmi 0x00000000 mxm_wmi_supported +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0x00000000 set_required_buffer_size +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0x00000000 wmi_evaluate_method +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0x00000000 wmi_get_acpi_device_uid +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0x00000000 wmi_get_event_data +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0x00000000 wmi_has_guid +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0x00000000 wmi_install_notify_handler +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0x00000000 wmi_query_block +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0x00000000 wmi_remove_notify_handler +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0x00000000 wmi_set_block +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0x00000000 wmidev_block_query +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0x00000000 wmidev_evaluate_method +EXPORT_SYMBOL_GPL drivers/power/supply/bq27xxx_battery 0x00000000 bq27xxx_battery_setup +EXPORT_SYMBOL_GPL drivers/power/supply/bq27xxx_battery 0x00000000 bq27xxx_battery_teardown +EXPORT_SYMBOL_GPL drivers/power/supply/bq27xxx_battery 0x00000000 bq27xxx_battery_update +EXPORT_SYMBOL_GPL drivers/power/supply/pcf50633-charger 0x00000000 pcf50633_mbc_get_status +EXPORT_SYMBOL_GPL drivers/power/supply/pcf50633-charger 0x00000000 pcf50633_mbc_get_usb_online_status +EXPORT_SYMBOL_GPL drivers/power/supply/pcf50633-charger 0x00000000 pcf50633_mbc_usb_curlim_set +EXPORT_SYMBOL_GPL drivers/powercap/intel_rapl_common 0x00000000 rapl_add_package +EXPORT_SYMBOL_GPL drivers/powercap/intel_rapl_common 0x00000000 rapl_add_platform_domain +EXPORT_SYMBOL_GPL drivers/powercap/intel_rapl_common 0x00000000 rapl_find_package_domain +EXPORT_SYMBOL_GPL drivers/powercap/intel_rapl_common 0x00000000 rapl_remove_package +EXPORT_SYMBOL_GPL drivers/powercap/intel_rapl_common 0x00000000 rapl_remove_platform_domain +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x00000000 mc13xxx_fixed_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x00000000 mc13xxx_fixed_regulator_set_voltage +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x00000000 mc13xxx_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x00000000 wm8350_dcdc25_set_mode +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x00000000 wm8350_dcdc_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x00000000 wm8350_isink_set_flash +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x00000000 wm8350_ldo_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x00000000 wm8350_register_led +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x00000000 wm8350_register_regulator +EXPORT_SYMBOL_GPL drivers/regulator/wm8400-regulator 0x00000000 wm8400_register_regulator +EXPORT_SYMBOL_GPL drivers/rpmsg/qcom_glink_native 0x00000000 qcom_glink_native_probe +EXPORT_SYMBOL_GPL drivers/rpmsg/qcom_glink_native 0x00000000 qcom_glink_native_remove +EXPORT_SYMBOL_GPL drivers/rpmsg/qcom_glink_native 0x00000000 qcom_glink_native_unregister +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_attr_is_visible +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_bind_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_conn_alloc_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_conn_init_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_conn_pdu_ready +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_conn_tx_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_conn_xmit_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_ddp_ppm_setup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_ddp_set_one_ppod +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_device_find_by_lldev +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_device_find_by_netdev +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_device_find_by_netdev_rcu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_device_portmap_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_device_portmap_create +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_device_register +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_device_unregister +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_device_unregister_all +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_ep_connect +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_ep_disconnect +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_ep_poll +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_get_conn_stats +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_get_ep_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_get_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_hbas_add +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_hbas_remove +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_iscsi_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_iscsi_init +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_parse_pdu_itt +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_set_conn_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_set_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_sock_act_open_req_arp_failure +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_sock_check_wr_invariants +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_sock_closed +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_sock_established +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_sock_fail_act_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_sock_free_cpl_skbs +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_sock_purge_wr_queue +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_sock_rcv_abort_rpl +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_sock_rcv_close_conn_rpl +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_sock_rcv_peer_close +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_sock_rcv_wr_ack +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_sock_select_mss +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00000000 cxgbi_sock_skb_entail +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x00000000 __fcoe_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_check_wait_queue +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_clean_pending_queue +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_ctlr_device_add +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_ctlr_device_delete +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_ctlr_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_fc_crc +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_fcf_device_add +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_fcf_device_delete +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_get_paged_crc_eof +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_get_wwn +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_libfc_config +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_link_speed_update +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_queue_timer +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_start_io +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_validate_vport_create +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_wwn_from_mac +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x00000000 fcoe_wwn_to_str +EXPORT_SYMBOL_GPL drivers/scsi/fdomain 0x00000000 fdomain_create +EXPORT_SYMBOL_GPL drivers/scsi/fdomain 0x00000000 fdomain_destroy +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x00000000 iscsi_boot_create_acpitbl +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x00000000 iscsi_boot_create_ethernet +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x00000000 iscsi_boot_create_host_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x00000000 iscsi_boot_create_initiator +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x00000000 iscsi_boot_create_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x00000000 iscsi_boot_create_target +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x00000000 iscsi_boot_destroy_kset +EXPORT_SYMBOL_GPL drivers/scsi/libfc/libfc 0x00000000 fc_seq_els_rsp_send +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 __iscsi_get_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 __iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_complete_scsi_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_conn_get_addr_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_conn_queue_work +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_eh_cmd_timed_out +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_eh_device_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_eh_recover_target +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_eh_session_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_host_add +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_host_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_host_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_host_remove +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_itt_to_ctask +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_itt_to_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_prep_data_out_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_requeue_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_session_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_suspend_queue +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_suspend_tx +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_switch_str_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00000000 iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x00000000 iscsi_segment_init_linear +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x00000000 iscsi_segment_seek_sg +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x00000000 iscsi_tcp_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x00000000 iscsi_tcp_conn_get_stats +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x00000000 iscsi_tcp_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x00000000 iscsi_tcp_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x00000000 iscsi_tcp_dgst_header +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x00000000 iscsi_tcp_hdr_recv_prep +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x00000000 iscsi_tcp_r2tpool_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x00000000 iscsi_tcp_r2tpool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x00000000 iscsi_tcp_recv_segment_is_hdr +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x00000000 iscsi_tcp_recv_skb +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x00000000 iscsi_tcp_segment_done +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x00000000 iscsi_tcp_segment_unmap +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x00000000 iscsi_tcp_set_max_r2t +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x00000000 iscsi_tcp_task_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x00000000 iscsi_tcp_task_xmit +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00000000 dev_attr_phy_event_threshold +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00000000 sas_alloc_slow_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00000000 sas_alloc_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00000000 sas_ata_schedule_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00000000 sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00000000 sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00000000 sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00000000 sas_drain_work +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00000000 sas_eh_abort_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00000000 sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00000000 sas_eh_target_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00000000 sas_free_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00000000 sas_get_local_phy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00000000 sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00000000 sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00000000 sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00000000 sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00000000 sas_request_addr +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00000000 sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00000000 sas_ssp_task_response +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00000000 sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00000000 sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00000000 sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00000000 sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 __tracepoint_iscsi_dbg_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 __tracepoint_iscsi_dbg_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 __tracepoint_iscsi_dbg_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 __tracepoint_iscsi_dbg_sw_tcp +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 __tracepoint_iscsi_dbg_tcp +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_block_scsi_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_conn_error_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_conn_login_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_create_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_create_flashnode_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_create_flashnode_sess +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_create_iface +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_dbg_trace +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_destroy_all_flashnode +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_destroy_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_destroy_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_destroy_flashnode_sess +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_destroy_iface +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_find_flashnode_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_find_flashnode_sess +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_flashnode_bus_match +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_get_discovery_parent_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_get_ipaddress_state_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_get_port_speed_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_get_port_state_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_get_router_state_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_host_for_each_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_is_session_dev +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_is_session_online +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_lookup_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_offload_mesg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_ping_comp_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_post_host_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_scan_finished +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_session_chkready +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_session_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00000000 iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x00000000 sas_disable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x00000000 sas_enable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x00000000 sas_is_tlr_enabled +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x00000000 sas_tlr_supported +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0x00000000 spi_populate_ppr_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0x00000000 spi_populate_sync_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0x00000000 spi_populate_tag_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0x00000000 spi_populate_width_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x00000000 srp_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x00000000 srp_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x00000000 srp_remove_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x00000000 srp_rport_add +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x00000000 srp_rport_del +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x00000000 srp_stop_rport_timers +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x00000000 srp_tmo_valid +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd-core 0x00000000 ufshcd_auto_hibern8_update +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd-core 0x00000000 ufshcd_config_pwr_mode +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd-core 0x00000000 ufshcd_dealloc_host +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd-core 0x00000000 ufshcd_dme_get_attr +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd-core 0x00000000 ufshcd_dme_set_attr +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd-core 0x00000000 ufshcd_dump_regs +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd-core 0x00000000 ufshcd_hba_enable +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd-core 0x00000000 ufshcd_hold +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd-core 0x00000000 ufshcd_init +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd-core 0x00000000 ufshcd_make_hba_operational +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd-core 0x00000000 ufshcd_release +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd-core 0x00000000 ufshcd_remove +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd-core 0x00000000 ufshcd_uic_hibern8_exit +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd-core 0x00000000 ufshcd_update_reg_hist +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd-pltfrm 0x00000000 ufshcd_get_pwr_dev_param +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd-pltfrm 0x00000000 ufshcd_pltfrm_init +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd-pltfrm 0x00000000 ufshcd_pltfrm_resume +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd-pltfrm 0x00000000 ufshcd_pltfrm_runtime_idle +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd-pltfrm 0x00000000 ufshcd_pltfrm_runtime_resume +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd-pltfrm 0x00000000 ufshcd_pltfrm_runtime_suspend +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd-pltfrm 0x00000000 ufshcd_pltfrm_shutdown +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd-pltfrm 0x00000000 ufshcd_pltfrm_suspend +EXPORT_SYMBOL_GPL drivers/siox/siox-core 0x00000000 __siox_driver_register +EXPORT_SYMBOL_GPL drivers/siox/siox-core 0x00000000 siox_device_connected +EXPORT_SYMBOL_GPL drivers/siox/siox-core 0x00000000 siox_device_synced +EXPORT_SYMBOL_GPL drivers/siox/siox-core 0x00000000 siox_master_alloc +EXPORT_SYMBOL_GPL drivers/siox/siox-core 0x00000000 siox_master_register +EXPORT_SYMBOL_GPL drivers/siox/siox-core 0x00000000 siox_master_unregister +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x00000000 __slim_driver_register +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x00000000 of_slim_get_device +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x00000000 slim_alloc_txn_tid +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x00000000 slim_ctrl_clk_pause +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x00000000 slim_device_report_present +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x00000000 slim_do_transfer +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x00000000 slim_driver_unregister +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x00000000 slim_free_txn_tid +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x00000000 slim_get_device +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x00000000 slim_get_logical_addr +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x00000000 slim_msg_response +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x00000000 slim_read +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x00000000 slim_readb +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x00000000 slim_register_controller +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x00000000 slim_report_absent +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x00000000 slim_stream_allocate +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x00000000 slim_stream_disable +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x00000000 slim_stream_enable +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x00000000 slim_stream_free +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x00000000 slim_stream_prepare +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x00000000 slim_stream_unprepare +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x00000000 slim_unregister_controller +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x00000000 slim_write +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x00000000 slim_writeb +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x00000000 slim_xfer_msg +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x00000000 slimbus_bus +EXPORT_SYMBOL_GPL drivers/soundwire/soundwire-bus 0x00000000 __sdw_register_driver +EXPORT_SYMBOL_GPL drivers/soundwire/soundwire-bus 0x00000000 __sdw_register_master_driver +EXPORT_SYMBOL_GPL drivers/soundwire/soundwire-bus 0x00000000 sdw_bus_type +EXPORT_SYMBOL_GPL drivers/soundwire/soundwire-bus 0x00000000 sdw_master_device_add +EXPORT_SYMBOL_GPL drivers/soundwire/soundwire-bus 0x00000000 sdw_master_device_process_wake_event +EXPORT_SYMBOL_GPL drivers/soundwire/soundwire-bus 0x00000000 sdw_master_device_startup +EXPORT_SYMBOL_GPL drivers/soundwire/soundwire-bus 0x00000000 sdw_unregister_driver +EXPORT_SYMBOL_GPL drivers/soundwire/soundwire-bus 0x00000000 sdw_unregister_master_driver +EXPORT_SYMBOL_GPL drivers/soundwire/soundwire-cadence 0x00000000 sdw_cdns_debugfs_init +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x00000000 spi_bitbang_cleanup +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x00000000 spi_bitbang_init +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x00000000 spi_bitbang_setup +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x00000000 spi_bitbang_setup_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x00000000 spi_bitbang_start +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x00000000 spi_bitbang_stop +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0x00000000 dw_spi_add_host +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0x00000000 dw_spi_remove_host +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0x00000000 dw_spi_resume_host +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0x00000000 dw_spi_set_cs +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0x00000000 dw_spi_suspend_host +EXPORT_SYMBOL_GPL drivers/spi/spi-loopback-test 0x00000000 spi_test_execute_msg +EXPORT_SYMBOL_GPL drivers/spi/spi-loopback-test 0x00000000 spi_test_run_test +EXPORT_SYMBOL_GPL drivers/spi/spi-loopback-test 0x00000000 spi_test_run_tests +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x00000000 __spmi_driver_register +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x00000000 spmi_command_reset +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x00000000 spmi_command_shutdown +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x00000000 spmi_command_sleep +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x00000000 spmi_command_wakeup +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x00000000 spmi_controller_add +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x00000000 spmi_controller_alloc +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x00000000 spmi_controller_remove +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x00000000 spmi_device_add +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x00000000 spmi_device_alloc +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x00000000 spmi_device_remove +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x00000000 spmi_ext_register_read +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x00000000 spmi_ext_register_readl +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x00000000 spmi_ext_register_write +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x00000000 spmi_ext_register_writel +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x00000000 spmi_register_read +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x00000000 spmi_register_write +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x00000000 spmi_register_zero_write +EXPORT_SYMBOL_GPL drivers/ssb/ssb 0x00000000 ssb_pmu_spuravoid_pllupdate +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 __comedi_request_region +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 comedi_alloc_devpriv +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 comedi_alloc_spriv +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 comedi_alloc_subdev_readback +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 comedi_alloc_subdevices +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 comedi_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 comedi_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 comedi_buf_read_alloc +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 comedi_buf_read_free +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 comedi_buf_read_n_available +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 comedi_buf_read_samples +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 comedi_buf_write_alloc +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 comedi_buf_write_free +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 comedi_buf_write_samples +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 comedi_bytes_per_scan +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 comedi_bytes_per_scan_cmd +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 comedi_check_chanlist +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 comedi_dev_get_from_minor +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 comedi_dev_put +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 comedi_dio_insn_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 comedi_dio_update_state +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 comedi_driver_register +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 comedi_driver_unregister +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 comedi_event +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 comedi_handle_events +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 comedi_inc_scan_progress +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 comedi_is_subdevice_running +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 comedi_legacy_detach +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 comedi_load_firmware +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 comedi_nsamples_left +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 comedi_nscans_left +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 comedi_readback_insn_read +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 comedi_request_region +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 comedi_set_hw_dev +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 comedi_set_spriv_auto_free +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 comedi_timeout +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 range_0_20mA +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 range_0_32mA +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 range_4_20mA +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 range_bipolar10 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 range_bipolar2_5 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 range_bipolar5 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 range_unipolar10 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 range_unipolar2_5 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 range_unipolar5 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00000000 range_unknown +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi_pci 0x00000000 comedi_pci_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi_pci 0x00000000 comedi_pci_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi_pci 0x00000000 comedi_pci_detach +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi_pci 0x00000000 comedi_pci_disable +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi_pci 0x00000000 comedi_pci_driver_register +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi_pci 0x00000000 comedi_pci_driver_unregister +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi_pci 0x00000000 comedi_pci_enable +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi_pci 0x00000000 comedi_to_pci_dev +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi_pcmcia 0x00000000 comedi_pcmcia_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi_pcmcia 0x00000000 comedi_pcmcia_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi_pcmcia 0x00000000 comedi_pcmcia_disable +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi_pcmcia 0x00000000 comedi_pcmcia_driver_register +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi_pcmcia 0x00000000 comedi_pcmcia_driver_unregister +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi_pcmcia 0x00000000 comedi_pcmcia_enable +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi_pcmcia 0x00000000 comedi_to_pcmcia_dev +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi_usb 0x00000000 comedi_to_usb_dev +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi_usb 0x00000000 comedi_to_usb_interface +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi_usb 0x00000000 comedi_usb_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi_usb 0x00000000 comedi_usb_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi_usb 0x00000000 comedi_usb_driver_register +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi_usb 0x00000000 comedi_usb_driver_unregister +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/addi_watchdog 0x00000000 addi_watchdog_init +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/addi_watchdog 0x00000000 addi_watchdog_reset +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/amplc_dio200_common 0x00000000 amplc_dio200_common_attach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/amplc_dio200_common 0x00000000 amplc_dio200_set_enhance +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/amplc_pc236_common 0x00000000 amplc_pc236_common_attach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_8254 0x00000000 comedi_8254_cascade_ns_to_timer +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_8254 0x00000000 comedi_8254_init +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_8254 0x00000000 comedi_8254_load +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_8254 0x00000000 comedi_8254_mm_init +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_8254 0x00000000 comedi_8254_ns_to_timer +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_8254 0x00000000 comedi_8254_pacer_enable +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_8254 0x00000000 comedi_8254_read +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_8254 0x00000000 comedi_8254_set_busy +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_8254 0x00000000 comedi_8254_set_mode +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_8254 0x00000000 comedi_8254_status +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_8254 0x00000000 comedi_8254_subdevice_init +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_8254 0x00000000 comedi_8254_update_divisors +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_8254 0x00000000 comedi_8254_write +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_8255 0x00000000 subdev_8255_init +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_8255 0x00000000 subdev_8255_mm_init +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_8255 0x00000000 subdev_8255_regbase +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_isadma 0x00000000 comedi_isadma_alloc +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_isadma 0x00000000 comedi_isadma_disable +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_isadma 0x00000000 comedi_isadma_disable_on_sample +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_isadma 0x00000000 comedi_isadma_free +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_isadma 0x00000000 comedi_isadma_poll +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_isadma 0x00000000 comedi_isadma_program +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_isadma 0x00000000 comedi_isadma_set_mode +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0x00000000 das08_common_attach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x00000000 mite_ack_linkc +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x00000000 mite_alloc_ring +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x00000000 mite_attach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x00000000 mite_buf_change +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x00000000 mite_bytes_in_transit +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x00000000 mite_detach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x00000000 mite_dma_arm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x00000000 mite_dma_disarm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x00000000 mite_done +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x00000000 mite_free_ring +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x00000000 mite_init_ring_descriptors +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x00000000 mite_prep_dma +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x00000000 mite_release_channel +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x00000000 mite_request_channel +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x00000000 mite_request_channel_in_range +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x00000000 mite_sync_dma +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc_common 0x00000000 labpc_common_attach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc_common 0x00000000 labpc_common_detach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc_isadma 0x00000000 labpc_drain_dma +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc_isadma 0x00000000 labpc_free_dma_chan +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc_isadma 0x00000000 labpc_handle_dma_status +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc_isadma 0x00000000 labpc_init_dma_chan +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc_isadma 0x00000000 labpc_setup_dma +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_routing 0x00000000 ni_assign_device_routes +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_routing 0x00000000 ni_count_valid_routes +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_routing 0x00000000 ni_find_route_set +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_routing 0x00000000 ni_find_route_source +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_routing 0x00000000 ni_get_valid_routes +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_routing 0x00000000 ni_is_cmd_dest +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_routing 0x00000000 ni_lookup_route_register +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_routing 0x00000000 ni_route_set_has_source +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_routing 0x00000000 ni_route_to_register +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_routing 0x00000000 ni_sort_device_routes +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x00000000 ni_gpct_device_construct +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x00000000 ni_gpct_device_destroy +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x00000000 ni_tio_arm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x00000000 ni_tio_get_routing +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x00000000 ni_tio_get_soft_copy +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x00000000 ni_tio_init_counter +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x00000000 ni_tio_insn_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x00000000 ni_tio_insn_read +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x00000000 ni_tio_insn_write +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x00000000 ni_tio_read +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x00000000 ni_tio_set_bits +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x00000000 ni_tio_set_gate_src +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x00000000 ni_tio_set_gate_src_raw +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x00000000 ni_tio_set_routing +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x00000000 ni_tio_unset_routing +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x00000000 ni_tio_write +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x00000000 ni_tio_acknowledge +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x00000000 ni_tio_cancel +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x00000000 ni_tio_cmd +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x00000000 ni_tio_cmdtest +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x00000000 ni_tio_handle_interrupt +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x00000000 ni_tio_set_mite_channel +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x00000000 comedi_close +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x00000000 comedi_dio_bitfield2 +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x00000000 comedi_dio_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x00000000 comedi_dio_get_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x00000000 comedi_find_subdevice_by_type +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x00000000 comedi_get_n_channels +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x00000000 comedi_open +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/fieldbus_dev 0x00000000 fieldbus_dev_area_updated +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/fieldbus_dev 0x00000000 fieldbus_dev_online_changed +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/fieldbus_dev 0x00000000 fieldbus_dev_register +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/fieldbus_dev 0x00000000 fieldbus_dev_unregister +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x00000000 gb_audio_apbridgea_prepare_rx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x00000000 gb_audio_apbridgea_prepare_tx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x00000000 gb_audio_apbridgea_register_cport +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x00000000 gb_audio_apbridgea_set_config +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x00000000 gb_audio_apbridgea_set_rx_data_size +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x00000000 gb_audio_apbridgea_set_tx_data_size +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x00000000 gb_audio_apbridgea_shutdown_rx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x00000000 gb_audio_apbridgea_shutdown_tx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x00000000 gb_audio_apbridgea_start_rx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x00000000 gb_audio_apbridgea_start_tx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x00000000 gb_audio_apbridgea_stop_rx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x00000000 gb_audio_apbridgea_stop_tx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x00000000 gb_audio_apbridgea_unregister_cport +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x00000000 gb_audio_gb_activate_rx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x00000000 gb_audio_gb_activate_tx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x00000000 gb_audio_gb_deactivate_rx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x00000000 gb_audio_gb_deactivate_tx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x00000000 gb_audio_gb_disable_widget +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x00000000 gb_audio_gb_enable_widget +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x00000000 gb_audio_gb_get_control +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x00000000 gb_audio_gb_get_pcm +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x00000000 gb_audio_gb_get_topology +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x00000000 gb_audio_gb_set_control +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x00000000 gb_audio_gb_set_pcm +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x00000000 gb_audio_gb_set_rx_data_size +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x00000000 gb_audio_gb_set_tx_data_size +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-manager 0x00000000 gb_audio_manager_add +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-manager 0x00000000 gb_audio_manager_dump_all +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-manager 0x00000000 gb_audio_manager_dump_module +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-manager 0x00000000 gb_audio_manager_get_module +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-manager 0x00000000 gb_audio_manager_put_module +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-manager 0x00000000 gb_audio_manager_remove +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-manager 0x00000000 gb_audio_manager_remove_all +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-gbphy 0x00000000 gb_gbphy_deregister_driver +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-gbphy 0x00000000 gb_gbphy_register_driver +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-spilib 0x00000000 gb_spilib_master_exit +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-spilib 0x00000000 gb_spilib_master_init +EXPORT_SYMBOL_GPL drivers/staging/iio/addac/adt7316 0x00000000 adt7316_pm_ops +EXPORT_SYMBOL_GPL drivers/staging/most/most_core 0x00000000 channel_has_mbo +EXPORT_SYMBOL_GPL drivers/staging/most/most_core 0x00000000 most_deregister_component +EXPORT_SYMBOL_GPL drivers/staging/most/most_core 0x00000000 most_deregister_configfs_subsys +EXPORT_SYMBOL_GPL drivers/staging/most/most_core 0x00000000 most_deregister_interface +EXPORT_SYMBOL_GPL drivers/staging/most/most_core 0x00000000 most_get_mbo +EXPORT_SYMBOL_GPL drivers/staging/most/most_core 0x00000000 most_put_mbo +EXPORT_SYMBOL_GPL drivers/staging/most/most_core 0x00000000 most_register_component +EXPORT_SYMBOL_GPL drivers/staging/most/most_core 0x00000000 most_register_configfs_subsys +EXPORT_SYMBOL_GPL drivers/staging/most/most_core 0x00000000 most_register_interface +EXPORT_SYMBOL_GPL drivers/staging/most/most_core 0x00000000 most_resume_enqueue +EXPORT_SYMBOL_GPL drivers/staging/most/most_core 0x00000000 most_start_channel +EXPORT_SYMBOL_GPL drivers/staging/most/most_core 0x00000000 most_stop_channel +EXPORT_SYMBOL_GPL drivers/staging/most/most_core 0x00000000 most_stop_enqueue +EXPORT_SYMBOL_GPL drivers/staging/most/most_core 0x00000000 most_submit_mbo +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 speakup_event +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 speakup_info +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 speakup_start_ttys +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 spk_do_catch_up +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 spk_do_catch_up_unicode +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 spk_get_var +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 spk_serial_io_ops +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 spk_serial_release +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 spk_serial_synth_immediate +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 spk_serial_synth_probe +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 spk_stop_serial_interrupt +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 spk_synth_flush +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 spk_synth_get_index +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 spk_synth_is_alive_nop +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 spk_synth_is_alive_restart +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 spk_ttyio_ops +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 spk_ttyio_release +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 spk_ttyio_synth_immediate +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 spk_ttyio_synth_probe +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 spk_var_show +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 spk_var_store +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 synth_add +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 synth_buffer_clear +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 synth_buffer_empty +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 synth_buffer_getc +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 synth_buffer_peek +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 synth_buffer_skip_nonlatin1 +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 synth_current +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 synth_printf +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 synth_putwc +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 synth_putwc_s +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 synth_putws +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 synth_putws_s +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 synth_release_region +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 synth_remove +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00000000 synth_request_region +EXPORT_SYMBOL_GPL drivers/staging/uwb/i1480/dfu/i1480-dfu-usb 0x00000000 i1480_cmd +EXPORT_SYMBOL_GPL drivers/staging/uwb/i1480/dfu/i1480-dfu-usb 0x00000000 i1480_fw_upload +EXPORT_SYMBOL_GPL drivers/staging/uwb/i1480/dfu/i1480-dfu-usb 0x00000000 i1480_rceb_check +EXPORT_SYMBOL_GPL drivers/staging/uwb/umc 0x00000000 __umc_driver_register +EXPORT_SYMBOL_GPL drivers/staging/uwb/umc 0x00000000 umc_bus_type +EXPORT_SYMBOL_GPL drivers/staging/uwb/umc 0x00000000 umc_controller_reset +EXPORT_SYMBOL_GPL drivers/staging/uwb/umc 0x00000000 umc_device_create +EXPORT_SYMBOL_GPL drivers/staging/uwb/umc 0x00000000 umc_device_register +EXPORT_SYMBOL_GPL drivers/staging/uwb/umc 0x00000000 umc_device_unregister +EXPORT_SYMBOL_GPL drivers/staging/uwb/umc 0x00000000 umc_driver_unregister +EXPORT_SYMBOL_GPL drivers/staging/uwb/umc 0x00000000 umc_match_pci_id +EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 __uwb_addr_print +EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 __uwb_rc_try_get +EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_dev_for_each +EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_dev_try_get +EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_est_find_size +EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_est_register +EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_est_unregister +EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_ie_next +EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_notifs_deregister +EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_notifs_register +EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_pal_init +EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_pal_register +EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_pal_unregister +EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_radio_start +EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_radio_stop +EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_rc_add +EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_rc_alloc +EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_rc_cmd +EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_rc_cmd_async +EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_rc_dev_addr_get +EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_rc_get_by_dev +EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_rc_get_by_grandpa +EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_rc_ie_add +EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_rc_ie_rm +EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_rc_init +EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_rc_mac_addr_get +EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_rc_neh_error +EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_rc_neh_grok +EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_rc_post_reset +EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_rc_pre_reset +EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_rc_put +EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_rc_reset_all +EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_rc_rm +EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_rc_vcmd +EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_rsv_accept +EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_rsv_create +EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_rsv_destroy +EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_rsv_establish +EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_rsv_get_usable_mas +EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_rsv_modify +EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_rsv_state_str +EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_rsv_terminate +EXPORT_SYMBOL_GPL drivers/staging/uwb/uwb 0x00000000 uwb_rsv_type_str +EXPORT_SYMBOL_GPL drivers/staging/uwb/whci 0x00000000 whci_wait_for +EXPORT_SYMBOL_GPL drivers/staging/wilc1000/wilc1000 0x00000000 chip_allow_sleep +EXPORT_SYMBOL_GPL drivers/staging/wilc1000/wilc1000 0x00000000 chip_wakeup +EXPORT_SYMBOL_GPL drivers/staging/wilc1000/wilc1000 0x00000000 host_sleep_notify +EXPORT_SYMBOL_GPL drivers/staging/wilc1000/wilc1000 0x00000000 host_wakeup_notify +EXPORT_SYMBOL_GPL drivers/staging/wilc1000/wilc1000 0x00000000 wilc_cfg80211_init +EXPORT_SYMBOL_GPL drivers/staging/wilc1000/wilc1000 0x00000000 wilc_handle_isr +EXPORT_SYMBOL_GPL drivers/staging/wilc1000/wilc1000 0x00000000 wilc_netdev_cleanup +EXPORT_SYMBOL_GPL drivers/staging/wusbcore/wusb-wa 0x00000000 __wa_destroy +EXPORT_SYMBOL_GPL drivers/staging/wusbcore/wusb-wa 0x00000000 rpipe_clear_feature_stalled +EXPORT_SYMBOL_GPL drivers/staging/wusbcore/wusb-wa 0x00000000 rpipe_destroy +EXPORT_SYMBOL_GPL drivers/staging/wusbcore/wusb-wa 0x00000000 rpipe_ep_disable +EXPORT_SYMBOL_GPL drivers/staging/wusbcore/wusb-wa 0x00000000 wa_create +EXPORT_SYMBOL_GPL drivers/staging/wusbcore/wusb-wa 0x00000000 wa_dti_start +EXPORT_SYMBOL_GPL drivers/staging/wusbcore/wusb-wa 0x00000000 wa_process_errored_transfers_run +EXPORT_SYMBOL_GPL drivers/staging/wusbcore/wusb-wa 0x00000000 wa_urb_dequeue +EXPORT_SYMBOL_GPL drivers/staging/wusbcore/wusb-wa 0x00000000 wa_urb_enqueue +EXPORT_SYMBOL_GPL drivers/staging/wusbcore/wusb-wa 0x00000000 wa_urb_enqueue_run +EXPORT_SYMBOL_GPL drivers/staging/wusbcore/wusbcore 0x00000000 __wusb_dev_get_by_usb_dev +EXPORT_SYMBOL_GPL drivers/staging/wusbcore/wusbcore 0x00000000 wusb_cluster_id_get +EXPORT_SYMBOL_GPL drivers/staging/wusbcore/wusbcore 0x00000000 wusb_cluster_id_put +EXPORT_SYMBOL_GPL drivers/staging/wusbcore/wusbcore 0x00000000 wusb_dev_destroy +EXPORT_SYMBOL_GPL drivers/staging/wusbcore/wusbcore 0x00000000 wusb_et_name +EXPORT_SYMBOL_GPL drivers/staging/wusbcore/wusbcore 0x00000000 wusbd +EXPORT_SYMBOL_GPL drivers/staging/wusbcore/wusbcore 0x00000000 wusbhc_b_create +EXPORT_SYMBOL_GPL drivers/staging/wusbcore/wusbcore 0x00000000 wusbhc_b_destroy +EXPORT_SYMBOL_GPL drivers/staging/wusbcore/wusbcore 0x00000000 wusbhc_chid_set +EXPORT_SYMBOL_GPL drivers/staging/wusbcore/wusbcore 0x00000000 wusbhc_create +EXPORT_SYMBOL_GPL drivers/staging/wusbcore/wusbcore 0x00000000 wusbhc_destroy +EXPORT_SYMBOL_GPL drivers/staging/wusbcore/wusbcore 0x00000000 wusbhc_giveback_urb +EXPORT_SYMBOL_GPL drivers/staging/wusbcore/wusbcore 0x00000000 wusbhc_handle_dn +EXPORT_SYMBOL_GPL drivers/staging/wusbcore/wusbcore 0x00000000 wusbhc_mmcie_rm +EXPORT_SYMBOL_GPL drivers/staging/wusbcore/wusbcore 0x00000000 wusbhc_mmcie_set +EXPORT_SYMBOL_GPL drivers/staging/wusbcore/wusbcore 0x00000000 wusbhc_reset_all +EXPORT_SYMBOL_GPL drivers/staging/wusbcore/wusbcore 0x00000000 wusbhc_rh_control +EXPORT_SYMBOL_GPL drivers/staging/wusbcore/wusbcore 0x00000000 wusbhc_rh_start_port_reset +EXPORT_SYMBOL_GPL drivers/staging/wusbcore/wusbcore 0x00000000 wusbhc_rh_status_data +EXPORT_SYMBOL_GPL drivers/tee/tee 0x00000000 tee_bus_type +EXPORT_SYMBOL_GPL drivers/tee/tee 0x00000000 tee_client_close_context +EXPORT_SYMBOL_GPL drivers/tee/tee 0x00000000 tee_client_close_session +EXPORT_SYMBOL_GPL drivers/tee/tee 0x00000000 tee_client_get_version +EXPORT_SYMBOL_GPL drivers/tee/tee 0x00000000 tee_client_invoke_func +EXPORT_SYMBOL_GPL drivers/tee/tee 0x00000000 tee_client_open_context +EXPORT_SYMBOL_GPL drivers/tee/tee 0x00000000 tee_client_open_session +EXPORT_SYMBOL_GPL drivers/tee/tee 0x00000000 tee_device_alloc +EXPORT_SYMBOL_GPL drivers/tee/tee 0x00000000 tee_device_register +EXPORT_SYMBOL_GPL drivers/tee/tee 0x00000000 tee_device_unregister +EXPORT_SYMBOL_GPL drivers/tee/tee 0x00000000 tee_get_drvdata +EXPORT_SYMBOL_GPL drivers/tee/tee 0x00000000 tee_shm_alloc +EXPORT_SYMBOL_GPL drivers/tee/tee 0x00000000 tee_shm_free +EXPORT_SYMBOL_GPL drivers/tee/tee 0x00000000 tee_shm_get_from_id +EXPORT_SYMBOL_GPL drivers/tee/tee 0x00000000 tee_shm_get_pa +EXPORT_SYMBOL_GPL drivers/tee/tee 0x00000000 tee_shm_get_va +EXPORT_SYMBOL_GPL drivers/tee/tee 0x00000000 tee_shm_pa2va +EXPORT_SYMBOL_GPL drivers/tee/tee 0x00000000 tee_shm_pool_alloc +EXPORT_SYMBOL_GPL drivers/tee/tee 0x00000000 tee_shm_pool_alloc_res_mem +EXPORT_SYMBOL_GPL drivers/tee/tee 0x00000000 tee_shm_pool_free +EXPORT_SYMBOL_GPL drivers/tee/tee 0x00000000 tee_shm_pool_mgr_alloc_res_mem +EXPORT_SYMBOL_GPL drivers/tee/tee 0x00000000 tee_shm_priv_alloc +EXPORT_SYMBOL_GPL drivers/tee/tee 0x00000000 tee_shm_put +EXPORT_SYMBOL_GPL drivers/tee/tee 0x00000000 tee_shm_register +EXPORT_SYMBOL_GPL drivers/tee/tee 0x00000000 tee_shm_va2pa +EXPORT_SYMBOL_GPL drivers/thermal/intel/int340x_thermal/int340x_thermal_zone 0x00000000 int340x_thermal_read_trips +EXPORT_SYMBOL_GPL drivers/thermal/intel/int340x_thermal/int340x_thermal_zone 0x00000000 int340x_thermal_zone_add +EXPORT_SYMBOL_GPL drivers/thermal/intel/int340x_thermal/int340x_thermal_zone 0x00000000 int340x_thermal_zone_remove +EXPORT_SYMBOL_GPL drivers/thermal/intel/intel_soc_dts_iosf 0x00000000 intel_soc_dts_iosf_add_read_only_critical_trip +EXPORT_SYMBOL_GPL drivers/thermal/intel/intel_soc_dts_iosf 0x00000000 intel_soc_dts_iosf_exit +EXPORT_SYMBOL_GPL drivers/thermal/intel/intel_soc_dts_iosf 0x00000000 intel_soc_dts_iosf_init +EXPORT_SYMBOL_GPL drivers/thermal/intel/intel_soc_dts_iosf 0x00000000 intel_soc_dts_iosf_interrupt_handler +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x00000000 __tb_ring_enqueue +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x00000000 tb_property_add_data +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x00000000 tb_property_add_dir +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x00000000 tb_property_add_immediate +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x00000000 tb_property_add_text +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x00000000 tb_property_create_dir +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x00000000 tb_property_find +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x00000000 tb_property_free_dir +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x00000000 tb_property_get_next +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x00000000 tb_property_remove +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x00000000 tb_register_property_dir +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x00000000 tb_register_protocol_handler +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x00000000 tb_register_service_driver +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x00000000 tb_ring_alloc_rx +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x00000000 tb_ring_alloc_tx +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x00000000 tb_ring_free +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x00000000 tb_ring_poll +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x00000000 tb_ring_poll_complete +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x00000000 tb_ring_start +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x00000000 tb_ring_stop +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x00000000 tb_service_type +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x00000000 tb_unregister_property_dir +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x00000000 tb_unregister_protocol_handler +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x00000000 tb_unregister_service_driver +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x00000000 tb_xdomain_disable_paths +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x00000000 tb_xdomain_enable_paths +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x00000000 tb_xdomain_find_by_route +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x00000000 tb_xdomain_find_by_uuid +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x00000000 tb_xdomain_request +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x00000000 tb_xdomain_response +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x00000000 tb_xdomain_type +EXPORT_SYMBOL_GPL drivers/tty/n_tracesink 0x00000000 n_tracesink_datadrain +EXPORT_SYMBOL_GPL drivers/uio/uio 0x00000000 __uio_register_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0x00000000 uio_event_notify +EXPORT_SYMBOL_GPL drivers/uio/uio 0x00000000 uio_unregister_device +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x00000000 usbatm_usb_disconnect +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x00000000 usbatm_usb_probe +EXPORT_SYMBOL_GPL drivers/usb/chipidea/ci_hdrc 0x00000000 ci_hdrc_add_device +EXPORT_SYMBOL_GPL drivers/usb/chipidea/ci_hdrc 0x00000000 ci_hdrc_remove_device +EXPORT_SYMBOL_GPL drivers/usb/chipidea/ci_hdrc 0x00000000 hw_phymode_configure +EXPORT_SYMBOL_GPL drivers/usb/common/ulpi 0x00000000 __ulpi_register_driver +EXPORT_SYMBOL_GPL drivers/usb/common/ulpi 0x00000000 ulpi_read +EXPORT_SYMBOL_GPL drivers/usb/common/ulpi 0x00000000 ulpi_register_interface +EXPORT_SYMBOL_GPL drivers/usb/common/ulpi 0x00000000 ulpi_unregister_driver +EXPORT_SYMBOL_GPL drivers/usb/common/ulpi 0x00000000 ulpi_unregister_interface +EXPORT_SYMBOL_GPL drivers/usb/common/ulpi 0x00000000 ulpi_write +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x00000000 g_audio_cleanup +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x00000000 g_audio_setup +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x00000000 u_audio_start_capture +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x00000000 u_audio_start_playback +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x00000000 u_audio_stop_capture +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x00000000 u_audio_stop_playback +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x00000000 gether_cleanup +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x00000000 gether_connect +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x00000000 gether_disconnect +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x00000000 gether_get_dev_addr +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x00000000 gether_get_host_addr +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x00000000 gether_get_host_addr_cdc +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x00000000 gether_get_host_addr_u8 +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x00000000 gether_get_ifname +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x00000000 gether_get_qmult +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x00000000 gether_register_netdev +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x00000000 gether_set_dev_addr +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x00000000 gether_set_gadget +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x00000000 gether_set_host_addr +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x00000000 gether_set_qmult +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x00000000 gether_setup_name +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x00000000 gether_setup_name_default +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0x00000000 gs_alloc_req +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0x00000000 gs_free_req +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0x00000000 gserial_alloc_line +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0x00000000 gserial_alloc_line_no_console +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0x00000000 gserial_connect +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0x00000000 gserial_disconnect +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0x00000000 gserial_free_line +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0x00000000 gserial_get_console +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0x00000000 gserial_set_console +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_fs 0x00000000 ffs_lock +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_fs 0x00000000 ffs_name_dev +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_fs 0x00000000 ffs_single_dev +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x00000000 fsg_common_create_lun +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x00000000 fsg_common_create_luns +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x00000000 fsg_common_free_buffers +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x00000000 fsg_common_remove_lun +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x00000000 fsg_common_remove_luns +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x00000000 fsg_common_set_cdev +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x00000000 fsg_common_set_inquiry_string +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x00000000 fsg_common_set_num_buffers +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x00000000 fsg_common_set_sysfs +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x00000000 fsg_config_from_params +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x00000000 fsg_fs_bulk_in_desc +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x00000000 fsg_fs_bulk_out_desc +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x00000000 fsg_fs_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x00000000 fsg_hs_bulk_in_desc +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x00000000 fsg_hs_bulk_out_desc +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x00000000 fsg_hs_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x00000000 fsg_intf_desc +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x00000000 fsg_lun_close +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x00000000 fsg_lun_fsync_sub +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x00000000 fsg_lun_open +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x00000000 fsg_show_cdrom +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x00000000 fsg_show_file +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x00000000 fsg_show_inquiry_string +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x00000000 fsg_show_nofua +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x00000000 fsg_show_removable +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x00000000 fsg_show_ro +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x00000000 fsg_ss_bulk_in_comp_desc +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x00000000 fsg_ss_bulk_in_desc +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x00000000 fsg_ss_bulk_out_comp_desc +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x00000000 fsg_ss_bulk_out_desc +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x00000000 fsg_ss_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x00000000 fsg_store_cdrom +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x00000000 fsg_store_file +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x00000000 fsg_store_inquiry_string +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x00000000 fsg_store_nofua +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x00000000 fsg_store_removable +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x00000000 fsg_store_ro +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x00000000 store_cdrom_address +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x00000000 rndis_add_hdr +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x00000000 rndis_borrow_net +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x00000000 rndis_deregister +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x00000000 rndis_free_response +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x00000000 rndis_get_next_response +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x00000000 rndis_msg_parser +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x00000000 rndis_register +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x00000000 rndis_rm_hdr +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x00000000 rndis_set_host_mac +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x00000000 rndis_set_param_dev +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x00000000 rndis_set_param_medium +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x00000000 rndis_set_param_vendor +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x00000000 rndis_signal_connect +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x00000000 rndis_signal_disconnect +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x00000000 rndis_uninit +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x00000000 alloc_ep_req +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x00000000 config_ep_by_speed +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x00000000 unregister_gadget_item +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x00000000 usb_add_config +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x00000000 usb_add_config_only +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x00000000 usb_add_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x00000000 usb_assign_descriptors +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x00000000 usb_composite_overwrite_options +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x00000000 usb_composite_probe +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x00000000 usb_composite_setup_continue +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x00000000 usb_composite_unregister +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x00000000 usb_copy_descriptors +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x00000000 usb_descriptor_fillbuf +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x00000000 usb_ep_autoconfig +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x00000000 usb_ep_autoconfig_release +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x00000000 usb_ep_autoconfig_reset +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x00000000 usb_ep_autoconfig_ss +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x00000000 usb_free_all_descriptors +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x00000000 usb_function_activate +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x00000000 usb_function_deactivate +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x00000000 usb_function_register +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x00000000 usb_function_unregister +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x00000000 usb_gadget_config_buf +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x00000000 usb_gadget_get_string +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x00000000 usb_get_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x00000000 usb_get_function_instance +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x00000000 usb_gstrings_attach +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x00000000 usb_interface_id +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x00000000 usb_otg_descriptor_alloc +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x00000000 usb_otg_descriptor_init +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x00000000 usb_put_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x00000000 usb_put_function_instance +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x00000000 usb_remove_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x00000000 usb_string_id +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x00000000 usb_string_ids_n +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x00000000 usb_string_ids_tab +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0x00000000 empty_req_queue +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0x00000000 free_dma_pools +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0x00000000 gadget_release +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0x00000000 init_dma_pools +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0x00000000 udc_basic_init +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0x00000000 udc_enable_dev_setup_interrupts +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0x00000000 udc_irq +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0x00000000 udc_mask_unused_interrupts +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0x00000000 udc_probe +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0x00000000 udc_remove +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 gadget_find_ep_by_name +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 usb_add_gadget_udc +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 usb_add_gadget_udc_release +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 usb_del_gadget_udc +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 usb_ep_alloc_request +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 usb_ep_clear_halt +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 usb_ep_dequeue +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 usb_ep_disable +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 usb_ep_enable +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 usb_ep_fifo_flush +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 usb_ep_fifo_status +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 usb_ep_free_request +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 usb_ep_queue +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 usb_ep_set_halt +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 usb_ep_set_maxpacket_limit +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 usb_ep_set_wedge +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 usb_gadget_activate +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 usb_gadget_clear_selfpowered +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 usb_gadget_connect +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 usb_gadget_deactivate +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 usb_gadget_disconnect +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 usb_gadget_ep_match_desc +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 usb_gadget_frame_number +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 usb_gadget_giveback_request +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 usb_gadget_map_request +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 usb_gadget_map_request_by_dev +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 usb_gadget_probe_driver +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 usb_gadget_set_selfpowered +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 usb_gadget_set_state +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 usb_gadget_udc_reset +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 usb_gadget_unmap_request +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 usb_gadget_unmap_request_by_dev +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 usb_gadget_unregister_driver +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 usb_gadget_vbus_connect +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 usb_gadget_vbus_disconnect +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 usb_gadget_vbus_draw +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 usb_gadget_wakeup +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 usb_get_gadget_udc_name +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x00000000 usb_udc_vbus_handler +EXPORT_SYMBOL_GPL drivers/usb/misc/ezusb 0x00000000 ezusb_fx1_ihex_firmware_download +EXPORT_SYMBOL_GPL drivers/usb/misc/ezusb 0x00000000 ezusb_fx1_set_reset +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x00000000 ftdi_elan_gone_away +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x00000000 usb_ftdi_elan_edset_empty +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x00000000 usb_ftdi_elan_edset_flush +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x00000000 usb_ftdi_elan_edset_input +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x00000000 usb_ftdi_elan_edset_output +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x00000000 usb_ftdi_elan_edset_setup +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x00000000 usb_ftdi_elan_edset_single +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x00000000 usb_ftdi_elan_read_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x00000000 usb_ftdi_elan_write_pcimem +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x00000000 musb_clearb +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x00000000 musb_clearw +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x00000000 musb_get_mode +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x00000000 musb_interrupt +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x00000000 musb_mailbox +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x00000000 musb_queue_resume_work +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x00000000 musb_readb +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x00000000 musb_readl +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x00000000 musb_readw +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x00000000 musb_root_disconnect +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x00000000 musb_set_host +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x00000000 musb_set_peripheral +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x00000000 musb_writeb +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x00000000 musb_writel +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x00000000 musb_writew +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-generic 0x00000000 usb_gen_phy_init +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-generic 0x00000000 usb_gen_phy_shutdown +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-generic 0x00000000 usb_phy_gen_create_phy +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-generic 0x00000000 usb_phy_generic_register +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-generic 0x00000000 usb_phy_generic_unregister +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-isp1301 0x00000000 isp1301_get_client +EXPORT_SYMBOL_GPL drivers/usb/roles/roles 0x00000000 fwnode_usb_role_switch_get +EXPORT_SYMBOL_GPL drivers/usb/roles/roles 0x00000000 usb_role_switch_find_by_fwnode +EXPORT_SYMBOL_GPL drivers/usb/roles/roles 0x00000000 usb_role_switch_get +EXPORT_SYMBOL_GPL drivers/usb/roles/roles 0x00000000 usb_role_switch_get_role +EXPORT_SYMBOL_GPL drivers/usb/roles/roles 0x00000000 usb_role_switch_put +EXPORT_SYMBOL_GPL drivers/usb/roles/roles 0x00000000 usb_role_switch_register +EXPORT_SYMBOL_GPL drivers/usb/roles/roles 0x00000000 usb_role_switch_set_role +EXPORT_SYMBOL_GPL drivers/usb/roles/roles 0x00000000 usb_role_switch_unregister +EXPORT_SYMBOL_GPL drivers/usb/serial/usb_wwan 0x00000000 usb_wwan_port_probe +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x00000000 usb_serial_deregister_drivers +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x00000000 usb_serial_generic_chars_in_buffer +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x00000000 usb_serial_generic_close +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x00000000 usb_serial_generic_get_icount +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x00000000 usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x00000000 usb_serial_generic_process_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x00000000 usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x00000000 usb_serial_generic_resume +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x00000000 usb_serial_generic_submit_read_urbs +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x00000000 usb_serial_generic_throttle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x00000000 usb_serial_generic_tiocmiwait +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x00000000 usb_serial_generic_unthrottle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x00000000 usb_serial_generic_wait_until_sent +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x00000000 usb_serial_generic_write +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x00000000 usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x00000000 usb_serial_generic_write_start +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x00000000 usb_serial_handle_break +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x00000000 usb_serial_handle_dcd_change +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x00000000 usb_serial_handle_sysrq_char +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x00000000 usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x00000000 usb_serial_register_drivers +EXPORT_SYMBOL_GPL drivers/usb/typec/altmodes/typec_displayport 0x00000000 dp_altmode_probe +EXPORT_SYMBOL_GPL drivers/usb/typec/altmodes/typec_displayport 0x00000000 dp_altmode_remove +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpci 0x00000000 tcpci_irq +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpci 0x00000000 tcpci_register_port +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpci 0x00000000 tcpci_unregister_port +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpm 0x00000000 tcpm_cc_change +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpm 0x00000000 tcpm_pd_hard_reset +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpm 0x00000000 tcpm_pd_receive +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpm 0x00000000 tcpm_pd_transmit_complete +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpm 0x00000000 tcpm_register_port +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpm 0x00000000 tcpm_tcpc_reset +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpm 0x00000000 tcpm_unregister_port +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpm 0x00000000 tcpm_vbus_change +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 __typec_altmode_register_driver +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_altmode2port +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_altmode_attention +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_altmode_enter +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_altmode_exit +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_altmode_get_partner +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_altmode_get_plug +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_altmode_notify +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_altmode_put_plug +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_altmode_register_notifier +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_altmode_unregister_driver +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_altmode_unregister_notifier +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_altmode_update_active +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_altmode_vdm +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_cable_get +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_cable_is_active +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_cable_put +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_cable_set_identity +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_find_port_data_role +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_find_port_power_role +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_find_power_role +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_get_drvdata +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_get_orientation +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_match_altmode +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_mux_get +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_mux_get_drvdata +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_mux_put +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_mux_register +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_mux_set_drvdata +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_mux_unregister +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_partner_register_altmode +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_partner_set_identity +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_plug_register_altmode +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_port_register_altmode +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_register_cable +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_register_partner +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_register_plug +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_register_port +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_set_data_role +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_set_mode +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_set_orientation +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_set_pwr_opmode +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_set_pwr_role +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_set_vconn_role +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_switch_get +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_switch_get_drvdata +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_switch_put +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_switch_register +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_switch_set_drvdata +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_switch_unregister +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_unregister_altmode +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_unregister_cable +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_unregister_partner +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_unregister_plug +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00000000 typec_unregister_port +EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x00000000 ucsi_connector_change +EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x00000000 ucsi_create +EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x00000000 ucsi_destroy +EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x00000000 ucsi_get_drvdata +EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x00000000 ucsi_init +EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x00000000 ucsi_register +EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x00000000 ucsi_resume +EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x00000000 ucsi_send_command +EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x00000000 ucsi_set_drvdata +EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x00000000 ucsi_unregister +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x00000000 dev_attr_usbip_debug +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x00000000 usbip_alloc_iso_desc_pdu +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x00000000 usbip_debug_flag +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x00000000 usbip_dump_header +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x00000000 usbip_dump_urb +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x00000000 usbip_event_add +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x00000000 usbip_event_happened +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x00000000 usbip_header_correct_endian +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x00000000 usbip_in_eh +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x00000000 usbip_pack_pdu +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x00000000 usbip_pad_iso +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x00000000 usbip_recv +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x00000000 usbip_recv_iso +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x00000000 usbip_recv_xbuff +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x00000000 usbip_start_eh +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x00000000 usbip_stop_eh +EXPORT_SYMBOL_GPL drivers/vfio/mdev/mdev 0x00000000 mdev_bus_type +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_add_used +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_add_used_and_signal +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_add_used_and_signal_n +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_add_used_n +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_chr_read_iter +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_dequeue_msg +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_dev_check_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_dev_cleanup +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_dev_has_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_dev_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_dev_ioctl +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_dev_reset_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_dev_reset_owner_prepare +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_dev_set_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_dev_stop +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_disable_notify +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_discard_vq_desc +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_enable_notify +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_enqueue_msg +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_exceeds_weight +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_get_vq_desc +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_has_work +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_init_device_iotlb +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_log_access_ok +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_log_write +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_new_msg +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_poll_flush +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_poll_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_poll_queue +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_poll_start +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_poll_stop +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_signal +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_vq_access_ok +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_vq_avail_empty +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_vq_init_access +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_vring_ioctl +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_work_flush +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_work_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vhost_work_queue +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x00000000 vq_meta_prefetch +EXPORT_SYMBOL_GPL drivers/video/backlight/apple_bl 0x00000000 apple_bl_register +EXPORT_SYMBOL_GPL drivers/video/backlight/apple_bl 0x00000000 apple_bl_unregister +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x00000000 ili9320_probe_spi +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x00000000 ili9320_remove +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x00000000 ili9320_resume +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x00000000 ili9320_shutdown +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x00000000 ili9320_suspend +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x00000000 ili9320_write +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x00000000 ili9320_write_regs +EXPORT_SYMBOL_GPL drivers/video/fbdev/core/fb_ddc 0x00000000 fb_ddc_read +EXPORT_SYMBOL_GPL drivers/video/fbdev/core/fb_sys_fops 0x00000000 fb_sys_read +EXPORT_SYMBOL_GPL drivers/video/fbdev/core/fb_sys_fops 0x00000000 fb_sys_write +EXPORT_SYMBOL_GPL drivers/video/fbdev/sis/sisfb 0x00000000 sis_free_new +EXPORT_SYMBOL_GPL drivers/video/fbdev/sis/sisfb 0x00000000 sis_malloc_new +EXPORT_SYMBOL_GPL drivers/video/fbdev/vermilion/vmlfb 0x00000000 vmlfb_register_subsys +EXPORT_SYMBOL_GPL drivers/video/fbdev/vermilion/vmlfb 0x00000000 vmlfb_unregister_subsys +EXPORT_SYMBOL_GPL drivers/video/fbdev/via/viafb 0x00000000 viafb_dma_copy_out_sg +EXPORT_SYMBOL_GPL drivers/video/fbdev/via/viafb 0x00000000 viafb_find_i2c_adapter +EXPORT_SYMBOL_GPL drivers/video/fbdev/via/viafb 0x00000000 viafb_gpio_lookup +EXPORT_SYMBOL_GPL drivers/video/fbdev/via/viafb 0x00000000 viafb_irq_disable +EXPORT_SYMBOL_GPL drivers/video/fbdev/via/viafb 0x00000000 viafb_irq_enable +EXPORT_SYMBOL_GPL drivers/video/fbdev/via/viafb 0x00000000 viafb_pm_register +EXPORT_SYMBOL_GPL drivers/video/fbdev/via/viafb 0x00000000 viafb_pm_unregister +EXPORT_SYMBOL_GPL drivers/video/fbdev/via/viafb 0x00000000 viafb_release_dma +EXPORT_SYMBOL_GPL drivers/video/fbdev/via/viafb 0x00000000 viafb_request_dma +EXPORT_SYMBOL_GPL drivers/visorbus/visorbus 0x00000000 visorbus_disable_channel_interrupts +EXPORT_SYMBOL_GPL drivers/visorbus/visorbus 0x00000000 visorbus_enable_channel_interrupts +EXPORT_SYMBOL_GPL drivers/visorbus/visorbus 0x00000000 visorbus_read_channel +EXPORT_SYMBOL_GPL drivers/visorbus/visorbus 0x00000000 visorbus_register_visor_driver +EXPORT_SYMBOL_GPL drivers/visorbus/visorbus 0x00000000 visorbus_unregister_visor_driver +EXPORT_SYMBOL_GPL drivers/visorbus/visorbus 0x00000000 visorbus_write_channel +EXPORT_SYMBOL_GPL drivers/visorbus/visorbus 0x00000000 visorchannel_get_guid +EXPORT_SYMBOL_GPL drivers/visorbus/visorbus 0x00000000 visorchannel_signalempty +EXPORT_SYMBOL_GPL drivers/visorbus/visorbus 0x00000000 visorchannel_signalinsert +EXPORT_SYMBOL_GPL drivers/visorbus/visorbus 0x00000000 visorchannel_signalremove +EXPORT_SYMBOL_GPL drivers/w1/wire 0x00000000 w1_calc_crc8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x00000000 w1_next_pullup +EXPORT_SYMBOL_GPL drivers/w1/wire 0x00000000 w1_read_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x00000000 w1_read_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x00000000 w1_reset_bus +EXPORT_SYMBOL_GPL drivers/w1/wire 0x00000000 w1_reset_resume_command +EXPORT_SYMBOL_GPL drivers/w1/wire 0x00000000 w1_reset_select_slave +EXPORT_SYMBOL_GPL drivers/w1/wire 0x00000000 w1_touch_bit +EXPORT_SYMBOL_GPL drivers/w1/wire 0x00000000 w1_touch_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x00000000 w1_triplet +EXPORT_SYMBOL_GPL drivers/w1/wire 0x00000000 w1_write_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x00000000 w1_write_block +EXPORT_SYMBOL_GPL drivers/xen/xen-front-pgdir-shbuf 0x00000000 xen_front_pgdir_shbuf_alloc +EXPORT_SYMBOL_GPL drivers/xen/xen-front-pgdir-shbuf 0x00000000 xen_front_pgdir_shbuf_free +EXPORT_SYMBOL_GPL drivers/xen/xen-front-pgdir-shbuf 0x00000000 xen_front_pgdir_shbuf_get_dir_start +EXPORT_SYMBOL_GPL drivers/xen/xen-front-pgdir-shbuf 0x00000000 xen_front_pgdir_shbuf_map +EXPORT_SYMBOL_GPL drivers/xen/xen-front-pgdir-shbuf 0x00000000 xen_front_pgdir_shbuf_unmap +EXPORT_SYMBOL_GPL drivers/xen/xen-privcmd 0x00000000 xen_privcmd_fops +EXPORT_SYMBOL_GPL drivers/xen/xen-privcmd 0x00000000 xen_privcmdbuf_fops +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x00000000 dlm_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x00000000 dlm_new_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x00000000 dlm_posix_get +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x00000000 dlm_posix_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x00000000 dlm_posix_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x00000000 dlm_release_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x00000000 dlm_unlock +EXPORT_SYMBOL_GPL fs/fscache/fscache 0x00000000 fscache_object_sleep_till_congested +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x00000000 lockd_down +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x00000000 lockd_up +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x00000000 nlmclnt_done +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x00000000 nlmclnt_init +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x00000000 nlmclnt_proc +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x00000000 nlmsvc_ops +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x00000000 nlmsvc_unlock_all_by_ip +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x00000000 nlmsvc_unlock_all_by_sb +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 __tracepoint_nfs_fsync_enter +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 __tracepoint_nfs_fsync_exit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 __tracepoint_nfs_xdr_status +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 _nfs_display_fhandle +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 _nfs_display_fhandle_hash +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 alloc_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 get_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 max_session_cb_slots +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 max_session_slots +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs4_client_id_uniquifier +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs4_dentry_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs4_disable_idmapping +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs4_fs_type +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs4_label_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_access_add_cache +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_access_set_mask +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_access_zap_cache +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_add_or_obtain +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_alloc_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_alloc_fattr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_alloc_fhandle +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_alloc_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_alloc_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_async_iocounter_wait +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_atomic_open +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_auth_info_match +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_callback_nr_threads +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_callback_set_tcpport +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_check_flags +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_clear_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_clear_verifier_delegated +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_client_init_is_complete +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_client_init_status +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_clone_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_close_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_commit_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_commit_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_commitdata_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_commitdata_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_create +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_create_rpc_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_create_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_dentry_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_do_submount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_dreq_bytes_left +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_drop_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_fattr_init +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_fhget +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_file_fsync +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_file_llseek +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_file_mmap +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_file_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_file_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_file_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_file_set_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_file_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_filemap_write_and_wait_range +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_flock +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_force_lookup_revalidate +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_free_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_free_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_free_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_fs_type +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_fscache_open_file +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_generic_pg_test +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_generic_pgio +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_get_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_get_lock_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_getattr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_idmap_cache_timeout +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_inc_attr_generation_counter +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_init_cinfo +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_init_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_init_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_init_server_rpcclient +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_init_timeout_values +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_initiate_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_initiate_pgio +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_inode_attach_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_instantiate +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_invalidate_atime +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_kill_super +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_link +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_lock +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_lookup +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_mark_client_ready +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_may_open +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_mkdir +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_mknod +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_net_id +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_open +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_pageio_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_pageio_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_pageio_resend +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_pageio_reset_read_mds +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_pageio_reset_write_mds +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_path +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_permission +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_pgheader_init +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_pgio_current_mirror +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_pgio_header_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_pgio_header_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_post_op_update_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_post_op_update_inode_force_wcc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_probe_fsinfo +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_put_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_put_lock_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_reconfigure +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_refresh_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_release_request +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_rename +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_request_add_commit_list +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_request_add_commit_list_locked +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_request_remove_commit_list +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_retry_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_revalidate_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_rmdir +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_sb_active +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_sb_deactive +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_scan_commit_list +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_server_copy_userdata +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_server_insert_lists +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_server_remove_lists +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_set_verifier +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_setattr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_setattr_update_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_setsecurity +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_show_devname +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_show_options +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_show_path +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_show_stats +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_sops +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_statfs +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_submount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_symlink +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_sync_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_try_get_tree +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_umount_begin +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_unlink +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_wait_bit_killable +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_wait_client_init_complete +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_wait_on_request +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_wb_all +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_write_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_writeback_update_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfs_zap_acl_cache +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 nfsiod_workqueue +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 put_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 recover_lost_locks +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 register_nfs_version +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 send_implementation_id +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00000000 unregister_nfs_version +EXPORT_SYMBOL_GPL fs/nfs/nfsv3 0x00000000 nfs3_set_ds_client +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 __tracepoint_ff_layout_commit_error +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 __tracepoint_ff_layout_read_error +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 __tracepoint_ff_layout_write_error +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 __tracepoint_nfs4_pnfs_commit_ds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 __tracepoint_nfs4_pnfs_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 __tracepoint_nfs4_pnfs_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 __tracepoint_pnfs_mds_fallback_pg_get_mirror_count +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 __tracepoint_pnfs_mds_fallback_pg_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 __tracepoint_pnfs_mds_fallback_pg_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 __tracepoint_pnfs_mds_fallback_read_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 __tracepoint_pnfs_mds_fallback_read_pagelist +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 __tracepoint_pnfs_mds_fallback_write_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 __tracepoint_pnfs_mds_fallback_write_pagelist +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 layoutstats_timer +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 nfs41_maxgetdevinfo_overhead +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 nfs41_sequence_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 nfs42_proc_layouterror +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 nfs42_ssc_close +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 nfs42_ssc_open +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 nfs4_decode_mp_ds_addr +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 nfs4_delete_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 nfs4_find_get_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 nfs4_find_or_create_ds_client +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 nfs4_init_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 nfs4_init_ds_session +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 nfs4_mark_deviceid_available +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 nfs4_mark_deviceid_unavailable +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 nfs4_pnfs_ds_add +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 nfs4_pnfs_ds_connect +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 nfs4_pnfs_ds_put +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 nfs4_print_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 nfs4_proc_getdeviceinfo +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 nfs4_put_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 nfs4_schedule_lease_moved_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 nfs4_schedule_lease_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 nfs4_schedule_migration_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 nfs4_schedule_session_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 nfs4_schedule_stateid_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 nfs4_sequence_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 nfs4_set_ds_client +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 nfs4_set_rw_stateid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 nfs4_setup_sequence +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 nfs4_test_deviceid_unavailable +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 nfs4_test_session_trunk +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 nfs_map_string_to_numeric +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 nfs_remove_bad_delegation +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 pnfs_destroy_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 pnfs_error_mark_layout_for_return +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 pnfs_generic_clear_request_commit +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 pnfs_generic_commit_pagelist +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 pnfs_generic_commit_release +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 pnfs_generic_layout_insert_lseg +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 pnfs_generic_pg_check_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 pnfs_generic_pg_cleanup +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 pnfs_generic_pg_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 pnfs_generic_pg_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 pnfs_generic_pg_readpages +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 pnfs_generic_pg_test +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 pnfs_generic_pg_writepages +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 pnfs_generic_prepare_to_resend_writes +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 pnfs_generic_recover_commit_reqs +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 pnfs_generic_rw_release +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 pnfs_generic_scan_commit_lists +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 pnfs_generic_sync +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 pnfs_generic_write_commit_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 pnfs_layout_mark_request_commit +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 pnfs_layoutcommit_inode +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 pnfs_ld_read_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 pnfs_ld_write_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 pnfs_nfs_generic_sync +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 pnfs_put_lseg +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 pnfs_read_done_resend_to_mds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 pnfs_read_resend_pnfs +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 pnfs_register_layoutdriver +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 pnfs_report_layoutstat +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 pnfs_set_layoutcommit +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 pnfs_set_lo_fail +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 pnfs_unregister_layoutdriver +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 pnfs_update_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00000000 pnfs_write_done_resend_to_mds +EXPORT_SYMBOL_GPL fs/nfs_common/grace 0x00000000 locks_end_grace +EXPORT_SYMBOL_GPL fs/nfs_common/grace 0x00000000 locks_in_grace +EXPORT_SYMBOL_GPL fs/nfs_common/grace 0x00000000 locks_start_grace +EXPORT_SYMBOL_GPL fs/nfs_common/grace 0x00000000 opens_in_grace +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x00000000 nfsacl_decode +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x00000000 nfsacl_encode +EXPORT_SYMBOL_GPL fs/nfsd/nfsd 0x00000000 inter_copy_offload_enable +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x00000000 __mlog_printk +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x00000000 mlog_and_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x00000000 mlog_not_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x00000000 o2hb_check_node_heartbeating_from_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x00000000 o2hb_check_node_heartbeating_no_sem +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x00000000 o2hb_fill_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x00000000 o2hb_get_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x00000000 o2hb_register_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x00000000 o2hb_setup_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x00000000 o2hb_stop_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x00000000 o2hb_unregister_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x00000000 o2net_fill_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x00000000 o2net_register_handler +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x00000000 o2net_send_message +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x00000000 o2net_send_message_vec +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x00000000 o2net_unregister_handler_list +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x00000000 o2nm_configured_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x00000000 o2nm_get_node_by_ip +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x00000000 o2nm_get_node_by_num +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x00000000 o2nm_node_get +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x00000000 o2nm_node_put +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x00000000 o2nm_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x00000000 dlm_errmsg +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x00000000 dlm_errname +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x00000000 dlm_print_one_lock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x00000000 dlm_register_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x00000000 dlm_register_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x00000000 dlm_setup_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x00000000 dlm_unregister_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x00000000 dlm_unregister_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x00000000 dlmlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x00000000 dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x00000000 ocfs2_cluster_connect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x00000000 ocfs2_cluster_connect_agnostic +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x00000000 ocfs2_cluster_disconnect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x00000000 ocfs2_cluster_hangup +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x00000000 ocfs2_cluster_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x00000000 ocfs2_dlm_dump_lksb +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x00000000 ocfs2_dlm_lock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x00000000 ocfs2_dlm_lock_status +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x00000000 ocfs2_dlm_lvb +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x00000000 ocfs2_dlm_lvb_valid +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x00000000 ocfs2_dlm_unlock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x00000000 ocfs2_kset +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x00000000 ocfs2_plock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x00000000 ocfs2_stack_glue_register +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x00000000 ocfs2_stack_glue_set_max_proto_version +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x00000000 ocfs2_stack_glue_unregister +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x00000000 ocfs2_stack_supports_plocks +EXPORT_SYMBOL_GPL kernel/torture 0x00000000 _torture_create_kthread +EXPORT_SYMBOL_GPL kernel/torture 0x00000000 _torture_stop_kthread +EXPORT_SYMBOL_GPL kernel/torture 0x00000000 stutter_wait +EXPORT_SYMBOL_GPL kernel/torture 0x00000000 torture_cleanup_begin +EXPORT_SYMBOL_GPL kernel/torture 0x00000000 torture_cleanup_end +EXPORT_SYMBOL_GPL kernel/torture 0x00000000 torture_init_begin +EXPORT_SYMBOL_GPL kernel/torture 0x00000000 torture_init_end +EXPORT_SYMBOL_GPL kernel/torture 0x00000000 torture_kthread_stopping +EXPORT_SYMBOL_GPL kernel/torture 0x00000000 torture_must_stop +EXPORT_SYMBOL_GPL kernel/torture 0x00000000 torture_must_stop_irq +EXPORT_SYMBOL_GPL kernel/torture 0x00000000 torture_offline +EXPORT_SYMBOL_GPL kernel/torture 0x00000000 torture_online +EXPORT_SYMBOL_GPL kernel/torture 0x00000000 torture_onoff_failures +EXPORT_SYMBOL_GPL kernel/torture 0x00000000 torture_onoff_init +EXPORT_SYMBOL_GPL kernel/torture 0x00000000 torture_onoff_stats +EXPORT_SYMBOL_GPL kernel/torture 0x00000000 torture_random +EXPORT_SYMBOL_GPL kernel/torture 0x00000000 torture_shuffle_init +EXPORT_SYMBOL_GPL kernel/torture 0x00000000 torture_shuffle_task_register +EXPORT_SYMBOL_GPL kernel/torture 0x00000000 torture_shutdown_absorb +EXPORT_SYMBOL_GPL kernel/torture 0x00000000 torture_shutdown_init +EXPORT_SYMBOL_GPL kernel/torture 0x00000000 torture_stutter_init +EXPORT_SYMBOL_GPL lib/842/842_compress 0x00000000 sw842_compress +EXPORT_SYMBOL_GPL lib/842/842_decompress 0x00000000 sw842_decompress +EXPORT_SYMBOL_GPL lib/bch 0x00000000 decode_bch +EXPORT_SYMBOL_GPL lib/bch 0x00000000 encode_bch +EXPORT_SYMBOL_GPL lib/bch 0x00000000 free_bch +EXPORT_SYMBOL_GPL lib/bch 0x00000000 init_bch +EXPORT_SYMBOL_GPL lib/crc4 0x00000000 crc4 +EXPORT_SYMBOL_GPL lib/crc64 0x00000000 crc64_be +EXPORT_SYMBOL_GPL lib/crypto/libdes 0x00000000 des3_ede_decrypt +EXPORT_SYMBOL_GPL lib/crypto/libdes 0x00000000 des3_ede_encrypt +EXPORT_SYMBOL_GPL lib/crypto/libdes 0x00000000 des3_ede_expand_key +EXPORT_SYMBOL_GPL lib/crypto/libdes 0x00000000 des_decrypt +EXPORT_SYMBOL_GPL lib/crypto/libdes 0x00000000 des_encrypt +EXPORT_SYMBOL_GPL lib/crypto/libdes 0x00000000 des_expand_key +EXPORT_SYMBOL_GPL lib/crypto/libpoly1305 0x00000000 poly1305_final_generic +EXPORT_SYMBOL_GPL lib/crypto/libpoly1305 0x00000000 poly1305_init_generic +EXPORT_SYMBOL_GPL lib/crypto/libpoly1305 0x00000000 poly1305_update_generic +EXPORT_SYMBOL_GPL lib/notifier-error-inject 0x00000000 notifier_err_inject_dir +EXPORT_SYMBOL_GPL lib/notifier-error-inject 0x00000000 notifier_err_inject_init +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x00000000 raid6_2data_recov +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x00000000 raid6_call +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x00000000 raid6_datap_recov +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x00000000 decode_rs16 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x00000000 decode_rs8 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x00000000 encode_rs8 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x00000000 free_rs +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x00000000 init_rs_gfp +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x00000000 init_rs_non_canonical +EXPORT_SYMBOL_GPL net/6lowpan/6lowpan 0x00000000 lowpan_header_compress +EXPORT_SYMBOL_GPL net/6lowpan/6lowpan 0x00000000 lowpan_header_decompress +EXPORT_SYMBOL_GPL net/802/garp 0x00000000 garp_init_applicant +EXPORT_SYMBOL_GPL net/802/garp 0x00000000 garp_register_application +EXPORT_SYMBOL_GPL net/802/garp 0x00000000 garp_request_join +EXPORT_SYMBOL_GPL net/802/garp 0x00000000 garp_request_leave +EXPORT_SYMBOL_GPL net/802/garp 0x00000000 garp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/garp 0x00000000 garp_unregister_application +EXPORT_SYMBOL_GPL net/802/mrp 0x00000000 mrp_init_applicant +EXPORT_SYMBOL_GPL net/802/mrp 0x00000000 mrp_register_application +EXPORT_SYMBOL_GPL net/802/mrp 0x00000000 mrp_request_join +EXPORT_SYMBOL_GPL net/802/mrp 0x00000000 mrp_request_leave +EXPORT_SYMBOL_GPL net/802/mrp 0x00000000 mrp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/mrp 0x00000000 mrp_unregister_application +EXPORT_SYMBOL_GPL net/802/stp 0x00000000 stp_proto_register +EXPORT_SYMBOL_GPL net/802/stp 0x00000000 stp_proto_unregister +EXPORT_SYMBOL_GPL net/9p/9pnet 0x00000000 p9_client_xattrcreate +EXPORT_SYMBOL_GPL net/9p/9pnet 0x00000000 p9_client_xattrwalk +EXPORT_SYMBOL_GPL net/atm/atm 0x00000000 register_atmdevice_notifier +EXPORT_SYMBOL_GPL net/atm/atm 0x00000000 unregister_atmdevice_notifier +EXPORT_SYMBOL_GPL net/ax25/ax25 0x00000000 ax25_bcast +EXPORT_SYMBOL_GPL net/ax25/ax25 0x00000000 ax25_defaddr +EXPORT_SYMBOL_GPL net/ax25/ax25 0x00000000 ax25_register_pid +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x00000000 bt_debugfs +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x00000000 l2cap_add_psm +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x00000000 l2cap_chan_connect +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x00000000 l2cap_chan_create +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x00000000 l2cap_chan_del +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x00000000 l2cap_chan_put +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x00000000 l2cap_chan_send +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x00000000 l2cap_chan_set_defaults +EXPORT_SYMBOL_GPL net/bluetooth/hidp/hidp 0x00000000 hidp_hid_driver +EXPORT_SYMBOL_GPL net/bridge/bridge 0x00000000 br_dev_queue_push_xmit +EXPORT_SYMBOL_GPL net/bridge/bridge 0x00000000 br_fdb_clear_offload +EXPORT_SYMBOL_GPL net/bridge/bridge 0x00000000 br_fdb_find_port +EXPORT_SYMBOL_GPL net/bridge/bridge 0x00000000 br_forward +EXPORT_SYMBOL_GPL net/bridge/bridge 0x00000000 br_forward_finish +EXPORT_SYMBOL_GPL net/bridge/bridge 0x00000000 br_handle_frame_finish +EXPORT_SYMBOL_GPL net/bridge/bridge 0x00000000 br_multicast_enabled +EXPORT_SYMBOL_GPL net/bridge/bridge 0x00000000 br_multicast_has_querier_adjacent +EXPORT_SYMBOL_GPL net/bridge/bridge 0x00000000 br_multicast_has_querier_anywhere +EXPORT_SYMBOL_GPL net/bridge/bridge 0x00000000 br_multicast_list_adjacent +EXPORT_SYMBOL_GPL net/bridge/bridge 0x00000000 br_multicast_router +EXPORT_SYMBOL_GPL net/bridge/bridge 0x00000000 br_port_flag_is_set +EXPORT_SYMBOL_GPL net/bridge/bridge 0x00000000 br_vlan_enabled +EXPORT_SYMBOL_GPL net/bridge/bridge 0x00000000 br_vlan_get_info +EXPORT_SYMBOL_GPL net/bridge/bridge 0x00000000 br_vlan_get_proto +EXPORT_SYMBOL_GPL net/bridge/bridge 0x00000000 br_vlan_get_pvid +EXPORT_SYMBOL_GPL net/bridge/bridge 0x00000000 br_vlan_get_pvid_rcu +EXPORT_SYMBOL_GPL net/bridge/bridge 0x00000000 nf_br_ops +EXPORT_SYMBOL_GPL net/core/failover 0x00000000 failover_register +EXPORT_SYMBOL_GPL net/core/failover 0x00000000 failover_slave_unregister +EXPORT_SYMBOL_GPL net/core/failover 0x00000000 failover_unregister +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 compat_dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 compat_dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_ackvec_parsed_add +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_ackvec_parsed_cleanup +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_feat_list_purge +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_feat_nn_get +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_feat_signal_nn_change +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_packet_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_statistics +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00000000 inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x00000000 dccp_invalid_packet +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x00000000 dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x00000000 dccp_v4_connect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x00000000 dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x00000000 dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x00000000 dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x00000000 call_dsa_notifiers +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x00000000 dsa_dev_to_net_device +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x00000000 dsa_devlink_param_get +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x00000000 dsa_devlink_param_set +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x00000000 dsa_devlink_params_register +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x00000000 dsa_devlink_params_unregister +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x00000000 dsa_devlink_resource_occ_get_register +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x00000000 dsa_devlink_resource_occ_get_unregister +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x00000000 dsa_devlink_resource_register +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x00000000 dsa_devlink_resources_unregister +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x00000000 dsa_enqueue_skb +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x00000000 dsa_port_get_ethtool_phy_stats +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x00000000 dsa_port_get_phy_sset_count +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x00000000 dsa_port_get_phy_strings +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x00000000 dsa_port_phylink_mac_change +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x00000000 dsa_register_switch +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x00000000 dsa_switch_resume +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x00000000 dsa_switch_suspend +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x00000000 dsa_tag_drivers_register +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x00000000 dsa_tag_drivers_unregister +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x00000000 dsa_unregister_switch +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x00000000 register_dsa_notifier +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x00000000 unregister_dsa_notifier +EXPORT_SYMBOL_GPL net/dsa/tag_8021q 0x00000000 dsa_8021q_rx_source_port +EXPORT_SYMBOL_GPL net/dsa/tag_8021q 0x00000000 dsa_8021q_rx_switch_id +EXPORT_SYMBOL_GPL net/dsa/tag_8021q 0x00000000 dsa_8021q_rx_vid +EXPORT_SYMBOL_GPL net/dsa/tag_8021q 0x00000000 dsa_8021q_tx_vid +EXPORT_SYMBOL_GPL net/dsa/tag_8021q 0x00000000 dsa_8021q_xmit +EXPORT_SYMBOL_GPL net/dsa/tag_8021q 0x00000000 dsa_port_setup_8021q_tagging +EXPORT_SYMBOL_GPL net/ieee802154/ieee802154 0x00000000 ieee802154_hdr_peek +EXPORT_SYMBOL_GPL net/ieee802154/ieee802154 0x00000000 ieee802154_hdr_peek_addrs +EXPORT_SYMBOL_GPL net/ieee802154/ieee802154 0x00000000 ieee802154_hdr_pull +EXPORT_SYMBOL_GPL net/ieee802154/ieee802154 0x00000000 ieee802154_hdr_push +EXPORT_SYMBOL_GPL net/ieee802154/ieee802154 0x00000000 ieee802154_max_payload +EXPORT_SYMBOL_GPL net/ife/ife 0x00000000 ife_decode +EXPORT_SYMBOL_GPL net/ife/ife 0x00000000 ife_encode +EXPORT_SYMBOL_GPL net/ife/ife 0x00000000 ife_tlv_meta_decode +EXPORT_SYMBOL_GPL net/ife/ife 0x00000000 ife_tlv_meta_encode +EXPORT_SYMBOL_GPL net/ife/ife 0x00000000 ife_tlv_meta_next +EXPORT_SYMBOL_GPL net/ipv4/esp4 0x00000000 esp_input_done2 +EXPORT_SYMBOL_GPL net/ipv4/esp4 0x00000000 esp_output_head +EXPORT_SYMBOL_GPL net/ipv4/esp4 0x00000000 esp_output_tail +EXPORT_SYMBOL_GPL net/ipv4/gre 0x00000000 gre_add_protocol +EXPORT_SYMBOL_GPL net/ipv4/gre 0x00000000 gre_del_protocol +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x00000000 inet_diag_bc_sk +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x00000000 inet_diag_dump_icsk +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x00000000 inet_diag_dump_one_icsk +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x00000000 inet_diag_find_one_icsk +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x00000000 inet_diag_msg_attrs_fill +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x00000000 inet_diag_msg_common_fill +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x00000000 inet_diag_register +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x00000000 inet_diag_unregister +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x00000000 inet_sk_diag_fill +EXPORT_SYMBOL_GPL net/ipv4/ip_gre 0x00000000 gretap_fb_dev_create +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x00000000 __ip_tunnel_change_mtu +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x00000000 ip_md_tunnel_xmit +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x00000000 ip_tunnel_change_mtu +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x00000000 ip_tunnel_changelink +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x00000000 ip_tunnel_delete_nets +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x00000000 ip_tunnel_dellink +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x00000000 ip_tunnel_encap_setup +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x00000000 ip_tunnel_init +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x00000000 ip_tunnel_init_net +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x00000000 ip_tunnel_ioctl +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x00000000 ip_tunnel_lookup +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x00000000 ip_tunnel_newlink +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x00000000 ip_tunnel_rcv +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x00000000 ip_tunnel_setup +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x00000000 ip_tunnel_uninit +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x00000000 ip_tunnel_xmit +EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0x00000000 arpt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0x00000000 ipt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_defrag_ipv4 0x00000000 nf_defrag_ipv4_enable +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_dup_ipv4 0x00000000 nf_dup_ipv4 +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_reject_ipv4 0x00000000 nf_reject_ip_tcphdr_get +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_reject_ipv4 0x00000000 nf_reject_ip_tcphdr_put +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_reject_ipv4 0x00000000 nf_reject_iphdr_put +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_reject_ipv4 0x00000000 nf_send_reset +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_reject_ipv4 0x00000000 nf_send_unreach +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_socket_ipv4 0x00000000 nf_sk_lookup_slow_v4 +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_tproxy_ipv4 0x00000000 nf_tproxy_get_sock_v4 +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_tproxy_ipv4 0x00000000 nf_tproxy_handle_time_wait4 +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_tproxy_ipv4 0x00000000 nf_tproxy_laddr4 +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nft_fib_ipv4 0x00000000 nft_fib4_eval +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nft_fib_ipv4 0x00000000 nft_fib4_eval_type +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x00000000 tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x00000000 tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x00000000 tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x00000000 tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x00000000 tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0x00000000 setup_udp_tunnel_sock +EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0x00000000 udp_tun_rx_dst +EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0x00000000 udp_tunnel_drop_rx_port +EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0x00000000 udp_tunnel_notify_add_rx_port +EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0x00000000 udp_tunnel_notify_del_rx_port +EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0x00000000 udp_tunnel_push_rx_port +EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0x00000000 udp_tunnel_sock_release +EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0x00000000 udp_tunnel_xmit_skb +EXPORT_SYMBOL_GPL net/ipv6/esp6 0x00000000 esp6_input_done2 +EXPORT_SYMBOL_GPL net/ipv6/esp6 0x00000000 esp6_output_head +EXPORT_SYMBOL_GPL net/ipv6/esp6 0x00000000 esp6_output_tail +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x00000000 ip6_tnl_encap_setup +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x00000000 ip6_tnl_rcv_ctl +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x00000000 ip6_tnl_xmit_ctl +EXPORT_SYMBOL_GPL net/ipv6/ip6_udp_tunnel 0x00000000 udp_sock_create6 +EXPORT_SYMBOL_GPL net/ipv6/ip6_udp_tunnel 0x00000000 udp_tunnel6_xmit_skb +EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0x00000000 ip6t_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_defrag_ipv6 0x00000000 nf_ct_frag6_gather +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_defrag_ipv6 0x00000000 nf_defrag_ipv6_enable +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_dup_ipv6 0x00000000 nf_dup_ipv6 +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_reject_ipv6 0x00000000 nf_reject_ip6_tcphdr_get +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_reject_ipv6 0x00000000 nf_reject_ip6_tcphdr_put +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_reject_ipv6 0x00000000 nf_reject_ip6hdr_put +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_reject_ipv6 0x00000000 nf_send_reset6 +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_reject_ipv6 0x00000000 nf_send_unreach6 +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_socket_ipv6 0x00000000 nf_sk_lookup_slow_v6 +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_tproxy_ipv6 0x00000000 nf_tproxy_get_sock_v6 +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_tproxy_ipv6 0x00000000 nf_tproxy_handle_time_wait6 +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_tproxy_ipv6 0x00000000 nf_tproxy_laddr6 +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nft_fib_ipv6 0x00000000 nft_fib6_eval +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nft_fib_ipv6 0x00000000 nft_fib6_eval_type +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x00000000 __l2tp_session_unhash +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x00000000 l2tp_session_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x00000000 l2tp_session_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x00000000 l2tp_session_free +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x00000000 l2tp_session_get +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x00000000 l2tp_session_get_by_ifname +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x00000000 l2tp_session_get_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x00000000 l2tp_session_register +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x00000000 l2tp_session_set_header_len +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x00000000 l2tp_tunnel_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x00000000 l2tp_tunnel_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x00000000 l2tp_tunnel_get +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x00000000 l2tp_tunnel_get_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x00000000 l2tp_tunnel_get_session +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x00000000 l2tp_tunnel_register +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x00000000 l2tp_udp_encap_recv +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x00000000 l2tp_xmit_skb +EXPORT_SYMBOL_GPL net/l2tp/l2tp_netlink 0x00000000 l2tp_nl_register_ops +EXPORT_SYMBOL_GPL net/l2tp/l2tp_netlink 0x00000000 l2tp_nl_unregister_ops +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x00000000 ieee80211_ave_rssi +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x00000000 ieee80211_calc_rx_airtime +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x00000000 ieee80211_calc_tx_airtime +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x00000000 ieee80211_find_sta_by_ifaddr +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x00000000 ieee80211_gtk_rekey_add +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x00000000 ieee80211_gtk_rekey_notify +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x00000000 ieee80211_iter_chan_contexts_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x00000000 ieee80211_iterate_active_interfaces_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x00000000 ieee80211_iterate_active_interfaces_rtnl +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x00000000 ieee80211_iterate_interfaces +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x00000000 ieee80211_iterate_stations_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x00000000 ieee80211_ready_on_channel +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x00000000 ieee80211_remain_on_channel_expired +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x00000000 ieee80211_remove_key +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x00000000 ieee80211_request_smps +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x00000000 ieee80211_resume_disconnect +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x00000000 ieee80211_set_key_rx_seq +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x00000000 ieee80211_tkip_add_iv +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x00000000 ieee80211_update_mu_groups +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x00000000 ieee80211_vif_to_wdev +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x00000000 wdev_to_ieee80211_vif +EXPORT_SYMBOL_GPL net/mpls/mpls_router 0x00000000 mpls_dev_mtu +EXPORT_SYMBOL_GPL net/mpls/mpls_router 0x00000000 mpls_output_possible +EXPORT_SYMBOL_GPL net/mpls/mpls_router 0x00000000 mpls_pkt_too_big +EXPORT_SYMBOL_GPL net/mpls/mpls_router 0x00000000 mpls_stats_inc_outucastpkts +EXPORT_SYMBOL_GPL net/mpls/mpls_router 0x00000000 nla_get_labels +EXPORT_SYMBOL_GPL net/mpls/mpls_router 0x00000000 nla_put_labels +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x00000000 ip_set_add +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x00000000 ip_set_alloc +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x00000000 ip_set_del +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x00000000 ip_set_elem_len +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x00000000 ip_set_extensions +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x00000000 ip_set_free +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x00000000 ip_set_get_byname +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x00000000 ip_set_get_extensions +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x00000000 ip_set_get_ip4_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x00000000 ip_set_get_ip6_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x00000000 ip_set_get_ipaddr4 +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x00000000 ip_set_get_ipaddr6 +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x00000000 ip_set_hostmask_map +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x00000000 ip_set_init_comment +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x00000000 ip_set_match_extensions +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x00000000 ip_set_name_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x00000000 ip_set_netmask_map +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x00000000 ip_set_nfnl_get_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x00000000 ip_set_nfnl_put +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x00000000 ip_set_put_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x00000000 ip_set_put_extensions +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x00000000 ip_set_put_flags +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x00000000 ip_set_range_to_cidr +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x00000000 ip_set_test +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x00000000 ip_set_type_register +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x00000000 ip_set_type_unregister +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x00000000 ip_vs_conn_in_get_proto +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x00000000 ip_vs_conn_out_get_proto +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x00000000 register_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x00000000 unregister_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/nf_conncount 0x00000000 nf_conncount_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conncount 0x00000000 nf_conncount_cache_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conncount 0x00000000 nf_conncount_count +EXPORT_SYMBOL_GPL net/netfilter/nf_conncount 0x00000000 nf_conncount_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conncount 0x00000000 nf_conncount_gc_list +EXPORT_SYMBOL_GPL net/netfilter/nf_conncount 0x00000000 nf_conncount_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conncount 0x00000000 nf_conncount_list_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 __nf_conntrack_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 __nf_conntrack_helper_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 __nf_ct_expect_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 __nf_ct_refresh_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 __nf_ct_try_assign_helper +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_connlabels_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_connlabels_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_connlabels_replace +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_conntrack_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_conntrack_alter_reply +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_conntrack_eventmask_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_conntrack_expect_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_conntrack_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_conntrack_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_conntrack_hash +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_conntrack_hash_check_insert +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_conntrack_helper_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_conntrack_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_conntrack_helper_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_conntrack_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_conntrack_helpers_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_conntrack_helpers_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_conntrack_htable_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_conntrack_in +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_conntrack_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_conntrack_locks +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_conntrack_max +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_conntrack_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_conntrack_tuple_taken +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_conntrack_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_alloc_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_bridge_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_bridge_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_delete +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_deliver_cached_events +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_destroy_timeout +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_expect_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_expect_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_expect_hash +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_expect_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_expect_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_expect_iterate_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_expect_iterate_net +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_expect_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_expect_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_expect_related_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_expect_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_extend_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_extend_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_get_id +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_get_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_gre_keymap_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_gre_keymap_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_helper_expectfn_find_by_name +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_helper_expectfn_find_by_symbol +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_helper_expectfn_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_helper_expectfn_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_helper_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_helper_hash +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_helper_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_helper_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_helper_log +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_invert_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_iterate_cleanup_net +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_iterate_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_kill_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_l4proto_log_invalid +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_netns_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_netns_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_port_nla_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_port_nlattr_to_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_port_nlattr_tuple_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_port_tuple_to_nlattr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_remove_expect +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_remove_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_seq_adjust +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_seq_offset +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_seqadj_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_seqadj_set +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_set_timeout +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_tcp_seqadj_set +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_timeout_find_get_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_timeout_put_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_tmpl_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_tmpl_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_unconfirmed_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_unexpect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_unlink_expect_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_ct_untimeout +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_l4proto_log_invalid +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_nat_helper_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_nat_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_nat_helper_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00000000 nf_nat_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0x00000000 nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_broadcast 0x00000000 nf_conntrack_broadcast_help +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0x00000000 nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x00000000 get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x00000000 nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x00000000 nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x00000000 nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x00000000 nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x00000000 nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x00000000 set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x00000000 set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x00000000 set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x00000000 set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0x00000000 nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x00000000 nf_nat_pptp_hook_exp_gre +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x00000000 nf_nat_pptp_hook_expectfn +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x00000000 nf_nat_pptp_hook_inbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x00000000 nf_nat_pptp_hook_outbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x00000000 ct_sip_get_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x00000000 ct_sip_get_sdp_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x00000000 ct_sip_parse_address_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x00000000 ct_sip_parse_header_uri +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x00000000 ct_sip_parse_numerical_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x00000000 ct_sip_parse_request +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x00000000 nf_nat_sip_hooks +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_snmp 0x00000000 nf_nat_snmp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0x00000000 nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_dup_netdev 0x00000000 nf_dup_netdev_egress +EXPORT_SYMBOL_GPL net/netfilter/nf_dup_netdev 0x00000000 nf_fwd_netdev_egress +EXPORT_SYMBOL_GPL net/netfilter/nf_dup_netdev 0x00000000 nft_fwd_dup_netdev_offload +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x00000000 flow_offload_add +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x00000000 flow_offload_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x00000000 flow_offload_free +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x00000000 flow_offload_lookup +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x00000000 flow_offload_route_init +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x00000000 flow_offload_teardown +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x00000000 nf_flow_dnat_port +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x00000000 nf_flow_offload_ip_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x00000000 nf_flow_offload_ipv6_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x00000000 nf_flow_rule_route_ipv4 +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x00000000 nf_flow_rule_route_ipv6 +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x00000000 nf_flow_snat_port +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x00000000 nf_flow_table_cleanup +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x00000000 nf_flow_table_free +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x00000000 nf_flow_table_init +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x00000000 nf_flow_table_offload_setup +EXPORT_SYMBOL_GPL net/netfilter/nf_log_common 0x00000000 nf_log_dump_packet_common +EXPORT_SYMBOL_GPL net/netfilter/nf_log_common 0x00000000 nf_log_dump_sk_uid_gid +EXPORT_SYMBOL_GPL net/netfilter/nf_log_common 0x00000000 nf_log_dump_tcp_header +EXPORT_SYMBOL_GPL net/netfilter/nf_log_common 0x00000000 nf_log_dump_udp_header +EXPORT_SYMBOL_GPL net/netfilter/nf_log_common 0x00000000 nf_log_l2packet +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x00000000 nf_ct_nat_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x00000000 nf_nat_alloc_null_binding +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x00000000 nf_nat_icmp_reply_translation +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x00000000 nf_nat_icmpv6_reply_translation +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x00000000 nf_nat_inet_fn +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x00000000 nf_nat_inet_register_fn +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x00000000 nf_nat_inet_unregister_fn +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x00000000 nf_nat_ipv4_register_fn +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x00000000 nf_nat_ipv4_unregister_fn +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x00000000 nf_nat_ipv6_register_fn +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x00000000 nf_nat_ipv6_unregister_fn +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x00000000 nf_nat_masquerade_inet_register_notifiers +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x00000000 nf_nat_masquerade_inet_unregister_notifiers +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x00000000 nf_nat_masquerade_ipv4 +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x00000000 nf_nat_masquerade_ipv6 +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x00000000 nf_nat_packet +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x00000000 nf_nat_redirect_ipv4 +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x00000000 nf_nat_redirect_ipv6 +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x00000000 ipv4_synproxy_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x00000000 ipv6_synproxy_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x00000000 nf_synproxy_ipv4_fini +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x00000000 nf_synproxy_ipv4_init +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x00000000 nf_synproxy_ipv6_fini +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x00000000 nf_synproxy_ipv6_init +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x00000000 synproxy_init_timestamp_cookie +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x00000000 synproxy_net_id +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x00000000 synproxy_parse_options +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x00000000 synproxy_recv_client_ack +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x00000000 synproxy_recv_client_ack_ipv6 +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x00000000 synproxy_send_client_synack +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x00000000 synproxy_send_client_synack_ipv6 +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 __nft_release_basechain +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nf_tables_bind_set +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nf_tables_deactivate_flowtable +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nf_tables_deactivate_set +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nf_tables_destroy_set +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_chain_validate +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_chain_validate_dependency +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_chain_validate_hooks +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_data_dump +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_data_init +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_data_release +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_do_chain +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_dump_register +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_flowtable_lookup +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_meta_get_dump +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_meta_get_eval +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_meta_get_init +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_meta_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_meta_set_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_meta_set_dump +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_meta_set_eval +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_meta_set_init +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_meta_set_validate +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_obj_lookup +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_obj_notify +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_parse_register +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_parse_u32_check +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_register_chain_type +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_register_expr +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_register_flowtable_type +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_register_obj +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_register_set +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_set_elem_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_set_ext_types +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_set_gc_batch_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_set_gc_batch_release +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_set_lookup_global +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_trace_enabled +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_unregister_chain_type +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_unregister_expr +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_unregister_flowtable_type +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_unregister_obj +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_unregister_set +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_validate_register_load +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00000000 nft_validate_register_store +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x00000000 nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x00000000 nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x00000000 nfnetlink_set_err +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x00000000 nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x00000000 nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x00000000 nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x00000000 nfnl_lock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x00000000 nfnl_unlock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0x00000000 nfnl_acct_find_get +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0x00000000 nfnl_acct_overquota +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0x00000000 nfnl_acct_put +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0x00000000 nfnl_acct_update +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_osf 0x00000000 nf_osf_find +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_osf 0x00000000 nf_osf_fingers +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_osf 0x00000000 nf_osf_match +EXPORT_SYMBOL_GPL net/netfilter/nft_fib 0x00000000 nft_fib_dump +EXPORT_SYMBOL_GPL net/netfilter/nft_fib 0x00000000 nft_fib_init +EXPORT_SYMBOL_GPL net/netfilter/nft_fib 0x00000000 nft_fib_store_result +EXPORT_SYMBOL_GPL net/netfilter/nft_fib 0x00000000 nft_fib_validate +EXPORT_SYMBOL_GPL net/netfilter/nft_reject 0x00000000 nft_reject_dump +EXPORT_SYMBOL_GPL net/netfilter/nft_reject 0x00000000 nft_reject_icmp_code +EXPORT_SYMBOL_GPL net/netfilter/nft_reject 0x00000000 nft_reject_icmpv6_code +EXPORT_SYMBOL_GPL net/netfilter/nft_reject 0x00000000 nft_reject_init +EXPORT_SYMBOL_GPL net/netfilter/nft_reject 0x00000000 nft_reject_policy +EXPORT_SYMBOL_GPL net/netfilter/nft_reject 0x00000000 nft_reject_validate +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_compat_add_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_compat_calc_jump +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_compat_flush_offsets +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_compat_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_compat_match_from_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_compat_match_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_compat_match_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_compat_target_from_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_compat_target_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_compat_target_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_compat_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_copy_counters_from_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_data_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_hook_ops_alloc +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_match_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_percpu_counter_alloc +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_percpu_counter_free +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_recseq +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_request_find_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_request_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_table_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_target_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_tee_enabled +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x00000000 xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x00000000 xt_rateest_lookup +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x00000000 xt_rateest_put +EXPORT_SYMBOL_GPL net/nfc/nci/nci_spi 0x00000000 nci_spi_allocate_spi +EXPORT_SYMBOL_GPL net/nfc/nci/nci_spi 0x00000000 nci_spi_read +EXPORT_SYMBOL_GPL net/nfc/nci/nci_spi 0x00000000 nci_spi_send +EXPORT_SYMBOL_GPL net/nfc/nci/nci_uart 0x00000000 nci_uart_register +EXPORT_SYMBOL_GPL net/nfc/nci/nci_uart 0x00000000 nci_uart_set_config +EXPORT_SYMBOL_GPL net/nfc/nci/nci_uart 0x00000000 nci_uart_unregister +EXPORT_SYMBOL_GPL net/nsh/nsh 0x00000000 nsh_pop +EXPORT_SYMBOL_GPL net/nsh/nsh 0x00000000 nsh_push +EXPORT_SYMBOL_GPL net/openvswitch/openvswitch 0x00000000 __ovs_vport_ops_register +EXPORT_SYMBOL_GPL net/openvswitch/openvswitch 0x00000000 ovs_netdev_link +EXPORT_SYMBOL_GPL net/openvswitch/openvswitch 0x00000000 ovs_netdev_tunnel_destroy +EXPORT_SYMBOL_GPL net/openvswitch/openvswitch 0x00000000 ovs_vport_alloc +EXPORT_SYMBOL_GPL net/openvswitch/openvswitch 0x00000000 ovs_vport_free +EXPORT_SYMBOL_GPL net/openvswitch/openvswitch 0x00000000 ovs_vport_ops_unregister +EXPORT_SYMBOL_GPL net/psample/psample 0x00000000 psample_group_get +EXPORT_SYMBOL_GPL net/psample/psample 0x00000000 psample_group_put +EXPORT_SYMBOL_GPL net/psample/psample 0x00000000 psample_group_take +EXPORT_SYMBOL_GPL net/psample/psample 0x00000000 psample_sample_packet +EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_addr_cmp +EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_atomic_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_cong_map_updated +EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_conn_connect_if_down +EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_conn_create +EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_conn_create_outgoing +EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_conn_destroy +EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_conn_drop +EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_conn_path_connect_if_down +EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_conn_path_drop +EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_connect_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_connect_path_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_for_each_conn_info +EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_inc_init +EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_inc_path_init +EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_inc_put +EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_info_deregister_func +EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_info_register_func +EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_message_add_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_message_add_rdma_dest_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_message_addref +EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_message_populate_header +EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_message_put +EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_message_unmapped +EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_page_remainder_alloc +EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_rdma_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_recv_incoming +EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_send_drop_acked +EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_send_path_drop_acked +EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_send_path_reset +EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_send_ping +EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_send_xmit +EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_stats +EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_stats_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_trans_register +EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_trans_unregister +EXPORT_SYMBOL_GPL net/rds/rds 0x00000000 rds_wq +EXPORT_SYMBOL_GPL net/sched/sch_pie 0x00000000 pie_calculate_probability +EXPORT_SYMBOL_GPL net/sched/sch_pie 0x00000000 pie_drop_early +EXPORT_SYMBOL_GPL net/sched/sch_pie 0x00000000 pie_process_dequeue +EXPORT_SYMBOL_GPL net/sched/sch_taprio 0x00000000 taprio_offload_free +EXPORT_SYMBOL_GPL net/sched/sch_taprio 0x00000000 taprio_offload_get +EXPORT_SYMBOL_GPL net/sctp/sctp 0x00000000 sctp_for_each_endpoint +EXPORT_SYMBOL_GPL net/sctp/sctp 0x00000000 sctp_for_each_transport +EXPORT_SYMBOL_GPL net/sctp/sctp 0x00000000 sctp_get_sctp_info +EXPORT_SYMBOL_GPL net/sctp/sctp 0x00000000 sctp_transport_lookup_process +EXPORT_SYMBOL_GPL net/smc/smc 0x00000000 smc_hash_sk +EXPORT_SYMBOL_GPL net/smc/smc 0x00000000 smc_proto +EXPORT_SYMBOL_GPL net/smc/smc 0x00000000 smc_proto6 +EXPORT_SYMBOL_GPL net/smc/smc 0x00000000 smc_unhash_sk +EXPORT_SYMBOL_GPL net/smc/smc 0x00000000 smcd_alloc_dev +EXPORT_SYMBOL_GPL net/smc/smc 0x00000000 smcd_free_dev +EXPORT_SYMBOL_GPL net/smc/smc 0x00000000 smcd_handle_event +EXPORT_SYMBOL_GPL net/smc/smc 0x00000000 smcd_handle_irq +EXPORT_SYMBOL_GPL net/smc/smc 0x00000000 smcd_register_dev +EXPORT_SYMBOL_GPL net/smc/smc 0x00000000 smcd_unregister_dev +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00000000 g_make_token_header +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00000000 g_token_size +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00000000 g_verify_token_header +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00000000 gss_mech_register +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00000000 gss_mech_unregister +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00000000 svcauth_gss_flavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00000000 svcauth_gss_register_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 __rpc_wait_for_completion_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 _copy_from_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 auth_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 auth_domain_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 auth_domain_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 bc_svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 cache_check +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 cache_create_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 cache_destroy_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 cache_flush +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 cache_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 cache_register_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 cache_seq_next_rcu +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 cache_seq_start_rcu +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 cache_seq_stop_rcu +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 cache_unregister_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 gssd_running +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 nfs_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 nfsd_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 nlm_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 put_rpccred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 qword_add +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 qword_addhex +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 qword_get +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 read_bytes_from_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_add_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_alloc_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_bind_new_program +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_calc_rto +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_call_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_call_null +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_call_start +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_call_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_clnt_add_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_clnt_iterate_for_each_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_clnt_setup_test_and_add_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_clnt_show_stats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_clnt_swap_activate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_clnt_swap_deactivate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_clnt_test_and_add_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_clnt_xprt_switch_add_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_clnt_xprt_switch_has_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_clnt_xprt_switch_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_clone_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_clone_client_set_auth +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_count_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_count_iostats_metrics +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_d_lookup_sb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_delay +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_destroy_pipe_data +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_destroy_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_exit +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_find_or_alloc_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_free_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_get_sb_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_init_pipe_dir_head +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_init_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_init_priority_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_init_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_init_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_killall_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_localaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_machine_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_max_bc_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_mkpipe_data +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_mkpipe_dentry +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_net_ns +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_ntop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_num_bc_slots +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_pipe_generic_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_pipefs_notifier_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_pipefs_notifier_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_prepare_reply_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_pton +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_put_sb_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_put_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_put_task_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_queue_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_release_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_remove_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_restart_call +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_restart_call_prepare +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_run_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_set_connect_timeout +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_setbufsize +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_shutdown_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_sleep_on +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_sleep_on_priority +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_sleep_on_priority_timeout +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_sleep_on_timeout +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_switch_client_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_task_release_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_task_timeout +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_uaddr2sockaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_unlink +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_wake_up_first +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_wake_up_next +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_wake_up_queued_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpc_wake_up_status +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpcauth_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpcauth_destroy_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpcauth_get_gssinfo +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpcauth_get_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpcauth_init_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpcauth_init_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpcauth_lookup_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpcauth_lookupcred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpcauth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpcauth_stringify_acceptor +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpcauth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpcauth_unwrap_resp_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpcauth_wrap_req_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 sunrpc_cache_lookup_rcu +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 sunrpc_cache_pipe_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 sunrpc_cache_register_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 sunrpc_cache_unhash +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 sunrpc_cache_unregister_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 sunrpc_cache_update +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 sunrpc_destroy_cache_detail +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 sunrpc_init_cache_detail +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 sunrpc_net_id +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_age_temp_xprts_now +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_alien_sock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_auth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_auth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_authenticate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_bind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_close_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_create_pooled +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_create_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_drop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_exit_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_fill_symlink_pathname +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_fill_write_vector +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_find_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_generic_init_request +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_generic_rpcbind_set +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_pool_map +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_pool_map_get +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_pool_map_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_prepare_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_recv +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_reg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_reserve +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_return_autherr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_rpcb_cleanup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_rpcb_setup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_rpcbind_set_version +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_rqst_alloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_rqst_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_seq_show +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_set_num_threads +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_set_num_threads_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_shutdown_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_sock_update_bufs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_unreg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_xprt_copy_addrs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_xprt_do_enqueue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_xprt_enqueue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_xprt_init +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_xprt_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svc_xprt_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svcauth_unix_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 svcauth_unix_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 unix_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 write_bytes_to_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_buf_from_iov +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_buf_read_mic +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_buf_subsegment +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_buf_trim +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_commit_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_decode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_decode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_decode_string_inplace +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_decode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_encode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_encode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_encode_opaque +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_encode_opaque_fixed +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_encode_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_encode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_enter_page +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_init_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_init_decode_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_init_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_inline_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_inline_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_process_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_read_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_reserve_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_set_scratch_buffer +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_shift_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_stream_decode_opaque +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_stream_decode_opaque_dup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_stream_decode_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_stream_decode_string_dup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_stream_pos +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_terminate_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xdr_write_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_alloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_alloc_slot +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_complete_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_destroy_backchannel +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_disconnect_done +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_force_disconnect +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_free_slot +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_get +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_load_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_pin_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_reconnect_backoff +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_reconnect_delay +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_request_get_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_setup_backchannel +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_unpin_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_wait_for_reply_request_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_wait_for_reply_request_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00000000 xprtiod_workqueue +EXPORT_SYMBOL_GPL net/tls/tls 0x00000000 tls_device_sk_destruct +EXPORT_SYMBOL_GPL net/tls/tls 0x00000000 tls_encrypt_skb +EXPORT_SYMBOL_GPL net/tls/tls 0x00000000 tls_offload_tx_resync_request +EXPORT_SYMBOL_GPL net/tls/tls 0x00000000 tls_validate_xmit_skb +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x00000000 virtio_transport_connect +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x00000000 virtio_transport_deliver_tap_pkt +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x00000000 virtio_transport_destruct +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x00000000 virtio_transport_dgram_allow +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x00000000 virtio_transport_dgram_bind +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x00000000 virtio_transport_dgram_dequeue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x00000000 virtio_transport_dgram_enqueue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x00000000 virtio_transport_do_socket_init +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x00000000 virtio_transport_free_pkt +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x00000000 virtio_transport_get_credit +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x00000000 virtio_transport_inc_tx_pkt +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x00000000 virtio_transport_notify_buffer_size +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x00000000 virtio_transport_notify_poll_in +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x00000000 virtio_transport_notify_poll_out +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x00000000 virtio_transport_notify_recv_init +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x00000000 virtio_transport_notify_recv_post_dequeue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x00000000 virtio_transport_notify_recv_pre_block +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x00000000 virtio_transport_notify_recv_pre_dequeue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x00000000 virtio_transport_notify_send_init +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x00000000 virtio_transport_notify_send_post_enqueue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x00000000 virtio_transport_notify_send_pre_block +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x00000000 virtio_transport_notify_send_pre_enqueue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x00000000 virtio_transport_put_credit +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x00000000 virtio_transport_recv_pkt +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x00000000 virtio_transport_release +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x00000000 virtio_transport_shutdown +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x00000000 virtio_transport_stream_allow +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x00000000 virtio_transport_stream_dequeue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x00000000 virtio_transport_stream_enqueue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x00000000 virtio_transport_stream_has_data +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x00000000 virtio_transport_stream_has_space +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x00000000 virtio_transport_stream_is_active +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x00000000 virtio_transport_stream_rcvhiwat +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x00000000 vsock_add_pending +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x00000000 vsock_add_tap +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x00000000 vsock_addr_bound +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x00000000 vsock_addr_cast +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x00000000 vsock_addr_equals_addr +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x00000000 vsock_addr_init +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x00000000 vsock_addr_unbind +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x00000000 vsock_addr_validate +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x00000000 vsock_assign_transport +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x00000000 vsock_bind_table +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x00000000 vsock_connected_table +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x00000000 vsock_core_get_transport +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x00000000 vsock_core_register +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x00000000 vsock_core_unregister +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x00000000 vsock_create_connected +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x00000000 vsock_deliver_tap +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x00000000 vsock_enqueue_accept +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x00000000 vsock_find_bound_socket +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x00000000 vsock_find_cid +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x00000000 vsock_find_connected_socket +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x00000000 vsock_for_each_connected_socket +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x00000000 vsock_insert_connected +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x00000000 vsock_remove_bound +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x00000000 vsock_remove_connected +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x00000000 vsock_remove_pending +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x00000000 vsock_remove_sock +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x00000000 vsock_remove_tap +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x00000000 vsock_stream_has_data +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x00000000 vsock_stream_has_space +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x00000000 vsock_table_lock +EXPORT_SYMBOL_GPL net/wimax/wimax 0x00000000 wimax_dev_add +EXPORT_SYMBOL_GPL net/wimax/wimax 0x00000000 wimax_dev_init +EXPORT_SYMBOL_GPL net/wimax/wimax 0x00000000 wimax_dev_rm +EXPORT_SYMBOL_GPL net/wimax/wimax 0x00000000 wimax_msg +EXPORT_SYMBOL_GPL net/wimax/wimax 0x00000000 wimax_msg_alloc +EXPORT_SYMBOL_GPL net/wimax/wimax 0x00000000 wimax_msg_data +EXPORT_SYMBOL_GPL net/wimax/wimax 0x00000000 wimax_msg_data_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0x00000000 wimax_msg_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0x00000000 wimax_msg_send +EXPORT_SYMBOL_GPL net/wimax/wimax 0x00000000 wimax_report_rfkill_hw +EXPORT_SYMBOL_GPL net/wimax/wimax 0x00000000 wimax_report_rfkill_sw +EXPORT_SYMBOL_GPL net/wimax/wimax 0x00000000 wimax_state_change +EXPORT_SYMBOL_GPL net/wimax/wimax 0x00000000 wimax_state_get +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x00000000 cfg80211_pmsr_complete +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x00000000 cfg80211_pmsr_report +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x00000000 cfg80211_shutdown_all_interfaces +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x00000000 cfg80211_vendor_cmd_get_sender +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x00000000 cfg80211_vendor_cmd_reply +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x00000000 cfg80211_wext_giwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x00000000 cfg80211_wext_giwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x00000000 cfg80211_wext_giwname +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x00000000 cfg80211_wext_giwrange +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x00000000 cfg80211_wext_giwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x00000000 cfg80211_wext_giwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x00000000 cfg80211_wext_giwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x00000000 cfg80211_wext_siwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x00000000 cfg80211_wext_siwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x00000000 cfg80211_wext_siwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x00000000 cfg80211_wext_siwscan +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x00000000 xfrm_aalg_get_byid +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x00000000 xfrm_aalg_get_byidx +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x00000000 xfrm_aalg_get_byname +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x00000000 xfrm_aead_get_byname +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x00000000 xfrm_calg_get_byid +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x00000000 xfrm_calg_get_byname +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x00000000 xfrm_count_pfkey_auth_supported +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x00000000 xfrm_count_pfkey_enc_supported +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x00000000 xfrm_ealg_get_byid +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x00000000 xfrm_ealg_get_byidx +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x00000000 xfrm_ealg_get_byname +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x00000000 xfrm_probe_algs +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x00000000 ipcomp_destroy +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x00000000 ipcomp_init_state +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x00000000 ipcomp_input +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x00000000 ipcomp_output +EXPORT_SYMBOL_GPL sound/ac97_bus 0x00000000 snd_ac97_reset +EXPORT_SYMBOL_GPL sound/core/seq/snd-seq 0x00000000 snd_seq_client_ioctl_lock +EXPORT_SYMBOL_GPL sound/core/seq/snd-seq 0x00000000 snd_seq_client_ioctl_unlock +EXPORT_SYMBOL_GPL sound/core/snd 0x00000000 snd_card_add_dev_attr +EXPORT_SYMBOL_GPL sound/core/snd 0x00000000 snd_card_disconnect_sync +EXPORT_SYMBOL_GPL sound/core/snd 0x00000000 snd_card_ref +EXPORT_SYMBOL_GPL sound/core/snd 0x00000000 snd_card_rw_proc_new +EXPORT_SYMBOL_GPL sound/core/snd 0x00000000 snd_ctl_activate_id +EXPORT_SYMBOL_GPL sound/core/snd 0x00000000 snd_ctl_add_vmaster_hook +EXPORT_SYMBOL_GPL sound/core/snd 0x00000000 snd_ctl_apply_vmaster_slaves +EXPORT_SYMBOL_GPL sound/core/snd 0x00000000 snd_ctl_get_preferred_subdevice +EXPORT_SYMBOL_GPL sound/core/snd 0x00000000 snd_ctl_sync_vmaster +EXPORT_SYMBOL_GPL sound/core/snd 0x00000000 snd_device_disconnect +EXPORT_SYMBOL_GPL sound/core/snd 0x00000000 snd_device_initialize +EXPORT_SYMBOL_GPL sound/core/snd-compress 0x00000000 snd_compr_stop_error +EXPORT_SYMBOL_GPL sound/core/snd-compress 0x00000000 snd_compress_deregister +EXPORT_SYMBOL_GPL sound/core/snd-compress 0x00000000 snd_compress_new +EXPORT_SYMBOL_GPL sound/core/snd-compress 0x00000000 snd_compress_register +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x00000000 _snd_pcm_stream_lock_irqsave +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x00000000 snd_pcm_add_chmap_ctls +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x00000000 snd_pcm_alt_chmaps +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x00000000 snd_pcm_format_name +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x00000000 snd_pcm_hw_constraint_eld +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x00000000 snd_pcm_lib_default_mmap +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x00000000 snd_pcm_rate_mask_intersect +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x00000000 snd_pcm_rate_range_to_bits +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x00000000 snd_pcm_std_chmaps +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x00000000 snd_pcm_stop_xrun +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x00000000 snd_pcm_stream_lock +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x00000000 snd_pcm_stream_lock_irq +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x00000000 snd_pcm_stream_unlock +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x00000000 snd_pcm_stream_unlock_irq +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x00000000 snd_pcm_stream_unlock_irqrestore +EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0x00000000 snd_dmaengine_pcm_close +EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0x00000000 snd_dmaengine_pcm_close_release_chan +EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0x00000000 snd_dmaengine_pcm_get_chan +EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0x00000000 snd_dmaengine_pcm_open +EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0x00000000 snd_dmaengine_pcm_open_request_chan +EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0x00000000 snd_dmaengine_pcm_pointer +EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0x00000000 snd_dmaengine_pcm_pointer_no_residue +EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0x00000000 snd_dmaengine_pcm_refine_runtime_hwparams +EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0x00000000 snd_dmaengine_pcm_request_channel +EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0x00000000 snd_dmaengine_pcm_set_config_from_dai_data +EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0x00000000 snd_dmaengine_pcm_trigger +EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0x00000000 snd_hwparams_to_dma_slave_config +EXPORT_SYMBOL_GPL sound/core/snd-seq-device 0x00000000 __snd_seq_driver_register +EXPORT_SYMBOL_GPL sound/core/snd-seq-device 0x00000000 snd_seq_driver_unregister +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x00000000 amdtp_am824_add_pcm_hw_constraints +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x00000000 amdtp_am824_init +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x00000000 amdtp_am824_midi_trigger +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x00000000 amdtp_am824_set_midi_position +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x00000000 amdtp_am824_set_parameters +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x00000000 amdtp_am824_set_pcm_position +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x00000000 amdtp_domain_add_stream +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x00000000 amdtp_domain_destroy +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x00000000 amdtp_domain_init +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x00000000 amdtp_domain_start +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x00000000 amdtp_domain_stop +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x00000000 amdtp_domain_stream_pcm_ack +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x00000000 amdtp_domain_stream_pcm_pointer +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x00000000 snd_hda_ext_driver_register +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x00000000 snd_hda_ext_driver_unregister +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x00000000 snd_hdac_ext_bus_device_exit +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x00000000 snd_hdac_ext_bus_device_init +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x00000000 snd_hdac_ext_bus_device_remove +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x00000000 snd_hdac_ext_bus_exit +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x00000000 snd_hdac_ext_bus_get_link +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x00000000 snd_hdac_ext_bus_get_ml_capabilities +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x00000000 snd_hdac_ext_bus_init +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x00000000 snd_hdac_ext_bus_link_get +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x00000000 snd_hdac_ext_bus_link_power_down +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x00000000 snd_hdac_ext_bus_link_power_down_all +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x00000000 snd_hdac_ext_bus_link_power_up +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x00000000 snd_hdac_ext_bus_link_power_up_all +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x00000000 snd_hdac_ext_bus_link_put +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x00000000 snd_hdac_ext_bus_ppcap_enable +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x00000000 snd_hdac_ext_bus_ppcap_int_enable +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x00000000 snd_hdac_ext_link_clear_stream_id +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x00000000 snd_hdac_ext_link_set_stream_id +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x00000000 snd_hdac_ext_link_stream_clear +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x00000000 snd_hdac_ext_link_stream_reset +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x00000000 snd_hdac_ext_link_stream_setup +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x00000000 snd_hdac_ext_link_stream_start +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x00000000 snd_hdac_ext_stop_streams +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x00000000 snd_hdac_ext_stream_assign +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x00000000 snd_hdac_ext_stream_decouple +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x00000000 snd_hdac_ext_stream_drsm_enable +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x00000000 snd_hdac_ext_stream_get_spbmaxfifo +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x00000000 snd_hdac_ext_stream_init +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x00000000 snd_hdac_ext_stream_init_all +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x00000000 snd_hdac_ext_stream_release +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x00000000 snd_hdac_ext_stream_set_dpibr +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x00000000 snd_hdac_ext_stream_set_lpib +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x00000000 snd_hdac_ext_stream_set_spib +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x00000000 snd_hdac_ext_stream_spbcap_enable +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x00000000 snd_hdac_link_free_all +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x00000000 snd_hdac_stream_free_all +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 _snd_hdac_read_parm +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 hdac_get_device_id +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_array_free +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_array_new +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hda_bus_type +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_acomp_exit +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_acomp_get_eld +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_acomp_init +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_acomp_register_notifier +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_add_chmap_ctls +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_bus_alloc_stream_pages +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_bus_enter_link_reset +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_bus_exec_verb +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_bus_exec_verb_unlocked +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_bus_exit +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_bus_exit_link_reset +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_bus_free_stream_pages +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_bus_get_response +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_bus_handle_stream_irq +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_bus_init +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_bus_init_chip +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_bus_init_cmd_io +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_bus_parse_capabilities +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_bus_queue_event +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_bus_reset_link +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_bus_send_cmd +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_bus_stop_chip +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_bus_stop_cmd_io +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_bus_update_rirb +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_calc_stream_format +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_channel_allocation +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_check_power_state +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_chmap_to_spk_mask +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_codec_modalias +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_codec_read +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_codec_write +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_device_exit +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_device_init +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_device_register +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_device_set_chip_name +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_device_unregister +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_display_power +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_dsp_cleanup +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_dsp_prepare +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_dsp_trigger +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_get_active_channels +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_get_ch_alloc_from_ca +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_get_connections +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_get_stream +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_get_stream_stripe_ctl +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_get_sub_nodes +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_i915_init +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_i915_set_bclk +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_is_supported_format +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_override_parm +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_power_down +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_power_down_pm +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_power_up +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_power_up_pm +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_print_channel_allocation +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_query_supported_pcm +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_read +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_read_parm_uncached +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_refresh_widgets +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_register_chmap_ops +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_regmap_add_vendor_verb +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_regmap_exit +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_regmap_init +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_regmap_read_raw +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_regmap_sync +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_regmap_update_raw +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_regmap_update_raw_once +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_regmap_write_raw +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_set_codec_wakeup +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_setup_channel_mapping +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_spk_to_chmap +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_stream_assign +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_stream_cleanup +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_stream_clear +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_stream_init +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_stream_release +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_stream_reset +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_stream_set_params +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_stream_setup +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_stream_setup_periods +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_stream_start +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_stream_stop +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_stream_sync +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_stream_sync_trigger +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_stream_timecounter_init +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_sync_audio_rate +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x00000000 snd_hdac_sync_power_state +EXPORT_SYMBOL_GPL sound/hda/snd-intel-dspcfg 0x00000000 intel_nhlt_free +EXPORT_SYMBOL_GPL sound/hda/snd-intel-dspcfg 0x00000000 intel_nhlt_get_dmic_geo +EXPORT_SYMBOL_GPL sound/hda/snd-intel-dspcfg 0x00000000 intel_nhlt_init +EXPORT_SYMBOL_GPL sound/hda/snd-intel-dspcfg 0x00000000 snd_intel_dsp_driver_probe +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x00000000 snd_ak4113_build +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x00000000 snd_ak4113_check_rate_and_errors +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x00000000 snd_ak4113_create +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x00000000 snd_ak4113_external_rate +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x00000000 snd_ak4113_reg_write +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x00000000 snd_ak4113_reinit +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 __hda_codec_driver_register +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 __snd_hda_add_vmaster +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 __snd_hda_codec_cleanup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 _snd_hda_set_pin_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 azx_bus_init +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 azx_codec_configure +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 azx_free_streams +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 azx_get_pos_lpib +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 azx_get_pos_posbuf +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 azx_get_position +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 azx_init_chip +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 azx_init_streams +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 azx_interrupt +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 azx_probe_codecs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 azx_stop_all_streams +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 azx_stop_chip +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 hda_codec_driver_unregister +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 hda_get_autocfg_input_label +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 is_jack_detectable +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 query_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_add_imux_item +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_add_new_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_add_nid +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_add_verbs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_add_vmaster_hook +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_apply_fixup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_apply_pincfgs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_apply_verbs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_attach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_check_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_check_amp_list_power +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_codec_amp_init +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_codec_amp_init_stereo +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_codec_amp_stereo +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_codec_amp_update +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_codec_build_controls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_codec_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_codec_configure +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_codec_device_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_codec_eapd_power_filter +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_codec_get_pin_target +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_codec_get_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_codec_load_dsp_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_codec_load_dsp_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_codec_load_dsp_trigger +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_codec_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_codec_parse_pcms +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_codec_pcm_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_codec_pcm_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_codec_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_codec_set_name +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_codec_set_pin_target +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_codec_set_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_codec_set_power_to_all +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_codec_setup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_codec_update_widgets +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_correct_pin_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_create_dig_out_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_create_spdif_in_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_create_spdif_share_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_ctl_add +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_detach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_enable_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_enum_helper_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_find_mixer_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_get_bool_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_get_conn_index +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_get_conn_list +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_get_connections +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_get_default_vref +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_get_dev_select +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_get_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_get_input_pin_attr +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_get_int_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_get_num_devices +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_get_pin_label +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_input_mux_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_input_mux_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_jack_add_kctl_mst +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_jack_add_kctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_jack_detect_enable +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_jack_detect_enable_callback_mst +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_jack_detect_state_mst +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_jack_pin_sense +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_jack_poll_all +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_jack_report_sync +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_jack_set_dirty_all +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_jack_set_gating_jack +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_jack_tbl_get_from_tag +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_jack_tbl_get_mst +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_jack_unsol_event +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_load_patch +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_lock_devices +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_mixer_amp_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_mixer_amp_switch_get_beep +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_mixer_amp_switch_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_mixer_amp_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_mixer_amp_switch_put_beep +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_mixer_amp_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_mixer_amp_volume_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_mixer_amp_volume_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_mixer_amp_volume_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_multi_out_analog_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_multi_out_analog_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_multi_out_analog_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_multi_out_dig_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_multi_out_dig_close +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_multi_out_dig_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_multi_out_dig_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_override_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_override_conn_list +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_parse_pin_defcfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_pick_fixup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_pick_pin_fixup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_sequence_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_set_dev_select +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_set_power_save +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_set_vmaster_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_shutup_pins +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_spdif_ctls_assign +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_spdif_ctls_unassign +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_spdif_out_of_nid +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_sync_vmaster_hook +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_hda_unlock_devices +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_pcm_2_1_chmaps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00000000 snd_print_pcm_bits +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x00000000 hda_extra_out_badness +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x00000000 hda_main_out_badness +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x00000000 snd_hda_activate_path +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x00000000 snd_hda_add_new_path +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x00000000 snd_hda_gen_add_kctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x00000000 snd_hda_gen_add_micmute_led_cdev +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x00000000 snd_hda_gen_add_mute_led_cdev +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x00000000 snd_hda_gen_build_controls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x00000000 snd_hda_gen_build_pcms +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x00000000 snd_hda_gen_check_power_status +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x00000000 snd_hda_gen_fix_pin_power +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x00000000 snd_hda_gen_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x00000000 snd_hda_gen_hp_automute +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x00000000 snd_hda_gen_init +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x00000000 snd_hda_gen_line_automute +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x00000000 snd_hda_gen_mic_autoswitch +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x00000000 snd_hda_gen_parse_auto_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x00000000 snd_hda_gen_path_power_filter +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x00000000 snd_hda_gen_reboot_notify +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x00000000 snd_hda_gen_spec_init +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x00000000 snd_hda_gen_stream_pm +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x00000000 snd_hda_gen_update_outputs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x00000000 snd_hda_get_path_from_idx +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x00000000 snd_hda_get_path_idx +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau-utils 0x00000000 adau_calc_pll_cfg +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau1761 0x00000000 adau1761_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau1761 0x00000000 adau1761_regmap_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x00000000 adau17x1_add_routes +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x00000000 adau17x1_add_widgets +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x00000000 adau17x1_dai_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x00000000 adau17x1_precious_register +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x00000000 adau17x1_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x00000000 adau17x1_readable_register +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x00000000 adau17x1_remove +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x00000000 adau17x1_resume +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x00000000 adau17x1_set_micbias_voltage +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x00000000 adau17x1_volatile_register +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau7118 0x00000000 adau7118_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs4271 0x00000000 cs4271_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs4271 0x00000000 cs4271_regmap_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42l51 0x00000000 cs42l51_of_match +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42l51 0x00000000 cs42l51_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42l51 0x00000000 cs42l51_regmap +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42l51 0x00000000 cs42l51_remove +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42l51 0x00000000 cs42l51_resume +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42l51 0x00000000 cs42l51_suspend +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42xx8 0x00000000 cs42448_data +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42xx8 0x00000000 cs42888_data +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42xx8 0x00000000 cs42xx8_of_match +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42xx8 0x00000000 cs42xx8_pm +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42xx8 0x00000000 cs42xx8_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42xx8 0x00000000 cs42xx8_regmap_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7219 0x00000000 da7219_aad_exit +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7219 0x00000000 da7219_aad_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7219 0x00000000 da7219_aad_jack_det +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-es8328 0x00000000 es8328_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-es8328 0x00000000 es8328_regmap_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-hdac-hda 0x00000000 snd_soc_hdac_hda_get_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-hdac-hdmi 0x00000000 hdac_hdmi_jack_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-hdac-hdmi 0x00000000 hdac_hdmi_jack_port_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-hdmi-codec 0x00000000 hdmi_codec_set_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max98090 0x00000000 max98090_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-nau8824 0x00000000 nau8824_enable_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-nau8825 0x00000000 nau8825_enable_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm1789-codec 0x00000000 pcm1789_common_exit +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm1789-codec 0x00000000 pcm1789_common_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm1789-codec 0x00000000 pcm1789_regmap_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm179x-codec 0x00000000 pcm179x_common_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm179x-codec 0x00000000 pcm179x_regmap_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm186x 0x00000000 pcm186x_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm186x 0x00000000 pcm186x_regmap +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3168a 0x00000000 pcm3168a_pm_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3168a 0x00000000 pcm3168a_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3168a 0x00000000 pcm3168a_regmap +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3168a 0x00000000 pcm3168a_remove +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm512x 0x00000000 pcm512x_pm_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm512x 0x00000000 pcm512x_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm512x 0x00000000 pcm512x_regmap +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm512x 0x00000000 pcm512x_remove +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rl6231 0x00000000 rl6231_calc_dmic_clk +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rl6231 0x00000000 rl6231_get_clk_info +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rl6231 0x00000000 rl6231_get_pre_div +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rl6231 0x00000000 rl6231_pll_calc +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rl6347a 0x00000000 rl6347a_hw_read +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rl6347a 0x00000000 rl6347a_hw_write +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt286 0x00000000 rt286_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt298 0x00000000 rt298_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5514-spi 0x00000000 rt5514_spi_burst_read +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5514-spi 0x00000000 rt5514_spi_burst_write +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5640 0x00000000 rt5640_dmic_enable +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5640 0x00000000 rt5640_sel_asrc_clk_src +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5645 0x00000000 rt5645_sel_asrc_clk_src +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5645 0x00000000 rt5645_set_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5663 0x00000000 rt5663_sel_asrc_clk_src +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5670 0x00000000 rt5670_jack_resume +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5670 0x00000000 rt5670_jack_suspend +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5670 0x00000000 rt5670_sel_asrc_clk_src +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5670 0x00000000 rt5670_set_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5677 0x00000000 rt5677_sel_asrc_clk_src +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5677-spi 0x00000000 rt5677_spi_hotword_detected +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5677-spi 0x00000000 rt5677_spi_read +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5677-spi 0x00000000 rt5677_spi_write +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5677-spi 0x00000000 rt5677_spi_write_firmware +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x00000000 rt5682_sel_asrc_clk_src +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-sigmadsp 0x00000000 devm_sigmadsp_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-sigmadsp 0x00000000 sigmadsp_attach +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-sigmadsp 0x00000000 sigmadsp_reset +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-sigmadsp 0x00000000 sigmadsp_restrict_params +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-sigmadsp 0x00000000 sigmadsp_setup +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-sigmadsp-i2c 0x00000000 devm_sigmadsp_init_i2c +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-sigmadsp-regmap 0x00000000 devm_sigmadsp_init_regmap +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ssm2602 0x00000000 ssm2602_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ssm2602 0x00000000 ssm2602_regmap_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic32x4 0x00000000 aic32x4_register_clocks +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ts3a227e 0x00000000 ts3a227e_enable_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8804 0x00000000 wm8804_pm +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8804 0x00000000 wm8804_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8804 0x00000000 wm8804_regmap_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8804 0x00000000 wm8804_remove +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0x00000000 wm8903_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8962 0x00000000 wm8962_mic_detect +EXPORT_SYMBOL_GPL sound/soc/fsl/snd-soc-fsl-asrc 0x00000000 fsl_asrc_component +EXPORT_SYMBOL_GPL sound/soc/fsl/snd-soc-fsl-asrc 0x00000000 fsl_asrc_get_dma_channel +EXPORT_SYMBOL_GPL sound/soc/fsl/snd-soc-imx-audmux 0x00000000 imx_audmux_v1_configure_port +EXPORT_SYMBOL_GPL sound/soc/fsl/snd-soc-imx-audmux 0x00000000 imx_audmux_v2_configure_port +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x00000000 asoc_simple_be_hw_params_fixup +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x00000000 asoc_simple_canonicalize_cpu +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x00000000 asoc_simple_canonicalize_platform +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x00000000 asoc_simple_clean_reference +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x00000000 asoc_simple_convert_fixup +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x00000000 asoc_simple_dai_init +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x00000000 asoc_simple_hw_params +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x00000000 asoc_simple_init_jack +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x00000000 asoc_simple_init_priv +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x00000000 asoc_simple_parse_card_name +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x00000000 asoc_simple_parse_clk +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x00000000 asoc_simple_parse_convert +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x00000000 asoc_simple_parse_daifmt +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x00000000 asoc_simple_parse_pin_switches +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x00000000 asoc_simple_parse_routing +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x00000000 asoc_simple_parse_widgets +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x00000000 asoc_simple_set_dailink_name +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x00000000 asoc_simple_shutdown +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x00000000 asoc_simple_startup +EXPORT_SYMBOL_GPL sound/soc/intel/atom/snd-soc-sst-atom-hifi2-platform 0x00000000 sst_register_dsp +EXPORT_SYMBOL_GPL sound/soc/intel/atom/snd-soc-sst-atom-hifi2-platform 0x00000000 sst_unregister_dsp +EXPORT_SYMBOL_GPL sound/soc/intel/atom/sst/snd-intel-sst-core 0x00000000 intel_sst_pm +EXPORT_SYMBOL_GPL sound/soc/intel/atom/sst/snd-intel-sst-core 0x00000000 relocate_imr_addr_mrfld +EXPORT_SYMBOL_GPL sound/soc/intel/atom/sst/snd-intel-sst-core 0x00000000 sst_alloc_drv_context +EXPORT_SYMBOL_GPL sound/soc/intel/atom/sst/snd-intel-sst-core 0x00000000 sst_configure_runtime_pm +EXPORT_SYMBOL_GPL sound/soc/intel/atom/sst/snd-intel-sst-core 0x00000000 sst_context_cleanup +EXPORT_SYMBOL_GPL sound/soc/intel/atom/sst/snd-intel-sst-core 0x00000000 sst_context_init +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-acpi-intel-match 0x00000000 snd_soc_acpi_intel_baytrail_legacy_machines +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-acpi-intel-match 0x00000000 snd_soc_acpi_intel_baytrail_machines +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-acpi-intel-match 0x00000000 snd_soc_acpi_intel_broadwell_machines +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-acpi-intel-match 0x00000000 snd_soc_acpi_intel_bxt_machines +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-acpi-intel-match 0x00000000 snd_soc_acpi_intel_cfl_machines +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-acpi-intel-match 0x00000000 snd_soc_acpi_intel_cfl_sdw_machines +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-acpi-intel-match 0x00000000 snd_soc_acpi_intel_cherrytrail_machines +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-acpi-intel-match 0x00000000 snd_soc_acpi_intel_cml_machines +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-acpi-intel-match 0x00000000 snd_soc_acpi_intel_cml_sdw_machines +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-acpi-intel-match 0x00000000 snd_soc_acpi_intel_cnl_machines +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-acpi-intel-match 0x00000000 snd_soc_acpi_intel_cnl_sdw_machines +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-acpi-intel-match 0x00000000 snd_soc_acpi_intel_ehl_machines +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-acpi-intel-match 0x00000000 snd_soc_acpi_intel_glk_machines +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-acpi-intel-match 0x00000000 snd_soc_acpi_intel_haswell_machines +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-acpi-intel-match 0x00000000 snd_soc_acpi_intel_hda_machines +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-acpi-intel-match 0x00000000 snd_soc_acpi_intel_icl_machines +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-acpi-intel-match 0x00000000 snd_soc_acpi_intel_icl_sdw_machines +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-acpi-intel-match 0x00000000 snd_soc_acpi_intel_jsl_machines +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-acpi-intel-match 0x00000000 snd_soc_acpi_intel_kbl_machines +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-acpi-intel-match 0x00000000 snd_soc_acpi_intel_skl_machines +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-acpi-intel-match 0x00000000 snd_soc_acpi_intel_tgl_machines +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-acpi-intel-match 0x00000000 snd_soc_acpi_intel_tgl_sdw_machines +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0x00000000 sst_dsp_boot +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0x00000000 sst_dsp_dump +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0x00000000 sst_dsp_inbox_read +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0x00000000 sst_dsp_inbox_write +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0x00000000 sst_dsp_ipc_msg_rx +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0x00000000 sst_dsp_ipc_msg_tx +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0x00000000 sst_dsp_mailbox_init +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0x00000000 sst_dsp_outbox_read +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0x00000000 sst_dsp_outbox_write +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0x00000000 sst_dsp_register_poll +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0x00000000 sst_dsp_reset +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0x00000000 sst_dsp_shim_read +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0x00000000 sst_dsp_shim_read64 +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0x00000000 sst_dsp_shim_read64_unlocked +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0x00000000 sst_dsp_shim_read_unlocked +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0x00000000 sst_dsp_shim_update_bits +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0x00000000 sst_dsp_shim_update_bits64 +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0x00000000 sst_dsp_shim_update_bits64_unlocked +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0x00000000 sst_dsp_shim_update_bits_forced +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0x00000000 sst_dsp_shim_update_bits_forced_unlocked +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0x00000000 sst_dsp_shim_update_bits_unlocked +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0x00000000 sst_dsp_shim_write +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0x00000000 sst_dsp_shim_write64 +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0x00000000 sst_dsp_shim_write64_unlocked +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0x00000000 sst_dsp_shim_write_unlocked +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0x00000000 sst_dsp_sleep +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0x00000000 sst_dsp_stall +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0x00000000 sst_dsp_wake +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0x00000000 sst_memcpy_fromio_32 +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0x00000000 sst_memcpy_toio_32 +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0x00000000 sst_shim32_read +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0x00000000 sst_shim32_read64 +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0x00000000 sst_shim32_write +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0x00000000 sst_shim32_write64 +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-firmware 0x00000000 sst_alloc_blocks +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-firmware 0x00000000 sst_block_alloc_scratch +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-firmware 0x00000000 sst_block_free_scratch +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-firmware 0x00000000 sst_dsp_dma_copyfrom +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-firmware 0x00000000 sst_dsp_dma_copyto +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-firmware 0x00000000 sst_dsp_dma_get_channel +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-firmware 0x00000000 sst_dsp_dma_put_channel +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-firmware 0x00000000 sst_dsp_free +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-firmware 0x00000000 sst_dsp_get_offset +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-firmware 0x00000000 sst_dsp_new +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-firmware 0x00000000 sst_free_blocks +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-firmware 0x00000000 sst_fw_free +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-firmware 0x00000000 sst_fw_free_all +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-firmware 0x00000000 sst_fw_new +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-firmware 0x00000000 sst_fw_reload +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-firmware 0x00000000 sst_fw_unload +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-firmware 0x00000000 sst_mem_block_register +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-firmware 0x00000000 sst_mem_block_unregister_all +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-firmware 0x00000000 sst_module_alloc_blocks +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-firmware 0x00000000 sst_module_free +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-firmware 0x00000000 sst_module_free_blocks +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-firmware 0x00000000 sst_module_get_from_id +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-firmware 0x00000000 sst_module_new +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-firmware 0x00000000 sst_module_runtime_alloc_blocks +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-firmware 0x00000000 sst_module_runtime_free +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-firmware 0x00000000 sst_module_runtime_free_blocks +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-firmware 0x00000000 sst_module_runtime_get_from_id +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-firmware 0x00000000 sst_module_runtime_new +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-firmware 0x00000000 sst_module_runtime_restore +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-firmware 0x00000000 sst_module_runtime_save +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-ipc 0x00000000 sst_ipc_drop_all +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-ipc 0x00000000 sst_ipc_fini +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-ipc 0x00000000 sst_ipc_init +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-ipc 0x00000000 sst_ipc_reply_find_msg +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-ipc 0x00000000 sst_ipc_tx_message_nopm +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-ipc 0x00000000 sst_ipc_tx_message_nowait +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-ipc 0x00000000 sst_ipc_tx_message_wait +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-ipc 0x00000000 sst_ipc_tx_msg_reply_complete +EXPORT_SYMBOL_GPL sound/soc/intel/haswell/snd-soc-sst-haswell-pcm 0x00000000 sst_hsw_device_set_config +EXPORT_SYMBOL_GPL sound/soc/intel/haswell/snd-soc-sst-haswell-pcm 0x00000000 sst_hsw_dsp_free +EXPORT_SYMBOL_GPL sound/soc/intel/haswell/snd-soc-sst-haswell-pcm 0x00000000 sst_hsw_dsp_init +EXPORT_SYMBOL_GPL sound/soc/snd-soc-acpi 0x00000000 snd_soc_acpi_codec_list +EXPORT_SYMBOL_GPL sound/soc/snd-soc-acpi 0x00000000 snd_soc_acpi_find_machine +EXPORT_SYMBOL_GPL sound/soc/snd-soc-acpi 0x00000000 snd_soc_acpi_find_package_from_hid +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 dapm_clock_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 dapm_kcontrol_get_value +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 dapm_mark_endpoints_dirty +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 dapm_pinctrl_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 dapm_regulator_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 devm_snd_dmaengine_pcm_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 devm_snd_soc_register_card +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 devm_snd_soc_register_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 dpcm_be_dai_trigger +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 null_dailink_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_dmaengine_pcm_prepare_slave_config +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_dmaengine_pcm_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_dmaengine_pcm_unregister +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_add_card_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_add_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_add_component_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_add_dai_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_add_pcm_runtime +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_bytes_get +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_bytes_info +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_bytes_info_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_bytes_put +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_bytes_tlv_callback +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_calc_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_calc_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_card_get_kcontrol +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_card_jack_new +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_close_delayed_work +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_cnew +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_component_async_complete +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_component_disable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_component_disable_pin_unlocked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_component_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_component_enable_pin_unlocked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_component_exit_regmap +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_component_force_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_component_force_enable_pin_unlocked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_component_get_pin_status +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_component_init_regmap +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_component_nc_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_component_nc_pin_unlocked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_component_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_component_read32 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_component_set_jack +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_component_set_pll +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_component_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_component_test_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_component_update_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_component_update_bits_async +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_component_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dai_digital_mute +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dai_get_channel_map +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dai_set_bclk_ratio +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dai_set_channel_map +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dai_set_clkdiv +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dai_set_fmt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dai_set_pll +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dai_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dai_set_tdm_slot +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dai_set_tristate +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_add_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_del_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_disable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_disable_pin_unlocked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_enable_pin_unlocked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_force_bias_level +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_force_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_force_enable_pin_unlocked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_free +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_get_pin_status +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_get_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_ignore_suspend +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_info_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_init +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_kcontrol_dapm +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_kcontrol_widget +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_mixer_update_power +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_mux_update_power +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_nc_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_nc_pin_unlocked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_new_control +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_new_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_new_widgets +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_put_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_stream_stop +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_sync +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_sync_unlocked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_update_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dapm_weak_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_debugfs_root +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dpcm_be_can_update +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dpcm_can_be_free_stop +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dpcm_can_be_params +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dpcm_fe_can_update +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dpcm_get_substream +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_dpcm_runtime_update +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_find_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_free_ac97_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_get_dai_id +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_get_dai_name +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_get_pcm_runtime +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_get_strobe +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_get_volsw_range +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_get_volsw_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_get_xr_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_info_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_info_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_info_volsw_range +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_info_volsw_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_info_xr_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_jack_add_gpiods +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_jack_add_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_jack_add_pins +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_jack_add_zones +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_jack_free_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_jack_get_type +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_jack_notifier_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_jack_notifier_unregister +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_jack_report +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_limit_volume +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_lookup_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_new_ac97_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_new_compress +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_of_get_dai_link_codecs +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_of_get_dai_name +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_of_get_slot_mask +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_of_parse_audio_routing +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_of_parse_audio_simple_widgets +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_of_parse_card_name +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_of_parse_daifmt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_of_parse_node_prefix +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_of_parse_tdm_slot +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_of_put_dai_link_codecs +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_params_to_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_params_to_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_pm_ops +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_poweroff +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_put_strobe +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_put_volsw_range +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_put_volsw_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_put_xr_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_register_card +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_register_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_remove_pcm_runtime +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_resume +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_rtdcom_lookup +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_runtime_activate +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_runtime_calc_hw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_runtime_deactivate +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_runtime_set_dai_fmt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_set_ac97_ops +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_set_ac97_ops_of_reset +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_set_dmi_name +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_set_runtime_hwparams +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_suspend +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_tplg_component_load +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_tplg_component_remove +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_tplg_widget_bind_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_tplg_widget_remove +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_tplg_widget_remove_all +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_unregister_card +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_unregister_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 snd_soc_unregister_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00000000 soc_ac97_ops +EXPORT_SYMBOL_GPL sound/soc/sof/snd-sof 0x00000000 snd_sof_dbg_init +EXPORT_SYMBOL_GPL sound/soc/sof/snd-sof 0x00000000 snd_sof_debugfs_buf_item +EXPORT_SYMBOL_GPL sound/soc/sof/snd-sof 0x00000000 snd_sof_debugfs_io_item +EXPORT_SYMBOL_GPL sound/soc/sof/snd-sof 0x00000000 snd_sof_free_debug +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x00000000 line6_alloc_sysex_buffer +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x00000000 line6_disconnect +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x00000000 line6_init_midi +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x00000000 line6_init_pcm +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x00000000 line6_midi_id +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x00000000 line6_pcm_acquire +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x00000000 line6_pcm_release +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x00000000 line6_probe +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x00000000 line6_read_data +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x00000000 line6_read_serial_number +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x00000000 line6_resume +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x00000000 line6_send_raw_message_async +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x00000000 line6_send_sysex_message +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x00000000 line6_suspend +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x00000000 line6_version_request_async +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x00000000 line6_write_data +EXPORT_SYMBOL_GPL vmlinux 0x00000000 PageHuge +EXPORT_SYMBOL_GPL vmlinux 0x00000000 TSS_authhmac +EXPORT_SYMBOL_GPL vmlinux 0x00000000 TSS_checkhmac1 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __account_locked_vm +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __acpi_node_get_property_reference +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __alloc_percpu +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __alloc_percpu_gfp +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __apei_exec_run +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __ata_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __audit_inode_child +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __bdev_dax_supported +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __bio_add_page +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __bio_try_merge_page +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __blk_mq_debugfs_rq_show +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __blk_req_zone_write_lock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __blk_req_zone_write_unlock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __blkdev_driver_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __blkg_prfill_rwstat +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __blkg_prfill_u64 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __bpf_call_base +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __class_create +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __class_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __clk_determine_rate +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __clk_get_flags +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __clk_get_hw +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __clk_get_name +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __clk_hw_register_divider +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __clk_hw_register_fixed_rate +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __clk_hw_register_gate +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __clk_hw_register_mux +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __clk_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __clk_mux_determine_rate +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __clk_mux_determine_rate_closest +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __clocksource_register_scale +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __clocksource_update_freq_scale +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __compat_only_sysfs_link_entry_to_kobj +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __cookie_v4_check +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __cookie_v4_init_sequence +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __cookie_v6_check +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __cookie_v6_init_sequence +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __cpuhp_state_add_instance +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __cpuhp_state_remove_instance +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __crypto_xor +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __dax_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __dax_synchronous +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __dax_zero_page_range +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __dev_forward_skb +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __device_reset +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __devm_alloc_percpu +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __devm_create_dev_dax +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __devm_irq_alloc_descs +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __devm_of_phy_provider_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __devm_pci_epc_create +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __devm_regmap_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __devm_regmap_init_i2c +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __devm_regmap_init_mmio_clk +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __devm_regmap_init_spi +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __devm_reset_control_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __dma_request_channel +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __efivar_entry_delete +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __efivar_entry_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __efivar_entry_iter +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __fat_fs_error +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __fib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __fl6_sock_lookup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __flow_indr_block_cb_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __flow_indr_block_cb_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __fput_sync +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __free_iova +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __fscrypt_encrypt_symlink +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __fscrypt_prepare_link +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __fscrypt_prepare_lookup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __fscrypt_prepare_rename +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __fscrypt_prepare_symlink +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __fsnotify_inode_delete +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __fsnotify_parent +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __ftrace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __ftrace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __generic_fsdax_supported +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __get_task_comm +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __get_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __hrtimer_get_remaining +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __hvc_resize +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __hwspin_lock_timeout +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __hwspin_trylock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __hwspin_unlock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __i2c_board_lock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __i2c_first_dynamic_bus_num +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __inet_inherit_port +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __inet_lookup_established +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __inode_attach_wb +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __ioread32_copy +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __iowrite32_copy +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __iowrite64_copy +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __ip6_datagram_connect +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __iptunnel_pull_header +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __irq_alloc_descs +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __irq_alloc_domain_generic_chips +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __irq_domain_add +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __irq_domain_alloc_fwnode +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __irq_set_handler +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __kprobe_event_add_fields +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __kprobe_event_gen_cmd_start +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __kthread_init_worker +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __kthread_should_park +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __list_lru_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __lock_page_killable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __memcat_p +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __memcpy_flushcache +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __memcpy_mcsafe +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __mmc_send_status +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __mmdrop +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __mnt_is_readonly +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __module_address +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __module_text_address +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __ndisc_fill_addr_option +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __netif_set_xps_queue +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __netpoll_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __netpoll_free +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __netpoll_setup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __nf_ip6_route +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __nvdimm_create +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __of_phy_provider_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __of_reset_control_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __page_file_index +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __page_file_mapping +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __page_mapcount +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __pci_epc_create +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __pci_epc_mem_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __pci_epf_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __pci_hp_initialize +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __pci_hp_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __pci_reset_function_locked +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __percpu_down_read +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __percpu_init_rwsem +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __percpu_up_read +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __phy_modify +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __phy_modify_changed +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __phy_modify_mmd +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __phy_modify_mmd_changed +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __platform_create_bundle +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __platform_driver_probe +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __platform_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __platform_register_drivers +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __pm_relax +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __pm_runtime_disable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __pm_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __pm_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __pm_runtime_set_status +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __pm_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __pm_runtime_use_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __pneigh_lookup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __put_net +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __put_task_struct +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __raw_v4_lookup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __raw_v6_lookup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __regmap_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __regmap_init_i2c +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __regmap_init_mmio_clk +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __regmap_init_spi +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __request_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __reset_control_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __rht_bucket_nested +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __ring_buffer_alloc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __rio_local_read_config_16 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __rio_local_read_config_32 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __rio_local_read_config_8 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __rio_local_write_config_16 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __rio_local_write_config_32 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __rio_local_write_config_8 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __root_device_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __rt_mutex_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __rtc_register_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __sbitmap_queue_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __sbitmap_queue_get_shallow +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __scsi_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __serdev_device_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __set_dax_synchronous +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __set_page_dirty +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __skb_get_hash_symmetric +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __skb_tstamp_tx +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __sock_recv_timestamp +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __sock_recv_ts_and_drops +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __sock_recv_wifi_status +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __spi_alloc_controller +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __spi_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __static_key_deferred_flush +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __static_key_slow_dec_deferred +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __strp_unpause +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __supported_pte_mask +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __suspend_report_result +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __symbol_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __sync_filesystem +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __synth_event_gen_cmd_start +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tcp_bpf_recvmsg +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tcp_send_ack +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __trace_bprintk +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __trace_bputs +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __trace_note_message +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __trace_printk +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __trace_puts +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_add_device_to_group +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_arm_event +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_attach_device_to_domain +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_block_bio_complete +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_block_bio_remap +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_block_split +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_block_unplug +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_br_fdb_add +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_br_fdb_external_learn_add +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_br_fdb_update +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_cpu_frequency +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_cpu_idle +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_detach_device_from_domain +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_devlink_hwerr +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_devlink_hwmsg +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_extlog_mem_event +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_fdb_delete +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_fib6_table_lookup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_io_page_fault +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_kfree_skb +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_map +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_mc_event +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_neigh_cleanup_and_release +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_neigh_event_send_dead +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_neigh_event_send_done +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_neigh_timer_handler +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_neigh_update +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_neigh_update_done +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_non_standard_event +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_pelt_cfs_tp +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_pelt_dl_tp +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_pelt_irq_tp +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_pelt_rt_tp +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_pelt_se_tp +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_powernv_throttle +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_remove_device_from_group +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_rpm_idle +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_rpm_resume +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_rpm_return_int +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_rpm_suspend +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_sched_overutilized_tp +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_suspend_resume +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_tcp_send_reset +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_unmap +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_wbc_writepage +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_xdp_bulk_tx +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_xdp_exception +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tracepoint_xhci_dbg_quirks +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __tss_limit_invalid +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __udp6_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __udp_enqueue_schedule_skb +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __udp_gso_segment +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __unwind_start +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __usb_create_hcd +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __usb_get_extra_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __vfs_removexattr_noperm +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __vfs_setxattr_noperm +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __vring_new_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __wait_rcu_gp +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __wake_up_locked +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __wake_up_locked_key +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __wake_up_locked_key_bookmark +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __wake_up_locked_sync_key +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __wake_up_sync +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __wake_up_sync_key +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __xas_next +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __xas_prev +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __xdp_release_frame +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __xenbus_register_backend +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __xenbus_register_frontend +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __xenmem_reservation_va_mapping_reset +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __xenmem_reservation_va_mapping_update +EXPORT_SYMBOL_GPL vmlinux 0x00000000 _copy_from_iter_flushcache +EXPORT_SYMBOL_GPL vmlinux 0x00000000 _copy_to_iter_mcsafe +EXPORT_SYMBOL_GPL vmlinux 0x00000000 access_process_vm +EXPORT_SYMBOL_GPL vmlinux 0x00000000 account_locked_vm +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ack_all_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acomp_request_alloc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acomp_request_free +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_bind_one +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_bus_attach_private_data +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_bus_detach_private_data +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_bus_get_ejd +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_bus_get_private_data +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_bus_get_status_handle +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_bus_register_early_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_bus_trim +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_bus_update_power +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_cppc_processor_exit +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_cppc_processor_probe +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_create_platform_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_data_fwnode_ops +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_debugfs_dir +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_dev_add_driver_gpios +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_dev_filter_resource_type +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_dev_free_resource_list +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_dev_get_dma_resources +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_dev_get_irq_type +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_dev_get_property +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_dev_get_resources +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_dev_gpio_irq_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_dev_irq_flags +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_dev_pm_attach +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_dev_remove_driver_gpios +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_dev_resource_address_space +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_dev_resource_ext_address_space +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_dev_resource_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_dev_resource_io +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_dev_resource_memory +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_dev_resume +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_dev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_device_fix_up_power +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_device_fwnode_ops +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_device_get_match_data +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_device_modalias +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_device_uevent_modalias +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_device_update_power +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_dma_configure +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_dma_controller_free +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_dma_controller_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_dma_request_slave_chan_by_index +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_dma_request_slave_chan_by_name +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_dma_simple_xlate +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_driver_match_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_ec_add_query_handler +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_ec_mark_gpe_for_wake +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_ec_remove_query_handler +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_find_child_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_get_cpuid +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_get_pci_dev +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_get_phys_id +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_get_psd_map +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_gpio_get_irq_resource +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_gpiochip_free_interrupts +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_gpiochip_request_interrupts +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_gsi_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_has_watchdog +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_initialize_hp_context +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_is_pnp_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_is_root_bridge +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_kobj +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_lpat_free_conversion_table +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_lpat_get_conversion_table +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_lpat_raw_to_temp +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_lpat_temp_to_raw +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_match_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_os_get_iomem +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_os_map_iomem +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_os_map_memory +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_os_unmap_iomem +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_os_unmap_memory +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_pci_check_ejectable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_pci_detect_ejectable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_pci_find_root +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_pm_set_device_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_pm_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_processor_claim_cst_control +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_processor_evaluate_cst +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_processor_ffh_cstate_enter +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_processor_ffh_cstate_probe +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_processor_get_performance_info +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_register_gsi +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_register_wakeup_handler +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_release_memory +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_scan_lock_acquire +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_scan_lock_release +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_set_modalias +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_subsys_complete +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_subsys_freeze +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_subsys_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_subsys_prepare +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_subsys_restore_early +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_subsys_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_subsys_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_subsys_suspend +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_subsys_suspend_late +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_subsys_suspend_noirq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_target_system_state +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_unbind_one +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_unregister_gsi +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_unregister_wakeup_handler +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpi_walk_dep_device_list +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpiphp_register_attention +EXPORT_SYMBOL_GPL vmlinux 0x00000000 acpiphp_unregister_attention +EXPORT_SYMBOL_GPL vmlinux 0x00000000 add_bootloader_randomness +EXPORT_SYMBOL_GPL vmlinux 0x00000000 add_disk_randomness +EXPORT_SYMBOL_GPL vmlinux 0x00000000 add_hwgenerator_randomness +EXPORT_SYMBOL_GPL vmlinux 0x00000000 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x00000000 add_interrupt_randomness +EXPORT_SYMBOL_GPL vmlinux 0x00000000 add_memory +EXPORT_SYMBOL_GPL vmlinux 0x00000000 add_page_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x00000000 add_swap_extent +EXPORT_SYMBOL_GPL vmlinux 0x00000000 add_timer_on +EXPORT_SYMBOL_GPL vmlinux 0x00000000 add_to_page_cache_lru +EXPORT_SYMBOL_GPL vmlinux 0x00000000 add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0x00000000 addrconf_add_linklocal +EXPORT_SYMBOL_GPL vmlinux 0x00000000 addrconf_prefix_rcv_add_addr +EXPORT_SYMBOL_GPL vmlinux 0x00000000 adp5520_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x00000000 adp5520_read +EXPORT_SYMBOL_GPL vmlinux 0x00000000 adp5520_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 adp5520_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x00000000 adp5520_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 adp5520_write +EXPORT_SYMBOL_GPL vmlinux 0x00000000 adxl_decode +EXPORT_SYMBOL_GPL vmlinux 0x00000000 adxl_get_component_names +EXPORT_SYMBOL_GPL vmlinux 0x00000000 aead_exit_geniv +EXPORT_SYMBOL_GPL vmlinux 0x00000000 aead_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 aead_init_geniv +EXPORT_SYMBOL_GPL vmlinux 0x00000000 aead_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x00000000 aer_recover_queue +EXPORT_SYMBOL_GPL vmlinux 0x00000000 agp_add_bridge +EXPORT_SYMBOL_GPL vmlinux 0x00000000 agp_memory_reserved +EXPORT_SYMBOL_GPL vmlinux 0x00000000 agp_num_entries +EXPORT_SYMBOL_GPL vmlinux 0x00000000 agp_remove_bridge +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ahash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x00000000 akcipher_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x00000000 alarm_cancel +EXPORT_SYMBOL_GPL vmlinux 0x00000000 alarm_expires_remaining +EXPORT_SYMBOL_GPL vmlinux 0x00000000 alarm_forward +EXPORT_SYMBOL_GPL vmlinux 0x00000000 alarm_forward_now +EXPORT_SYMBOL_GPL vmlinux 0x00000000 alarm_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 alarm_restart +EXPORT_SYMBOL_GPL vmlinux 0x00000000 alarm_start +EXPORT_SYMBOL_GPL vmlinux 0x00000000 alarm_start_relative +EXPORT_SYMBOL_GPL vmlinux 0x00000000 alarm_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0x00000000 alarmtimer_get_rtcdev +EXPORT_SYMBOL_GPL vmlinux 0x00000000 alg_test +EXPORT_SYMBOL_GPL vmlinux 0x00000000 all_vm_events +EXPORT_SYMBOL_GPL vmlinux 0x00000000 alloc_dax +EXPORT_SYMBOL_GPL vmlinux 0x00000000 alloc_dax_region +EXPORT_SYMBOL_GPL vmlinux 0x00000000 alloc_empty_file +EXPORT_SYMBOL_GPL vmlinux 0x00000000 alloc_iova +EXPORT_SYMBOL_GPL vmlinux 0x00000000 alloc_iova_fast +EXPORT_SYMBOL_GPL vmlinux 0x00000000 alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0x00000000 alloc_skb_for_msg +EXPORT_SYMBOL_GPL vmlinux 0x00000000 alloc_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x00000000 alloc_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x00000000 alternatives_patched +EXPORT_SYMBOL_GPL vmlinux 0x00000000 amd_cache_northbridges +EXPORT_SYMBOL_GPL vmlinux 0x00000000 amd_df_indirect_read +EXPORT_SYMBOL_GPL vmlinux 0x00000000 amd_flush_garts +EXPORT_SYMBOL_GPL vmlinux 0x00000000 amd_get_nb_id +EXPORT_SYMBOL_GPL vmlinux 0x00000000 amd_get_nodes_per_socket +EXPORT_SYMBOL_GPL vmlinux 0x00000000 amd_nb_has_feature +EXPORT_SYMBOL_GPL vmlinux 0x00000000 amd_nb_misc_ids +EXPORT_SYMBOL_GPL vmlinux 0x00000000 amd_nb_num +EXPORT_SYMBOL_GPL vmlinux 0x00000000 amd_pmu_disable_virt +EXPORT_SYMBOL_GPL vmlinux 0x00000000 amd_pmu_enable_virt +EXPORT_SYMBOL_GPL vmlinux 0x00000000 amd_smn_read +EXPORT_SYMBOL_GPL vmlinux 0x00000000 amd_smn_write +EXPORT_SYMBOL_GPL vmlinux 0x00000000 anon_inode_getfd +EXPORT_SYMBOL_GPL vmlinux 0x00000000 anon_inode_getfile +EXPORT_SYMBOL_GPL vmlinux 0x00000000 anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 anon_transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 aout_dump_debugregs +EXPORT_SYMBOL_GPL vmlinux 0x00000000 apei_exec_collect_resources +EXPORT_SYMBOL_GPL vmlinux 0x00000000 apei_exec_ctx_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 apei_exec_noop +EXPORT_SYMBOL_GPL vmlinux 0x00000000 apei_exec_post_unmap_gars +EXPORT_SYMBOL_GPL vmlinux 0x00000000 apei_exec_pre_map_gars +EXPORT_SYMBOL_GPL vmlinux 0x00000000 apei_exec_read_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 apei_exec_read_register_value +EXPORT_SYMBOL_GPL vmlinux 0x00000000 apei_exec_write_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 apei_exec_write_register_value +EXPORT_SYMBOL_GPL vmlinux 0x00000000 apei_get_debugfs_dir +EXPORT_SYMBOL_GPL vmlinux 0x00000000 apei_hest_parse +EXPORT_SYMBOL_GPL vmlinux 0x00000000 apei_map_generic_address +EXPORT_SYMBOL_GPL vmlinux 0x00000000 apei_mce_report_mem_error +EXPORT_SYMBOL_GPL vmlinux 0x00000000 apei_osc_setup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 apei_read +EXPORT_SYMBOL_GPL vmlinux 0x00000000 apei_resources_add +EXPORT_SYMBOL_GPL vmlinux 0x00000000 apei_resources_fini +EXPORT_SYMBOL_GPL vmlinux 0x00000000 apei_resources_release +EXPORT_SYMBOL_GPL vmlinux 0x00000000 apei_resources_request +EXPORT_SYMBOL_GPL vmlinux 0x00000000 apei_resources_sub +EXPORT_SYMBOL_GPL vmlinux 0x00000000 apei_write +EXPORT_SYMBOL_GPL vmlinux 0x00000000 apic +EXPORT_SYMBOL_GPL vmlinux 0x00000000 apply_to_existing_page_range +EXPORT_SYMBOL_GPL vmlinux 0x00000000 apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0x00000000 arbitrary_virt_to_machine +EXPORT_SYMBOL_GPL vmlinux 0x00000000 arch_apei_enable_cmcff +EXPORT_SYMBOL_GPL vmlinux 0x00000000 arch_apei_report_mem_error +EXPORT_SYMBOL_GPL vmlinux 0x00000000 arch_haltpoll_disable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 arch_haltpoll_enable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 arch_invalidate_pmem +EXPORT_SYMBOL_GPL vmlinux 0x00000000 arch_phys_wc_index +EXPORT_SYMBOL_GPL vmlinux 0x00000000 arch_set_freq_scale +EXPORT_SYMBOL_GPL vmlinux 0x00000000 arch_wb_cache_pmem +EXPORT_SYMBOL_GPL vmlinux 0x00000000 arizona_clk32k_disable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 arizona_clk32k_enable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 arizona_dev_exit +EXPORT_SYMBOL_GPL vmlinux 0x00000000 arizona_dev_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 arizona_free_irq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 arizona_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0x00000000 arizona_request_irq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 arizona_set_irq_wake +EXPORT_SYMBOL_GPL vmlinux 0x00000000 asn1_ber_decoder +EXPORT_SYMBOL_GPL vmlinux 0x00000000 asymmetric_key_generate_id +EXPORT_SYMBOL_GPL vmlinux 0x00000000 asymmetric_key_id_partial +EXPORT_SYMBOL_GPL vmlinux 0x00000000 asymmetric_key_id_same +EXPORT_SYMBOL_GPL vmlinux 0x00000000 async_schedule_node +EXPORT_SYMBOL_GPL vmlinux 0x00000000 async_schedule_node_domain +EXPORT_SYMBOL_GPL vmlinux 0x00000000 async_synchronize_cookie +EXPORT_SYMBOL_GPL vmlinux 0x00000000 async_synchronize_cookie_domain +EXPORT_SYMBOL_GPL vmlinux 0x00000000 async_synchronize_full +EXPORT_SYMBOL_GPL vmlinux 0x00000000 async_synchronize_full_domain +EXPORT_SYMBOL_GPL vmlinux 0x00000000 async_unregister_domain +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_acpi_cbl_80wire +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_acpi_gtm +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_acpi_gtm_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_acpi_stm +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_base_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_bmdma32_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_bmdma_dumb_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_bmdma_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_bmdma_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_bmdma_irq_clear +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_bmdma_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_bmdma_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_bmdma_port_start +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_bmdma_port_start32 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_bmdma_post_internal_cmd +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_bmdma_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_bmdma_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_bmdma_stop +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_cable_40wire +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_cable_80wire +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_cable_ignore +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_cable_sata +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_cable_unknown +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_common_sdev_attrs +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_dev_disable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_dev_next +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_dev_pair +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_dev_set_feature +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_do_dev_read_id +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_do_eh +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_do_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_dummy_port_info +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_dummy_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_eh_analyze_ncq_error +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_eh_freeze_port +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_eh_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_eh_qc_retry +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_eh_thaw_port +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_ehi_clear_desc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_get_cmd_descript +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_host_activate +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_host_alloc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_host_detach +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_host_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_host_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_host_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_host_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_host_resume +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_host_start +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_host_suspend +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_id_c_string +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_id_string +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_id_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_link_abort +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_link_next +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_link_offline +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_link_online +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_mode_string +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_msleep +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_noop_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_pack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_pci_bmdma_clear_simplex +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_pci_bmdma_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_pci_bmdma_init_one +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_pci_bmdma_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_pci_device_do_resume +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_pci_device_do_suspend +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_pci_device_resume +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_pci_device_suspend +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_pci_remove_one +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_pci_sff_activate_host +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_pci_sff_init_host +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_pci_sff_init_one +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_pci_sff_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_pci_shutdown_one +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_pio_need_iordy +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_platform_remove_one +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_port_abort +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_port_desc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_port_freeze +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_port_pbar_desc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_port_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_port_wait_eh +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_qc_complete_multiple +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_qc_get_active +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_ratelimit +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sas_async_probe +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sas_port_alloc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sas_port_destroy +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sas_port_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sas_port_resume +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sas_port_start +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sas_port_stop +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sas_port_suspend +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sas_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sas_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sas_slave_configure +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sas_sync_probe +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sas_tport_add +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sas_tport_delete +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_scsi_port_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_scsi_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_scsi_simulate +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_scsi_slave_config +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_scsi_slave_destroy +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_scsi_unlock_native_capacity +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_busy_sleep +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_check_status +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_data_xfer +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_data_xfer32 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_dev_select +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_dma_pause +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_drain_fifo +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_exec_command +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_freeze +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_hsm_move +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_irq_on +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_lost_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_pause +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_postreset +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_prereset +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_qc_fill_rtf +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_queue_pio_task +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_queue_work +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_softreset +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_std_ports +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_tf_load +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_tf_read +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_thaw +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sff_wait_ready +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_slave_link_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_std_bios_param +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_std_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_std_postreset +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_std_prereset +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_std_qc_defer +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_std_sched_eh +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_tf_from_fis +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_tf_to_fis +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_timing_compute +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_timing_cycle2mode +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_timing_find_mode +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_timing_merge +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_unpack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_wait_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_xfer_mask2mode +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_xfer_mode2mask +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ata_xfer_mode2shift +EXPORT_SYMBOL_GPL vmlinux 0x00000000 atapi_cmd_type +EXPORT_SYMBOL_GPL vmlinux 0x00000000 atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x00000000 atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 atomic_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0x00000000 attribute_container_find_class_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 attribute_container_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 attribute_container_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 audit_enabled +EXPORT_SYMBOL_GPL vmlinux 0x00000000 badblocks_check +EXPORT_SYMBOL_GPL vmlinux 0x00000000 badblocks_clear +EXPORT_SYMBOL_GPL vmlinux 0x00000000 badblocks_exit +EXPORT_SYMBOL_GPL vmlinux 0x00000000 badblocks_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 badblocks_set +EXPORT_SYMBOL_GPL vmlinux 0x00000000 badblocks_show +EXPORT_SYMBOL_GPL vmlinux 0x00000000 badblocks_store +EXPORT_SYMBOL_GPL vmlinux 0x00000000 badrange_add +EXPORT_SYMBOL_GPL vmlinux 0x00000000 badrange_forget +EXPORT_SYMBOL_GPL vmlinux 0x00000000 badrange_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 balloon_aops +EXPORT_SYMBOL_GPL vmlinux 0x00000000 balloon_page_alloc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 balloon_page_dequeue +EXPORT_SYMBOL_GPL vmlinux 0x00000000 balloon_page_enqueue +EXPORT_SYMBOL_GPL vmlinux 0x00000000 balloon_page_list_dequeue +EXPORT_SYMBOL_GPL vmlinux 0x00000000 balloon_page_list_enqueue +EXPORT_SYMBOL_GPL vmlinux 0x00000000 balloon_set_new_target +EXPORT_SYMBOL_GPL vmlinux 0x00000000 balloon_stats +EXPORT_SYMBOL_GPL vmlinux 0x00000000 battery_hook_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 battery_hook_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bd_link_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bd_unlink_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bdev_disk_changed +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bdev_read_page +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bdev_write_page +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bdi_dev_name +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bind_evtchn_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bind_evtchn_to_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bind_interdomain_evtchn_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bind_interdomain_evtchn_to_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bind_virq_to_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bio_alloc_mddev +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bio_associate_blkg +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bio_associate_blkg_from_css +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bio_clone_blkg_association +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bio_disassociate_blkg +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bio_trim +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bit_wait_io_timeout +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bit_wait_timeout +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_abort_request +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_add_driver_data +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_clear_pm_only +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_fill_rwbs +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_freeze_queue_start +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_insert_cloned_request +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_mq_alloc_request_hctx +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_mq_bio_list_merge +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_mq_debugfs_rq_show +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_mq_flush_busy_ctxs +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_mq_free_request +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_mq_freeze_queue +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_mq_freeze_queue_wait +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_mq_freeze_queue_wait_timeout +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_mq_map_queues +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_mq_pci_map_queues +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_mq_queue_inflight +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_mq_quiesce_queue +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_mq_quiesce_queue_nowait +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_mq_rdma_map_queues +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_mq_sched_free_hctx_data +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_mq_sched_mark_restart_hctx +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_mq_sched_request_inserted +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_mq_sched_try_insert_merge +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_mq_sched_try_merge +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_mq_start_stopped_hw_queue +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_mq_unfreeze_queue +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_mq_unquiesce_queue +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_mq_update_nr_hw_queues +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_mq_virtio_map_queues +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_op_str +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_poll +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_queue_can_use_dma_map_merging +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_queue_dma_drain +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_queue_flag_test_and_set +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_queue_max_discard_segments +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_queue_required_elevator_features +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_queue_rq_timeout +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_queue_write_cache +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_register_queue +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_req_needs_zone_write_lock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_revalidate_disk_zones +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_rq_err_bytes +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_rq_prep_clone +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_rq_unprep_clone +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_set_pm_only +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_set_queue_dying +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_stat_enable_accounting +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_status_to_errno +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_steal_bios +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_trace_remove +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_trace_setup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_trace_startstop +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blk_update_request +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blkcg_activate_policy +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blkcg_deactivate_policy +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blkcg_policy_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blkcg_policy_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blkcg_print_blkgs +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blkcg_root +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blkcg_root_css +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blkdev_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blkdev_nr_zones +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blkdev_read_iter +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blkdev_report_zones +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blkdev_write_iter +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blkdev_zone_mgmt +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blkg_conf_finish +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blkg_conf_prep +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blkg_lookup_slowpath +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blkg_prfill_rwstat +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blkg_rwstat_exit +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blkg_rwstat_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blkg_rwstat_recursive_sum +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blockdev_superblock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blocking_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 blocking_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 boot_cpu_physical_apicid +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpf_event_output +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpf_map_inc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpf_map_inc_not_zero +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpf_map_inc_with_uref +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpf_map_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpf_offload_dev_create +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpf_offload_dev_destroy +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpf_offload_dev_match +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpf_offload_dev_netdev_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpf_offload_dev_netdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpf_offload_dev_priv +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpf_prog_add +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpf_prog_alloc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpf_prog_create +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpf_prog_create_from_user +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpf_prog_destroy +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpf_prog_free +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpf_prog_get_type_dev +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpf_prog_inc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpf_prog_inc_not_zero +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpf_prog_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpf_prog_select_runtime +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpf_prog_sub +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpf_redirect_info +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpf_trace_run1 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpf_trace_run10 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpf_trace_run11 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpf_trace_run12 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpf_trace_run2 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpf_trace_run3 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpf_trace_run4 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpf_trace_run5 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpf_trace_run6 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpf_trace_run7 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpf_trace_run8 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpf_trace_run9 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpf_verifier_log_write +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpf_warn_invalid_xdp_action +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bpfilter_ops +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bprintf +EXPORT_SYMBOL_GPL vmlinux 0x00000000 br_fdb_test_addr_hook +EXPORT_SYMBOL_GPL vmlinux 0x00000000 br_ip6_fragment +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bsg_job_done +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bsg_job_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bsg_job_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bsg_remove_queue +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bsg_scsi_register_queue +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bsg_setup_queue +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bsg_unregister_queue +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bstr_printf +EXPORT_SYMBOL_GPL vmlinux 0x00000000 btree_alloc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 btree_destroy +EXPORT_SYMBOL_GPL vmlinux 0x00000000 btree_free +EXPORT_SYMBOL_GPL vmlinux 0x00000000 btree_geo128 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 btree_geo32 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 btree_geo64 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 btree_get_prev +EXPORT_SYMBOL_GPL vmlinux 0x00000000 btree_grim_visitor +EXPORT_SYMBOL_GPL vmlinux 0x00000000 btree_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 btree_init_mempool +EXPORT_SYMBOL_GPL vmlinux 0x00000000 btree_insert +EXPORT_SYMBOL_GPL vmlinux 0x00000000 btree_last +EXPORT_SYMBOL_GPL vmlinux 0x00000000 btree_lookup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 btree_merge +EXPORT_SYMBOL_GPL vmlinux 0x00000000 btree_remove +EXPORT_SYMBOL_GPL vmlinux 0x00000000 btree_update +EXPORT_SYMBOL_GPL vmlinux 0x00000000 btree_visitor +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bus_create_file +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bus_find_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bus_for_each_drv +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bus_get_device_klist +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bus_get_kset +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bus_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bus_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bus_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bus_rescan_devices +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bus_set_iommu +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bus_sort_breadthfirst +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 bus_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 byte_rev_table +EXPORT_SYMBOL_GPL vmlinux 0x00000000 call_netevent_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x00000000 call_rcu +EXPORT_SYMBOL_GPL vmlinux 0x00000000 call_rcu_tasks +EXPORT_SYMBOL_GPL vmlinux 0x00000000 call_srcu +EXPORT_SYMBOL_GPL vmlinux 0x00000000 call_switchdev_blocking_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x00000000 call_switchdev_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cgroup_attach_task_all +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cgroup_get_from_fd +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cgroup_get_from_path +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cgroup_path_ns +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cgroup_rstat_updated +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cgrp_dfl_root +EXPORT_SYMBOL_GPL vmlinux 0x00000000 check_move_unevictable_pages +EXPORT_SYMBOL_GPL vmlinux 0x00000000 check_tsc_unstable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 class_compat_create_link +EXPORT_SYMBOL_GPL vmlinux 0x00000000 class_compat_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 class_compat_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x00000000 class_compat_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 class_create_file_ns +EXPORT_SYMBOL_GPL vmlinux 0x00000000 class_destroy +EXPORT_SYMBOL_GPL vmlinux 0x00000000 class_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x00000000 class_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 class_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x00000000 class_find_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 class_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 class_interface_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 class_remove_file_ns +EXPORT_SYMBOL_GPL vmlinux 0x00000000 class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clean_acked_data_disable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clean_acked_data_enable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clean_acked_data_flush +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clean_record_shared_mapping_range +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clear_foreign_p2m_mapping +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clear_hv_tscchange_cb +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clear_page_erms +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clear_page_orig +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clear_page_rep +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clear_selection +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clflush_cache_range +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_bulk_disable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_bulk_enable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_bulk_get_optional +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_bulk_prepare +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_bulk_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_bulk_unprepare +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_disable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_divider_ops +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_divider_ro_ops +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_enable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_fixed_factor_ops +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_fixed_rate_ops +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_fractional_divider_ops +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_gate_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_gate_ops +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_gate_restore_context +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_get_accuracy +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_get_parent +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_get_phase +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_get_rate +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_get_scaled_duty_cycle +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_has_parent +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_hw_get_flags +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_hw_get_name +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_hw_get_num_parents +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_hw_get_parent +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_hw_get_parent_by_index +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_hw_get_parent_index +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_hw_get_rate +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_hw_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_hw_is_prepared +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_hw_rate_is_protected +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_hw_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_hw_register_fixed_factor +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_hw_register_fractional_divider +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_hw_round_rate +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_hw_set_parent +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_hw_set_rate_range +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_hw_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_hw_unregister_composite +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_hw_unregister_divider +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_hw_unregister_fixed_factor +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_hw_unregister_fixed_rate +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_hw_unregister_gate +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_hw_unregister_mux +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_is_match +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_multiplier_ops +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_mux_determine_rate_flags +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_mux_index_to_val +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_mux_ops +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_mux_ro_ops +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_mux_val_to_index +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_prepare +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_rate_exclusive_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_rate_exclusive_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_register_divider_table +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_register_fixed_factor +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_register_fixed_rate +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_register_fractional_divider +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_register_gate +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_register_mux_table +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_restore_context +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_round_rate +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_save_context +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_set_duty_cycle +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_set_max_rate +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_set_min_rate +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_set_parent +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_set_phase +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_set_rate +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_set_rate_exclusive +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_set_rate_range +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_unprepare +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_unregister_divider +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_unregister_fixed_factor +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_unregister_fixed_rate +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_unregister_gate +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clk_unregister_mux +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clkdev_create +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clkdev_hw_create +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clockevent_delta2ns +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clockevents_config_and_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clockevents_register_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clockevents_unbind_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clocks_calc_mult_shift +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clone_private_mount +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cm_notify_event +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cn_add_callback +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cn_del_callback +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cn_netlink_send +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cn_netlink_send_mult +EXPORT_SYMBOL_GPL vmlinux 0x00000000 compat_alloc_user_space +EXPORT_SYMBOL_GPL vmlinux 0x00000000 component_add +EXPORT_SYMBOL_GPL vmlinux 0x00000000 component_add_typed +EXPORT_SYMBOL_GPL vmlinux 0x00000000 component_bind_all +EXPORT_SYMBOL_GPL vmlinux 0x00000000 component_del +EXPORT_SYMBOL_GPL vmlinux 0x00000000 component_master_add_with_match +EXPORT_SYMBOL_GPL vmlinux 0x00000000 component_master_del +EXPORT_SYMBOL_GPL vmlinux 0x00000000 component_unbind_all +EXPORT_SYMBOL_GPL vmlinux 0x00000000 con_debug_enter +EXPORT_SYMBOL_GPL vmlinux 0x00000000 con_debug_leave +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cond_synchronize_rcu +EXPORT_SYMBOL_GPL vmlinux 0x00000000 console_drivers +EXPORT_SYMBOL_GPL vmlinux 0x00000000 console_printk +EXPORT_SYMBOL_GPL vmlinux 0x00000000 copy_from_user_nmi +EXPORT_SYMBOL_GPL vmlinux 0x00000000 copy_reserved_iova +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpci_hp_register_bus +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpci_hp_register_controller +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpci_hp_start +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpci_hp_stop +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpci_hp_unregister_bus +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpci_hp_unregister_controller +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cper_estatus_check +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cper_estatus_check_header +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cper_estatus_print +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cper_mem_err_type_str +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cper_next_record_id +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cper_severity_str +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cper_severity_to_aer +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cppc_get_desired_perf +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cppc_get_perf_caps +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cppc_get_perf_ctrs +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cppc_get_transition_latency +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cppc_set_perf +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpu_bit_bitmap +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpu_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpu_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpu_device_create +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpu_has_xfeatures +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpu_hotplug_disable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpu_hotplug_enable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpu_is_hotpluggable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpu_mitigations_auto_nosmt +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpu_mitigations_off +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpu_smt_possible +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpu_subsys +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpu_up +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpuacct_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpuacct_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpufreq_add_update_util_hook +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpufreq_boost_enabled +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpufreq_cpu_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpufreq_cpu_get_raw +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpufreq_cpu_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpufreq_dbs_governor_exit +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpufreq_dbs_governor_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpufreq_dbs_governor_limits +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpufreq_dbs_governor_start +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpufreq_dbs_governor_stop +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpufreq_disable_fast_switch +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpufreq_driver_fast_switch +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpufreq_driver_resolve_freq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpufreq_enable_boost_support +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpufreq_enable_fast_switch +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpufreq_freq_attr_scaling_available_freqs +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpufreq_freq_attr_scaling_boost_freqs +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpufreq_freq_transition_begin +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpufreq_freq_transition_end +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpufreq_frequency_table_get_index +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpufreq_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpufreq_generic_attr +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpufreq_generic_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpufreq_generic_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpufreq_generic_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpufreq_get_current_driver +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpufreq_get_driver_data +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpufreq_policy_transition_delay_us +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpufreq_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpufreq_register_governor +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpufreq_remove_update_util_hook +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpufreq_show_cpus +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpufreq_table_index_unsorted +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpufreq_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpufreq_unregister_governor +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpufreq_update_limits +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpuhp_tasks_frozen +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpuidle_disable_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpuidle_enable_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpuidle_get_cpu_driver +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpuidle_get_driver +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpuidle_pause_and_lock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpuidle_poll_state_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpuidle_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpuidle_register_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpuidle_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpuidle_resume_and_unlock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpuidle_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpuidle_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpuidle_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpus_read_lock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpus_read_trylock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpus_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpuset_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpuset_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cpuset_mem_spread_node +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crash_vmclear_loaded_vmcss +EXPORT_SYMBOL_GPL vmlinux 0x00000000 create_signature +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cros_ec_check_features +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cros_ec_get_sensor_count +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_aead_decrypt +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_aead_encrypt +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_aead_setauthsize +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_aead_setkey +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_aes_set_key +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_ahash_final +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_ahash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_ahash_walk_first +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_alg_extsize +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_alg_mod_lookup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_alg_sem +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_alg_tested +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_alloc_acomp +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_alloc_aead +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_alloc_ahash +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_alloc_akcipher +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_alloc_kpp +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_alloc_rng +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_alloc_shash +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_alloc_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_alloc_sync_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_attr_alg_name +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_attr_u32 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_chain +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_check_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_cipher_decrypt_one +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_cipher_encrypt_one +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_cipher_setkey +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_comp_compress +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_comp_decompress +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_create_tfm +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_del_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_destroy_tfm +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_dh_decode_key +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_dh_encode_key +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_dh_key_len +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_drop_spawn +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_enqueue_request +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_find_alg +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_ft_tab +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_get_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_get_default_null_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_get_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_grab_aead +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_grab_ahash +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_grab_akcipher +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_grab_shash +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_grab_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_grab_spawn +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_has_ahash +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_has_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_hash_alg_has_setkey +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_hash_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_hash_walk_first +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_inc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_inst_setname +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_it_tab +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_larval_alloc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_larval_kill +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_mod_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_probing_notify +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_put_default_null_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_put_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_register_acomp +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_register_acomps +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_register_aead +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_register_aeads +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_register_ahash +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_register_ahashes +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_register_akcipher +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_register_alg +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_register_algs +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_register_kpp +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_register_rng +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_register_rngs +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_register_scomp +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_register_scomps +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_register_shash +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_register_shashes +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_register_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_register_skciphers +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_register_template +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_register_templates +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_remove_final +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_remove_spawns +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_req_done +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_rng_reset +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_shash_digest +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_shash_final +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_shash_finup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_shash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_shash_update +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_skcipher_decrypt +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_skcipher_encrypt +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_skcipher_setkey +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_spawn_tfm2 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_stats_aead_decrypt +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_stats_aead_encrypt +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_stats_ahash_final +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_stats_ahash_update +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_stats_akcipher_decrypt +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_stats_akcipher_encrypt +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_stats_akcipher_sign +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_stats_akcipher_verify +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_stats_compress +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_stats_decompress +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_stats_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_stats_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_stats_kpp_compute_shared_secret +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_stats_kpp_generate_public_key +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_stats_kpp_set_secret +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_stats_rng_generate +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_stats_rng_seed +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_stats_skcipher_decrypt +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_stats_skcipher_encrypt +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_type_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_unregister_acomp +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_unregister_acomps +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_unregister_aead +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_unregister_aeads +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_unregister_ahash +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_unregister_ahashes +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_unregister_akcipher +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_unregister_alg +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_unregister_algs +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_unregister_instance +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_unregister_kpp +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_unregister_rng +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_unregister_rngs +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_unregister_scomp +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_unregister_scomps +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_unregister_shash +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_unregister_shashes +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_unregister_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_unregister_skciphers +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_unregister_template +EXPORT_SYMBOL_GPL vmlinux 0x00000000 crypto_unregister_templates +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cs47l24_irq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cs47l24_patch +EXPORT_SYMBOL_GPL vmlinux 0x00000000 cs47l24_spi_regmap +EXPORT_SYMBOL_GPL vmlinux 0x00000000 css_next_descendant_pre +EXPORT_SYMBOL_GPL vmlinux 0x00000000 current_is_async +EXPORT_SYMBOL_GPL vmlinux 0x00000000 d_exchange +EXPORT_SYMBOL_GPL vmlinux 0x00000000 d_walk +EXPORT_SYMBOL_GPL vmlinux 0x00000000 da903x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x00000000 da903x_read +EXPORT_SYMBOL_GPL vmlinux 0x00000000 da903x_reads +EXPORT_SYMBOL_GPL vmlinux 0x00000000 da903x_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 da903x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x00000000 da903x_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 da903x_update +EXPORT_SYMBOL_GPL vmlinux 0x00000000 da903x_write +EXPORT_SYMBOL_GPL vmlinux 0x00000000 da903x_writes +EXPORT_SYMBOL_GPL vmlinux 0x00000000 da9052_adc_manual_read +EXPORT_SYMBOL_GPL vmlinux 0x00000000 da9052_adc_read_temp +EXPORT_SYMBOL_GPL vmlinux 0x00000000 da9052_disable_irq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 da9052_disable_irq_nosync +EXPORT_SYMBOL_GPL vmlinux 0x00000000 da9052_enable_irq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 da9052_free_irq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 da9052_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0x00000000 da9052_request_irq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 da9055_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dax_alive +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dax_attribute_group +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dax_copy_from_iter +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dax_copy_to_iter +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dax_direct_access +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dax_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dax_finish_sync_fault +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dax_flush +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dax_get_by_host +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dax_get_private +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dax_inode +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dax_iomap_fault +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dax_iomap_rw +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dax_layout_busy_page +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dax_read_lock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dax_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dax_region_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dax_write_cache +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dax_write_cache_enabled +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dax_writeback_mapping_range +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dbgp_external_startup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dbgp_reset_prep +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dbs_update +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dcookie_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dcookie_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 debug_locks +EXPORT_SYMBOL_GPL vmlinux 0x00000000 debug_locks_off +EXPORT_SYMBOL_GPL vmlinux 0x00000000 debug_locks_silent +EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_attr_read +EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_attr_write +EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_create_atomic_t +EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_create_bool +EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_create_devm_seqfile +EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_create_file_size +EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_create_file_unsafe +EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_create_regset32 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_create_size_t +EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_create_u16 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_create_u32 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_create_u32_array +EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_create_u8 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_create_ulong +EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_create_x16 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_create_x32 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_create_x64 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_file_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_file_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_initialized +EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_lookup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_print_regs32 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_read_file_bool +EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_real_fops +EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_rename +EXPORT_SYMBOL_GPL vmlinux 0x00000000 debugfs_write_file_bool +EXPORT_SYMBOL_GPL vmlinux 0x00000000 decrypt_blob +EXPORT_SYMBOL_GPL vmlinux 0x00000000 default_cpu_present_to_apicid +EXPORT_SYMBOL_GPL vmlinux 0x00000000 delayacct_on +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0x00000000 desc_to_gpio +EXPORT_SYMBOL_GPL vmlinux 0x00000000 destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_attr_em_message +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_attr_em_message_type +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_attr_link_power_management_policy +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_attr_ncq_prio_enable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_attr_sw_activity +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_attr_unload_heads +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_change_net_namespace +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_coredumpm +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_coredumpsg +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_coredumpv +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_fill_metadata_dst +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_forward_skb +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_fwnode +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_get_regmap +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_nit_active +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_clear_wake_irq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_disable_wake_irq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_domain_attach +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_domain_attach_by_id +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_domain_attach_by_name +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_domain_detach +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_domain_set +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_domain_start +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_enable_wake_irq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_genpd_set_performance_state +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_get_subsys_data +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_add +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_attach_genpd +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_cpumask_remove_table +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_detach_genpd +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_disable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_enable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_find_freq_ceil +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_find_freq_ceil_by_volt +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_find_freq_exact +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_find_freq_floor +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_find_level_exact +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_free_cpufreq_table +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_get_freq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_get_level +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_get_max_clock_latency +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_get_max_transition_latency +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_get_max_volt_latency +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_get_opp_count +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_get_opp_table +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_get_sharing_cpus +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_get_suspend_opp_freq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_get_voltage +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_init_cpufreq_table +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_is_turbo +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_put_clkname +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_put_opp_table +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_put_prop_name +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_put_regulators +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_put_supported_hw +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_register_set_opp_helper +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_remove +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_remove_all_dynamic +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_remove_table +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_set_clkname +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_set_prop_name +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_set_rate +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_set_regulators +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_set_sharing_cpus +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_set_supported_hw +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_opp_unregister_set_opp_helper +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_put_subsys_data +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_qos_add_ancestor_request +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_qos_expose_flags +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_qos_expose_latency_limit +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_qos_expose_latency_tolerance +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_qos_flags +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_qos_hide_flags +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_qos_hide_latency_limit +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_qos_hide_latency_tolerance +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_qos_update_user_latency_tolerance +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_set_dedicated_wake_irq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_pm_set_wake_irq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_queue_xmit_nit +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dev_set_name +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devfreq_cooling_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devfreq_cooling_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devfreq_event_add_edev +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devfreq_event_disable_edev +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devfreq_event_enable_edev +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devfreq_event_get_edev_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devfreq_event_get_edev_count +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devfreq_event_get_event +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devfreq_event_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devfreq_event_remove_edev +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devfreq_event_reset_event +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devfreq_event_set_event +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devfreq_get_devfreq_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_add +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_add_groups +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_add_properties +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_attach +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_change_owner +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_connection_add +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_connection_find +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_connection_find_match +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_connection_remove +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_create +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_create_file +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_create_vargs +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_create_with_groups +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_del +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_destroy +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_dma_supported +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_find_child +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_find_child_by_name +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_for_each_child +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_for_each_child_reverse +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_get_child_node_count +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_get_dma_attr +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_get_match_data +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_get_named_child_node +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_get_next_child_node +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_get_phy_mode +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_init_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_initialize +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_link_add +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_link_del +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_link_remove +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_match_any +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_match_devt +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_match_fwnode +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_match_name +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_match_of_node +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_move +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_node_to_regmap +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_pm_wait_for_dev +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_property_match_string +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_property_present +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_property_read_string +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_property_read_string_array +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_property_read_u16_array +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_property_read_u32_array +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_property_read_u64_array +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_property_read_u8_array +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_release_driver +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_remove_file_self +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_remove_groups +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_remove_properties +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_rename +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_reprobe +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_set_of_node_from_dev +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_set_wakeup_capable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_set_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_show_bool +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_show_int +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_show_ulong +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_store_bool +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_store_int +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_store_ulong +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_wakeup_disable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 device_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devices_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devices_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_alloc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_dpipe_action_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_dpipe_entry_ctx_append +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_dpipe_entry_ctx_close +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_dpipe_entry_ctx_prepare +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_dpipe_headers_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_dpipe_headers_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_dpipe_match_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_dpipe_table_counter_enabled +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_dpipe_table_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_dpipe_table_resource_set +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_dpipe_table_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_flash_update_begin_notify +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_flash_update_end_notify +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_flash_update_status_notify +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_fmsg_arr_pair_nest_end +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_fmsg_arr_pair_nest_start +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_fmsg_binary_pair_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_fmsg_bool_pair_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_fmsg_bool_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_fmsg_obj_nest_end +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_fmsg_obj_nest_start +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_fmsg_pair_nest_end +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_fmsg_pair_nest_start +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_fmsg_string_pair_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_fmsg_string_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_fmsg_u32_pair_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_fmsg_u32_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_fmsg_u64_pair_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_fmsg_u64_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_fmsg_u8_pair_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_fmsg_u8_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_free +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_health_report +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_health_reporter_create +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_health_reporter_destroy +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_health_reporter_priv +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_health_reporter_recovery_done +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_health_reporter_state_update +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_info_driver_name_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_info_serial_number_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_info_version_fixed_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_info_version_running_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_info_version_stored_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_is_reload_failed +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_net +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_net_set +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_param_driverinit_value_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_param_driverinit_value_set +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_param_value_changed +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_param_value_str_fill +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_params_publish +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_params_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_params_unpublish +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_params_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_port_attrs_pci_pf_set +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_port_attrs_pci_vf_set +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_port_attrs_set +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_port_param_driverinit_value_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_port_param_driverinit_value_set +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_port_param_value_changed +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_port_params_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_port_params_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_port_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_port_type_clear +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_port_type_eth_set +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_port_type_ib_set +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_port_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_region_create +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_region_destroy +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_region_snapshot_create +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_region_snapshot_id_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_reload_disable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_reload_enable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_resource_occ_get_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_resource_occ_get_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_resource_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_resource_size_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_resources_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_sb_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_sb_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_trap_ctx_priv +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_trap_report +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_traps_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_traps_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devlink_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_acpi_dev_add_driver_gpios +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_acpi_dev_remove_driver_gpios +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_acpi_dma_controller_free +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_acpi_dma_controller_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_add_action +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_clk_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_clk_bulk_get_all +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_clk_bulk_get_optional +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_clk_hw_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_clk_hw_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_clk_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_clk_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_devfreq_event_add_edev +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_devfreq_event_remove_edev +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_device_add_group +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_device_add_groups +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_device_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_device_remove_groups +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_extcon_dev_allocate +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_extcon_dev_free +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_extcon_dev_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_extcon_dev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_free_pages +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_free_percpu +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_fwnode_gpiod_get_index +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_fwnode_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_get_free_pages +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_gpio_free +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_gpio_request +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_gpio_request_one +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_gpiochip_add_data +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_gpiod_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_gpiod_get_array +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_gpiod_get_array_optional +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_gpiod_get_from_of_node +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_gpiod_get_index +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_gpiod_get_index_optional +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_gpiod_get_optional +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_gpiod_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_gpiod_put_array +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_gpiod_unhinge +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_hwmon_device_register_with_groups +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_hwmon_device_register_with_info +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_hwrng_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_hwspin_lock_free +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_hwspin_lock_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_hwspin_lock_request +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_hwspin_lock_request_specific +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_hwspin_lock_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_i2c_new_dummy_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_init_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_irq_alloc_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_irq_setup_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_kasprintf +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_kmalloc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_kmemdup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_kstrdup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_kstrdup_const +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_led_classdev_register_ext +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_led_classdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_mbox_controller_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_mbox_controller_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_mdiobus_alloc_size +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_mdiobus_free +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_memremap_pages +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_memunmap_pages +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_namespace_disable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_namespace_enable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_nvdimm_memremap +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_nvmem_cell_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_nvmem_device_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_nvmem_device_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_nvmem_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_of_led_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_of_phy_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_of_phy_get_by_index +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_of_phy_provider_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_of_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_pci_epc_destroy +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_phy_create +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_phy_destroy +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_phy_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_phy_optional_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_phy_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_pinctrl_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_pinctrl_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_pinctrl_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_pinctrl_register_and_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_pinctrl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_platform_ioremap_resource +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_platform_ioremap_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_power_supply_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_power_supply_register_no_ws +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_pwm_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_regmap_add_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_regmap_del_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_regmap_field_alloc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_regmap_field_free +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_regulator_bulk_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_regulator_bulk_unregister_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_regulator_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_regulator_get_optional +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_regulator_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_regulator_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_regulator_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_regulator_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_regulator_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_regulator_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_regulator_unregister_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_release_action +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_remove_action +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_request_free_mem_region +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_request_pci_bus_resources +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_reset_control_array_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_reset_controller_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_rtc_allocate_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_rtc_device_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_serdev_device_open +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_spi_mem_dirmap_create +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_spi_mem_dirmap_destroy +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_spi_register_controller +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_thermal_add_hwmon_sysfs +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_thermal_of_cooling_device_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_usb_get_phy +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_usb_get_phy_by_node +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_usb_get_phy_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_usb_put_phy +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devm_watchdog_register_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devprop_gpiochip_set_names +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devres_add +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devres_alloc_node +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devres_close_group +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devres_find +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devres_for_each_res +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devres_free +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devres_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devres_release +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devres_release_group +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devres_remove +EXPORT_SYMBOL_GPL vmlinux 0x00000000 devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x00000000 digsig_verify +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dio_end_io +EXPORT_SYMBOL_GPL vmlinux 0x00000000 direct_make_request +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dirty_writeback_interval +EXPORT_SYMBOL_GPL vmlinux 0x00000000 disable_hardirq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 disable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x00000000 disable_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 disk_get_part +EXPORT_SYMBOL_GPL vmlinux 0x00000000 disk_has_partitions +EXPORT_SYMBOL_GPL vmlinux 0x00000000 disk_map_sector_rcu +EXPORT_SYMBOL_GPL vmlinux 0x00000000 disk_part_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x00000000 disk_part_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 disk_part_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x00000000 display_timings_release +EXPORT_SYMBOL_GPL vmlinux 0x00000000 divider_get_val +EXPORT_SYMBOL_GPL vmlinux 0x00000000 divider_recalc_rate +EXPORT_SYMBOL_GPL vmlinux 0x00000000 divider_ro_round_rate_parent +EXPORT_SYMBOL_GPL vmlinux 0x00000000 divider_round_rate_parent +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dm_accept_partial_bio +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dm_bio_from_per_bio_data +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dm_bio_get_target_bio_nr +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dm_device_name +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dm_disk +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dm_get_dev_t +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dm_get_md +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dm_get_queue_limits +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dm_get_reserved_bio_based_ios +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dm_get_reserved_rq_based_ios +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dm_get_table_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dm_hold +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dm_internal_resume +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dm_internal_resume_fast +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dm_internal_suspend_fast +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dm_internal_suspend_noflush +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dm_noflush_suspending +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dm_path_uevent +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dm_per_bio_data +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dm_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dm_report_zones_cb +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dm_send_uevents +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dm_set_target_max_io_len +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dm_suspended +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dm_table_add_target_callbacks +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dm_table_device_name +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dm_table_set_type +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dma_async_device_channel_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dma_async_device_channel_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dma_buf_attach +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dma_buf_begin_cpu_access +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dma_buf_detach +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dma_buf_dynamic_attach +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dma_buf_end_cpu_access +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dma_buf_export +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dma_buf_fd +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dma_buf_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dma_buf_map_attachment +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dma_buf_mmap +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dma_buf_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dma_buf_unmap_attachment +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dma_buf_vmap +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dma_buf_vunmap +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dma_can_mmap +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dma_get_any_slave_channel +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dma_get_merge_boundary +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dma_get_slave_caps +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dma_get_slave_channel +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dma_max_mapping_size +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dma_release_channel +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dma_request_chan +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dma_request_chan_by_mask +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dma_request_slave_channel +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dma_resv_get_fences_rcu +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dma_resv_test_signaled_rcu +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dma_resv_wait_timeout_rcu +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dma_run_dependencies +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dma_wait_for_async_tx +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dmaengine_desc_attach_metadata +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dmaengine_desc_get_metadata_ptr +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dmaengine_desc_set_metadata_len +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dmaengine_unmap_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dmar_platform_optin +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dmi_kobj +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dmi_match +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dmi_memdev_handle +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dmi_memdev_name +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dmi_memdev_size +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dmi_memdev_type +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dmi_walk +EXPORT_SYMBOL_GPL vmlinux 0x00000000 do_exit +EXPORT_SYMBOL_GPL vmlinux 0x00000000 do_machine_check +EXPORT_SYMBOL_GPL vmlinux 0x00000000 do_splice_from +EXPORT_SYMBOL_GPL vmlinux 0x00000000 do_splice_to +EXPORT_SYMBOL_GPL vmlinux 0x00000000 do_take_over_console +EXPORT_SYMBOL_GPL vmlinux 0x00000000 do_tcp_sendpages +EXPORT_SYMBOL_GPL vmlinux 0x00000000 do_trace_rcu_torture_read +EXPORT_SYMBOL_GPL vmlinux 0x00000000 do_truncate +EXPORT_SYMBOL_GPL vmlinux 0x00000000 do_unbind_con_driver +EXPORT_SYMBOL_GPL vmlinux 0x00000000 do_unregister_con_driver +EXPORT_SYMBOL_GPL vmlinux 0x00000000 do_xdp_generic +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dpm_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dpm_resume_end +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dpm_resume_start +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dpm_suspend_end +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dpm_suspend_start +EXPORT_SYMBOL_GPL vmlinux 0x00000000 drain_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x00000000 driver_attach +EXPORT_SYMBOL_GPL vmlinux 0x00000000 driver_create_file +EXPORT_SYMBOL_GPL vmlinux 0x00000000 driver_find +EXPORT_SYMBOL_GPL vmlinux 0x00000000 driver_find_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 driver_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 driver_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x00000000 driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dst_cache_destroy +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dst_cache_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dst_cache_get_ip4 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dst_cache_get_ip6 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dst_cache_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dst_cache_set_ip4 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dst_cache_set_ip6 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dummy_con +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dummy_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dw8250_setup_port +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dw_pcie_find_capability +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dw_pcie_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dw_pcie_host_deinit +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dw_pcie_host_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dw_pcie_link_set_max_speed +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dw_pcie_link_set_n_fts +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dw_pcie_msi_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dw_pcie_read +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dw_pcie_read_dbi +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dw_pcie_setup_rc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dw_pcie_upconfig_setup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dw_pcie_wait_for_link +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dw_pcie_write +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dw_pcie_write_dbi +EXPORT_SYMBOL_GPL vmlinux 0x00000000 dynevent_create +EXPORT_SYMBOL_GPL vmlinux 0x00000000 e820__mapped_any +EXPORT_SYMBOL_GPL vmlinux 0x00000000 e820__mapped_raw_any +EXPORT_SYMBOL_GPL vmlinux 0x00000000 each_symbol_section +EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_device_add_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_device_alloc_ctl_info +EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_device_alloc_index +EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_device_del_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_device_free_ctl_info +EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_device_handle_ce_count +EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_device_handle_ue_count +EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_get_owner +EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_get_report_status +EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_get_sysfs_subsys +EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_has_mcs +EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_layer_name +EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_mc_add_mc_with_groups +EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_mc_alloc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_mc_del_mc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_mc_find_csrow_by_page +EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_mc_free +EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_mc_handle_error +EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_mem_types +EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_mod_work +EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_op_state +EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_pci_add_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_pci_alloc_ctl_info +EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_pci_alloc_index +EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_pci_create_generic_ctl +EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_pci_del_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_pci_free_ctl_info +EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_pci_handle_npe +EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_pci_handle_pe +EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_pci_release_generic_ctl +EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_queue_work +EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_raw_mc_handle_error +EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_set_report_status +EXPORT_SYMBOL_GPL vmlinux 0x00000000 edac_stop_work +EXPORT_SYMBOL_GPL vmlinux 0x00000000 edid_info +EXPORT_SYMBOL_GPL vmlinux 0x00000000 efi_capsule_supported +EXPORT_SYMBOL_GPL vmlinux 0x00000000 efi_capsule_update +EXPORT_SYMBOL_GPL vmlinux 0x00000000 efi_mm +EXPORT_SYMBOL_GPL vmlinux 0x00000000 efi_query_variable_store +EXPORT_SYMBOL_GPL vmlinux 0x00000000 efivar_entry_add +EXPORT_SYMBOL_GPL vmlinux 0x00000000 efivar_entry_delete +EXPORT_SYMBOL_GPL vmlinux 0x00000000 efivar_entry_find +EXPORT_SYMBOL_GPL vmlinux 0x00000000 efivar_entry_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 efivar_entry_iter +EXPORT_SYMBOL_GPL vmlinux 0x00000000 efivar_entry_iter_begin +EXPORT_SYMBOL_GPL vmlinux 0x00000000 efivar_entry_iter_end +EXPORT_SYMBOL_GPL vmlinux 0x00000000 efivar_entry_remove +EXPORT_SYMBOL_GPL vmlinux 0x00000000 efivar_entry_set +EXPORT_SYMBOL_GPL vmlinux 0x00000000 efivar_entry_set_get_size +EXPORT_SYMBOL_GPL vmlinux 0x00000000 efivar_entry_set_safe +EXPORT_SYMBOL_GPL vmlinux 0x00000000 efivar_entry_size +EXPORT_SYMBOL_GPL vmlinux 0x00000000 efivar_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 efivar_run_worker +EXPORT_SYMBOL_GPL vmlinux 0x00000000 efivar_sysfs_list +EXPORT_SYMBOL_GPL vmlinux 0x00000000 efivar_validate +EXPORT_SYMBOL_GPL vmlinux 0x00000000 efivar_variable_is_removable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 efivar_work +EXPORT_SYMBOL_GPL vmlinux 0x00000000 efivars_kobject +EXPORT_SYMBOL_GPL vmlinux 0x00000000 efivars_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 efivars_sysfs_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 efivars_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ehci_adjust_port_wakeup_flags +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ehci_cf_port_reset_rwsem +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ehci_handshake +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ehci_hub_control +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ehci_init_driver +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ehci_reset +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ehci_resume +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ehci_setup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ehci_suspend +EXPORT_SYMBOL_GPL vmlinux 0x00000000 elfcorehdr_addr +EXPORT_SYMBOL_GPL vmlinux 0x00000000 elv_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 elv_rqhash_add +EXPORT_SYMBOL_GPL vmlinux 0x00000000 elv_rqhash_del +EXPORT_SYMBOL_GPL vmlinux 0x00000000 elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 emergency_restart +EXPORT_SYMBOL_GPL vmlinux 0x00000000 enable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x00000000 enable_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 encrypt_blob +EXPORT_SYMBOL_GPL vmlinux 0x00000000 errata +EXPORT_SYMBOL_GPL vmlinux 0x00000000 errno_to_blk_status +EXPORT_SYMBOL_GPL vmlinux 0x00000000 erst_clear +EXPORT_SYMBOL_GPL vmlinux 0x00000000 erst_disable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 erst_get_record_count +EXPORT_SYMBOL_GPL vmlinux 0x00000000 erst_get_record_id_begin +EXPORT_SYMBOL_GPL vmlinux 0x00000000 erst_get_record_id_end +EXPORT_SYMBOL_GPL vmlinux 0x00000000 erst_get_record_id_next +EXPORT_SYMBOL_GPL vmlinux 0x00000000 erst_read +EXPORT_SYMBOL_GPL vmlinux 0x00000000 erst_write +EXPORT_SYMBOL_GPL vmlinux 0x00000000 espintcp_push_skb +EXPORT_SYMBOL_GPL vmlinux 0x00000000 espintcp_queue_out +EXPORT_SYMBOL_GPL vmlinux 0x00000000 event_triggers_call +EXPORT_SYMBOL_GPL vmlinux 0x00000000 event_triggers_post_call +EXPORT_SYMBOL_GPL vmlinux 0x00000000 eventfd_ctx_fdget +EXPORT_SYMBOL_GPL vmlinux 0x00000000 eventfd_ctx_fileget +EXPORT_SYMBOL_GPL vmlinux 0x00000000 eventfd_ctx_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 eventfd_ctx_remove_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x00000000 eventfd_fget +EXPORT_SYMBOL_GPL vmlinux 0x00000000 eventfd_signal +EXPORT_SYMBOL_GPL vmlinux 0x00000000 events_sysfs_show +EXPORT_SYMBOL_GPL vmlinux 0x00000000 evict_inodes +EXPORT_SYMBOL_GPL vmlinux 0x00000000 evm_inode_init_security +EXPORT_SYMBOL_GPL vmlinux 0x00000000 evm_set_key +EXPORT_SYMBOL_GPL vmlinux 0x00000000 evm_verifyxattr +EXPORT_SYMBOL_GPL vmlinux 0x00000000 evtchn_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 evtchn_make_refcounted +EXPORT_SYMBOL_GPL vmlinux 0x00000000 evtchn_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ex_handler_fault +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ex_handler_fprestore +EXPORT_SYMBOL_GPL vmlinux 0x00000000 execute_in_process_context +EXPORT_SYMBOL_GPL vmlinux 0x00000000 exportfs_decode_fh +EXPORT_SYMBOL_GPL vmlinux 0x00000000 exportfs_encode_fh +EXPORT_SYMBOL_GPL vmlinux 0x00000000 exportfs_encode_inode_fh +EXPORT_SYMBOL_GPL vmlinux 0x00000000 extcon_dev_free +EXPORT_SYMBOL_GPL vmlinux 0x00000000 extcon_dev_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 extcon_dev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 extcon_find_edev_by_node +EXPORT_SYMBOL_GPL vmlinux 0x00000000 extcon_get_edev_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0x00000000 extcon_get_extcon_dev +EXPORT_SYMBOL_GPL vmlinux 0x00000000 extcon_get_property +EXPORT_SYMBOL_GPL vmlinux 0x00000000 extcon_get_property_capability +EXPORT_SYMBOL_GPL vmlinux 0x00000000 extcon_get_state +EXPORT_SYMBOL_GPL vmlinux 0x00000000 extcon_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 extcon_register_notifier_all +EXPORT_SYMBOL_GPL vmlinux 0x00000000 extcon_set_property +EXPORT_SYMBOL_GPL vmlinux 0x00000000 extcon_set_property_capability +EXPORT_SYMBOL_GPL vmlinux 0x00000000 extcon_set_property_sync +EXPORT_SYMBOL_GPL vmlinux 0x00000000 extcon_set_state +EXPORT_SYMBOL_GPL vmlinux 0x00000000 extcon_set_state_sync +EXPORT_SYMBOL_GPL vmlinux 0x00000000 extcon_sync +EXPORT_SYMBOL_GPL vmlinux 0x00000000 extcon_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 extcon_unregister_notifier_all +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ezx_pcap_read +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ezx_pcap_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ezx_pcap_write +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fanout_mutex +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fat_add_entries +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fat_alloc_new_dir +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fat_attach +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fat_build_inode +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fat_detach +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fat_dir_empty +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fat_fill_super +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fat_flush_inodes +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fat_free_clusters +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fat_get_dotdot_entry +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fat_getattr +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fat_remove_entries +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fat_scan +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fat_search_long +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fat_setattr +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fat_sync_inode +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fat_time_unix2fat +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fat_truncate_time +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fat_update_time +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fb_bl_default_curve +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fb_deferred_io_fsync +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fb_deferred_io_open +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fb_destroy_modelist +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fb_mode_option +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fb_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fb_videomode_from_videomode +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fib4_rule_default +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fib6_check_nexthop +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fib6_get_table +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fib6_info_destroy_rcu +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fib6_new_table +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fib6_rule_default +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fib_add_nexthop +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fib_alias_hw_flags_set +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fib_info_nh_uses_dev +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fib_new_table +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fib_nexthop_info +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fib_nh_common_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fib_nh_common_release +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fib_nl_delrule +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fib_nl_newrule +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fib_rule_matchall +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fib_rules_dump +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fib_rules_seq_read +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fib_rules_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fib_table_lookup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 filter_match_preds +EXPORT_SYMBOL_GPL vmlinux 0x00000000 find_asymmetric_key +EXPORT_SYMBOL_GPL vmlinux 0x00000000 find_extend_vma +EXPORT_SYMBOL_GPL vmlinux 0x00000000 find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0x00000000 find_iova +EXPORT_SYMBOL_GPL vmlinux 0x00000000 find_mci_by_dev +EXPORT_SYMBOL_GPL vmlinux 0x00000000 find_module +EXPORT_SYMBOL_GPL vmlinux 0x00000000 find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x00000000 find_symbol +EXPORT_SYMBOL_GPL vmlinux 0x00000000 find_vpid +EXPORT_SYMBOL_GPL vmlinux 0x00000000 firmware_config_table +EXPORT_SYMBOL_GPL vmlinux 0x00000000 firmware_kobj +EXPORT_SYMBOL_GPL vmlinux 0x00000000 firmware_request_cache +EXPORT_SYMBOL_GPL vmlinux 0x00000000 firmware_request_nowarn +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fixed_percpu_data +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fixed_phy_add +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fixed_phy_change_carrier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fixed_phy_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fixed_phy_register_with_gpiod +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fixed_phy_set_link_update +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fixed_phy_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fixup_user_fault +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fl6_merge_options +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fl6_update_dst +EXPORT_SYMBOL_GPL vmlinux 0x00000000 flow_indr_add_block_cb +EXPORT_SYMBOL_GPL vmlinux 0x00000000 flow_indr_block_call +EXPORT_SYMBOL_GPL vmlinux 0x00000000 flow_indr_block_cb_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 flow_indr_block_cb_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 flow_indr_del_block_cb +EXPORT_SYMBOL_GPL vmlinux 0x00000000 flush_delayed_fput +EXPORT_SYMBOL_GPL vmlinux 0x00000000 flush_work +EXPORT_SYMBOL_GPL vmlinux 0x00000000 for_each_kernel_tracepoint +EXPORT_SYMBOL_GPL vmlinux 0x00000000 force_irqthreads +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fork_usermode_blob +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fpregs_assert_state_consistent +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fpregs_mark_activate +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fpstate_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fpu_kernel_xstate_size +EXPORT_SYMBOL_GPL vmlinux 0x00000000 free_fib_info +EXPORT_SYMBOL_GPL vmlinux 0x00000000 free_iova +EXPORT_SYMBOL_GPL vmlinux 0x00000000 free_iova_fast +EXPORT_SYMBOL_GPL vmlinux 0x00000000 free_percpu +EXPORT_SYMBOL_GPL vmlinux 0x00000000 free_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x00000000 freezer_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x00000000 freezer_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0x00000000 freq_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 freq_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x00000000 freq_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 freq_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x00000000 freq_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fs_dax_get_by_bdev +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fs_ftype_to_dtype +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fs_kobj +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fs_umode_to_dtype +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fs_umode_to_ftype +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fscrypt_drop_inode +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fscrypt_file_open +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fscrypt_fname_siphash +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fscrypt_get_symlink +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fscrypt_ioctl_add_key +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fscrypt_ioctl_get_key_status +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fscrypt_ioctl_get_policy_ex +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fscrypt_ioctl_remove_key +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fscrypt_ioctl_remove_key_all_users +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fscrypt_match_name +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fsl_mc_device_group +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fsnotify +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fsnotify_add_mark +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fsnotify_alloc_group +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fsnotify_destroy_mark +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fsnotify_find_mark +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fsnotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fsnotify_get_group +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fsnotify_init_mark +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fsnotify_put_group +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fsnotify_put_mark +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fsnotify_wait_marks_destroyed +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fsstack_copy_attr_all +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fsverity_cleanup_inode +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fsverity_enqueue_verify_work +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fsverity_file_open +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fsverity_ioctl_enable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fsverity_ioctl_measure +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fsverity_prepare_setattr +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fsverity_verify_bio +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fsverity_verify_page +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ftrace_dump +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ftrace_ops_set_global_filter +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ftrace_set_filter +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ftrace_set_filter_ip +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ftrace_set_global_filter +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ftrace_set_global_notrace +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ftrace_set_notrace +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fuse_abort_conn +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fuse_conn_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fuse_conn_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fuse_conn_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fuse_dev_alloc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fuse_dev_alloc_install +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fuse_dev_fiq_ops +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fuse_dev_free +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fuse_dev_install +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fuse_dev_operations +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fuse_dev_release +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fuse_direct_io +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fuse_do_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fuse_do_open +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fuse_file_poll +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fuse_fill_super_common +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fuse_free_conn +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fuse_get_unique +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fuse_kill_sb_anon +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fuse_len_args +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fuse_request_end +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fuse_send_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fuse_simple_background +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fuse_sync_release +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fw_fallback_config +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fwnode_connection_find_match +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fwnode_count_parents +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fwnode_create_software_node +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fwnode_device_is_available +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fwnode_find_reference +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fwnode_get_named_child_node +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fwnode_get_named_gpiod +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fwnode_get_next_available_child_node +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fwnode_get_next_child_node +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fwnode_get_next_parent +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fwnode_get_nth_parent +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fwnode_get_parent +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fwnode_get_phy_mode +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fwnode_gpiod_get_index +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fwnode_graph_get_endpoint_by_id +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fwnode_graph_get_next_endpoint +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fwnode_graph_get_port_parent +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fwnode_graph_get_remote_endpoint +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fwnode_graph_get_remote_node +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fwnode_graph_get_remote_port +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fwnode_graph_get_remote_port_parent +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fwnode_handle_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fwnode_handle_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fwnode_property_get_reference_args +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fwnode_property_match_string +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fwnode_property_present +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fwnode_property_read_string +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fwnode_property_read_string_array +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fwnode_property_read_u16_array +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fwnode_property_read_u32_array +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fwnode_property_read_u64_array +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fwnode_property_read_u8_array +EXPORT_SYMBOL_GPL vmlinux 0x00000000 fwnode_remove_software_node +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gcd +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gdt_page +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gen10g_config_aneg +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gen_pool_avail +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gen_pool_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gen_pool_size +EXPORT_SYMBOL_GPL vmlinux 0x00000000 generic_access_phys +EXPORT_SYMBOL_GPL vmlinux 0x00000000 generic_device_group +EXPORT_SYMBOL_GPL vmlinux 0x00000000 generic_fh_to_dentry +EXPORT_SYMBOL_GPL vmlinux 0x00000000 generic_fh_to_parent +EXPORT_SYMBOL_GPL vmlinux 0x00000000 generic_handle_irq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 generic_online_page +EXPORT_SYMBOL_GPL vmlinux 0x00000000 generic_xdp_tx +EXPORT_SYMBOL_GPL vmlinux 0x00000000 genphy_c45_an_config_aneg +EXPORT_SYMBOL_GPL vmlinux 0x00000000 genphy_c45_an_disable_aneg +EXPORT_SYMBOL_GPL vmlinux 0x00000000 genphy_c45_aneg_done +EXPORT_SYMBOL_GPL vmlinux 0x00000000 genphy_c45_check_and_restart_aneg +EXPORT_SYMBOL_GPL vmlinux 0x00000000 genphy_c45_config_aneg +EXPORT_SYMBOL_GPL vmlinux 0x00000000 genphy_c45_pma_read_abilities +EXPORT_SYMBOL_GPL vmlinux 0x00000000 genphy_c45_pma_setup_forced +EXPORT_SYMBOL_GPL vmlinux 0x00000000 genphy_c45_read_link +EXPORT_SYMBOL_GPL vmlinux 0x00000000 genphy_c45_read_lpa +EXPORT_SYMBOL_GPL vmlinux 0x00000000 genphy_c45_read_mdix +EXPORT_SYMBOL_GPL vmlinux 0x00000000 genphy_c45_read_pma +EXPORT_SYMBOL_GPL vmlinux 0x00000000 genphy_c45_read_status +EXPORT_SYMBOL_GPL vmlinux 0x00000000 genphy_c45_restart_aneg +EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_cached_msi_msg +EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_compat_bpf_fprog +EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_compat_sigset +EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_cpu_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_cpu_idle_time +EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_cpu_idle_time_us +EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_cpu_iowait_time_us +EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_dcookie +EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_dev_pagemap +EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_device_system_crosststamp +EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_governor_parent_kobj +EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_hwpoison_page +EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_itimerspec64 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_kernel_page +EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_kernel_pages +EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_max_files +EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_net_ns +EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_net_ns_by_fd +EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_net_ns_by_pid +EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_old_itimerspec32 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_old_timespec32 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_phys_to_machine +EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_pid_task +EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_state_synchronize_rcu +EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_task_pid +EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_timespec64 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_umwait_control_msr +EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0x00000000 get_xsave_addr +EXPORT_SYMBOL_GPL vmlinux 0x00000000 getboottime64 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gnttab_alloc_grant_references +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gnttab_alloc_pages +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gnttab_batch_copy +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gnttab_batch_map +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gnttab_cancel_free_callback +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gnttab_claim_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gnttab_dma_alloc_pages +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gnttab_dma_free_pages +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gnttab_empty_grant_references +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gnttab_end_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gnttab_end_foreign_access_ref +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gnttab_end_foreign_transfer +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gnttab_end_foreign_transfer_ref +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gnttab_foreach_grant_in_range +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gnttab_free_auto_xlat_frames +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gnttab_free_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gnttab_free_grant_references +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gnttab_free_pages +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gnttab_grant_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gnttab_grant_foreign_access_ref +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gnttab_grant_foreign_transfer +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gnttab_grant_foreign_transfer_ref +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gnttab_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gnttab_map_refs +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gnttab_max_grant_frames +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gnttab_pages_clear_private +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gnttab_pages_set_private +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gnttab_query_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gnttab_release_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gnttab_request_free_callback +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gnttab_setup_auto_xlat_frames +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gnttab_unmap_refs +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gnttab_unmap_refs_async +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gnttab_unmap_refs_sync +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gov_attr_set_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gov_attr_set_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gov_attr_set_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gov_update_cpu_data +EXPORT_SYMBOL_GPL vmlinux 0x00000000 governor_sysfs_ops +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpio_free +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpio_free_array +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpio_request +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpio_request_array +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpio_request_one +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpio_to_desc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiochip_add_data_with_key +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiochip_add_pin_range +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiochip_add_pingroup_range +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiochip_disable_irq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiochip_enable_irq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiochip_find +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiochip_free_own_desc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiochip_generic_config +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiochip_generic_free +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiochip_generic_request +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiochip_get_data +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiochip_irq_domain_activate +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiochip_irq_domain_deactivate +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiochip_irq_map +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiochip_irq_unmap +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiochip_irqchip_add_key +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiochip_irqchip_irq_valid +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiochip_is_requested +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiochip_line_is_irq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiochip_line_is_open_drain +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiochip_line_is_open_source +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiochip_line_is_persistent +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiochip_line_is_valid +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiochip_lock_as_irq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiochip_populate_parent_fwspec_fourcell +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiochip_populate_parent_fwspec_twocell +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiochip_relres_irq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiochip_remove +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiochip_remove_pin_ranges +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiochip_reqres_irq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiochip_request_own_desc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiochip_set_nested_irqchip +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiochip_unlock_as_irq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_add_hogs +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_add_lookup_table +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_count +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_direction_input +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_direction_output +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_direction_output_raw +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_export +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_export_link +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_get_array +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_get_array_optional +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_get_array_value +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_get_array_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_get_direction +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_get_index +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_get_index_optional +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_get_optional +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_get_raw_array_value +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_get_raw_array_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_get_raw_value +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_get_raw_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_get_value +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_get_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_is_active_low +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_put_array +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_remove_lookup_table +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_set_array_value +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_set_array_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_set_consumer_name +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_set_debounce +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_set_raw_array_value +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_set_raw_array_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_set_raw_value +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_set_raw_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_set_transitory +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_set_value +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_set_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_to_chip +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_toggle_active_low +EXPORT_SYMBOL_GPL vmlinux 0x00000000 gpiod_unexport +EXPORT_SYMBOL_GPL vmlinux 0x00000000 guid_gen +EXPORT_SYMBOL_GPL vmlinux 0x00000000 handle_bad_irq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 handle_fasteoi_irq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 handle_fasteoi_nmi +EXPORT_SYMBOL_GPL vmlinux 0x00000000 handle_level_irq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 handle_mm_fault +EXPORT_SYMBOL_GPL vmlinux 0x00000000 handle_nested_irq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 handle_simple_irq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 handle_untracked_irq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hash_algo_name +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hash_digest_size +EXPORT_SYMBOL_GPL vmlinux 0x00000000 have_governor_per_policy +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hest_disable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hibernation_set_ops +EXPORT_SYMBOL_GPL vmlinux 0x00000000 housekeeping_affine +EXPORT_SYMBOL_GPL vmlinux 0x00000000 housekeeping_any_cpu +EXPORT_SYMBOL_GPL vmlinux 0x00000000 housekeeping_cpumask +EXPORT_SYMBOL_GPL vmlinux 0x00000000 housekeeping_enabled +EXPORT_SYMBOL_GPL vmlinux 0x00000000 housekeeping_overridden +EXPORT_SYMBOL_GPL vmlinux 0x00000000 housekeeping_test_cpu +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hpet_mask_rtc_irq_bit +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hpet_register_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hpet_rtc_dropped_irq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hpet_rtc_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hpet_rtc_timer_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hpet_set_alarm_time +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hpet_set_periodic_freq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hpet_set_rtc_irq_bit +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hpet_unregister_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hrtimer_active +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hrtimer_forward +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hrtimer_init_sleeper +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hrtimer_resolution +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hrtimer_sleeper_start_expires +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hrtimer_start_range_ns +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hugetlb_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hugetlb_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hv_alloc_hyperv_page +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hv_alloc_hyperv_zeroed_page +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hv_free_hyperv_page +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hv_get_tsc_page +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hv_hypercall_pg +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hv_init_clocksource +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hv_is_hibernation_supported +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hv_is_hyperv_initialized +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hv_max_vp_index +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hv_read_reference_counter +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hv_remove_crash_handler +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hv_remove_kexec_handler +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hv_remove_stimer0_irq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hv_remove_vmbus_irq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hv_setup_crash_handler +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hv_setup_kexec_handler +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hv_setup_stimer0_irq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hv_setup_vmbus_irq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hv_stimer0_isr +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hv_stimer_alloc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hv_stimer_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hv_stimer_free +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hv_stimer_global_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hv_stimer_legacy_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hv_stimer_legacy_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hv_vp_assist_page +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hv_vp_index +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hvc_alloc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hvc_instantiate +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hvc_kick +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hvc_poll +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hvc_remove +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hw_breakpoint_restore +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hwmon_device_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hwmon_device_register_with_groups +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hwmon_device_register_with_info +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hwpoison_filter +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hwpoison_filter_dev_major +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hwpoison_filter_dev_minor +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hwpoison_filter_enable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hwpoison_filter_flags_mask +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hwpoison_filter_flags_value +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hwpoison_filter_memcg +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hwrng_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hwspin_lock_free +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hwspin_lock_get_id +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hwspin_lock_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hwspin_lock_request +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hwspin_lock_request_specific +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hwspin_lock_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hypercall_page +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hyperv_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hyperv_fill_flush_guest_mapping_list +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hyperv_flush_guest_mapping +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hyperv_flush_guest_mapping_range +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hyperv_pcpu_input_arg +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hyperv_report_panic +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hyperv_report_panic_msg +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hyperv_stop_tsc_emulation +EXPORT_SYMBOL_GPL vmlinux 0x00000000 hypervisor_kobj +EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_acpi_find_adapter_by_handle +EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_acpi_find_bus_speed +EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_acpi_get_i2c_resource +EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_acpi_new_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_adapter_depth +EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_adapter_type +EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_add_numbered_adapter +EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_client_type +EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_dw_prepare_clk +EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_dw_probe +EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_dw_read_comp_param +EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_generic_scl_recovery +EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_get_dma_safe_msg_buf +EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_handle_smbus_host_notify +EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_match_id +EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_new_ancillary_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_new_client_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_new_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_new_dummy_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_new_probed_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_new_scanned_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_parse_fw_timings +EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_probe_func_quick_read +EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_put_dma_safe_msg_buf +EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_recover_bus +EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_setup_smbus_alert +EXPORT_SYMBOL_GPL vmlinux 0x00000000 i2c_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ibft_addr +EXPORT_SYMBOL_GPL vmlinux 0x00000000 idr_alloc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 idr_alloc_u32 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 idr_find +EXPORT_SYMBOL_GPL vmlinux 0x00000000 idr_remove +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ima_file_check +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ima_file_hash +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet6_csk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet6_csk_xmit +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet6_destroy_sock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet6_hash +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_csk_clone_lock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_csk_compat_getsockopt +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_csk_compat_setsockopt +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_csk_route_child_sock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_csk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_ehash_locks_alloc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_ehash_nolisten +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_getpeer +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_hash +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_hashinfo2_init_mod +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_hashinfo_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_peer_base_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_putpeer +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_send_prepare +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_twsk_purge +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_twsk_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inet_unhash +EXPORT_SYMBOL_GPL vmlinux 0x00000000 init_dummy_netdev +EXPORT_SYMBOL_GPL vmlinux 0x00000000 init_iova_domain +EXPORT_SYMBOL_GPL vmlinux 0x00000000 init_iova_flush_queue +EXPORT_SYMBOL_GPL vmlinux 0x00000000 init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x00000000 init_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x00000000 init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0x00000000 init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0x00000000 injectm +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inode_congested +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inode_dax +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inode_sb_list_add +EXPORT_SYMBOL_GPL vmlinux 0x00000000 input_class +EXPORT_SYMBOL_GPL vmlinux 0x00000000 input_event_from_user +EXPORT_SYMBOL_GPL vmlinux 0x00000000 input_event_to_user +EXPORT_SYMBOL_GPL vmlinux 0x00000000 input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0x00000000 input_ff_destroy +EXPORT_SYMBOL_GPL vmlinux 0x00000000 input_ff_effect_from_user +EXPORT_SYMBOL_GPL vmlinux 0x00000000 input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0x00000000 input_ff_event +EXPORT_SYMBOL_GPL vmlinux 0x00000000 input_ff_flush +EXPORT_SYMBOL_GPL vmlinux 0x00000000 input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0x00000000 insert_resource +EXPORT_SYMBOL_GPL vmlinux 0x00000000 int_pow +EXPORT_SYMBOL_GPL vmlinux 0x00000000 intel_iommu_enabled +EXPORT_SYMBOL_GPL vmlinux 0x00000000 intel_iommu_gfx_mapped +EXPORT_SYMBOL_GPL vmlinux 0x00000000 intel_pt_handle_vmx +EXPORT_SYMBOL_GPL vmlinux 0x00000000 intel_pt_validate_cap +EXPORT_SYMBOL_GPL vmlinux 0x00000000 intel_pt_validate_hw_cap +EXPORT_SYMBOL_GPL vmlinux 0x00000000 intel_svm_bind_mm +EXPORT_SYMBOL_GPL vmlinux 0x00000000 intel_svm_is_pasid_valid +EXPORT_SYMBOL_GPL vmlinux 0x00000000 intel_svm_unbind_mm +EXPORT_SYMBOL_GPL vmlinux 0x00000000 interval_tree_insert +EXPORT_SYMBOL_GPL vmlinux 0x00000000 interval_tree_iter_first +EXPORT_SYMBOL_GPL vmlinux 0x00000000 interval_tree_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x00000000 interval_tree_remove +EXPORT_SYMBOL_GPL vmlinux 0x00000000 invalidate_bh_lrus +EXPORT_SYMBOL_GPL vmlinux 0x00000000 invalidate_inode_pages2 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 invalidate_inode_pages2_range +EXPORT_SYMBOL_GPL vmlinux 0x00000000 inverse_translate +EXPORT_SYMBOL_GPL vmlinux 0x00000000 io_cgrp_subsys +EXPORT_SYMBOL_GPL vmlinux 0x00000000 io_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x00000000 io_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ioasid_alloc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ioasid_find +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ioasid_free +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ioasid_register_allocator +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ioasid_set_data +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ioasid_unregister_allocator +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iomap_bmap +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iomap_dio_iopoll +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iomap_dio_rw +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iomap_fiemap +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iomap_file_buffered_write +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iomap_file_unshare +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iomap_finish_ioends +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iomap_invalidatepage +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iomap_ioend_try_merge +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iomap_is_partially_uptodate +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iomap_migrate_page +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iomap_page_mkwrite +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iomap_readpage +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iomap_readpages +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iomap_releasepage +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iomap_seek_data +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iomap_seek_hole +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iomap_set_page_dirty +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iomap_sort_ioends +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iomap_swapfile_activate +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iomap_truncate_page +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iomap_writepage +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iomap_writepages +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iomap_zero_range +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_alloc_resv_region +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_attach_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_attach_group +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_aux_attach_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_aux_detach_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_aux_get_pasid +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_cache_invalidate +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_capable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_default_passthrough +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_detach_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_detach_group +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_dev_disable_feature +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_dev_enable_feature +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_dev_feature_enabled +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_dev_has_feature +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_device_link +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_device_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_device_sysfs_add +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_device_sysfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_device_unlink +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_domain_alloc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_domain_free +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_domain_get_attr +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_domain_set_attr +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_domain_window_disable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_domain_window_enable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_fwspec_add_ids +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_fwspec_free +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_fwspec_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_get_domain_for_dev +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_get_group_resv_regions +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_group_add_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_group_alloc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_group_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_group_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_group_get_by_id +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_group_get_iommudata +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_group_id +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_group_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_group_ref_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_group_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_group_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_group_set_iommudata +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_group_set_name +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_group_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_iova_to_phys +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_map +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_map_atomic +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_map_sg +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_map_sg_atomic +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_page_response +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_present +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_register_device_fault_handler +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_report_device_fault +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_set_fault_handler +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_sva_bind_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_sva_bind_gpasid +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_sva_get_pasid +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_sva_set_ops +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_sva_unbind_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_sva_unbind_gpasid +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_unmap +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_unmap_fast +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iommu_unregister_device_fault_handler +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ioremap_uc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iova_cache_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iova_cache_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ip4_datagram_release_cb +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ip6_append_data +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ip6_datagram_connect +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ip6_datagram_connect_v6_only +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ip6_datagram_recv_ctl +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ip6_datagram_release_cb +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ip6_datagram_send_ctl +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ip6_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ip6_dst_lookup_flow +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ip6_flush_pending_frames +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ip6_input +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ip6_pol_route +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ip6_push_pending_frames +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ip6_redirect +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ip6_route_input_lookup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ip6_route_lookup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ip6_route_output_flags +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ip6_route_output_flags_noref +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ip6_sk_dst_lookup_flow +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ip6_sk_redirect +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ip6_sk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ip6_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ip_fib_metrics_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ip_local_out +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ip_route_output_key_hash +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ip_tunnel_get_stats64 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ip_tunnel_need_metadata +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ip_tunnel_unneed_metadata +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ip_valid_fib_dump_req +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iptunnel_handle_offloads +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iptunnel_metadata_reply +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iptunnel_xmit +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ipv4_redirect +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ipv4_sk_redirect +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ipv4_sk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ipv4_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ipv6_bpf_stub +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ipv6_dup_options +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ipv6_find_tlv +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ipv6_fixup_options +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ipv6_mod_enabled +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ipv6_opt_accepted +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ipv6_proxy_select_ident +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ipv6_recv_error +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ipv6_stub +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_alloc_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_bypass_register_consumer +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_bypass_register_producer +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_bypass_unregister_consumer +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_bypass_unregister_producer +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_chip_ack_parent +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_chip_disable_parent +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_chip_enable_parent +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_chip_eoi_parent +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_chip_get_parent_state +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_chip_mask_ack_parent +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_chip_mask_parent +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_chip_release_resources_parent +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_chip_request_resources_parent +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_chip_set_affinity_parent +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_chip_set_parent_state +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_chip_set_type_parent +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_chip_set_wake_parent +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_chip_unmask_parent +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_create_direct_mapping +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_create_fwspec_mapping +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_create_mapping +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_create_of_mapping +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_create_strict_mappings +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_dispose_mapping +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_domain_add_legacy +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_domain_add_simple +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_domain_alloc_irqs_parent +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_domain_associate +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_domain_associate_many +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_domain_check_msi_remap +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_domain_create_hierarchy +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_domain_free_fwnode +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_domain_free_irqs_common +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_domain_free_irqs_parent +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_domain_get_irq_data +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_domain_pop_irq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_domain_push_irq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_domain_remove +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_domain_reset_irq_data +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_domain_set_hwirq_and_chip +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_domain_simple_ops +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_domain_translate_onecell +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_domain_translate_twocell +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_domain_xlate_onecell +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_domain_xlate_onetwocell +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_domain_xlate_twocell +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_find_mapping +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_find_matching_fwspec +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_free_descs +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_from_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_gc_ack_set_bit +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_gc_mask_clr_bit +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_gc_mask_set_bit +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_generic_chip_ops +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_get_domain_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_get_irq_data +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_get_irqchip_state +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_get_percpu_devid_partition +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_modify_status +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_percpu_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_remapping_cap +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_remove_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_set_affinity_hint +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_set_affinity_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_set_chained_handler_and_data +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_set_chip_and_handler_name +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_set_default_host +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_set_irqchip_state +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_set_vcpu_affinity +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_setup_alt_chip +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_setup_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_to_pcap +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_wake_thread +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_work_queue +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_work_run +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irq_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irqchip_fwnode_ops +EXPORT_SYMBOL_GPL vmlinux 0x00000000 irqd_cfg +EXPORT_SYMBOL_GPL vmlinux 0x00000000 is_binary_blacklisted +EXPORT_SYMBOL_GPL vmlinux 0x00000000 is_current_mnt_ns +EXPORT_SYMBOL_GPL vmlinux 0x00000000 is_dock_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 is_hash_blacklisted +EXPORT_SYMBOL_GPL vmlinux 0x00000000 is_hpet_enabled +EXPORT_SYMBOL_GPL vmlinux 0x00000000 is_nvdimm_sync +EXPORT_SYMBOL_GPL vmlinux 0x00000000 is_skb_forwardable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 is_software_node +EXPORT_SYMBOL_GPL vmlinux 0x00000000 is_transparent_hugepage +EXPORT_SYMBOL_GPL vmlinux 0x00000000 isa_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x00000000 isa_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x00000000 iterate_mounts +EXPORT_SYMBOL_GPL vmlinux 0x00000000 itlb_multihit_kvm_mitigation +EXPORT_SYMBOL_GPL vmlinux 0x00000000 jump_label_rate_limit +EXPORT_SYMBOL_GPL vmlinux 0x00000000 jump_label_update_timeout +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kallsyms_lookup_name +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kallsyms_on_each_symbol +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kdb_get_kbd_char +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kdb_poll_funcs +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kdb_poll_idx +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kdb_printf +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kdb_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kdb_register_flags +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kdb_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kernel_fpu_begin +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kernel_fpu_end +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kernel_halt +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kernel_kobj +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kernel_power_off +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kernel_read_file +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kernel_read_file_from_fd +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kernel_read_file_from_path +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kernel_restart +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kernfs_find_and_get_ns +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kernfs_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kernfs_notify +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kernfs_path_from_node +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kernfs_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kexec_crash_loaded +EXPORT_SYMBOL_GPL vmlinux 0x00000000 key_being_used_for +EXPORT_SYMBOL_GPL vmlinux 0x00000000 key_set_timeout +EXPORT_SYMBOL_GPL vmlinux 0x00000000 key_type_asymmetric +EXPORT_SYMBOL_GPL vmlinux 0x00000000 key_type_encrypted +EXPORT_SYMBOL_GPL vmlinux 0x00000000 key_type_logon +EXPORT_SYMBOL_GPL vmlinux 0x00000000 key_type_trusted +EXPORT_SYMBOL_GPL vmlinux 0x00000000 key_type_user +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kfree_call_rcu +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kgdb_active +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kgdb_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kgdb_connected +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kgdb_register_io_module +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kgdb_register_nmi_console +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kgdb_schedule_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kgdb_unregister_io_module +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kgdb_unregister_nmi_console +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kick_all_cpus_sync +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kick_process +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kill_dax +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kill_dev_dax +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kill_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kill_pid_usb_asyncio +EXPORT_SYMBOL_GPL vmlinux 0x00000000 klist_add_before +EXPORT_SYMBOL_GPL vmlinux 0x00000000 klist_add_behind +EXPORT_SYMBOL_GPL vmlinux 0x00000000 klist_add_head +EXPORT_SYMBOL_GPL vmlinux 0x00000000 klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0x00000000 klist_del +EXPORT_SYMBOL_GPL vmlinux 0x00000000 klist_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x00000000 klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 klist_iter_init_node +EXPORT_SYMBOL_GPL vmlinux 0x00000000 klist_next +EXPORT_SYMBOL_GPL vmlinux 0x00000000 klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0x00000000 klist_prev +EXPORT_SYMBOL_GPL vmlinux 0x00000000 klist_remove +EXPORT_SYMBOL_GPL vmlinux 0x00000000 klp_enable_patch +EXPORT_SYMBOL_GPL vmlinux 0x00000000 klp_get_prev_state +EXPORT_SYMBOL_GPL vmlinux 0x00000000 klp_get_state +EXPORT_SYMBOL_GPL vmlinux 0x00000000 klp_shadow_alloc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 klp_shadow_free +EXPORT_SYMBOL_GPL vmlinux 0x00000000 klp_shadow_free_all +EXPORT_SYMBOL_GPL vmlinux 0x00000000 klp_shadow_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 klp_shadow_get_or_alloc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kmsg_dump_get_buffer +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kmsg_dump_get_line +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kmsg_dump_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kmsg_dump_rewind +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kmsg_dump_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kobj_ns_drop +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kobj_ns_grab_current +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kobj_sysfs_ops +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kobject_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kobject_get_path +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kobject_init_and_add +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kobject_move +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kobject_rename +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kprobe_event_cmd_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kprobe_event_delete +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kset_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kset_find_obj +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ksm_madvise +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kstrdup_quotable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kstrdup_quotable_cmdline +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kstrdup_quotable_file +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ksys_sync_helper +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kthread_cancel_delayed_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kthread_cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kthread_flush_work +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kthread_flush_worker +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kthread_freezable_should_stop +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kthread_mod_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kthread_park +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kthread_parkme +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kthread_queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kthread_queue_work +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kthread_should_park +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kthread_unpark +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kthread_worker_fn +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ktime_add_safe +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ktime_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ktime_get_boot_fast_ns +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ktime_get_coarse_with_offset +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ktime_get_mono_fast_ns +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ktime_get_raw +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ktime_get_raw_fast_ns +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ktime_get_real_fast_ns +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ktime_get_real_seconds +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ktime_get_resolution_ns +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ktime_get_seconds +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ktime_get_snapshot +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ktime_get_ts64 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ktime_get_with_offset +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ktime_mono_to_any +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kvm_arch_para_hints +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kvm_async_pf_task_wait +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kvm_async_pf_task_wake +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kvm_clock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kvm_para_available +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kvm_read_and_reset_pf_reason +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kvm_set_posted_intr_wakeup_handler +EXPORT_SYMBOL_GPL vmlinux 0x00000000 l1tf_mitigation +EXPORT_SYMBOL_GPL vmlinux 0x00000000 l1tf_vmx_mitigation +EXPORT_SYMBOL_GPL vmlinux 0x00000000 l3mdev_fib_table_by_index +EXPORT_SYMBOL_GPL vmlinux 0x00000000 l3mdev_fib_table_rcu +EXPORT_SYMBOL_GPL vmlinux 0x00000000 l3mdev_link_scope_lookup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 l3mdev_master_ifindex_rcu +EXPORT_SYMBOL_GPL vmlinux 0x00000000 l3mdev_master_upper_ifindex_by_index_rcu +EXPORT_SYMBOL_GPL vmlinux 0x00000000 l3mdev_update_flow +EXPORT_SYMBOL_GPL vmlinux 0x00000000 lcm +EXPORT_SYMBOL_GPL vmlinux 0x00000000 lcm_not_zero +EXPORT_SYMBOL_GPL vmlinux 0x00000000 lease_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 lease_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 leave_mm +EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_blink_set +EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_blink_set_oneshot +EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_classdev_notify_brightness_hw_changed +EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_classdev_register_ext +EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_classdev_resume +EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_classdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_classdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_colors +EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_compose_name +EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_get_default_pattern +EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_init_core +EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_set_brightness +EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_set_brightness_nopm +EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_set_brightness_nosleep +EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_set_brightness_sync +EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_stop_software_blink +EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_sysfs_disable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_sysfs_enable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_trigger_blink +EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_trigger_blink_oneshot +EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_trigger_event +EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_trigger_read +EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_trigger_register_simple +EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_trigger_remove +EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_trigger_rename_static +EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_trigger_set +EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_trigger_set_default +EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_trigger_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_trigger_unregister_simple +EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_trigger_write +EXPORT_SYMBOL_GPL vmlinux 0x00000000 led_update_brightness +EXPORT_SYMBOL_GPL vmlinux 0x00000000 leds_list +EXPORT_SYMBOL_GPL vmlinux 0x00000000 leds_list_lock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 linear_hugepage_index +EXPORT_SYMBOL_GPL vmlinux 0x00000000 list_lru_add +EXPORT_SYMBOL_GPL vmlinux 0x00000000 list_lru_count_node +EXPORT_SYMBOL_GPL vmlinux 0x00000000 list_lru_count_one +EXPORT_SYMBOL_GPL vmlinux 0x00000000 list_lru_del +EXPORT_SYMBOL_GPL vmlinux 0x00000000 list_lru_destroy +EXPORT_SYMBOL_GPL vmlinux 0x00000000 list_lru_isolate +EXPORT_SYMBOL_GPL vmlinux 0x00000000 list_lru_isolate_move +EXPORT_SYMBOL_GPL vmlinux 0x00000000 list_lru_walk_node +EXPORT_SYMBOL_GPL vmlinux 0x00000000 list_lru_walk_one +EXPORT_SYMBOL_GPL vmlinux 0x00000000 llist_add_batch +EXPORT_SYMBOL_GPL vmlinux 0x00000000 llist_del_first +EXPORT_SYMBOL_GPL vmlinux 0x00000000 llist_reverse_order +EXPORT_SYMBOL_GPL vmlinux 0x00000000 load_direct_gdt +EXPORT_SYMBOL_GPL vmlinux 0x00000000 load_fixmap_gdt +EXPORT_SYMBOL_GPL vmlinux 0x00000000 local_apic_timer_c2_ok +EXPORT_SYMBOL_GPL vmlinux 0x00000000 local_touch_nmi +EXPORT_SYMBOL_GPL vmlinux 0x00000000 lock_system_sleep +EXPORT_SYMBOL_GPL vmlinux 0x00000000 locks_alloc_lock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 locks_release_private +EXPORT_SYMBOL_GPL vmlinux 0x00000000 look_up_OID +EXPORT_SYMBOL_GPL vmlinux 0x00000000 lookup_address +EXPORT_SYMBOL_GPL vmlinux 0x00000000 lookup_address_in_mm +EXPORT_SYMBOL_GPL vmlinux 0x00000000 loop_backing_file +EXPORT_SYMBOL_GPL vmlinux 0x00000000 lp8788_read_byte +EXPORT_SYMBOL_GPL vmlinux 0x00000000 lp8788_read_multi_bytes +EXPORT_SYMBOL_GPL vmlinux 0x00000000 lp8788_update_bits +EXPORT_SYMBOL_GPL vmlinux 0x00000000 lp8788_write_byte +EXPORT_SYMBOL_GPL vmlinux 0x00000000 lpit_read_residency_count_address +EXPORT_SYMBOL_GPL vmlinux 0x00000000 lwtstate_free +EXPORT_SYMBOL_GPL vmlinux 0x00000000 lwtunnel_build_state +EXPORT_SYMBOL_GPL vmlinux 0x00000000 lwtunnel_cmp_encap +EXPORT_SYMBOL_GPL vmlinux 0x00000000 lwtunnel_encap_add_ops +EXPORT_SYMBOL_GPL vmlinux 0x00000000 lwtunnel_encap_del_ops +EXPORT_SYMBOL_GPL vmlinux 0x00000000 lwtunnel_fill_encap +EXPORT_SYMBOL_GPL vmlinux 0x00000000 lwtunnel_get_encap_size +EXPORT_SYMBOL_GPL vmlinux 0x00000000 lwtunnel_input +EXPORT_SYMBOL_GPL vmlinux 0x00000000 lwtunnel_output +EXPORT_SYMBOL_GPL vmlinux 0x00000000 lwtunnel_state_alloc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 lwtunnel_valid_encap_type +EXPORT_SYMBOL_GPL vmlinux 0x00000000 lwtunnel_valid_encap_type_attr +EXPORT_SYMBOL_GPL vmlinux 0x00000000 lwtunnel_xmit +EXPORT_SYMBOL_GPL vmlinux 0x00000000 lzo1x_1_compress +EXPORT_SYMBOL_GPL vmlinux 0x00000000 lzo1x_decompress_safe +EXPORT_SYMBOL_GPL vmlinux 0x00000000 lzorle1x_1_compress +EXPORT_SYMBOL_GPL vmlinux 0x00000000 machine_check_poll +EXPORT_SYMBOL_GPL vmlinux 0x00000000 map_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mark_mounts_for_expiry +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mark_tsc_unstable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 max8997_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x00000000 max8997_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0x00000000 max8997_read_reg +EXPORT_SYMBOL_GPL vmlinux 0x00000000 max8997_update_reg +EXPORT_SYMBOL_GPL vmlinux 0x00000000 max8997_write_reg +EXPORT_SYMBOL_GPL vmlinux 0x00000000 maxim_charger_calc_reg_current +EXPORT_SYMBOL_GPL vmlinux 0x00000000 maxim_charger_currents +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mbox_chan_received_data +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mbox_chan_txdone +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mbox_client_peek_data +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mbox_client_txdone +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mbox_controller_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mbox_controller_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mbox_flush +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mbox_free_channel +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mbox_request_channel +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mbox_request_channel_byname +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mbox_send_message +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mc146818_get_time +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mc146818_set_time +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mce_is_correctable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mce_is_memory_error +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mce_log +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mce_notify_irq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mce_register_decode_chain +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mce_register_injector_chain +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mce_unregister_decode_chain +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mce_unregister_injector_chain +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mce_usable_address +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mcsafe_key +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mctrl_gpio_disable_ms +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mctrl_gpio_enable_ms +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mctrl_gpio_free +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mctrl_gpio_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mctrl_gpio_get_outputs +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mctrl_gpio_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mctrl_gpio_init_noauto +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mctrl_gpio_set +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mctrl_gpio_to_gpiod +EXPORT_SYMBOL_GPL vmlinux 0x00000000 md5_zero_message_hash +EXPORT_SYMBOL_GPL vmlinux 0x00000000 md_allow_write +EXPORT_SYMBOL_GPL vmlinux 0x00000000 md_bitmap_copy_from_slot +EXPORT_SYMBOL_GPL vmlinux 0x00000000 md_bitmap_load +EXPORT_SYMBOL_GPL vmlinux 0x00000000 md_bitmap_resize +EXPORT_SYMBOL_GPL vmlinux 0x00000000 md_do_sync +EXPORT_SYMBOL_GPL vmlinux 0x00000000 md_find_rdev_nr_rcu +EXPORT_SYMBOL_GPL vmlinux 0x00000000 md_find_rdev_rcu +EXPORT_SYMBOL_GPL vmlinux 0x00000000 md_kick_rdev_from_array +EXPORT_SYMBOL_GPL vmlinux 0x00000000 md_new_event +EXPORT_SYMBOL_GPL vmlinux 0x00000000 md_rdev_clear +EXPORT_SYMBOL_GPL vmlinux 0x00000000 md_rdev_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 md_run +EXPORT_SYMBOL_GPL vmlinux 0x00000000 md_start +EXPORT_SYMBOL_GPL vmlinux 0x00000000 md_stop +EXPORT_SYMBOL_GPL vmlinux 0x00000000 md_stop_writes +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mddev_congested +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mddev_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mddev_init_writes_pending +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mddev_resume +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mddev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mddev_unlock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mdio_bus_exit +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mdio_bus_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mds_idle_clear +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mds_user_clear +EXPORT_SYMBOL_GPL vmlinux 0x00000000 memalloc_socks_key +EXPORT_SYMBOL_GPL vmlinux 0x00000000 memhp_auto_online +EXPORT_SYMBOL_GPL vmlinux 0x00000000 memory_add_physaddr_to_nid +EXPORT_SYMBOL_GPL vmlinux 0x00000000 memory_block_size_bytes +EXPORT_SYMBOL_GPL vmlinux 0x00000000 memory_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x00000000 memory_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0x00000000 memory_failure +EXPORT_SYMBOL_GPL vmlinux 0x00000000 memory_failure_queue +EXPORT_SYMBOL_GPL vmlinux 0x00000000 memremap_pages +EXPORT_SYMBOL_GPL vmlinux 0x00000000 memunmap_pages +EXPORT_SYMBOL_GPL vmlinux 0x00000000 metadata_dst_alloc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 metadata_dst_alloc_percpu +EXPORT_SYMBOL_GPL vmlinux 0x00000000 metadata_dst_free +EXPORT_SYMBOL_GPL vmlinux 0x00000000 metadata_dst_free_percpu +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mm_account_pinned_pages +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mm_kobj +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mm_unaccount_pinned_pages +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mmc_abort_tuning +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mmc_app_cmd +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mmc_cmdq_disable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mmc_cmdq_enable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mmc_get_ext_csd +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mmc_regulator_get_supply +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mmc_regulator_set_ocr +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mmc_regulator_set_vqmmc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mmc_send_status +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mmc_send_tuning +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mmc_switch +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mmput +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mmu_interval_notifier_insert +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mmu_interval_notifier_insert_locked +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mmu_interval_notifier_remove +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mmu_interval_read_begin +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mmu_notifier_get_locked +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mmu_notifier_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mmu_notifier_range_update_to_read_only +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mmu_notifier_synchronize +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mmu_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mnt_clone_write +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mnt_want_write +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mnt_want_write_file +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mod_delayed_work_on +EXPORT_SYMBOL_GPL vmlinux 0x00000000 modify_ftrace_direct +EXPORT_SYMBOL_GPL vmlinux 0x00000000 modify_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x00000000 module_mutex +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mpi_alloc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mpi_cmp +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mpi_cmp_ui +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mpi_free +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mpi_get_buffer +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mpi_get_nbits +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mpi_powm +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mpi_read_buffer +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mpi_read_from_buffer +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mpi_read_raw_data +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mpi_read_raw_from_sgl +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mpi_write_to_sgl +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ms_hyperv +EXPORT_SYMBOL_GPL vmlinux 0x00000000 msi_desc_to_pci_sysdata +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mtrr_state +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mutex_lock_io +EXPORT_SYMBOL_GPL vmlinux 0x00000000 mxcsr_feature_mask +EXPORT_SYMBOL_GPL vmlinux 0x00000000 n_tty_inherit_ops +EXPORT_SYMBOL_GPL vmlinux 0x00000000 name_to_dev_t +EXPORT_SYMBOL_GPL vmlinux 0x00000000 napi_hash_del +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ncsi_register_dev +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ncsi_start_dev +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ncsi_stop_dev +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ncsi_unregister_dev +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ncsi_vlan_rx_add_vid +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ncsi_vlan_rx_kill_vid +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nd_blk_memremap_flags +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nd_blk_region_provider_data +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nd_blk_region_set_provider_data +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nd_blk_region_to_dimm +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nd_cmd_bus_desc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nd_cmd_dimm_desc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nd_cmd_in_size +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nd_cmd_out_size +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nd_fletcher64 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nd_region_dev +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nd_region_provider_data +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nd_synchronize +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nd_tbl +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ndo_dflt_bridge_getlink +EXPORT_SYMBOL_GPL vmlinux 0x00000000 net_cls_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x00000000 net_cls_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0x00000000 net_dec_egress_queue +EXPORT_SYMBOL_GPL vmlinux 0x00000000 net_dec_ingress_queue +EXPORT_SYMBOL_GPL vmlinux 0x00000000 net_dm_hw_report +EXPORT_SYMBOL_GPL vmlinux 0x00000000 net_inc_egress_queue +EXPORT_SYMBOL_GPL vmlinux 0x00000000 net_inc_ingress_queue +EXPORT_SYMBOL_GPL vmlinux 0x00000000 net_namespace_list +EXPORT_SYMBOL_GPL vmlinux 0x00000000 net_ns_get_ownership +EXPORT_SYMBOL_GPL vmlinux 0x00000000 net_ns_type_operations +EXPORT_SYMBOL_GPL vmlinux 0x00000000 net_prio_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x00000000 net_prio_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0x00000000 net_rwsem +EXPORT_SYMBOL_GPL vmlinux 0x00000000 netdev_cmd_to_name +EXPORT_SYMBOL_GPL vmlinux 0x00000000 netdev_is_rx_handler_busy +EXPORT_SYMBOL_GPL vmlinux 0x00000000 netdev_rx_handler_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 netdev_rx_handler_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 netdev_set_default_ethtool_ops +EXPORT_SYMBOL_GPL vmlinux 0x00000000 netdev_walk_all_lower_dev +EXPORT_SYMBOL_GPL vmlinux 0x00000000 netdev_walk_all_lower_dev_rcu +EXPORT_SYMBOL_GPL vmlinux 0x00000000 netdev_walk_all_upper_dev_rcu +EXPORT_SYMBOL_GPL vmlinux 0x00000000 netlink_add_tap +EXPORT_SYMBOL_GPL vmlinux 0x00000000 netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0x00000000 netlink_remove_tap +EXPORT_SYMBOL_GPL vmlinux 0x00000000 netlink_strict_get_check +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nexthop_find_by_id +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nexthop_for_each_fib6_nh +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nexthop_free_rcu +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nexthop_select_path +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nf_checksum +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nf_checksum_partial +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nf_ct_hook +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nf_ct_zone_dflt +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nf_hook_entries_delete_raw +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nf_hook_entries_insert_raw +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nf_ip_route +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nf_ipv6_ops +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nf_log_buf_add +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nf_log_buf_close +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nf_log_buf_open +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nf_logger_find_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nf_logger_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nf_logger_request_module +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nf_nat_hook +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nf_queue +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nf_queue_entry_get_refs +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nf_queue_entry_release_refs +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nf_queue_nf_hook_drop +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nf_route +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nf_skb_duplicated +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nfnl_ct_hook +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nl_table +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nl_table_lock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 no_action +EXPORT_SYMBOL_GPL vmlinux 0x00000000 node_to_amd_nb +EXPORT_SYMBOL_GPL vmlinux 0x00000000 noop_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x00000000 noop_direct_IO +EXPORT_SYMBOL_GPL vmlinux 0x00000000 noop_invalidatepage +EXPORT_SYMBOL_GPL vmlinux 0x00000000 noop_set_page_dirty +EXPORT_SYMBOL_GPL vmlinux 0x00000000 notify_remote_via_irq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nr_free_buffer_pages +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nr_irqs +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nr_swap_pages +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nsecs_to_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvdimm_badblocks_populate +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvdimm_blk_region_create +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvdimm_bus_add_badrange +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvdimm_bus_check_dimm_count +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvdimm_bus_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvdimm_bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvdimm_clear_poison +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvdimm_cmd_mask +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvdimm_flush +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvdimm_has_cache +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvdimm_has_flush +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvdimm_in_overwrite +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvdimm_kobj +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvdimm_name +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvdimm_pmem_region_create +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvdimm_provider_data +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvdimm_region_notify +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvdimm_security_setup_events +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvdimm_setup_pfn +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvdimm_to_bus +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvdimm_volatile_region_create +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvm_get_chunk_meta +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvm_set_chunk_meta +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvmem_add_cell_lookups +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvmem_add_cell_table +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvmem_cell_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvmem_cell_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvmem_cell_read +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvmem_cell_read_u16 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvmem_cell_read_u32 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvmem_cell_write +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvmem_del_cell_lookups +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvmem_del_cell_table +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvmem_dev_name +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvmem_device_cell_read +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvmem_device_cell_write +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvmem_device_find +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvmem_device_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvmem_device_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvmem_device_read +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvmem_device_write +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvmem_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvmem_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvmem_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 nvmem_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 od_register_powersave_bias_handler +EXPORT_SYMBOL_GPL vmlinux 0x00000000 od_unregister_powersave_bias_handler +EXPORT_SYMBOL_GPL vmlinux 0x00000000 of_clk_hw_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 of_css +EXPORT_SYMBOL_GPL vmlinux 0x00000000 of_devfreq_cooling_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 of_devfreq_cooling_register_power +EXPORT_SYMBOL_GPL vmlinux 0x00000000 of_hwspin_lock_get_id +EXPORT_SYMBOL_GPL vmlinux 0x00000000 of_hwspin_lock_get_id_byname +EXPORT_SYMBOL_GPL vmlinux 0x00000000 of_led_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 of_phy_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 of_phy_provider_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 of_phy_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 of_phy_simple_xlate +EXPORT_SYMBOL_GPL vmlinux 0x00000000 of_pm_clk_add_clk +EXPORT_SYMBOL_GPL vmlinux 0x00000000 of_pm_clk_add_clks +EXPORT_SYMBOL_GPL vmlinux 0x00000000 of_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 of_pwm_xlate_with_flags +EXPORT_SYMBOL_GPL vmlinux 0x00000000 of_reset_control_array_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ohci_hub_control +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ohci_hub_status_data +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ohci_init_driver +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ohci_restart +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ohci_resume +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ohci_setup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ohci_suspend +EXPORT_SYMBOL_GPL vmlinux 0x00000000 oiap +EXPORT_SYMBOL_GPL vmlinux 0x00000000 open_related_ns +EXPORT_SYMBOL_GPL vmlinux 0x00000000 orderly_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x00000000 orderly_reboot +EXPORT_SYMBOL_GPL vmlinux 0x00000000 osc_pc_lpi_support_confirmed +EXPORT_SYMBOL_GPL vmlinux 0x00000000 out_of_line_wait_on_bit_timeout +EXPORT_SYMBOL_GPL vmlinux 0x00000000 page_cache_async_readahead +EXPORT_SYMBOL_GPL vmlinux 0x00000000 page_cache_sync_readahead +EXPORT_SYMBOL_GPL vmlinux 0x00000000 page_endio +EXPORT_SYMBOL_GPL vmlinux 0x00000000 page_is_ram +EXPORT_SYMBOL_GPL vmlinux 0x00000000 page_mkclean +EXPORT_SYMBOL_GPL vmlinux 0x00000000 page_poisoning_enabled +EXPORT_SYMBOL_GPL vmlinux 0x00000000 palmas_ext_control_req_config +EXPORT_SYMBOL_GPL vmlinux 0x00000000 panic_timeout +EXPORT_SYMBOL_GPL vmlinux 0x00000000 param_ops_bool_enable_only +EXPORT_SYMBOL_GPL vmlinux 0x00000000 param_set_bool_enable_only +EXPORT_SYMBOL_GPL vmlinux 0x00000000 paste_selection +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pat_enabled +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pat_pfn_immune_to_uc_mtrr +EXPORT_SYMBOL_GPL vmlinux 0x00000000 path_noexec +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pcap_adc_async +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pcap_adc_sync +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pcap_set_ts_bits +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pcap_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pcc_mbox_free_channel +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pcc_mbox_request_channel +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_add_dynid +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_assign_unassigned_bridge_resources +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_assign_unassigned_bus_resources +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_ats_disabled +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_bridge_secondary_bus_reset +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_bus_add_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_bus_max_busnr +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_bus_resource_n +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_cfg_access_lock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_cfg_access_trylock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_cfg_access_unlock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_check_and_mask_intx +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_check_and_unmask_intx +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_cleanup_aer_uncorrect_error_status +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_common_swizzle +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_create_root_bus +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_create_slot +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_d3cold_disable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_d3cold_enable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_destroy_slot +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_dev_run_wake +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_device_group +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_device_is_present +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_disable_ats +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_disable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_disable_pri +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_disable_rom +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_disable_sriov +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_enable_ats +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_enable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_enable_rom +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_enable_sriov +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_epc_add_epf +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_epc_clear_bar +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_epc_destroy +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_epc_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_epc_get_features +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_epc_get_first_free_bar +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_epc_get_msi +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_epc_get_msix +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_epc_linkup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_epc_map_addr +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_epc_mem_alloc_addr +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_epc_mem_exit +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_epc_mem_free_addr +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_epc_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_epc_raise_irq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_epc_remove_epf +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_epc_set_bar +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_epc_set_msi +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_epc_set_msix +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_epc_start +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_epc_stop +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_epc_unmap_addr +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_epc_write_header +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_epf_alloc_space +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_epf_bind +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_epf_create +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_epf_destroy +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_epf_free_space +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_epf_linkup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_epf_match_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_epf_unbind +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_epf_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_find_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_find_next_capability +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_find_next_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_find_next_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_generic_config_read +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_generic_config_read32 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_generic_config_write +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_generic_config_write32 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_host_probe +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_hp_add +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_hp_add_bridge +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_hp_create_module_link +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_hp_del +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_hp_deregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_hp_destroy +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_hp_remove_module_link +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_ignore_hotplug +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_intx +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_iomap_wc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_iomap_wc_range +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_ioremap_bar +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_ioremap_wc_bar +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_load_and_free_saved_state +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_load_saved_state +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_lock_rescan_remove +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_msi_create_irq_domain +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_msi_mask_irq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_msi_prepare +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_msi_set_desc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_msi_unmask_irq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_num_vf +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_platform_power_transition +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_power_names +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_pr3_present +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_probe_reset_bus +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_probe_reset_slot +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_remove_root_bus +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_rescan_bus +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_reset_bus +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_reset_function_locked +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_restore_msi_state +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_scan_child_bus +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_set_cacheline_size +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_set_host_bridge_release +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_set_pcie_reset_state +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_slots_kset +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_sriov_configure_simple +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_sriov_get_totalvfs +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_sriov_set_totalvfs +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_stop_and_remove_bus_device_locked +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_stop_root_bus +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_store_saved_state +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_test_config_bits +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_try_reset_function +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_unlock_rescan_remove +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_user_read_config_byte +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_user_read_config_dword +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_user_read_config_word +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_user_write_config_byte +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_user_write_config_dword +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_user_write_config_word +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_vfs_assigned +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_vpd_find_info_keyword +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_vpd_find_tag +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_walk_bus +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_write_msi_msg +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pci_xen_swiotlb_init_late +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pcibios_scan_specific_bus +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pcie_aspm_enabled +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pcie_bus_configure_settings +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pcie_flr +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pcie_has_flr +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pcie_port_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pcie_port_find_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pcie_update_link_speed +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pciserial_init_ports +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pciserial_remove_ports +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pciserial_resume_ports +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pciserial_suspend_ports +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pcpu_base_addr +EXPORT_SYMBOL_GPL vmlinux 0x00000000 peernet2id_alloc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 percpu_down_write +EXPORT_SYMBOL_GPL vmlinux 0x00000000 percpu_free_rwsem +EXPORT_SYMBOL_GPL vmlinux 0x00000000 percpu_ref_exit +EXPORT_SYMBOL_GPL vmlinux 0x00000000 percpu_ref_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 percpu_ref_kill_and_confirm +EXPORT_SYMBOL_GPL vmlinux 0x00000000 percpu_ref_reinit +EXPORT_SYMBOL_GPL vmlinux 0x00000000 percpu_ref_resurrect +EXPORT_SYMBOL_GPL vmlinux 0x00000000 percpu_ref_switch_to_atomic +EXPORT_SYMBOL_GPL vmlinux 0x00000000 percpu_ref_switch_to_atomic_sync +EXPORT_SYMBOL_GPL vmlinux 0x00000000 percpu_ref_switch_to_percpu +EXPORT_SYMBOL_GPL vmlinux 0x00000000 percpu_up_write +EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_assign_events +EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_aux_output_begin +EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_aux_output_end +EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_aux_output_flag +EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_aux_output_skip +EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_event_addr_filters_sync +EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_event_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_event_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_event_create_kernel_counter +EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_event_disable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_event_enable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_event_pause +EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_event_period +EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_event_read_value +EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_event_refresh +EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_event_release_kernel +EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_event_sysfs_show +EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_event_update_userpage +EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_get_aux +EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_get_x86_pmu_capability +EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_guest_get_msrs +EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_msr_probe +EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_pmu_migrate_context +EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_pmu_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_pmu_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_register_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_swevent_get_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_tp_event +EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_trace_buf_alloc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_trace_run_bpf_submit +EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_unregister_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pernet_ops_rwsem +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pgprot_writecombine +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pgprot_writethrough +EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_10_100_features_array +EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_10gbit_features +EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_10gbit_features_array +EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_10gbit_fec_features +EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_10gbit_fec_features_array +EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_10gbit_full_features +EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_all_ports_features_array +EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_basic_features +EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_basic_ports_array +EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_basic_t1_features +EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_basic_t1_features_array +EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_calibrate +EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_configure +EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_create +EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_create_lookup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_destroy +EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_driver_is_genphy +EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_driver_is_genphy_10g +EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_duplex_to_str +EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_exit +EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_fibre_port_array +EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_gbit_all_ports_features +EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_gbit_features +EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_gbit_features_array +EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_gbit_fibre_features +EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_led_trigger_change_speed +EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_led_triggers_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_led_triggers_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_lookup_setting +EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_modify +EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_modify_changed +EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_modify_mmd +EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_modify_mmd_changed +EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_optional_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_pm_runtime_allow +EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_pm_runtime_forbid +EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_pm_runtime_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_pm_runtime_get_sync +EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_pm_runtime_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_pm_runtime_put_sync +EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_power_off +EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_power_on +EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_remove_lookup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_reset +EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_resolve_aneg_linkmode +EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_resolve_aneg_pause +EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_restart_aneg +EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_restore_page +EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_save_page +EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_select_page +EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_set_mode_ext +EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_speed_down +EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_speed_to_str +EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_speed_up +EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_start_machine +EXPORT_SYMBOL_GPL vmlinux 0x00000000 phy_validate +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pid_nr_ns +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pid_vnr +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pids_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pids_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pin_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pinconf_generic_dump_config +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pinctrl_add_gpio_range +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pinctrl_add_gpio_ranges +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pinctrl_dev_get_devname +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pinctrl_dev_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pinctrl_dev_get_name +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pinctrl_enable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pinctrl_find_and_add_gpio_range +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pinctrl_find_gpio_range_from_pin +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pinctrl_find_gpio_range_from_pin_nolock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pinctrl_force_default +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pinctrl_force_sleep +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pinctrl_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pinctrl_get_group_pins +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pinctrl_gpio_can_use_line +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pinctrl_gpio_direction_input +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pinctrl_gpio_direction_output +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pinctrl_gpio_free +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pinctrl_gpio_request +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pinctrl_gpio_set_config +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pinctrl_lookup_state +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pinctrl_pm_select_default_state +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pinctrl_pm_select_idle_state +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pinctrl_pm_select_sleep_state +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pinctrl_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pinctrl_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pinctrl_register_and_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pinctrl_register_mappings +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pinctrl_remove_gpio_range +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pinctrl_select_default_state +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pinctrl_select_state +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pinctrl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pinctrl_unregister_mappings +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pinctrl_utils_add_config +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pinctrl_utils_add_map_configs +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pinctrl_utils_add_map_mux +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pinctrl_utils_free_map +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pinctrl_utils_reserve_map +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ping_bind +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ping_close +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ping_common_sendmsg +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ping_err +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ping_get_port +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ping_getfrag +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ping_hash +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ping_init_sock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ping_queue_rcv_skb +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ping_rcv +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ping_recvmsg +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ping_seq_next +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ping_seq_start +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ping_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ping_unhash +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pingv6_ops +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pingv6_prot +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pkcs7_free_message +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pkcs7_get_content_data +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pkcs7_parse_message +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pkcs7_validate_trust +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pkcs7_verify +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pktgen_xfrm_outer_mode_output +EXPORT_SYMBOL_GPL vmlinux 0x00000000 platform_add_devices +EXPORT_SYMBOL_GPL vmlinux 0x00000000 platform_bus +EXPORT_SYMBOL_GPL vmlinux 0x00000000 platform_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x00000000 platform_device_add +EXPORT_SYMBOL_GPL vmlinux 0x00000000 platform_device_add_data +EXPORT_SYMBOL_GPL vmlinux 0x00000000 platform_device_add_properties +EXPORT_SYMBOL_GPL vmlinux 0x00000000 platform_device_add_resources +EXPORT_SYMBOL_GPL vmlinux 0x00000000 platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0x00000000 platform_device_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 platform_device_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 platform_device_register_full +EXPORT_SYMBOL_GPL vmlinux 0x00000000 platform_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 platform_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 platform_find_device_by_driver +EXPORT_SYMBOL_GPL vmlinux 0x00000000 platform_get_irq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0x00000000 platform_get_irq_byname_optional +EXPORT_SYMBOL_GPL vmlinux 0x00000000 platform_get_irq_optional +EXPORT_SYMBOL_GPL vmlinux 0x00000000 platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0x00000000 platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0x00000000 platform_irq_count +EXPORT_SYMBOL_GPL vmlinux 0x00000000 platform_msi_domain_alloc_irqs +EXPORT_SYMBOL_GPL vmlinux 0x00000000 platform_msi_domain_free_irqs +EXPORT_SYMBOL_GPL vmlinux 0x00000000 platform_thermal_package_notify +EXPORT_SYMBOL_GPL vmlinux 0x00000000 platform_thermal_package_rate_control +EXPORT_SYMBOL_GPL vmlinux 0x00000000 platform_unregister_drivers +EXPORT_SYMBOL_GPL vmlinux 0x00000000 play_idle_precise +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_clk_add +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_clk_add_clk +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_clk_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_clk_create +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_clk_destroy +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_clk_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_clk_remove +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_clk_remove_clk +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_clk_resume +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_clk_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_clk_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_clk_suspend +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_generic_freeze +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_generic_freeze_late +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_generic_freeze_noirq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_generic_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_generic_poweroff_late +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_generic_poweroff_noirq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_generic_restore +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_generic_restore_early +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_generic_restore_noirq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_generic_resume +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_generic_resume_early +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_generic_resume_noirq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_generic_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_generic_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_generic_suspend +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_generic_suspend_late +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_generic_suspend_noirq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_generic_thaw +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_generic_thaw_early +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_generic_thaw_noirq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_genpd_add_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_genpd_add_subdomain +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_genpd_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_genpd_remove +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_genpd_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_genpd_remove_subdomain +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_genpd_syscore_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_genpd_syscore_poweron +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_power_off_prepare +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_print_active_wakeup_sources +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_qos_request +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_qos_request_active +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_relax +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_runtime_allow +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_runtime_autosuspend_expiration +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_runtime_barrier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_runtime_enable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_runtime_forbid +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_runtime_force_resume +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_runtime_force_suspend +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_runtime_get_if_in_use +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_runtime_irq_safe +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_runtime_no_callbacks +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_runtime_set_autosuspend_delay +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_runtime_set_memalloc_noio +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_runtime_suspended_time +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_schedule_suspend +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_suspend_default_s2idle +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_suspend_global_flags +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_suspend_target_state +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_system_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_trace_rtc_abused +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_wakeup_dev_event +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_wakeup_ws_event +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pm_wq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pmc_atom_read +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pmc_atom_write +EXPORT_SYMBOL_GPL vmlinux 0x00000000 policy_has_boost_freq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 posix_acl_access_xattr_handler +EXPORT_SYMBOL_GPL vmlinux 0x00000000 posix_acl_create +EXPORT_SYMBOL_GPL vmlinux 0x00000000 posix_acl_default_xattr_handler +EXPORT_SYMBOL_GPL vmlinux 0x00000000 posix_clock_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 posix_clock_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 power_group_name +EXPORT_SYMBOL_GPL vmlinux 0x00000000 power_supply_am_i_supplied +EXPORT_SYMBOL_GPL vmlinux 0x00000000 power_supply_batinfo_ocv2cap +EXPORT_SYMBOL_GPL vmlinux 0x00000000 power_supply_changed +EXPORT_SYMBOL_GPL vmlinux 0x00000000 power_supply_class +EXPORT_SYMBOL_GPL vmlinux 0x00000000 power_supply_external_power_changed +EXPORT_SYMBOL_GPL vmlinux 0x00000000 power_supply_find_ocv2cap_table +EXPORT_SYMBOL_GPL vmlinux 0x00000000 power_supply_get_battery_info +EXPORT_SYMBOL_GPL vmlinux 0x00000000 power_supply_get_by_name +EXPORT_SYMBOL_GPL vmlinux 0x00000000 power_supply_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x00000000 power_supply_get_property +EXPORT_SYMBOL_GPL vmlinux 0x00000000 power_supply_is_system_supplied +EXPORT_SYMBOL_GPL vmlinux 0x00000000 power_supply_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 power_supply_ocv2cap_simple +EXPORT_SYMBOL_GPL vmlinux 0x00000000 power_supply_powers +EXPORT_SYMBOL_GPL vmlinux 0x00000000 power_supply_property_is_writeable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 power_supply_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 power_supply_put_battery_info +EXPORT_SYMBOL_GPL vmlinux 0x00000000 power_supply_reg_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 power_supply_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 power_supply_register_no_ws +EXPORT_SYMBOL_GPL vmlinux 0x00000000 power_supply_set_battery_charged +EXPORT_SYMBOL_GPL vmlinux 0x00000000 power_supply_set_input_current_limit_from_supplier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 power_supply_set_property +EXPORT_SYMBOL_GPL vmlinux 0x00000000 power_supply_temp2resist_simple +EXPORT_SYMBOL_GPL vmlinux 0x00000000 power_supply_unreg_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 power_supply_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 powercap_register_control_type +EXPORT_SYMBOL_GPL vmlinux 0x00000000 powercap_register_zone +EXPORT_SYMBOL_GPL vmlinux 0x00000000 powercap_unregister_control_type +EXPORT_SYMBOL_GPL vmlinux 0x00000000 powercap_unregister_zone +EXPORT_SYMBOL_GPL vmlinux 0x00000000 preempt_notifier_dec +EXPORT_SYMBOL_GPL vmlinux 0x00000000 preempt_notifier_inc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 preempt_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 preempt_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 probe_kernel_read +EXPORT_SYMBOL_GPL vmlinux 0x00000000 probe_kernel_write +EXPORT_SYMBOL_GPL vmlinux 0x00000000 probe_user_read +EXPORT_SYMBOL_GPL vmlinux 0x00000000 probe_user_write +EXPORT_SYMBOL_GPL vmlinux 0x00000000 proc_create_net_data +EXPORT_SYMBOL_GPL vmlinux 0x00000000 proc_create_net_data_write +EXPORT_SYMBOL_GPL vmlinux 0x00000000 proc_create_net_single +EXPORT_SYMBOL_GPL vmlinux 0x00000000 proc_create_net_single_write +EXPORT_SYMBOL_GPL vmlinux 0x00000000 proc_douintvec_minmax +EXPORT_SYMBOL_GPL vmlinux 0x00000000 proc_get_parent_data +EXPORT_SYMBOL_GPL vmlinux 0x00000000 proc_mkdir_data +EXPORT_SYMBOL_GPL vmlinux 0x00000000 prof_on +EXPORT_SYMBOL_GPL vmlinux 0x00000000 profile_event_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 profile_event_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x00000000 property_entries_dup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 property_entries_free +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pskb_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pstore_name_to_type +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pstore_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pstore_type_to_name +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pstore_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ptdump_walk_pgd_level_debugfs +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ptp_classify_raw +EXPORT_SYMBOL_GPL vmlinux 0x00000000 public_key_free +EXPORT_SYMBOL_GPL vmlinux 0x00000000 public_key_signature_free +EXPORT_SYMBOL_GPL vmlinux 0x00000000 public_key_subtype +EXPORT_SYMBOL_GPL vmlinux 0x00000000 public_key_verify_signature +EXPORT_SYMBOL_GPL vmlinux 0x00000000 put_dax +EXPORT_SYMBOL_GPL vmlinux 0x00000000 put_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 put_iova_domain +EXPORT_SYMBOL_GPL vmlinux 0x00000000 put_itimerspec64 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 put_old_itimerspec32 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 put_old_timespec32 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 put_pid +EXPORT_SYMBOL_GPL vmlinux 0x00000000 put_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x00000000 put_timespec64 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pv_info +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pvclock_get_pvti_cpu0_va +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pvclock_gtod_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pvclock_gtod_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pwm_adjust_config +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pwm_apply_state +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pwm_capture +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pwm_free +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pwm_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pwm_get_chip_data +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pwm_lpss_probe +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pwm_lpss_remove +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pwm_lpss_resume +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pwm_lpss_suspend +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pwm_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pwm_request +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pwm_request_from_chip +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pwm_set_chip_data +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pwmchip_add +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pwmchip_add_with_polarity +EXPORT_SYMBOL_GPL vmlinux 0x00000000 pwmchip_remove +EXPORT_SYMBOL_GPL vmlinux 0x00000000 query_asymmetric_key +EXPORT_SYMBOL_GPL vmlinux 0x00000000 queue_iova +EXPORT_SYMBOL_GPL vmlinux 0x00000000 queue_work_node +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ras_userspace_consumers +EXPORT_SYMBOL_GPL vmlinux 0x00000000 raw_abort +EXPORT_SYMBOL_GPL vmlinux 0x00000000 raw_hash_sk +EXPORT_SYMBOL_GPL vmlinux 0x00000000 raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x00000000 raw_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 raw_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 raw_seq_next +EXPORT_SYMBOL_GPL vmlinux 0x00000000 raw_seq_start +EXPORT_SYMBOL_GPL vmlinux 0x00000000 raw_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0x00000000 raw_unhash_sk +EXPORT_SYMBOL_GPL vmlinux 0x00000000 raw_v4_hashinfo +EXPORT_SYMBOL_GPL vmlinux 0x00000000 raw_v6_hashinfo +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rcu_all_qs +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rcu_barrier_tasks +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rcu_cpu_stall_suppress +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rcu_exp_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rcu_expedite_gp +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rcu_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rcu_fwd_progress_check +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rcu_get_gp_kthreads_prio +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rcu_get_gp_seq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rcu_gp_is_expedited +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rcu_gp_is_normal +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rcu_is_watching +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rcu_jiffies_till_stall_check +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rcu_momentary_dyntick_idle +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rcu_note_context_switch +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rcu_scheduler_active +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rcu_unexpedite_gp +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rcutorture_get_gp_data +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rdev_clear_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rdev_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rdev_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rdev_get_id +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rdev_get_regmap +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rdev_set_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rdma_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rdma_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ref_module +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regcache_cache_bypass +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regcache_cache_only +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regcache_drop_region +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regcache_mark_dirty +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regcache_sync +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regcache_sync_region +EXPORT_SYMBOL_GPL vmlinux 0x00000000 region_intersects +EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_acpi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_acpi_hed_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_asymmetric_key_parser +EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_ftrace_direct +EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_ftrace_export +EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_ftrace_function +EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_kprobes +EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_net_sysctl +EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_oldmem_pfn_is_ram +EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_switchdev_blocking_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_switchdev_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_syscore_ops +EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_trace_event +EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_tracepoint_module_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_virtio_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_virtio_driver +EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_vmap_purge_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_xenbus_watch +EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_xenstore_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_add_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_async_complete +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_async_complete_cb +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_attach_dev +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_can_raw_write +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_check_range_table +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_del_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_exit +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_field_alloc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_field_free +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_field_read +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_field_update_bits_base +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_fields_read +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_fields_update_bits_base +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_get_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_get_max_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_get_raw_read_max +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_get_raw_write_max +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_get_reg_stride +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_get_val_bytes +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_get_val_endian +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_irq_chip_get_base +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_irq_get_domain +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_irq_get_virq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_mmio_attach_clk +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_mmio_detach_clk +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_multi_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_multi_reg_write_bypassed +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_noinc_read +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_noinc_write +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_parse_val +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_raw_read +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_raw_write +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_raw_write_async +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_read +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_reg_in_ranges +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_register_patch +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_reinit_cache +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_update_bits_base +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_write +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regmap_write_async +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_allow_bypass +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_bulk_disable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_bulk_enable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_bulk_force_disable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_bulk_free +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_bulk_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_bulk_set_supply_names +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_bulk_unregister_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_count_voltages +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_desc_list_voltage_linear_range +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_disable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_disable_deferred +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_disable_regmap +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_enable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_enable_regmap +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_force_disable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_get_bypass_regmap +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_get_current_limit +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_get_current_limit_regmap +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_get_error_flags +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_get_hardware_vsel_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_get_init_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_get_linear_step +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_get_mode +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_get_optional +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_get_voltage +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_get_voltage_rdev +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_get_voltage_sel_pickable_regmap +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_get_voltage_sel_regmap +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_has_full_constraints +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_is_enabled_regmap +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_is_equal +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_is_supported_voltage +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_list_hardware_vsel +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_list_voltage +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_list_voltage_linear +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_list_voltage_linear_range +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_list_voltage_pickable_linear_range +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_list_voltage_table +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_lock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_map_voltage_ascend +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_map_voltage_iterate +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_map_voltage_linear +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_map_voltage_linear_range +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_map_voltage_pickable_linear_range +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_mode_to_status +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_set_active_discharge_regmap +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_set_bypass_regmap +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_set_current_limit +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_set_current_limit_regmap +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_set_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_set_load +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_set_pull_down_regmap +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_set_soft_start_regmap +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_set_suspend_voltage +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_set_voltage +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_set_voltage_rdev +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_set_voltage_sel_pickable_regmap +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_set_voltage_sel_regmap +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_set_voltage_time +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_set_voltage_time_sel +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_suspend_disable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_suspend_enable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_sync_voltage +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_unlock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 regulator_unregister_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x00000000 relay_buf_full +EXPORT_SYMBOL_GPL vmlinux 0x00000000 relay_close +EXPORT_SYMBOL_GPL vmlinux 0x00000000 relay_file_operations +EXPORT_SYMBOL_GPL vmlinux 0x00000000 relay_flush +EXPORT_SYMBOL_GPL vmlinux 0x00000000 relay_late_setup_files +EXPORT_SYMBOL_GPL vmlinux 0x00000000 relay_open +EXPORT_SYMBOL_GPL vmlinux 0x00000000 relay_reset +EXPORT_SYMBOL_GPL vmlinux 0x00000000 relay_subbufs_consumed +EXPORT_SYMBOL_GPL vmlinux 0x00000000 relay_switch_subbuf +EXPORT_SYMBOL_GPL vmlinux 0x00000000 remove_irq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 remove_memory +EXPORT_SYMBOL_GPL vmlinux 0x00000000 remove_resource +EXPORT_SYMBOL_GPL vmlinux 0x00000000 replace_page_cache_page +EXPORT_SYMBOL_GPL vmlinux 0x00000000 report_iommu_fault +EXPORT_SYMBOL_GPL vmlinux 0x00000000 request_any_context_irq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 request_firmware_direct +EXPORT_SYMBOL_GPL vmlinux 0x00000000 request_free_mem_region +EXPORT_SYMBOL_GPL vmlinux 0x00000000 reserve_iova +EXPORT_SYMBOL_GPL vmlinux 0x00000000 reset_control_acquire +EXPORT_SYMBOL_GPL vmlinux 0x00000000 reset_control_assert +EXPORT_SYMBOL_GPL vmlinux 0x00000000 reset_control_deassert +EXPORT_SYMBOL_GPL vmlinux 0x00000000 reset_control_get_count +EXPORT_SYMBOL_GPL vmlinux 0x00000000 reset_control_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 reset_control_release +EXPORT_SYMBOL_GPL vmlinux 0x00000000 reset_control_reset +EXPORT_SYMBOL_GPL vmlinux 0x00000000 reset_control_status +EXPORT_SYMBOL_GPL vmlinux 0x00000000 reset_controller_add_lookup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 reset_controller_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 reset_controller_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 reset_hung_task_detector +EXPORT_SYMBOL_GPL vmlinux 0x00000000 restore_online_page_callback +EXPORT_SYMBOL_GPL vmlinux 0x00000000 resume_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rhashtable_destroy +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rhashtable_free_and_destroy +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rhashtable_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rhashtable_insert_slow +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rhashtable_walk_enter +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rhashtable_walk_exit +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rhashtable_walk_next +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rhashtable_walk_peek +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rhashtable_walk_start_check +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rhashtable_walk_stop +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rhltable_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rht_bucket_nested +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rht_bucket_nested_insert +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_alloc_read_page +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_bytes_cpu +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_change_overwrite +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_commit_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_consume +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_dropped_events_cpu +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_empty +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_empty_cpu +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_entries +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_entries_cpu +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_event_data +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_event_length +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_free +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_free_read_page +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_iter_empty +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_iter_peek +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_normalize_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_oldest_event_ts +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_overruns +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_peek +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_read +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_read_events_cpu +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_read_finish +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_read_page +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_read_prepare +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_read_prepare_sync +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_read_start +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_record_disable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_record_disable_cpu +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_record_enable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_record_enable_cpu +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_record_off +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_record_on +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_reset +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_reset_cpu +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_resize +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_size +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_swap_cpu +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x00000000 ring_buffer_write +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_add_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_add_mport_pw_handler +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_add_net +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_alloc_net +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_attach_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_del_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_del_mport_pw_handler +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_dev_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_dev_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_dma_prep_slave_sg +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_dma_prep_xfer +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_enable_rx_tx_port +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_free_net +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_get_asm +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_get_comptag +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_get_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_inb_pwrite_handler +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_init_mports +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_local_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_local_set_device_id +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_lock_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_map_inb_region +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_map_outb_region +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_mport_chk_dev_access +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_mport_class +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_mport_get_efb +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_mport_get_feature +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_mport_get_physefb +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_mport_initialize +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_mport_read_config_16 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_mport_read_config_32 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_mport_read_config_8 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_mport_send_doorbell +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_mport_write_config_16 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_mport_write_config_32 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_mport_write_config_8 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_pw_enable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_register_mport +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_register_scan +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_release_dma +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_release_inb_dbell +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_release_inb_mbox +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_release_inb_pwrite +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_release_outb_dbell +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_release_outb_mbox +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_request_dma +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_request_inb_dbell +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_request_inb_mbox +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_request_inb_pwrite +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_request_mport_dma +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_request_outb_dbell +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_request_outb_mbox +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_route_add_entry +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_route_clr_table +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_route_get_entry +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_set_port_lockout +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_unlock_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_unmap_inb_region +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_unmap_outb_region +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_unregister_mport +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rio_unregister_scan +EXPORT_SYMBOL_GPL vmlinux 0x00000000 root_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x00000000 round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x00000000 round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x00000000 round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rsa_parse_priv_key +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rsa_parse_pub_key +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rt_mutex_destroy +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rt_mutex_lock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rt_mutex_timed_lock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rtc_alarm_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rtc_class_close +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rtc_class_open +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rtc_initialize_alarm +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rtc_ktime_to_tm +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rtc_nvmem_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rtc_read_alarm +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rtc_read_time +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rtc_set_alarm +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rtc_set_time +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rtc_tm_to_ktime +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rtc_update_irq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rtc_update_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rtm_getroute_parse_ip_proto +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rtnl_delete_link +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rtnl_get_net_ns_capable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rtnl_register_module +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rtnl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 rtnl_unregister_all +EXPORT_SYMBOL_GPL vmlinux 0x00000000 run_dax +EXPORT_SYMBOL_GPL vmlinux 0x00000000 s2idle_wake +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sata_async_notification +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sata_deb_timing_long +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sata_deb_timing_normal +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sata_link_debounce +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sata_link_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sata_link_resume +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sata_link_scr_lpm +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sata_lpm_ignore_phy_events +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sata_pmp_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sata_pmp_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sata_pmp_qc_defer_cmd_switch +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sata_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sata_scr_read +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sata_scr_valid +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sata_scr_write +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sata_scr_write_flush +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sata_set_spd +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sata_sff_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sata_std_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x00000000 save_fsgs_for_kvm +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sb800_prefetch +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sbitmap_add_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sbitmap_any_bit_set +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sbitmap_bitmap_show +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sbitmap_del_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sbitmap_finish_wait +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sbitmap_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sbitmap_get_shallow +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sbitmap_init_node +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sbitmap_prepare_to_wait +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sbitmap_queue_clear +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sbitmap_queue_init_node +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sbitmap_queue_min_shallow_depth +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sbitmap_queue_resize +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sbitmap_queue_show +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sbitmap_queue_wake_all +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sbitmap_queue_wake_up +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sbitmap_resize +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sbitmap_show +EXPORT_SYMBOL_GPL vmlinux 0x00000000 scatterwalk_copychunks +EXPORT_SYMBOL_GPL vmlinux 0x00000000 scatterwalk_ffwd +EXPORT_SYMBOL_GPL vmlinux 0x00000000 scatterwalk_map_and_copy +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sched_clock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sched_clock_cpu +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sched_clock_idle_sleep_event +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sched_clock_idle_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sched_setattr +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sched_setscheduler +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sched_setscheduler_nocheck +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sched_show_task +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sched_smt_present +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sched_trace_cfs_rq_avg +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sched_trace_cfs_rq_cpu +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sched_trace_cfs_rq_path +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sched_trace_rd_span +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sched_trace_rq_avg_dl +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sched_trace_rq_avg_irq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sched_trace_rq_avg_rt +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sched_trace_rq_cpu +EXPORT_SYMBOL_GPL vmlinux 0x00000000 schedule_hrtimeout +EXPORT_SYMBOL_GPL vmlinux 0x00000000 schedule_hrtimeout_range +EXPORT_SYMBOL_GPL vmlinux 0x00000000 screen_glyph +EXPORT_SYMBOL_GPL vmlinux 0x00000000 screen_glyph_unicode +EXPORT_SYMBOL_GPL vmlinux 0x00000000 screen_pos +EXPORT_SYMBOL_GPL vmlinux 0x00000000 scsi_autopm_get_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 scsi_autopm_put_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 scsi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x00000000 scsi_check_sense +EXPORT_SYMBOL_GPL vmlinux 0x00000000 scsi_device_from_queue +EXPORT_SYMBOL_GPL vmlinux 0x00000000 scsi_dh_activate +EXPORT_SYMBOL_GPL vmlinux 0x00000000 scsi_dh_attach +EXPORT_SYMBOL_GPL vmlinux 0x00000000 scsi_dh_attached_handler_name +EXPORT_SYMBOL_GPL vmlinux 0x00000000 scsi_dh_set_params +EXPORT_SYMBOL_GPL vmlinux 0x00000000 scsi_eh_get_sense +EXPORT_SYMBOL_GPL vmlinux 0x00000000 scsi_eh_ready_devs +EXPORT_SYMBOL_GPL vmlinux 0x00000000 scsi_flush_work +EXPORT_SYMBOL_GPL vmlinux 0x00000000 scsi_get_vpd_page +EXPORT_SYMBOL_GPL vmlinux 0x00000000 scsi_internal_device_block_nowait +EXPORT_SYMBOL_GPL vmlinux 0x00000000 scsi_internal_device_unblock_nowait +EXPORT_SYMBOL_GPL vmlinux 0x00000000 scsi_ioctl_block_when_processing_errors +EXPORT_SYMBOL_GPL vmlinux 0x00000000 scsi_mode_select +EXPORT_SYMBOL_GPL vmlinux 0x00000000 scsi_nl_sock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 scsi_queue_work +EXPORT_SYMBOL_GPL vmlinux 0x00000000 scsi_register_device_handler +EXPORT_SYMBOL_GPL vmlinux 0x00000000 scsi_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x00000000 scsi_target_block +EXPORT_SYMBOL_GPL vmlinux 0x00000000 scsi_target_unblock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 scsi_unregister_device_handler +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdev_evt_alloc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdev_evt_send +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdev_evt_send_simple +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdhci_pci_get_data +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_align_size +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_claim_host +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_claim_irq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_disable_func +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_enable_func +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_f0_readb +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_f0_writeb +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_get_host_pm_caps +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_memcpy_fromio +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_memcpy_toio +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_readb +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_readl +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_readsb +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_readw +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_release_host +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_release_irq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_retune_crc_disable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_retune_crc_enable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_retune_hold_now +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_retune_release +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_set_block_size +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_set_host_pm_flags +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_signal_irq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_writeb +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_writeb_readb +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_writel +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_writesb +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sdio_writew +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sec_irq_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 secure_ipv4_port_ephemeral +EXPORT_SYMBOL_GPL vmlinux 0x00000000 secure_tcp_seq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 security_file_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x00000000 security_file_permission +EXPORT_SYMBOL_GPL vmlinux 0x00000000 security_inode_create +EXPORT_SYMBOL_GPL vmlinux 0x00000000 security_inode_mkdir +EXPORT_SYMBOL_GPL vmlinux 0x00000000 security_inode_permission +EXPORT_SYMBOL_GPL vmlinux 0x00000000 security_inode_setattr +EXPORT_SYMBOL_GPL vmlinux 0x00000000 security_kernel_load_data +EXPORT_SYMBOL_GPL vmlinux 0x00000000 security_kernel_post_read_file +EXPORT_SYMBOL_GPL vmlinux 0x00000000 security_kernel_read_file +EXPORT_SYMBOL_GPL vmlinux 0x00000000 security_path_chmod +EXPORT_SYMBOL_GPL vmlinux 0x00000000 security_path_chown +EXPORT_SYMBOL_GPL vmlinux 0x00000000 security_path_link +EXPORT_SYMBOL_GPL vmlinux 0x00000000 security_path_rmdir +EXPORT_SYMBOL_GPL vmlinux 0x00000000 security_path_symlink +EXPORT_SYMBOL_GPL vmlinux 0x00000000 security_path_truncate +EXPORT_SYMBOL_GPL vmlinux 0x00000000 securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x00000000 securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x00000000 securityfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0x00000000 securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sed_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x00000000 seg6_do_srh_encap +EXPORT_SYMBOL_GPL vmlinux 0x00000000 seg6_do_srh_inline +EXPORT_SYMBOL_GPL vmlinux 0x00000000 serdev_controller_add +EXPORT_SYMBOL_GPL vmlinux 0x00000000 serdev_controller_alloc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 serdev_controller_remove +EXPORT_SYMBOL_GPL vmlinux 0x00000000 serdev_device_add +EXPORT_SYMBOL_GPL vmlinux 0x00000000 serdev_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 serdev_device_close +EXPORT_SYMBOL_GPL vmlinux 0x00000000 serdev_device_get_tiocm +EXPORT_SYMBOL_GPL vmlinux 0x00000000 serdev_device_open +EXPORT_SYMBOL_GPL vmlinux 0x00000000 serdev_device_remove +EXPORT_SYMBOL_GPL vmlinux 0x00000000 serdev_device_set_baudrate +EXPORT_SYMBOL_GPL vmlinux 0x00000000 serdev_device_set_flow_control +EXPORT_SYMBOL_GPL vmlinux 0x00000000 serdev_device_set_parity +EXPORT_SYMBOL_GPL vmlinux 0x00000000 serdev_device_set_tiocm +EXPORT_SYMBOL_GPL vmlinux 0x00000000 serdev_device_wait_until_sent +EXPORT_SYMBOL_GPL vmlinux 0x00000000 serdev_device_write +EXPORT_SYMBOL_GPL vmlinux 0x00000000 serdev_device_write_buf +EXPORT_SYMBOL_GPL vmlinux 0x00000000 serdev_device_write_flush +EXPORT_SYMBOL_GPL vmlinux 0x00000000 serdev_device_write_room +EXPORT_SYMBOL_GPL vmlinux 0x00000000 serdev_device_write_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 serial8250_clear_and_reinit_fifos +EXPORT_SYMBOL_GPL vmlinux 0x00000000 serial8250_do_get_mctrl +EXPORT_SYMBOL_GPL vmlinux 0x00000000 serial8250_do_set_divisor +EXPORT_SYMBOL_GPL vmlinux 0x00000000 serial8250_do_set_ldisc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 serial8250_do_set_mctrl +EXPORT_SYMBOL_GPL vmlinux 0x00000000 serial8250_do_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x00000000 serial8250_do_startup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 serial8250_em485_destroy +EXPORT_SYMBOL_GPL vmlinux 0x00000000 serial8250_em485_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 serial8250_get_port +EXPORT_SYMBOL_GPL vmlinux 0x00000000 serial8250_handle_irq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 serial8250_init_port +EXPORT_SYMBOL_GPL vmlinux 0x00000000 serial8250_modem_status +EXPORT_SYMBOL_GPL vmlinux 0x00000000 serial8250_read_char +EXPORT_SYMBOL_GPL vmlinux 0x00000000 serial8250_release_dma +EXPORT_SYMBOL_GPL vmlinux 0x00000000 serial8250_request_dma +EXPORT_SYMBOL_GPL vmlinux 0x00000000 serial8250_rpm_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 serial8250_rpm_get_tx +EXPORT_SYMBOL_GPL vmlinux 0x00000000 serial8250_rpm_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 serial8250_rpm_put_tx +EXPORT_SYMBOL_GPL vmlinux 0x00000000 serial8250_rx_chars +EXPORT_SYMBOL_GPL vmlinux 0x00000000 serial8250_rx_dma_flush +EXPORT_SYMBOL_GPL vmlinux 0x00000000 serial8250_set_defaults +EXPORT_SYMBOL_GPL vmlinux 0x00000000 serial8250_tx_chars +EXPORT_SYMBOL_GPL vmlinux 0x00000000 set_cpus_allowed_ptr +EXPORT_SYMBOL_GPL vmlinux 0x00000000 set_foreign_p2m_mapping +EXPORT_SYMBOL_GPL vmlinux 0x00000000 set_hv_tscchange_cb +EXPORT_SYMBOL_GPL vmlinux 0x00000000 set_memory_decrypted +EXPORT_SYMBOL_GPL vmlinux 0x00000000 set_memory_encrypted +EXPORT_SYMBOL_GPL vmlinux 0x00000000 set_online_page_callback +EXPORT_SYMBOL_GPL vmlinux 0x00000000 set_pages_array_wt +EXPORT_SYMBOL_GPL vmlinux 0x00000000 set_personality_ia32 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 set_primary_fwnode +EXPORT_SYMBOL_GPL vmlinux 0x00000000 set_selection_kernel +EXPORT_SYMBOL_GPL vmlinux 0x00000000 set_task_ioprio +EXPORT_SYMBOL_GPL vmlinux 0x00000000 set_worker_desc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 setfl +EXPORT_SYMBOL_GPL vmlinux 0x00000000 setup_APIC_eilvt +EXPORT_SYMBOL_GPL vmlinux 0x00000000 setup_irq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sev_enable_key +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sfi_table_parse +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sfp_add_phy +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sfp_bus_add_upstream +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sfp_bus_del_upstream +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sfp_bus_find_fwnode +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sfp_bus_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sfp_get_module_eeprom +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sfp_get_module_info +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sfp_link_down +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sfp_link_up +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sfp_may_have_phy +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sfp_module_insert +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sfp_module_remove +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sfp_module_start +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sfp_module_stop +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sfp_parse_port +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sfp_parse_support +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sfp_register_socket +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sfp_remove_phy +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sfp_select_interface +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sfp_unregister_socket +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sfp_upstream_start +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sfp_upstream_stop +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sg_alloc_table_chained +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sg_free_table_chained +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sg_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sha1_zero_message_hash +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sha224_zero_message_hash +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sha256_zero_message_hash +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sha384_zero_message_hash +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sha512_zero_message_hash +EXPORT_SYMBOL_GPL vmlinux 0x00000000 shake_page +EXPORT_SYMBOL_GPL vmlinux 0x00000000 shash_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0x00000000 shash_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 shash_ahash_update +EXPORT_SYMBOL_GPL vmlinux 0x00000000 shash_free_singlespawn_instance +EXPORT_SYMBOL_GPL vmlinux 0x00000000 shash_no_setkey +EXPORT_SYMBOL_GPL vmlinux 0x00000000 shash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x00000000 shmem_file_setup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 shmem_file_setup_with_mnt +EXPORT_SYMBOL_GPL vmlinux 0x00000000 shmem_read_mapping_page_gfp +EXPORT_SYMBOL_GPL vmlinux 0x00000000 shmem_truncate_range +EXPORT_SYMBOL_GPL vmlinux 0x00000000 shmem_zero_setup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 show_class_attr_string +EXPORT_SYMBOL_GPL vmlinux 0x00000000 show_rcu_gp_kthreads +EXPORT_SYMBOL_GPL vmlinux 0x00000000 si_mem_available +EXPORT_SYMBOL_GPL vmlinux 0x00000000 simple_attr_open +EXPORT_SYMBOL_GPL vmlinux 0x00000000 simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0x00000000 simple_attr_release +EXPORT_SYMBOL_GPL vmlinux 0x00000000 simple_attr_write +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sis_info133_for_sata +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sk_attach_filter +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sk_clear_memalloc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sk_clone_lock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sk_detach_filter +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sk_free_unlock_clone +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sk_msg_alloc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sk_msg_clone +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sk_msg_free +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sk_msg_free_nocharge +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sk_msg_free_partial +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sk_msg_memcopy_from_iter +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sk_msg_return +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sk_msg_return_zero +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sk_msg_trim +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sk_msg_zerocopy_from_iter +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sk_psock_destroy +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sk_psock_drop +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sk_psock_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sk_psock_msg_verdict +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sk_set_memalloc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sk_set_peek_off +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0x00000000 skb_append_pagefrags +EXPORT_SYMBOL_GPL vmlinux 0x00000000 skb_clone_tx_timestamp +EXPORT_SYMBOL_GPL vmlinux 0x00000000 skb_complete_tx_timestamp +EXPORT_SYMBOL_GPL vmlinux 0x00000000 skb_complete_wifi_ack +EXPORT_SYMBOL_GPL vmlinux 0x00000000 skb_consume_udp +EXPORT_SYMBOL_GPL vmlinux 0x00000000 skb_copy_ubufs +EXPORT_SYMBOL_GPL vmlinux 0x00000000 skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0x00000000 skb_defer_rx_timestamp +EXPORT_SYMBOL_GPL vmlinux 0x00000000 skb_gro_receive +EXPORT_SYMBOL_GPL vmlinux 0x00000000 skb_gro_receive_list +EXPORT_SYMBOL_GPL vmlinux 0x00000000 skb_gso_validate_mac_len +EXPORT_SYMBOL_GPL vmlinux 0x00000000 skb_gso_validate_network_len +EXPORT_SYMBOL_GPL vmlinux 0x00000000 skb_morph +EXPORT_SYMBOL_GPL vmlinux 0x00000000 skb_mpls_dec_ttl +EXPORT_SYMBOL_GPL vmlinux 0x00000000 skb_mpls_pop +EXPORT_SYMBOL_GPL vmlinux 0x00000000 skb_mpls_push +EXPORT_SYMBOL_GPL vmlinux 0x00000000 skb_mpls_update_lse +EXPORT_SYMBOL_GPL vmlinux 0x00000000 skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0x00000000 skb_pull_rcsum +EXPORT_SYMBOL_GPL vmlinux 0x00000000 skb_scrub_packet +EXPORT_SYMBOL_GPL vmlinux 0x00000000 skb_segment +EXPORT_SYMBOL_GPL vmlinux 0x00000000 skb_segment_list +EXPORT_SYMBOL_GPL vmlinux 0x00000000 skb_send_sock_locked +EXPORT_SYMBOL_GPL vmlinux 0x00000000 skb_splice_bits +EXPORT_SYMBOL_GPL vmlinux 0x00000000 skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0x00000000 skb_to_sgvec_nomark +EXPORT_SYMBOL_GPL vmlinux 0x00000000 skb_tstamp_tx +EXPORT_SYMBOL_GPL vmlinux 0x00000000 skb_zerocopy +EXPORT_SYMBOL_GPL vmlinux 0x00000000 skb_zerocopy_headlen +EXPORT_SYMBOL_GPL vmlinux 0x00000000 skb_zerocopy_iter_dgram +EXPORT_SYMBOL_GPL vmlinux 0x00000000 skb_zerocopy_iter_stream +EXPORT_SYMBOL_GPL vmlinux 0x00000000 skcipher_alloc_instance_simple +EXPORT_SYMBOL_GPL vmlinux 0x00000000 skcipher_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x00000000 skcipher_walk_aead_decrypt +EXPORT_SYMBOL_GPL vmlinux 0x00000000 skcipher_walk_aead_encrypt +EXPORT_SYMBOL_GPL vmlinux 0x00000000 skcipher_walk_async +EXPORT_SYMBOL_GPL vmlinux 0x00000000 skcipher_walk_atomise +EXPORT_SYMBOL_GPL vmlinux 0x00000000 skcipher_walk_complete +EXPORT_SYMBOL_GPL vmlinux 0x00000000 skcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x00000000 skcipher_walk_virt +EXPORT_SYMBOL_GPL vmlinux 0x00000000 slow_virt_to_phys +EXPORT_SYMBOL_GPL vmlinux 0x00000000 smca_banks +EXPORT_SYMBOL_GPL vmlinux 0x00000000 smca_get_long_name +EXPORT_SYMBOL_GPL vmlinux 0x00000000 smp_call_function_any +EXPORT_SYMBOL_GPL vmlinux 0x00000000 smp_call_function_single_async +EXPORT_SYMBOL_GPL vmlinux 0x00000000 smp_call_on_cpu +EXPORT_SYMBOL_GPL vmlinux 0x00000000 smp_ops +EXPORT_SYMBOL_GPL vmlinux 0x00000000 smpboot_register_percpu_thread +EXPORT_SYMBOL_GPL vmlinux 0x00000000 smpboot_unregister_percpu_thread +EXPORT_SYMBOL_GPL vmlinux 0x00000000 snmp_fold_field +EXPORT_SYMBOL_GPL vmlinux 0x00000000 snmp_get_cpu_field +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sock_diag_check_cookie +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sock_diag_destroy +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sock_diag_put_meminfo +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sock_diag_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sock_diag_register_inet_compat +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sock_diag_save_cookie +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sock_diag_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sock_diag_unregister_inet_compat +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sock_gen_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sock_inuse_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sock_prot_inuse_add +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sock_prot_inuse_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sock_zerocopy_alloc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sock_zerocopy_callback +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sock_zerocopy_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sock_zerocopy_put_abort +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sock_zerocopy_realloc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 software_node_find_by_name +EXPORT_SYMBOL_GPL vmlinux 0x00000000 software_node_fwnode +EXPORT_SYMBOL_GPL vmlinux 0x00000000 software_node_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 software_node_register_nodes +EXPORT_SYMBOL_GPL vmlinux 0x00000000 software_node_unregister_nodes +EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_add_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_alloc_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_async +EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_async_locked +EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_bus_lock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_bus_unlock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_busnum_to_master +EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_controller_dma_map_mem_op_data +EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_controller_dma_unmap_mem_op_data +EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_controller_resume +EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_controller_suspend +EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_delay_exec +EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_delay_to_ns +EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_finalize_current_message +EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_finalize_current_transfer +EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_get_next_queued_message +EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_mem_adjust_op_size +EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_mem_default_supports_op +EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_mem_dirmap_create +EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_mem_dirmap_destroy +EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_mem_dirmap_read +EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_mem_dirmap_write +EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_mem_driver_register_with_owner +EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_mem_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_mem_exec_op +EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_mem_get_name +EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_mem_supports_op +EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_new_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_register_controller +EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_replace_transfers +EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_res_add +EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_res_alloc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_res_free +EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_res_release +EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_set_cs_timing +EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_setup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_slave_abort +EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_split_transfers_maxsize +EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_statistics_add_transfer_stats +EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_sync +EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_sync_locked +EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_take_timestamp_post +EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_take_timestamp_pre +EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_unregister_controller +EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 spi_write_then_read +EXPORT_SYMBOL_GPL vmlinux 0x00000000 splice_to_pipe +EXPORT_SYMBOL_GPL vmlinux 0x00000000 split_page +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sprint_OID +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sprint_oid +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sprint_symbol +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sprint_symbol_no_offset +EXPORT_SYMBOL_GPL vmlinux 0x00000000 srcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 srcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x00000000 srcu_init_notifier_head +EXPORT_SYMBOL_GPL vmlinux 0x00000000 srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x00000000 srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 srcu_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 srcu_torture_stats_print +EXPORT_SYMBOL_GPL vmlinux 0x00000000 srcutorture_get_gp_data +EXPORT_SYMBOL_GPL vmlinux 0x00000000 stack_trace_print +EXPORT_SYMBOL_GPL vmlinux 0x00000000 stack_trace_save +EXPORT_SYMBOL_GPL vmlinux 0x00000000 stack_trace_snprint +EXPORT_SYMBOL_GPL vmlinux 0x00000000 start_thread +EXPORT_SYMBOL_GPL vmlinux 0x00000000 static_key_count +EXPORT_SYMBOL_GPL vmlinux 0x00000000 static_key_disable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 static_key_disable_cpuslocked +EXPORT_SYMBOL_GPL vmlinux 0x00000000 static_key_enable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 static_key_enable_cpuslocked +EXPORT_SYMBOL_GPL vmlinux 0x00000000 static_key_initialized +EXPORT_SYMBOL_GPL vmlinux 0x00000000 static_key_slow_dec +EXPORT_SYMBOL_GPL vmlinux 0x00000000 static_key_slow_inc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 stop_machine +EXPORT_SYMBOL_GPL vmlinux 0x00000000 store_sampling_rate +EXPORT_SYMBOL_GPL vmlinux 0x00000000 strp_check_rcv +EXPORT_SYMBOL_GPL vmlinux 0x00000000 strp_data_ready +EXPORT_SYMBOL_GPL vmlinux 0x00000000 strp_done +EXPORT_SYMBOL_GPL vmlinux 0x00000000 strp_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 strp_process +EXPORT_SYMBOL_GPL vmlinux 0x00000000 strp_stop +EXPORT_SYMBOL_GPL vmlinux 0x00000000 strp_unpause +EXPORT_SYMBOL_GPL vmlinux 0x00000000 subsys_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x00000000 subsys_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 subsys_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x00000000 subsys_find_device_by_id +EXPORT_SYMBOL_GPL vmlinux 0x00000000 subsys_interface_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 subsys_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 subsys_system_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 subsys_virtual_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 suspend_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0x00000000 suspend_set_ops +EXPORT_SYMBOL_GPL vmlinux 0x00000000 suspend_valid_only_mem +EXPORT_SYMBOL_GPL vmlinux 0x00000000 swiotlb_max_segment +EXPORT_SYMBOL_GPL vmlinux 0x00000000 swiotlb_nr_tbl +EXPORT_SYMBOL_GPL vmlinux 0x00000000 switch_fpu_return +EXPORT_SYMBOL_GPL vmlinux 0x00000000 switchdev_deferred_process +EXPORT_SYMBOL_GPL vmlinux 0x00000000 switchdev_handle_port_attr_set +EXPORT_SYMBOL_GPL vmlinux 0x00000000 switchdev_handle_port_obj_add +EXPORT_SYMBOL_GPL vmlinux 0x00000000 switchdev_handle_port_obj_del +EXPORT_SYMBOL_GPL vmlinux 0x00000000 switchdev_port_attr_set +EXPORT_SYMBOL_GPL vmlinux 0x00000000 switchdev_port_obj_add +EXPORT_SYMBOL_GPL vmlinux 0x00000000 switchdev_port_obj_del +EXPORT_SYMBOL_GPL vmlinux 0x00000000 swphy_read_reg +EXPORT_SYMBOL_GPL vmlinux 0x00000000 swphy_validate_state +EXPORT_SYMBOL_GPL vmlinux 0x00000000 symbol_put_addr +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sync_page_io +EXPORT_SYMBOL_GPL vmlinux 0x00000000 synchronize_rcu +EXPORT_SYMBOL_GPL vmlinux 0x00000000 synchronize_rcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x00000000 synchronize_rcu_tasks +EXPORT_SYMBOL_GPL vmlinux 0x00000000 synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0x00000000 synchronize_srcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x00000000 synth_event_add_field +EXPORT_SYMBOL_GPL vmlinux 0x00000000 synth_event_add_field_str +EXPORT_SYMBOL_GPL vmlinux 0x00000000 synth_event_add_fields +EXPORT_SYMBOL_GPL vmlinux 0x00000000 synth_event_add_next_val +EXPORT_SYMBOL_GPL vmlinux 0x00000000 synth_event_add_val +EXPORT_SYMBOL_GPL vmlinux 0x00000000 synth_event_cmd_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 synth_event_create +EXPORT_SYMBOL_GPL vmlinux 0x00000000 synth_event_delete +EXPORT_SYMBOL_GPL vmlinux 0x00000000 synth_event_gen_cmd_array_start +EXPORT_SYMBOL_GPL vmlinux 0x00000000 synth_event_trace +EXPORT_SYMBOL_GPL vmlinux 0x00000000 synth_event_trace_array +EXPORT_SYMBOL_GPL vmlinux 0x00000000 synth_event_trace_end +EXPORT_SYMBOL_GPL vmlinux 0x00000000 synth_event_trace_start +EXPORT_SYMBOL_GPL vmlinux 0x00000000 syscon_node_to_regmap +EXPORT_SYMBOL_GPL vmlinux 0x00000000 syscon_regmap_lookup_by_compatible +EXPORT_SYMBOL_GPL vmlinux 0x00000000 syscon_regmap_lookup_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0x00000000 syscon_regmap_lookup_by_phandle_args +EXPORT_SYMBOL_GPL vmlinux 0x00000000 syscore_resume +EXPORT_SYMBOL_GPL vmlinux 0x00000000 syscore_suspend +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysctl_vfs_cache_pressure +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_add_file_to_group +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_add_link_to_group +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_break_active_protection +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_change_owner +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_create_file_ns +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_create_files +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_create_group +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_create_groups +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_create_link_nowarn +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_create_mount_point +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_file_change_owner +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_group_change_owner +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_groups_change_owner +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_merge_group +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_remove_file_from_group +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_remove_file_ns +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_remove_files +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_remove_groups +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_remove_link_from_group +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_remove_mount_point +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_rename_link_ns +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_unbreak_active_protection +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_unmerge_group +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_update_group +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sysfs_update_groups +EXPORT_SYMBOL_GPL vmlinux 0x00000000 system_freezable_power_efficient_wq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 system_freezable_wq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 system_highpri_wq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 system_long_wq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 system_power_efficient_wq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 system_unbound_wq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 task_active_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x00000000 task_cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0x00000000 task_cls_state +EXPORT_SYMBOL_GPL vmlinux 0x00000000 task_cputime_adjusted +EXPORT_SYMBOL_GPL vmlinux 0x00000000 task_handoff_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 task_handoff_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 task_user_regset_view +EXPORT_SYMBOL_GPL vmlinux 0x00000000 task_work_run +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tcp_abort +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tcp_bpf_sendmsg_redir +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tcp_ca_get_key_by_name +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tcp_ca_get_name_by_key +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tcp_ca_openreq_child +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tcp_cong_avoid_ai +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tcp_done +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tcp_enter_memory_pressure +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tcp_get_syncookie_mss +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tcp_is_ulp_esp +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tcp_leave_memory_pressure +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tcp_memory_pressure +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tcp_rate_check_app_limited +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tcp_register_ulp +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tcp_reno_undo_cwnd +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tcp_sendmsg_locked +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tcp_sendpage_locked +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tcp_set_keepalive +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tcp_set_state +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tcp_unregister_ulp +EXPORT_SYMBOL_GPL vmlinux 0x00000000 thermal_add_hwmon_sysfs +EXPORT_SYMBOL_GPL vmlinux 0x00000000 thermal_cooling_device_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 thermal_cooling_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 thermal_notify_framework +EXPORT_SYMBOL_GPL vmlinux 0x00000000 thermal_of_cooling_device_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 thermal_remove_hwmon_sysfs +EXPORT_SYMBOL_GPL vmlinux 0x00000000 thermal_zone_bind_cooling_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 thermal_zone_device_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 thermal_zone_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 thermal_zone_device_update +EXPORT_SYMBOL_GPL vmlinux 0x00000000 thermal_zone_get_offset +EXPORT_SYMBOL_GPL vmlinux 0x00000000 thermal_zone_get_slope +EXPORT_SYMBOL_GPL vmlinux 0x00000000 thermal_zone_get_temp +EXPORT_SYMBOL_GPL vmlinux 0x00000000 thermal_zone_get_zone_by_name +EXPORT_SYMBOL_GPL vmlinux 0x00000000 thermal_zone_set_trips +EXPORT_SYMBOL_GPL vmlinux 0x00000000 thermal_zone_unbind_cooling_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 thp_get_unmapped_area +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tick_broadcast_control +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tick_broadcast_oneshot_control +EXPORT_SYMBOL_GPL vmlinux 0x00000000 timecounter_cyc2time +EXPORT_SYMBOL_GPL vmlinux 0x00000000 timecounter_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 timecounter_read +EXPORT_SYMBOL_GPL vmlinux 0x00000000 timerqueue_add +EXPORT_SYMBOL_GPL vmlinux 0x00000000 timerqueue_del +EXPORT_SYMBOL_GPL vmlinux 0x00000000 timerqueue_iterate_next +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tnum_strn +EXPORT_SYMBOL_GPL vmlinux 0x00000000 to_nd_blk_region +EXPORT_SYMBOL_GPL vmlinux 0x00000000 to_nd_desc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 to_nd_region +EXPORT_SYMBOL_GPL vmlinux 0x00000000 to_nvdimm +EXPORT_SYMBOL_GPL vmlinux 0x00000000 to_nvdimm_bus +EXPORT_SYMBOL_GPL vmlinux 0x00000000 to_nvdimm_bus_dev +EXPORT_SYMBOL_GPL vmlinux 0x00000000 to_software_node +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tpm1_do_selftest +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tpm1_getcap +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tpm2_flush_context +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tpm2_get_tpm_pt +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tpm2_probe +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tpm_calc_ordinal_duration +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tpm_chip_alloc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tpm_chip_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tpm_chip_start +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tpm_chip_stop +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tpm_chip_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tpm_default_chip +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tpm_get_random +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tpm_get_timeouts +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tpm_is_tpm2 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tpm_pcr_extend +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tpm_pcr_read +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tpm_pm_resume +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tpm_pm_suspend +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tpm_put_ops +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tpm_send +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tpm_tis_core_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tpm_tis_remove +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tpm_tis_resume +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tpm_transmit_cmd +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tpm_try_get_ops +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tpmm_chip_alloc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tps6586x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tps6586x_get_version +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tps6586x_irq_get_virq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tps6586x_read +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tps6586x_reads +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tps6586x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tps6586x_update +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tps6586x_write +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tps6586x_writes +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tps65912_device_exit +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tps65912_device_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tps65912_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tps80031_ext_power_req_config +EXPORT_SYMBOL_GPL vmlinux 0x00000000 trace_array_destroy +EXPORT_SYMBOL_GPL vmlinux 0x00000000 trace_array_get_by_name +EXPORT_SYMBOL_GPL vmlinux 0x00000000 trace_array_printk +EXPORT_SYMBOL_GPL vmlinux 0x00000000 trace_array_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 trace_array_set_clr_event +EXPORT_SYMBOL_GPL vmlinux 0x00000000 trace_call_bpf +EXPORT_SYMBOL_GPL vmlinux 0x00000000 trace_clock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 trace_clock_global +EXPORT_SYMBOL_GPL vmlinux 0x00000000 trace_clock_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x00000000 trace_clock_local +EXPORT_SYMBOL_GPL vmlinux 0x00000000 trace_define_field +EXPORT_SYMBOL_GPL vmlinux 0x00000000 trace_dump_stack +EXPORT_SYMBOL_GPL vmlinux 0x00000000 trace_event_buffer_commit +EXPORT_SYMBOL_GPL vmlinux 0x00000000 trace_event_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0x00000000 trace_event_buffer_reserve +EXPORT_SYMBOL_GPL vmlinux 0x00000000 trace_event_ignore_this_pid +EXPORT_SYMBOL_GPL vmlinux 0x00000000 trace_event_raw_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 trace_event_reg +EXPORT_SYMBOL_GPL vmlinux 0x00000000 trace_get_event_file +EXPORT_SYMBOL_GPL vmlinux 0x00000000 trace_handle_return +EXPORT_SYMBOL_GPL vmlinux 0x00000000 trace_output_call +EXPORT_SYMBOL_GPL vmlinux 0x00000000 trace_print_bitmask_seq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 trace_printk_init_buffers +EXPORT_SYMBOL_GPL vmlinux 0x00000000 trace_put_event_file +EXPORT_SYMBOL_GPL vmlinux 0x00000000 trace_seq_bitmask +EXPORT_SYMBOL_GPL vmlinux 0x00000000 trace_seq_bprintf +EXPORT_SYMBOL_GPL vmlinux 0x00000000 trace_seq_path +EXPORT_SYMBOL_GPL vmlinux 0x00000000 trace_seq_printf +EXPORT_SYMBOL_GPL vmlinux 0x00000000 trace_seq_putc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 trace_seq_putmem +EXPORT_SYMBOL_GPL vmlinux 0x00000000 trace_seq_putmem_hex +EXPORT_SYMBOL_GPL vmlinux 0x00000000 trace_seq_puts +EXPORT_SYMBOL_GPL vmlinux 0x00000000 trace_seq_to_user +EXPORT_SYMBOL_GPL vmlinux 0x00000000 trace_seq_vprintf +EXPORT_SYMBOL_GPL vmlinux 0x00000000 trace_set_clr_event +EXPORT_SYMBOL_GPL vmlinux 0x00000000 trace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x00000000 trace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tracepoint_probe_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tracepoint_probe_register_prio +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tracepoint_probe_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tracepoint_srcu +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tracing_alloc_snapshot +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tracing_cond_snapshot_data +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tracing_generic_entry_update +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tracing_is_on +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tracing_off +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tracing_on +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tracing_snapshot +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tracing_snapshot_alloc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tracing_snapshot_cond +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tracing_snapshot_cond_disable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tracing_snapshot_cond_enable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 transport_add_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 transport_configure_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 transport_destroy_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 trusted_tpm_send +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_buffer_lock_exclusive +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_buffer_set_limit +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_buffer_space_avail +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_buffer_unlock_exclusive +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_dev_name_to_number +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_find_polling_driver +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_get_pgrp +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_init_termios +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_kclose +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_kopen +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_ldisc_receive_buf +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_ldisc_release +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_port_default_client_ops +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_port_install +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_port_link_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_port_register_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_port_register_device_attr +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_port_register_device_attr_serdev +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_port_register_device_serdev +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_port_tty_hangup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_port_tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_port_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_put_char +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_register_device_attr +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_release_struct +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_save_termios +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_set_ldisc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_set_termios +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_standard_install +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_termios_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tun_get_socket +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tun_get_tx_ring +EXPORT_SYMBOL_GPL vmlinux 0x00000000 tun_ptr_free +EXPORT_SYMBOL_GPL vmlinux 0x00000000 twl4030_audio_disable_resource +EXPORT_SYMBOL_GPL vmlinux 0x00000000 twl4030_audio_enable_resource +EXPORT_SYMBOL_GPL vmlinux 0x00000000 twl4030_audio_get_mclk +EXPORT_SYMBOL_GPL vmlinux 0x00000000 twl_get_hfclk_rate +EXPORT_SYMBOL_GPL vmlinux 0x00000000 twl_get_type +EXPORT_SYMBOL_GPL vmlinux 0x00000000 twl_get_version +EXPORT_SYMBOL_GPL vmlinux 0x00000000 uart_console_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 uart_console_write +EXPORT_SYMBOL_GPL vmlinux 0x00000000 uart_get_rs485_mode +EXPORT_SYMBOL_GPL vmlinux 0x00000000 uart_handle_break +EXPORT_SYMBOL_GPL vmlinux 0x00000000 uart_handle_cts_change +EXPORT_SYMBOL_GPL vmlinux 0x00000000 uart_handle_dcd_change +EXPORT_SYMBOL_GPL vmlinux 0x00000000 uart_handle_sysrq_char +EXPORT_SYMBOL_GPL vmlinux 0x00000000 uart_insert_char +EXPORT_SYMBOL_GPL vmlinux 0x00000000 uart_parse_earlycon +EXPORT_SYMBOL_GPL vmlinux 0x00000000 uart_parse_options +EXPORT_SYMBOL_GPL vmlinux 0x00000000 uart_prepare_sysrq_char +EXPORT_SYMBOL_GPL vmlinux 0x00000000 uart_set_options +EXPORT_SYMBOL_GPL vmlinux 0x00000000 uart_unlock_and_check_sysrq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 udp4_hwcsum +EXPORT_SYMBOL_GPL vmlinux 0x00000000 udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 udp4_lib_lookup_skb +EXPORT_SYMBOL_GPL vmlinux 0x00000000 udp6_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 udp6_lib_lookup_skb +EXPORT_SYMBOL_GPL vmlinux 0x00000000 udp_abort +EXPORT_SYMBOL_GPL vmlinux 0x00000000 udp_cmsg_send +EXPORT_SYMBOL_GPL vmlinux 0x00000000 udp_destruct_sock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 udp_init_sock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 uhci_check_and_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 uhci_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 umc_normaddr_to_sysaddr +EXPORT_SYMBOL_GPL vmlinux 0x00000000 unbind_from_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x00000000 unix_inq_len +EXPORT_SYMBOL_GPL vmlinux 0x00000000 unix_outq_len +EXPORT_SYMBOL_GPL vmlinux 0x00000000 unix_peer_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 unix_socket_table +EXPORT_SYMBOL_GPL vmlinux 0x00000000 unix_table_lock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 unlock_system_sleep +EXPORT_SYMBOL_GPL vmlinux 0x00000000 unmap_kernel_range +EXPORT_SYMBOL_GPL vmlinux 0x00000000 unmap_kernel_range_noflush +EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_acpi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_acpi_hed_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_asymmetric_key_parser +EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_ftrace_direct +EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_ftrace_export +EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_ftrace_function +EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_kprobes +EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_nmi_handler +EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_oldmem_pfn_is_ram +EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_switchdev_blocking_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_switchdev_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_syscore_ops +EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_trace_event +EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_tracepoint_module_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_virtio_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_virtio_driver +EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_vmap_purge_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_xenbus_watch +EXPORT_SYMBOL_GPL vmlinux 0x00000000 unregister_xenstore_notifier +EXPORT_SYMBOL_GPL vmlinux 0x00000000 unshare_fs_struct +EXPORT_SYMBOL_GPL vmlinux 0x00000000 unuse_mm +EXPORT_SYMBOL_GPL vmlinux 0x00000000 unwind_get_return_address +EXPORT_SYMBOL_GPL vmlinux 0x00000000 unwind_next_frame +EXPORT_SYMBOL_GPL vmlinux 0x00000000 update_time +EXPORT_SYMBOL_GPL vmlinux 0x00000000 uprobe_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 uprobe_register_refctr +EXPORT_SYMBOL_GPL vmlinux 0x00000000 uprobe_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_acpi_power_manageable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_acpi_set_power_state +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_add_hcd +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_add_phy +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_add_phy_dev +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_alloc_coherent +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_alloc_dev +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_alloc_streams +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_alloc_urb +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_altnum_to_altsetting +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_amd_dev_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_amd_hang_symptom_quirk +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_amd_prefetch_quirk +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_amd_pt_check_port +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_amd_quirk_pll_check +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_amd_quirk_pll_disable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_amd_quirk_pll_enable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_anchor_empty +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_anchor_resume_wakeups +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_anchor_suspend_wakeups +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_anchor_urb +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_asmedia_modifyflowcontrol +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_autopm_get_interface +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_autopm_get_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_autopm_get_interface_no_resume +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_autopm_put_interface +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_autopm_put_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_autopm_put_interface_no_suspend +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_block_urb +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_bulk_msg +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_bus_idr +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_bus_idr_lock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_calc_bus_time +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_choose_configuration +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_clear_halt +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_control_msg +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_create_hcd +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_create_shared_hcd +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_debug_root +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_decode_ctrl +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_deregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_deregister_dev +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_deregister_device_driver +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_disable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_disable_lpm +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_disable_ltm +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_disable_xhci_ports +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_disabled +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_driver_claim_interface +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_driver_release_interface +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_driver_set_configuration +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_enable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_enable_intel_xhci_ports +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_enable_lpm +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_enable_ltm +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_ep0_reinit +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_ep_type_string +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_find_alt_setting +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_find_common_endpoints +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_find_common_endpoints_reverse +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_find_interface +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_free_streams +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_free_urb +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_get_current_frame_number +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_get_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_get_dr_mode +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_get_from_anchor +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_get_hcd +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_get_intf +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_get_maximum_speed +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_get_phy +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_get_status +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_get_urb +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_hc_died +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_hcd_amd_remote_wakeup_quirk +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_hcd_check_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_hcd_end_port_resume +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_hcd_giveback_urb +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_hcd_irq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_hcd_is_primary_hcd +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_hcd_link_urb_to_ep +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_hcd_map_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_hcd_pci_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_hcd_pci_probe +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_hcd_pci_remove +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_hcd_pci_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_hcd_platform_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_hcd_poll_rh_status +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_hcd_resume_root_hub +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_hcd_setup_local_mem +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_hcd_start_port_resume +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_hcd_unlink_urb_from_ep +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_hcd_unmap_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_hcd_unmap_urb_setup_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_hcds_loaded +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_hub_claim_port +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_hub_clear_tt_buffer +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_hub_find_child +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_hub_release_port +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_ifnum_to_if +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_init_urb +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_interrupt_msg +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_kill_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_kill_urb +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_led_activity +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_lock_device_for_reset +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_match_id +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_match_one_id +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_mon_deregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_mon_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_otg_state_string +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_phy_get_charger_current +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_phy_roothub_alloc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_phy_roothub_calibrate +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_phy_roothub_exit +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_phy_roothub_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_phy_roothub_power_off +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_phy_roothub_power_on +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_phy_roothub_resume +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_phy_roothub_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_phy_roothub_suspend +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_phy_set_charger_current +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_phy_set_charger_state +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_phy_set_event +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_poison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_poison_urb +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_put_dev +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_put_hcd +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_put_intf +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_put_phy +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_queue_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_register_dev +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_register_device_driver +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_register_notify +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_remove_hcd +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_remove_phy +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_reset_configuration +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_reset_endpoint +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_root_hub_lost_power +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_scuttle_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_set_configuration +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_set_device_state +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_set_interface +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_sg_cancel +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_sg_wait +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_show_dynids +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_speed_string +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_state_string +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_store_new_id +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_string +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_submit_urb +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_unanchor_urb +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_unlink_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_unlocked_disable_lpm +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_unlocked_enable_lpm +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_unpoison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_unpoison_urb +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_unregister_notify +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_urb_ep_type_check +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_wait_anchor_empty_timeout +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_wakeup_enabled_descendants +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usb_wakeup_notification +EXPORT_SYMBOL_GPL vmlinux 0x00000000 use_mm +EXPORT_SYMBOL_GPL vmlinux 0x00000000 user_describe +EXPORT_SYMBOL_GPL vmlinux 0x00000000 user_destroy +EXPORT_SYMBOL_GPL vmlinux 0x00000000 user_free_preparse +EXPORT_SYMBOL_GPL vmlinux 0x00000000 user_preparse +EXPORT_SYMBOL_GPL vmlinux 0x00000000 user_read +EXPORT_SYMBOL_GPL vmlinux 0x00000000 user_return_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 user_return_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 user_update +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usermodehelper_read_lock_wait +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usermodehelper_read_trylock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 usermodehelper_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 uuid_gen +EXPORT_SYMBOL_GPL vmlinux 0x00000000 validate_xmit_skb_list +EXPORT_SYMBOL_GPL vmlinux 0x00000000 validate_xmit_xfrm +EXPORT_SYMBOL_GPL vmlinux 0x00000000 vbin_printf +EXPORT_SYMBOL_GPL vmlinux 0x00000000 vc_scrolldelta_helper +EXPORT_SYMBOL_GPL vmlinux 0x00000000 verify_pkcs7_signature +EXPORT_SYMBOL_GPL vmlinux 0x00000000 verify_signature +EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfio_add_group_dev +EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfio_del_group_dev +EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfio_device_data +EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfio_device_get_from_dev +EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfio_device_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfio_external_check_extension +EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfio_external_group_match_file +EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfio_external_user_iommu_id +EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfio_group_get_external_user +EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfio_group_put_external_user +EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfio_group_set_kvm +EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfio_info_cap_add +EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfio_iommu_group_get +EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfio_iommu_group_put +EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfio_register_iommu_driver +EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfio_unregister_iommu_driver +EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfio_virqfd_disable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfio_virqfd_enable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfs_fallocate +EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfs_getxattr_alloc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfs_lock_file +EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfs_read +EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfs_readf +EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfs_submount +EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfs_truncate +EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfs_write +EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfs_writef +EXPORT_SYMBOL_GPL vmlinux 0x00000000 vga_default_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 videomode_from_timing +EXPORT_SYMBOL_GPL vmlinux 0x00000000 videomode_from_timings +EXPORT_SYMBOL_GPL vmlinux 0x00000000 virtio_add_status +EXPORT_SYMBOL_GPL vmlinux 0x00000000 virtio_break_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 virtio_check_driver_offered_feature +EXPORT_SYMBOL_GPL vmlinux 0x00000000 virtio_config_changed +EXPORT_SYMBOL_GPL vmlinux 0x00000000 virtio_config_disable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 virtio_config_enable +EXPORT_SYMBOL_GPL vmlinux 0x00000000 virtio_device_freeze +EXPORT_SYMBOL_GPL vmlinux 0x00000000 virtio_device_restore +EXPORT_SYMBOL_GPL vmlinux 0x00000000 virtio_finalize_features +EXPORT_SYMBOL_GPL vmlinux 0x00000000 virtio_max_dma_size +EXPORT_SYMBOL_GPL vmlinux 0x00000000 virtqueue_add_inbuf +EXPORT_SYMBOL_GPL vmlinux 0x00000000 virtqueue_add_inbuf_ctx +EXPORT_SYMBOL_GPL vmlinux 0x00000000 virtqueue_add_outbuf +EXPORT_SYMBOL_GPL vmlinux 0x00000000 virtqueue_add_sgs +EXPORT_SYMBOL_GPL vmlinux 0x00000000 virtqueue_detach_unused_buf +EXPORT_SYMBOL_GPL vmlinux 0x00000000 virtqueue_disable_cb +EXPORT_SYMBOL_GPL vmlinux 0x00000000 virtqueue_enable_cb +EXPORT_SYMBOL_GPL vmlinux 0x00000000 virtqueue_enable_cb_delayed +EXPORT_SYMBOL_GPL vmlinux 0x00000000 virtqueue_enable_cb_prepare +EXPORT_SYMBOL_GPL vmlinux 0x00000000 virtqueue_get_avail_addr +EXPORT_SYMBOL_GPL vmlinux 0x00000000 virtqueue_get_buf +EXPORT_SYMBOL_GPL vmlinux 0x00000000 virtqueue_get_buf_ctx +EXPORT_SYMBOL_GPL vmlinux 0x00000000 virtqueue_get_desc_addr +EXPORT_SYMBOL_GPL vmlinux 0x00000000 virtqueue_get_used_addr +EXPORT_SYMBOL_GPL vmlinux 0x00000000 virtqueue_get_vring +EXPORT_SYMBOL_GPL vmlinux 0x00000000 virtqueue_get_vring_size +EXPORT_SYMBOL_GPL vmlinux 0x00000000 virtqueue_is_broken +EXPORT_SYMBOL_GPL vmlinux 0x00000000 virtqueue_kick +EXPORT_SYMBOL_GPL vmlinux 0x00000000 virtqueue_kick_prepare +EXPORT_SYMBOL_GPL vmlinux 0x00000000 virtqueue_notify +EXPORT_SYMBOL_GPL vmlinux 0x00000000 virtqueue_poll +EXPORT_SYMBOL_GPL vmlinux 0x00000000 visitor128 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 visitor32 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 visitor64 +EXPORT_SYMBOL_GPL vmlinux 0x00000000 visitorl +EXPORT_SYMBOL_GPL vmlinux 0x00000000 vm_memory_committed +EXPORT_SYMBOL_GPL vmlinux 0x00000000 vm_unmap_aliases +EXPORT_SYMBOL_GPL vmlinux 0x00000000 vma_kernel_pagesize +EXPORT_SYMBOL_GPL vmlinux 0x00000000 vmf_insert_pfn_pmd +EXPORT_SYMBOL_GPL vmlinux 0x00000000 vmf_insert_pfn_pud +EXPORT_SYMBOL_GPL vmlinux 0x00000000 vprintk_default +EXPORT_SYMBOL_GPL vmlinux 0x00000000 vring_create_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0x00000000 vring_del_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0x00000000 vring_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x00000000 vring_new_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0x00000000 vring_transport_features +EXPORT_SYMBOL_GPL vmlinux 0x00000000 vt_get_leds +EXPORT_SYMBOL_GPL vmlinux 0x00000000 wait_for_device_probe +EXPORT_SYMBOL_GPL vmlinux 0x00000000 wait_for_stable_page +EXPORT_SYMBOL_GPL vmlinux 0x00000000 wait_on_page_writeback +EXPORT_SYMBOL_GPL vmlinux 0x00000000 wake_up_all_idle_cpus +EXPORT_SYMBOL_GPL vmlinux 0x00000000 wakeme_after_rcu +EXPORT_SYMBOL_GPL vmlinux 0x00000000 wakeup_source_add +EXPORT_SYMBOL_GPL vmlinux 0x00000000 wakeup_source_create +EXPORT_SYMBOL_GPL vmlinux 0x00000000 wakeup_source_destroy +EXPORT_SYMBOL_GPL vmlinux 0x00000000 wakeup_source_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 wakeup_source_remove +EXPORT_SYMBOL_GPL vmlinux 0x00000000 wakeup_source_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 wakeup_sources_read_lock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 wakeup_sources_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 wakeup_sources_walk_next +EXPORT_SYMBOL_GPL vmlinux 0x00000000 wakeup_sources_walk_start +EXPORT_SYMBOL_GPL vmlinux 0x00000000 walk_iomem_res_desc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 watchdog_init_timeout +EXPORT_SYMBOL_GPL vmlinux 0x00000000 watchdog_notify_pretimeout +EXPORT_SYMBOL_GPL vmlinux 0x00000000 watchdog_register_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 watchdog_set_restart_priority +EXPORT_SYMBOL_GPL vmlinux 0x00000000 watchdog_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x00000000 wb_writeout_inc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 wbc_account_cgroup_owner +EXPORT_SYMBOL_GPL vmlinux 0x00000000 wbc_attach_and_unlock_inode +EXPORT_SYMBOL_GPL vmlinux 0x00000000 wbc_detach_inode +EXPORT_SYMBOL_GPL vmlinux 0x00000000 wbt_disable_default +EXPORT_SYMBOL_GPL vmlinux 0x00000000 wbt_enable_default +EXPORT_SYMBOL_GPL vmlinux 0x00000000 wireless_nlevent_flush +EXPORT_SYMBOL_GPL vmlinux 0x00000000 wm5102_i2c_regmap +EXPORT_SYMBOL_GPL vmlinux 0x00000000 wm5102_spi_regmap +EXPORT_SYMBOL_GPL vmlinux 0x00000000 wm5110_aod +EXPORT_SYMBOL_GPL vmlinux 0x00000000 wm5110_i2c_regmap +EXPORT_SYMBOL_GPL vmlinux 0x00000000 wm5110_irq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 wm5110_patch +EXPORT_SYMBOL_GPL vmlinux 0x00000000 wm5110_revd_irq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 wm5110_spi_regmap +EXPORT_SYMBOL_GPL vmlinux 0x00000000 wm831x_auxadc_read +EXPORT_SYMBOL_GPL vmlinux 0x00000000 wm831x_auxadc_read_uv +EXPORT_SYMBOL_GPL vmlinux 0x00000000 wm831x_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x00000000 wm831x_device_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x00000000 wm831x_isinkv_values +EXPORT_SYMBOL_GPL vmlinux 0x00000000 wm831x_of_match +EXPORT_SYMBOL_GPL vmlinux 0x00000000 wm831x_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 wm831x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x00000000 wm831x_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 wm831x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x00000000 wm831x_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0x00000000 wm831x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x00000000 wm8350_block_read +EXPORT_SYMBOL_GPL vmlinux 0x00000000 wm8350_block_write +EXPORT_SYMBOL_GPL vmlinux 0x00000000 wm8350_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0x00000000 wm8350_device_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 wm8350_gpio_config +EXPORT_SYMBOL_GPL vmlinux 0x00000000 wm8350_read_auxadc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 wm8350_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 wm8350_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x00000000 wm8350_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x00000000 wm8350_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x00000000 wm8350_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x00000000 wm8400_reset_codec_reg_cache +EXPORT_SYMBOL_GPL vmlinux 0x00000000 wm8997_aod +EXPORT_SYMBOL_GPL vmlinux 0x00000000 wm8997_i2c_regmap +EXPORT_SYMBOL_GPL vmlinux 0x00000000 wm8997_irq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 wm8997_patch +EXPORT_SYMBOL_GPL vmlinux 0x00000000 wm8998_i2c_regmap +EXPORT_SYMBOL_GPL vmlinux 0x00000000 work_busy +EXPORT_SYMBOL_GPL vmlinux 0x00000000 work_on_cpu +EXPORT_SYMBOL_GPL vmlinux 0x00000000 work_on_cpu_safe +EXPORT_SYMBOL_GPL vmlinux 0x00000000 workqueue_congested +EXPORT_SYMBOL_GPL vmlinux 0x00000000 workqueue_set_max_active +EXPORT_SYMBOL_GPL vmlinux 0x00000000 wp_shared_mapping_range +EXPORT_SYMBOL_GPL vmlinux 0x00000000 x509_cert_parse +EXPORT_SYMBOL_GPL vmlinux 0x00000000 x509_decode_time +EXPORT_SYMBOL_GPL vmlinux 0x00000000 x509_free_certificate +EXPORT_SYMBOL_GPL vmlinux 0x00000000 x86_cpu_has_min_microcode_rev +EXPORT_SYMBOL_GPL vmlinux 0x00000000 x86_family +EXPORT_SYMBOL_GPL vmlinux 0x00000000 x86_model +EXPORT_SYMBOL_GPL vmlinux 0x00000000 x86_platform +EXPORT_SYMBOL_GPL vmlinux 0x00000000 x86_spec_ctrl_base +EXPORT_SYMBOL_GPL vmlinux 0x00000000 x86_stepping +EXPORT_SYMBOL_GPL vmlinux 0x00000000 x86_vector_domain +EXPORT_SYMBOL_GPL vmlinux 0x00000000 x86_virt_spec_ctrl +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xas_clear_mark +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xas_create_range +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xas_find +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xas_find_conflict +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xas_find_marked +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xas_get_mark +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xas_init_marks +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xas_load +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xas_nomem +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xas_pause +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xas_set_mark +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xas_store +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xdp_attachment_flags_ok +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xdp_attachment_query +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xdp_attachment_setup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xdp_convert_zc_to_xdp_frame +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xdp_do_flush +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xdp_do_generic_redirect +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xdp_do_redirect +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xdp_return_buff +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xdp_return_frame +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xdp_return_frame_rx_napi +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xdp_rxq_info_is_reg +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xdp_rxq_info_reg +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xdp_rxq_info_reg_mem_model +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xdp_rxq_info_unreg +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xdp_rxq_info_unreg_mem_model +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xdp_rxq_info_unused +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_balloon_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_domain_type +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_evtchn_nr_channels +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_features +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_find_device_domain_owner +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_has_pv_and_legacy_disk_devices +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_has_pv_devices +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_has_pv_disk_devices +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_has_pv_nic_devices +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_have_vector_callback +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_hvm_evtchn_do_upcall +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_in_preemptible_hcall +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_irq_from_gsi +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_max_p2m_pfn +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_p2m_addr +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_p2m_size +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_pci_frontend +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_pcpu_hotplug_sync +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_pcpu_id +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_pirq_from_irq +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_register_device_domain_owner +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_remap_pfn +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_remap_vma_range +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_resume_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_resume_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_set_affinity_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_set_callback_via +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_set_irq_priority +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_setup_shutdown_event +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_start_info +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_store_domain_type +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_store_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_store_interface +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_test_irq_shared +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_unmap_domain_gfn_range +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_unregister_device_domain_owner +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_xenbus_fops +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_xlate_map_ballooned_pages +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_xlate_remap_gfn_array +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xen_xlate_unmap_gfn_range +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_alloc_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_dev_cancel +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_dev_changed +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_dev_error +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_dev_fatal +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_dev_groups +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_dev_is_online +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_dev_probe +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_dev_remove +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_dev_resume +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_dev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_directory +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_exists +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_free_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_frontend_closed +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_gather +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_grant_ring +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_map_ring +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_map_ring_valloc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_match +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_mkdir +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_otherend_changed +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_printf +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_probe +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_probe_devices +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_probe_node +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_read +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_read_driver_state +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_read_otherend_details +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_read_unsigned +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_register_driver_common +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_rm +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_scanf +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_strstate +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_switch_state +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_transaction_end +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_transaction_start +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_unmap_ring +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_unmap_ring_vfree +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_watch_path +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_watch_pathfmt +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenbus_write +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenmem_reservation_decrease +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xenmem_reservation_increase +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xfrm_audit_policy_add +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xfrm_audit_policy_delete +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xfrm_audit_state_add +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xfrm_audit_state_delete +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xfrm_audit_state_icvfail +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xfrm_audit_state_notfound +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xfrm_audit_state_notfound_simple +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xfrm_audit_state_replay +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xfrm_audit_state_replay_overflow +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xfrm_dev_offload_ok +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xfrm_dev_resume +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xfrm_dev_state_add +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xfrm_local_error +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xfrm_output_resume +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xfrm_state_afinfo_get_rcu +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xfrm_state_mtu +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xhci_dbg_trace +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xhci_ext_cap_init +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xhci_gen_setup +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xhci_init_driver +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xhci_resume +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xhci_run +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xhci_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xhci_suspend +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xsk_reuseq_free +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xsk_reuseq_prepare +EXPORT_SYMBOL_GPL vmlinux 0x00000000 xsk_reuseq_swap +EXPORT_SYMBOL_GPL vmlinux 0x00000000 yield_to +EXPORT_SYMBOL_GPL vmlinux 0x00000000 zap_vma_ptes +EXPORT_SYMBOL_GPL vmlinux 0x00000000 zs_compact +EXPORT_SYMBOL_GPL vmlinux 0x00000000 zs_create_pool +EXPORT_SYMBOL_GPL vmlinux 0x00000000 zs_destroy_pool +EXPORT_SYMBOL_GPL vmlinux 0x00000000 zs_free +EXPORT_SYMBOL_GPL vmlinux 0x00000000 zs_get_total_pages +EXPORT_SYMBOL_GPL vmlinux 0x00000000 zs_huge_class_size +EXPORT_SYMBOL_GPL vmlinux 0x00000000 zs_malloc +EXPORT_SYMBOL_GPL vmlinux 0x00000000 zs_map_object +EXPORT_SYMBOL_GPL vmlinux 0x00000000 zs_pool_stats +EXPORT_SYMBOL_GPL vmlinux 0x00000000 zs_unmap_object +LTC2497 EXPORT_SYMBOL 0x00000000 ltc2497core_probe drivers/iio/adc/ltc2497-core +LTC2497 EXPORT_SYMBOL 0x00000000 ltc2497core_remove drivers/iio/adc/ltc2497-core +MCB EXPORT_SYMBOL_GPL 0x00000000 __mcb_register_driver drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x00000000 chameleon_parse_cells drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x00000000 mcb_alloc_bus drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x00000000 mcb_alloc_dev drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x00000000 mcb_bus_add_devices drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x00000000 mcb_bus_get drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x00000000 mcb_bus_put drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x00000000 mcb_device_register drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x00000000 mcb_free_dev drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x00000000 mcb_get_irq drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x00000000 mcb_get_resource drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x00000000 mcb_release_bus drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x00000000 mcb_release_mem drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x00000000 mcb_request_mem drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x00000000 mcb_unregister_driver drivers/mcb/mcb +SND_SOC_SOF_HDA_AUDIO_CODEC EXPORT_SYMBOL 0x00000000 hda_codec_jack_check sound/soc/sof/intel/snd-sof-intel-hda +SND_SOC_SOF_HDA_AUDIO_CODEC EXPORT_SYMBOL 0x00000000 hda_codec_jack_wake_enable sound/soc/sof/intel/snd-sof-intel-hda +SND_SOC_SOF_HDA_AUDIO_CODEC EXPORT_SYMBOL 0x00000000 hda_codec_probe_bus sound/soc/sof/intel/snd-sof-intel-hda +SND_SOC_SOF_HDA_AUDIO_CODEC_I915 EXPORT_SYMBOL 0x00000000 hda_codec_i915_display_power sound/soc/sof/intel/snd-sof-intel-hda +SND_SOC_SOF_HDA_AUDIO_CODEC_I915 EXPORT_SYMBOL 0x00000000 hda_codec_i915_exit sound/soc/sof/intel/snd-sof-intel-hda +SND_SOC_SOF_HDA_AUDIO_CODEC_I915 EXPORT_SYMBOL 0x00000000 hda_codec_i915_init sound/soc/sof/intel/snd-sof-intel-hda +SND_SOC_SOF_INTEL_HDA_COMMON EXPORT_SYMBOL 0x00000000 apl_chip_info sound/soc/sof/intel/snd-sof-intel-hda-common +SND_SOC_SOF_INTEL_HDA_COMMON EXPORT_SYMBOL 0x00000000 cnl_chip_info sound/soc/sof/intel/snd-sof-intel-hda-common +SND_SOC_SOF_INTEL_HDA_COMMON EXPORT_SYMBOL 0x00000000 ehl_chip_info sound/soc/sof/intel/snd-sof-intel-hda-common +SND_SOC_SOF_INTEL_HDA_COMMON EXPORT_SYMBOL 0x00000000 icl_chip_info sound/soc/sof/intel/snd-sof-intel-hda-common +SND_SOC_SOF_INTEL_HDA_COMMON EXPORT_SYMBOL 0x00000000 jsl_chip_info sound/soc/sof/intel/snd-sof-intel-hda-common +SND_SOC_SOF_INTEL_HDA_COMMON EXPORT_SYMBOL 0x00000000 sof_apl_ops sound/soc/sof/intel/snd-sof-intel-hda-common +SND_SOC_SOF_INTEL_HDA_COMMON EXPORT_SYMBOL 0x00000000 sof_cnl_ops sound/soc/sof/intel/snd-sof-intel-hda-common +SND_SOC_SOF_INTEL_HDA_COMMON EXPORT_SYMBOL 0x00000000 tgl_chip_info sound/soc/sof/intel/snd-sof-intel-hda-common +SND_SOC_SOF_XTENSA EXPORT_SYMBOL 0x00000000 sof_xtensa_arch_ops sound/soc/sof/xtensa/snd-sof-xtensa-dsp +SOUNDWIRE_INTEL_INIT EXPORT_SYMBOL 0x00000000 sdw_intel_acpi_scan drivers/soundwire/soundwire-intel +SOUNDWIRE_INTEL_INIT EXPORT_SYMBOL 0x00000000 sdw_intel_enable_irq drivers/soundwire/soundwire-intel +SOUNDWIRE_INTEL_INIT EXPORT_SYMBOL 0x00000000 sdw_intel_exit drivers/soundwire/soundwire-intel +SOUNDWIRE_INTEL_INIT EXPORT_SYMBOL 0x00000000 sdw_intel_probe drivers/soundwire/soundwire-intel +SOUNDWIRE_INTEL_INIT EXPORT_SYMBOL 0x00000000 sdw_intel_process_wakeen_event drivers/soundwire/soundwire-intel +SOUNDWIRE_INTEL_INIT EXPORT_SYMBOL 0x00000000 sdw_intel_startup drivers/soundwire/soundwire-intel +USB_STORAGE EXPORT_SYMBOL_GPL 0x00000000 fill_inquiry_response drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x00000000 usb_stor_Bulk_reset drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x00000000 usb_stor_Bulk_transport drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x00000000 usb_stor_CB_reset drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x00000000 usb_stor_CB_transport drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x00000000 usb_stor_access_xfer_buf drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x00000000 usb_stor_adjust_quirks drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x00000000 usb_stor_bulk_srb drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x00000000 usb_stor_bulk_transfer_buf drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x00000000 usb_stor_bulk_transfer_sg drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x00000000 usb_stor_clear_halt drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x00000000 usb_stor_control_msg drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x00000000 usb_stor_ctrl_transfer drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x00000000 usb_stor_disconnect drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x00000000 usb_stor_host_template_init drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x00000000 usb_stor_post_reset drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x00000000 usb_stor_pre_reset drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x00000000 usb_stor_probe1 drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x00000000 usb_stor_probe2 drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x00000000 usb_stor_reset_resume drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x00000000 usb_stor_resume drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x00000000 usb_stor_sense_invalidCDB drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x00000000 usb_stor_set_xfer_buf drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x00000000 usb_stor_suspend drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x00000000 usb_stor_transparent_scsi_command drivers/usb/storage/usb-storage only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/debian.oem/abi/5.6.0-1038.42/amd64/oem.compiler +++ linux-oem-5.6-5.6.0/debian.oem/abi/5.6.0-1038.42/amd64/oem.compiler @@ -0,0 +1 @@ +GCC: (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0 only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/debian.oem/abi/5.6.0-1038.42/amd64/oem.modules +++ linux-oem-5.6-5.6.0/debian.oem/abi/5.6.0-1038.42/amd64/oem.modules @@ -0,0 +1,5613 @@ +104-quad-8 +3c509 +3c574_cs +3c589_cs +3c59x +3w-9xxx +3w-sas +3w-xxxx +53c700 +6lowpan +6pack +8021q +8139cp +8139too +8250_dw +8250_exar +8250_lpss +8250_men_mcb +8250_mid +8255 +8255_pci +8390 +842 +842_compress +842_decompress +88pg86x +88pm800 +88pm800-regulator +88pm805 +88pm80x +88pm80x_onkey +88pm8607 +88pm860x-ts +88pm860x_battery +88pm860x_bl +88pm860x_charger +88pm860x_onkey +9p +9pnet +9pnet_rdma +9pnet_virtio +9pnet_xen +BusLogic +a100u2w +a3d +a8293 +aacraid +aat2870-regulator +aat2870_bl +ab3100 +ab3100-otp +abituguru +abituguru3 +abp060mg +ac97_bus +acard-ahci +acecad +acenic +acer-wireless +acer-wmi +acerhdf +acp_audio_dma +acpi-als +acpi_configfs +acpi_extlog +acpi_ipmi +acpi_pad +acpi_power_meter +acpi_tad +acpi_thermal_rel +acpiphp_ibm +acquirewdt +act8865-regulator +act_bpf +act_connmark +act_csum +act_ct +act_ctinfo +act_gact +act_ipt +act_mirred +act_mpls +act_nat +act_pedit +act_police +act_sample +act_simple +act_skbedit +act_skbmod +act_tunnel_key +act_vlan +ad2s1200 +ad2s1210 +ad2s90 +ad5064 +ad525x_dpot +ad525x_dpot-i2c +ad525x_dpot-spi +ad5272 +ad5360 +ad5380 +ad5398 +ad5421 +ad5446 +ad5449 +ad5504 +ad5592r +ad5592r-base +ad5593r +ad5624r_spi +ad5686 +ad5686-spi +ad5696-i2c +ad5755 +ad5758 +ad5761 +ad5764 +ad5791 +ad5820 +ad5933 +ad7091r-base +ad7091r5 +ad7124 +ad714x +ad714x-i2c +ad714x-spi +ad7150 +ad7192 +ad7266 +ad7280a +ad7291 +ad7292 +ad7298 +ad7303 +ad7314 +ad7414 +ad7418 +ad7476 +ad7606 +ad7606_par +ad7606_spi +ad7746 +ad7766 +ad7768-1 +ad7780 +ad7791 +ad7793 +ad7816 +ad7877 +ad7879 +ad7879-i2c +ad7879-spi +ad7887 +ad7923 +ad7949 +ad799x +ad8366 +ad8801 +ad9389b +ad9523 +ad9832 +ad9834 +ad_sigma_delta +adc-keys +adc128d818 +adcxx +addi_apci_1032 +addi_apci_1500 +addi_apci_1516 +addi_apci_1564 +addi_apci_16xx +addi_apci_2032 +addi_apci_2200 +addi_apci_3120 +addi_apci_3501 +addi_apci_3xxx +addi_watchdog +ade7854 +ade7854-i2c +ade7854-spi +adf4350 +adf4371 +adf7242 +adfs +adi +adiantum +adin +adis16080 +adis16130 +adis16136 +adis16201 +adis16203 +adis16209 +adis16240 +adis16260 +adis16400 +adis16460 +adis16480 +adis_lib +adjd_s311 +adl_pci6208 +adl_pci7x3x +adl_pci8164 +adl_pci9111 +adl_pci9118 +adm1021 +adm1025 +adm1026 +adm1029 +adm1031 +adm1177 +adm1275 +adm8211 +adm9240 +adp1653 +adp5061 +adp5520-keys +adp5520_bl +adp5588-keys +adp5589-keys +adp8860_bl +adp8870_bl +adq12b +ads7828 +ads7846 +ads7871 +adt7310 +adt7316 +adt7316-i2c +adt7316-spi +adt7410 +adt7411 +adt7462 +adt7470 +adt7475 +adt7x10 +adummy +adutux +adux1020 +adv7170 +adv7175 +adv7180 +adv7183 +adv7343 +adv7393 +adv7511-v4l2 +adv7604 +adv7842 +adv_pci1710 +adv_pci1720 +adv_pci1723 +adv_pci1724 +adv_pci1760 +adv_pci_dio +advansys +advantechwdt +adxl34x +adxl34x-i2c +adxl34x-spi +adxl372 +adxl372_i2c +adxl372_spi +adxrs450 +aegis128 +aegis128-aesni +aes_ti +aesni-intel +af9013 +af9033 +af_alg +af_key +af_packet_diag +afe4403 +afe4404 +affs +ah4 +ah6 +aha152x_cs +aha1740 +ahci +ahci_platform +aic79xx +aic7xxx +aic94xx +aio_aio12_8 +aio_iiro_16 +aiptek +aircable +airo +airo_cs +airspy +ak7375 +ak881x +ak8975 +al3320a +alcor +alcor_pci +algif_aead +algif_hash +algif_rng +algif_skcipher +alienware-wmi +alim1535_wdt +alim7101_wdt +altera-ci +altera-cvp +altera-freeze-bridge +altera-msgdma +altera-pr-ip-core +altera-ps-spi +altera-stapl +altera_jtaguart +altera_ps2 +altera_tse +altera_uart +alx +am2315 +am53c974 +ambassador +amc6821 +amd +amd-rng +amd-xgbe +amd5536udc_pci +amd64_edac_mod +amd76xrom +amd8111e +amd_freq_sensitivity +amd_iommu_v2 +amdgpu +amdtee +amilo-rfkill +amlogic-gxl-crypto +amplc_dio200 +amplc_dio200_common +amplc_dio200_pci +amplc_pc236 +amplc_pc236_common +amplc_pc263 +amplc_pci224 +amplc_pci230 +amplc_pci236 +amplc_pci263 +ams-iaq-core +ams369fg06 +analog +analogix-anx78xx +analogix_dp +anatop-regulator +ansi_cprng +anubis +aoe +apanel +apds9300 +apds9802als +apds990x +apds9960 +apex +apple-gmux +apple_bl +appledisplay +applesmc +applespi +appletalk +appletouch +applicom +aptina-pll +aqc111 +aquantia +ar5523 +ar7part +ar9331 +arc-rawmode +arc-rimi +arc4 +arc_ps2 +arc_uart +arcfb +arcmsr +arcnet +arcxcnn_bl +arizona-haptics +arizona-i2c +arizona-ldo1 +arizona-micsupp +arizona-spi +ark3116 +arkfb +arp_tables +arpt_mangle +arptable_filter +as102_fe +as370-hwmon +as3711-regulator +as3711_bl +as3935 +as5011 +asb100 +asc7621 +ascot2e +ashmem_linux +asix +aspeed-pwm-tacho +aspeed-video +ast +asus-laptop +asus-nb-wmi +asus-wireless +asus-wmi +asus_atk0110 +asym_tpm +async_memcpy +async_pq +async_raid6_recov +async_tx +async_xor +at24 +at25 +at76c50x-usb +at803x +at86rf230 +atbm8830 +aten +ath +ath10k_core +ath10k_pci +ath10k_sdio +ath10k_usb +ath3k +ath5k +ath6kl_core +ath6kl_sdio +ath6kl_usb +ath9k +ath9k_common +ath9k_htc +ath9k_hw +ath9k_pci_owl_loader +ati_remote +ati_remote2 +atl1 +atl1c +atl1e +atl2 +atlantic +atlas-sensor +atlas_btns +atm +atmel +atmel-ecc +atmel-i2c +atmel-sha204a +atmel_cs +atmel_mxt_ts +atmel_pci +atmtcp +atp +atp870u +atusb +atxp1 +aty128fb +atyfb +au0828 +au8522_common +au8522_decoder +au8522_dig +aufs +auo-pixcir-ts +auth_rpcgss +authenc +authencesn +autofs4 +avmfritz +ax25 +ax88179_178a +ax88796b +axnet_cs +axp20x +axp20x-i2c +axp20x-pek +axp20x-regulator +axp20x_ac_power +axp20x_adc +axp20x_battery +axp20x_usb_power +axp288_adc +axp288_charger +axp288_fuel_gauge +b2c2-flexcop +b2c2-flexcop-pci +b2c2-flexcop-usb +b43 +b43legacy +b44 +b53_common +b53_mdio +b53_mmap +b53_serdes +b53_spi +b53_srab +batman-adv +baycom_par +baycom_ser_fdx +baycom_ser_hdx +bcache +bch +bcm-phy-lib +bcm-sf2 +bcm203x +bcm3510 +bcm590xx +bcm590xx-regulator +bcm5974 +bcm7xxx +bcm87xx +bcma +bcma-hcd +bcmsysport +bd6107 +bd9571mwv +bd9571mwv-regulator +bdc +bdc_pci +be2iscsi +be2net +befs +bel-pfe +belkin_sa +bfa +bfq +bfs +bfusb +bh1750 +bh1770glc +bh1780 +binder_linux +binfmt_misc +blake2b_generic +blake2s-x86_64 +blake2s_generic +block2mtd +blocklayoutdriver +blowfish-x86_64 +blowfish_common +blowfish_generic +bluecard_cs +bluetooth +bluetooth_6lowpan +bma150 +bma180 +bma220_spi +bma400_core +bma400_i2c +bmc150-accel-core +bmc150-accel-i2c +bmc150-accel-spi +bmc150_magn +bmc150_magn_i2c +bmc150_magn_spi +bme680_core +bme680_i2c +bme680_spi +bmg160_core +bmg160_i2c +bmg160_spi +bmi160_core +bmi160_i2c +bmi160_spi +bmp280 +bmp280-i2c +bmp280-spi +bna +bnep +bnx2 +bnx2fc +bnx2i +bnx2x +bnxt_en +bnxt_re +bochs-drm +bonding +bpa10x +bpck +bpfilter +bpqether +bq2415x_charger +bq24190_charger +bq24257_charger +bq24735-charger +bq25890_charger +bq27xxx_battery +bq27xxx_battery_hdq +bq27xxx_battery_i2c +br2684 +br_netfilter +brcmfmac +brcmsmac +brcmutil +brd +bridge +broadcom +bsd_comp +bt3c_cs +bt819 +bt856 +bt866 +bt878 +btbcm +btcoexist +btintel +btmrvl +btmrvl_sdio +btmtksdio +btmtkuart +btqca +btrfs +btrsi +btrtl +btsdio +bttv +btusb +bu21013_ts +bu21029_ts +budget +budget-av +budget-ci +budget-core +budget-patch +c2port-duramar2150 +c67x00 +c6xdigio +c_can +c_can_pci +c_can_platform +ca8210 +cachefiles +cadence_wdt +cafe_ccic +cafe_nand +caif +caif_hsi +caif_serial +caif_socket +caif_usb +caif_virtio +camellia-aesni-avx-x86_64 +camellia-aesni-avx2 +camellia-x86_64 +camellia_generic +can +can-bcm +can-dev +can-gw +can-j1939 +can-raw +capmode +capsule-loader +carl9170 +carminefb +cassini +cast5-avx-x86_64 +cast5_generic +cast6-avx-x86_64 +cast6_generic +cast_common +catc +cavium_ptp +cb710 +cb710-mmc +cb_das16_cs +cb_pcidas +cb_pcidas64 +cb_pcidda +cb_pcimdas +cb_pcimdda +cc10001_adc +cc2520 +cc770 +cc770_isa +cc770_platform +ccm +ccp +ccp-crypto +ccs811 +cdc-acm +cdc-phonet +cdc-wdm +cdc_eem +cdc_ether +cdc_mbim +cdc_ncm +cdc_subset +cdns-csi2rx +cdns-csi2tx +cdns-pltfrm +cdns3 +cdns3-pci-wrap +cec +ceph +cfag12864b +cfag12864bfb +cfb +cfg80211 +cfi_cmdset_0001 +cfi_cmdset_0002 +cfi_cmdset_0020 +cfi_probe +cfi_util +cfspi_slave +ch +ch341 +ch7006 +ch9200 +chacha-x86_64 +chacha20poly1305 +chacha_generic +chaoskey +charlcd +chcr +chipone_icn8505 +chipreg +chnl_net +chromeos_laptop +chromeos_pstore +chromeos_tbmc +ci_hdrc +ci_hdrc_msm +ci_hdrc_pci +ci_hdrc_usb2 +ci_hdrc_zevio +cicada +cifs +cio-dac +cirrus +cirrusfb +ck804xrom +classmate-laptop +clip +clk-cdce706 +clk-cs2000-cp +clk-max9485 +clk-palmas +clk-pwm +clk-s2mps11 +clk-si5341 +clk-si5351 +clk-si544 +clk-twl6040 +clk-wm831x +cls_basic +cls_bpf +cls_cgroup +cls_flow +cls_flower +cls_fw +cls_matchall +cls_route +cls_rsvp +cls_rsvp6 +cls_tcindex +cls_u32 +cm109 +cm32181 +cm3232 +cm3323 +cm36651 +cm4000_cs +cm4040_cs +cma3000_d0x +cma3000_d0x_i2c +cmac +cmdlinepart +cmtp +cnic +cobalt +cobra +coda +com20020 +com20020-pci +com20020_cs +com90io +com90xx +comedi +comedi_8254 +comedi_8255 +comedi_bond +comedi_isadma +comedi_parport +comedi_pci +comedi_pcmcia +comedi_test +comedi_usb +comm +compal-laptop +contec_pci_dio +cops +cordic +core +coretemp +cortina +cosm_bus +cosm_client +counter +cp210x +cpcihp_generic +cpcihp_zt5550 +cpia2 +cpu5wdt +cpuid +cpuidle-haltpoll +cqhci +cr_bllcd +cramfs +crc-itu-t +crc32-pclmul +crc32_generic +crc4 +crc64 +crc7 +crc8 +crct10dif-pclmul +cros-ec-cec +cros_ec +cros_ec_accel_legacy +cros_ec_baro +cros_ec_chardev +cros_ec_debugfs +cros_ec_dev +cros_ec_i2c +cros_ec_ishtp +cros_ec_keyb +cros_ec_lid_angle +cros_ec_light_prox +cros_ec_lightbar +cros_ec_lpcs +cros_ec_sensorhub +cros_ec_sensors +cros_ec_sensors_core +cros_ec_spi +cros_ec_sysfs +cros_kbd_led_backlight +cros_usbpd-charger +cros_usbpd_logger +crvml +cryptd +crypto_engine +crypto_safexcel +crypto_simd +crypto_user +cryptoloop +cs3308 +cs5345 +cs53l32a +cs89x0 +csiostor +ct82c710 +curve25519-generic +curve25519-x86_64 +cuse +cw1200_core +cw1200_wlan_sdio +cw1200_wlan_spi +cx18 +cx18-alsa +cx22700 +cx22702 +cx231xx +cx231xx-alsa +cx231xx-dvb +cx2341x +cx23885 +cx24110 +cx24113 +cx24116 +cx24117 +cx24120 +cx24123 +cx25821 +cx25821-alsa +cx25840 +cx82310_eth +cx88-alsa +cx88-blackbird +cx88-dvb +cx88-vp3054-i2c +cx8800 +cx8802 +cx88xx +cxacru +cxd2099 +cxd2820r +cxd2841er +cxd2880 +cxd2880-spi +cxgb +cxgb3 +cxgb3i +cxgb4 +cxgb4i +cxgb4vf +cxgbit +cy8ctmg110_ts +cyapatp +cyber2000fb +cyberjack +cyclades +cypress_cy7c63 +cypress_firmware +cypress_m8 +cytherm +cyttsp4_core +cyttsp4_i2c +cyttsp4_spi +cyttsp_core +cyttsp_i2c +cyttsp_i2c_common +cyttsp_spi +da280 +da311 +da9030_battery +da9034-ts +da903x +da903x_bl +da9052-battery +da9052-hwmon +da9052-regulator +da9052_bl +da9052_onkey +da9052_tsi +da9052_wdt +da9055-hwmon +da9055-regulator +da9055_onkey +da9055_wdt +da9062-core +da9062-regulator +da9062_wdt +da9063_onkey +da9063_wdt +da9150-charger +da9150-core +da9150-fg +da9150-gpadc +da9210-regulator +da9211-regulator +dac02 +daqboard2000 +das08 +das08_cs +das08_isa +das08_pci +das16 +das16m1 +das1800 +das6402 +das800 +davicom +dax_hmem +dax_pmem +dax_pmem_compat +dax_pmem_core +db9 +dc395x +dca +dccp +dccp_diag +dccp_ipv4 +dccp_ipv6 +dcdbas +ddbridge +de2104x +de4x5 +decnet +defxx +dell-laptop +dell-rbtn +dell-smbios +dell-smm-hwmon +dell-smo8800 +dell-uart-backlight +dell-wmi +dell-wmi-aio +dell-wmi-descriptor +dell-wmi-led +dell_rbu +denali +denali_pci +des3_ede-x86_64 +des_generic +designware_i2s +device_dax +dfl +dfl-afu +dfl-fme +dfl-fme-br +dfl-fme-mgr +dfl-fme-region +dfl-pci +dht11 +diag +dib0070 +dib0090 +dib3000mb +dib3000mc +dib7000m +dib7000p +dib8000 +dib9000 +dibx000_common +digi_acceleport +diskonchip +dl2k +dlci +dlhl60d +dlink-dir685-touchkeys +dlm +dln2 +dln2-adc +dm-bio-prison +dm-bufio +dm-cache +dm-cache-smq +dm-clone +dm-crypt +dm-delay +dm-era +dm-flakey +dm-integrity +dm-log +dm-log-userspace +dm-log-writes +dm-mirror +dm-multipath +dm-persistent-data +dm-queue-length +dm-raid +dm-region-hash +dm-round-robin +dm-service-time +dm-snapshot +dm-switch +dm-thin-pool +dm-unstripe +dm-verity +dm-writecache +dm-zero +dm-zoned +dm1105 +dm9601 +dmard09 +dmard10 +dme1737 +dmfe +dmi-sysfs +dmm32at +dmx3191d +dn_rtmsg +dnet +dp83640 +dp83822 +dp83848 +dp83867 +dp83869 +dp83tc811 +dps310 +dpt_i2o +dptf_power +drbd +drivetemp +drm +drm_kms_helper +drm_mipi_dbi +drm_ttm_helper +drm_vram_helper +drm_xen_front +drv260x +drv2665 +drv2667 +drx39xyj +drxd +drxk +ds1621 +ds1682 +ds1803 +ds1wm +ds2482 +ds2490 +ds2760_battery +ds2780_battery +ds2781_battery +ds2782_battery +ds3000 +ds4424 +ds620 +dsa_core +dsbr100 +dst +dst_ca +dstr +dt2801 +dt2811 +dt2814 +dt2815 +dt2817 +dt282x +dt3000 +dt3155 +dt9812 +dtl1_cs +dummy +dummy-irq +dummy_stm +dvb-as102 +dvb-bt8xx +dvb-core +dvb-pll +dvb-ttpci +dvb-ttusb-budget +dvb-usb +dvb-usb-a800 +dvb-usb-af9005 +dvb-usb-af9005-remote +dvb-usb-af9015 +dvb-usb-af9035 +dvb-usb-anysee +dvb-usb-au6610 +dvb-usb-az6007 +dvb-usb-az6027 +dvb-usb-ce6230 +dvb-usb-cinergyT2 +dvb-usb-cxusb +dvb-usb-dib0700 +dvb-usb-dibusb-common +dvb-usb-dibusb-mb +dvb-usb-dibusb-mc +dvb-usb-dibusb-mc-common +dvb-usb-digitv +dvb-usb-dtt200u +dvb-usb-dtv5100 +dvb-usb-dvbsky +dvb-usb-dw2102 +dvb-usb-ec168 +dvb-usb-gl861 +dvb-usb-gp8psk +dvb-usb-lmedm04 +dvb-usb-m920x +dvb-usb-mxl111sf +dvb-usb-nova-t-usb2 +dvb-usb-opera +dvb-usb-pctv452e +dvb-usb-rtl28xxu +dvb-usb-technisat-usb2 +dvb-usb-ttusb2 +dvb-usb-umt-010 +dvb-usb-vp702x +dvb-usb-vp7045 +dvb_dummy_fe +dvb_usb_v2 +dw-edma +dw-edma-pcie +dw-i3c-master +dw9714 +dw9807-vcm +dw_dmac +dw_dmac_core +dw_dmac_pci +dw_wdt +dwc-xlgmac +dwc2_pci +dwc3 +dwc3-haps +dwc3-pci +dwmac-generic +dyna_pci10xx +dynapro +e100 +e1000 +e1000e +e3x0-button +e4000 +e752x_edac +earth-pt1 +earth-pt3 +ebc-c384_wdt +ebt_802_3 +ebt_among +ebt_arp +ebt_arpreply +ebt_dnat +ebt_ip +ebt_ip6 +ebt_limit +ebt_log +ebt_mark +ebt_mark_m +ebt_nflog +ebt_pkttype +ebt_redirect +ebt_snat +ebt_stp +ebt_vlan +ebtable_broute +ebtable_filter +ebtable_nat +ebtables +ec100 +ec_bhf +ec_sys +ecc +ecdh_generic +echainiv +echo +ecrdsa_generic +edac_mce_amd +edt-ft5x06 +ee1004 +eeepc-laptop +eeepc-wmi +eeprom +eeprom_93cx6 +eeprom_93xx46 +eeti_ts +efa +efi-pstore +efi_test +efibc +efs +egalax_ts_serial +ehci-fsl +ehset +einj +ektf2127 +elan_i2c +elo +em28xx +em28xx-alsa +em28xx-dvb +em28xx-rc +em28xx-v4l +em_canid +em_cmp +em_ipset +em_ipt +em_meta +em_nbyte +em_text +em_u32 +emc1403 +emc2103 +emc6w201 +emi26 +emi62 +empeg +ems_pci +ems_pcmcia +ems_usb +emu10k1-gp +ena +enc28j60 +enclosure +encx24j600 +encx24j600-regmap +ene_ir +eni +enic +epat +epia +epic100 +eql +erofs +esas2r +esb2rom +esd_usb2 +esp4 +esp4_offload +esp6 +esp6_offload +esp_scsi +essiv +et1011c +et131x +et8ek8 +ethoc +eurotechwdt +evbug +exc3000 +exfat +extcon-adc-jack +extcon-arizona +extcon-axp288 +extcon-fsa9480 +extcon-gpio +extcon-intel-cht-wc +extcon-intel-int3496 +extcon-max14577 +extcon-max3355 +extcon-max77693 +extcon-max77843 +extcon-max8997 +extcon-palmas +extcon-ptn5150 +extcon-rt8973a +extcon-sm5502 +extcon-usb-gpio +extcon-usbc-cros-ec +ezusb +f2fs +f71805f +f71808e_wdt +f71882fg +f75375s +f81232 +f81534 +f81601 +failover +fakelb +fam15h_power +fan53555 +farsync +faulty +fb_agm1264k-fl +fb_bd663474 +fb_ddc +fb_hx8340bn +fb_hx8347d +fb_hx8353d +fb_hx8357d +fb_ili9163 +fb_ili9320 +fb_ili9325 +fb_ili9340 +fb_ili9341 +fb_ili9481 +fb_ili9486 +fb_pcd8544 +fb_ra8875 +fb_s6d02a1 +fb_s6d1121 +fb_seps525 +fb_sh1106 +fb_ssd1289 +fb_ssd1305 +fb_ssd1306 +fb_ssd1325 +fb_ssd1331 +fb_ssd1351 +fb_st7735r +fb_st7789v +fb_sys_fops +fb_tinylcd +fb_tls8204 +fb_uc1611 +fb_uc1701 +fb_upd161704 +fb_watterott +fbtft +fc0011 +fc0012 +fc0013 +fc2580 +fcoe +fcrypt +fdomain +fdomain_cs +fdomain_pci +fdp +fdp_i2c +fealnx +ff-memless +fieldbus_dev +fintek-cir +firedtv +firestream +firewire-core +firewire-net +firewire-ohci +firewire-sbp2 +firewire-serial +fit2 +fit3 +fixed +fjes +fl512 +floppy +fm10k +fm801-gp +fm_drv +fmvj18x_cs +fnic +forcedeth +fore_200e +fotg210-hcd +fotg210-udc +fou +fou6 +fpga-bridge +fpga-mgr +fpga-region +freevxfs +friq +frpw +fscache +fschmd +fsia6b +fsl-mph-dr-of +fsl_linflexuart +fsl_lpuart +ftdi-elan +ftdi_sio +ftl +ftrace-direct +ftrace-direct-modify +ftrace-direct-too +ftsteutates +fujitsu-laptop +fujitsu-tablet +fujitsu_ts +fusb302 +fxas21002c_core +fxas21002c_i2c +fxas21002c_spi +fxos8700_core +fxos8700_i2c +fxos8700_spi +g450_pll +g760a +g762 +g_acm_ms +g_audio +g_cdc +g_dbgp +g_ether +g_ffs +g_hid +g_mass_storage +g_midi +g_ncm +g_nokia +g_printer +g_serial +g_webcam +g_zero +gadgetfs +gamecon +gameport +garmin_gps +garp +gasket +gb-audio-apbridgea +gb-audio-gb +gb-audio-manager +gb-bootrom +gb-es2 +gb-firmware +gb-gbphy +gb-gpio +gb-hid +gb-i2c +gb-light +gb-log +gb-loopback +gb-power-supply +gb-pwm +gb-raw +gb-sdio +gb-spi +gb-spilib +gb-uart +gb-usb +gb-vibrator +gdmtty +gdmulte +gdth +gen_probe +generic +generic-adc-battery +generic_bl +genet +geneve +genwqe_card +gf2k +gfs2 +ghash-clmulni-intel +gl518sm +gl520sm +gl620a +glue_helper +gluebi +gm12u320 +gma500_gfx +gnss +gnss-mtk +gnss-serial +gnss-sirf +gnss-ubx +go7007 +go7007-loader +go7007-usb +goku_udc +goodix +gp2ap002a00f +gp2ap020a00f +gp8psk-fe +gpd-pocket-fan +gpio +gpio-104-dio-48e +gpio-104-idi-48 +gpio-104-idio-16 +gpio-adp5520 +gpio-adp5588 +gpio-amd-fch +gpio-amd8111 +gpio-amdpt +gpio-arizona +gpio-bd9571mwv +gpio-beeper +gpio-charger +gpio-crystalcove +gpio-da9052 +gpio-da9055 +gpio-dln2 +gpio-dwapb +gpio-exar +gpio-f7188x +gpio-generic +gpio-gpio-mm +gpio-ich +gpio-it87 +gpio-janz-ttl +gpio-kempld +gpio-lp3943 +gpio-lp873x +gpio-madera +gpio-max3191x +gpio-max7300 +gpio-max7301 +gpio-max730x +gpio-max732x +gpio-mb86s7x +gpio-mc33880 +gpio-menz127 +gpio-ml-ioh +gpio-pca953x +gpio-pcf857x +gpio-pci-idio-16 +gpio-pcie-idio-24 +gpio-pisosr +gpio-rdc321x +gpio-regulator +gpio-sch +gpio-sch311x +gpio-siox +gpio-tpic2810 +gpio-tps65086 +gpio-tps65912 +gpio-tqmx86 +gpio-twl4030 +gpio-twl6040 +gpio-ucb1400 +gpio-vibra +gpio-viperboard +gpio-vx855 +gpio-wcove +gpio-winbond +gpio-wm831x +gpio-wm8350 +gpio-wm8994 +gpio-ws16c48 +gpio-xra1403 +gpio_backlight +gpio_decoder +gpio_keys +gpio_keys_polled +gpio_mouse +gpu-sched +gr_udc +grace +gre +greybus +grip +grip_mp +gs1662 +gs_fpga +gs_usb +gsc_hpdi +gspca_benq +gspca_conex +gspca_cpia1 +gspca_dtcs033 +gspca_etoms +gspca_finepix +gspca_gl860 +gspca_jeilinj +gspca_jl2005bcd +gspca_kinect +gspca_konica +gspca_m5602 +gspca_main +gspca_mars +gspca_mr97310a +gspca_nw80x +gspca_ov519 +gspca_ov534 +gspca_ov534_9 +gspca_pac207 +gspca_pac7302 +gspca_pac7311 +gspca_se401 +gspca_sn9c2028 +gspca_sn9c20x +gspca_sonixb +gspca_sonixj +gspca_spca1528 +gspca_spca500 +gspca_spca501 +gspca_spca505 +gspca_spca506 +gspca_spca508 +gspca_spca561 +gspca_sq905 +gspca_sq905c +gspca_sq930x +gspca_stk014 +gspca_stk1135 +gspca_stv0680 +gspca_stv06xx +gspca_sunplus +gspca_t613 +gspca_topro +gspca_touptek +gspca_tv8532 +gspca_vc032x +gspca_vicam +gspca_xirlink_cit +gspca_zc3xx +gtco +gtp +guillemot +gunze +gve +habanalabs +hackrf +hamachi +hampshire +hangcheck-timer +hanwang +hci +hci_nokia +hci_uart +hci_vhci +hd3ss3220 +hd44780 +hdaps +hdc100x +hdlc +hdlc_cisco +hdlc_fr +hdlc_ppp +hdlc_raw +hdlc_raw_eth +hdlc_x25 +hdlcdrv +hdma +hdma_mgmt +hdpvr +he +hecubafb +helene +hexium_gemini +hexium_orion +hfcmulti +hfcpci +hfcsusb +hfi1 +hfs +hfsplus +hgafb +hi311x +hi556 +hi6210-i2s +hi8435 +hid +hid-a4tech +hid-accutouch +hid-alps +hid-apple +hid-appleir +hid-asus +hid-aureal +hid-axff +hid-belkin +hid-betopff +hid-bigbenff +hid-cherry +hid-chicony +hid-cmedia +hid-corsair +hid-cougar +hid-cp2112 +hid-creative-sb0540 +hid-cypress +hid-dr +hid-elan +hid-elecom +hid-elo +hid-emsff +hid-ezkey +hid-gaff +hid-gembird +hid-generic +hid-gfrm +hid-google-hammer +hid-gt683r +hid-gyration +hid-holtek-kbd +hid-holtek-mouse +hid-holtekff +hid-hyperv +hid-icade +hid-ite +hid-jabra +hid-kensington +hid-keytouch +hid-kye +hid-lcpower +hid-led +hid-lenovo +hid-lg-g15 +hid-logitech +hid-logitech-dj +hid-logitech-hidpp +hid-macally +hid-magicmouse +hid-maltron +hid-mf +hid-microsoft +hid-monterey +hid-multitouch +hid-nti +hid-ntrig +hid-ortek +hid-penmount +hid-petalynx +hid-picolcd +hid-pl +hid-plantronics +hid-primax +hid-prodikeys +hid-redragon +hid-retrode +hid-rmi +hid-roccat +hid-roccat-arvo +hid-roccat-common +hid-roccat-isku +hid-roccat-kone +hid-roccat-koneplus +hid-roccat-konepure +hid-roccat-kovaplus +hid-roccat-lua +hid-roccat-pyra +hid-roccat-ryos +hid-roccat-savu +hid-saitek +hid-samsung +hid-sensor-accel-3d +hid-sensor-als +hid-sensor-custom +hid-sensor-gyro-3d +hid-sensor-hub +hid-sensor-humidity +hid-sensor-iio-common +hid-sensor-incl-3d +hid-sensor-magn-3d +hid-sensor-press +hid-sensor-prox +hid-sensor-rotation +hid-sensor-temperature +hid-sensor-trigger +hid-sjoy +hid-sony +hid-speedlink +hid-steam +hid-steelseries +hid-sunplus +hid-tivo +hid-tmff +hid-topseed +hid-twinhan +hid-u2fzero +hid-uclogic +hid-udraw-ps3 +hid-viewsonic +hid-waltop +hid-wiimote +hid-xinmo +hid-zpff +hid-zydacron +hideep +hidp +hih6130 +hinic +hio +hmc5843_core +hmc5843_i2c +hmc5843_spi +hmc6352 +hopper +horizon +horus3a +hostap +hostap_cs +hostap_pci +hostap_plx +hp-wireless +hp-wmi +hp03 +hp100 +hp206c +hp_accel +hpfs +hpilo +hpsa +hptiop +hpwdt +hsi +hsi_char +hso +hsr +hsu_dma +htc-pasic3 +hts221 +hts221_i2c +hts221_spi +htu21 +huawei-wmi +huawei_cdc_ncm +hv_balloon +hv_netvsc +hv_sock +hv_storvsc +hv_utils +hv_vmbus +hwa-hc +hwa-rc +hwmon-vid +hwpoison-inject +hx711 +hx8357 +hx8357d +hyperbus-core +hyperv-keyboard +hyperv_fb +i10nm_edac +i1480-dfu-usb +i1480-est +i2400m +i2400m-usb +i2c-algo-bit +i2c-algo-pca +i2c-ali1535 +i2c-ali1563 +i2c-ali15x3 +i2c-amd-mp2-pci +i2c-amd-mp2-plat +i2c-amd756 +i2c-amd756-s4882 +i2c-amd8111 +i2c-cbus-gpio +i2c-cht-wc +i2c-cros-ec-tunnel +i2c-designware-pci +i2c-diolan-u2c +i2c-dln2 +i2c-gpio +i2c-hid +i2c-i801 +i2c-isch +i2c-ismt +i2c-kempld +i2c-matroxfb +i2c-mlxcpld +i2c-multi-instantiate +i2c-mux +i2c-mux-gpio +i2c-mux-ltc4306 +i2c-mux-mlxcpld +i2c-mux-pca9541 +i2c-mux-pca954x +i2c-mux-reg +i2c-nforce2 +i2c-nforce2-s4985 +i2c-nvidia-gpu +i2c-ocores +i2c-parport +i2c-pca-platform +i2c-piix4 +i2c-robotfuzz-osif +i2c-scmi +i2c-simtec +i2c-sis5595 +i2c-sis630 +i2c-sis96x +i2c-smbus +i2c-stub +i2c-taos-evm +i2c-tiny-usb +i2c-via +i2c-viapro +i2c-viperboard +i2c-xiic +i3000_edac +i3200_edac +i3c +i3c-master-cdns +i40e +i40iw +i5000_edac +i5100_edac +i5400_edac +i5500_temp +i5k_amb +i6300esb +i7300_edac +i740fb +i7core_edac +i82092 +i82975x_edac +i915 +iTCO_vendor_support +iTCO_wdt +iavf +ib700wdt +ib_cm +ib_core +ib_ipoib +ib_iser +ib_isert +ib_mthca +ib_qib +ib_srp +ib_srpt +ib_umad +ib_uverbs +ibm-cffps +ibm_rtl +ibmaem +ibmasm +ibmasr +ibmpex +icc-core +ice +ichxrom +icp +icp_multi +icplus +ics932s401 +ideapad-laptop +ideapad_slidebar +idma64 +idmouse +idt77252 +idt_89hpesx +idt_gen2 +idt_gen3 +idtcps +idxd +ie31200_edac +ie6xx_wdt +ieee802154 +ieee802154_6lowpan +ieee802154_socket +ifb +ife +ifi_canfd +iforce +iforce-serio +iforce-usb +igb +igbvf +igc +igorplugusb +iguanair +ii_pci20kc +iio-trig-hrtimer +iio-trig-interrupt +iio-trig-loop +iio-trig-sysfs +iio_dummy +iio_hwmon +ila +ili210x +ili9225 +ili922x +ili9320 +ili9341 +img-ascii-lcd +img-i2s-in +img-i2s-out +img-parallel-out +img-spdif-in +img-spdif-out +imm +imon +imon_raw +ims-pcu +imx214 +imx258 +imx274 +imx290 +imx319 +imx355 +ina209 +ina2xx +ina2xx-adc +ina3221 +industrialio +industrialio-buffer-cb +industrialio-configfs +industrialio-hw-consumer +industrialio-sw-device +industrialio-sw-trigger +industrialio-triggered-buffer +industrialio-triggered-event +inet_diag +inexio +inftl +initio +input-leds +input-polldev +inspur-ipsps +int3400_thermal +int3402_thermal +int3403_thermal +int3406_thermal +int340x_thermal_zone +int51x1 +intel-cstate +intel-hid +intel-ish-ipc +intel-ishtp +intel-ishtp-hid +intel-ishtp-loader +intel-lpss +intel-lpss-acpi +intel-lpss-pci +intel-rapl-perf +intel-rng +intel-rst +intel-smartconnect +intel-uncore-frequency +intel-vbtn +intel-wmi-thunderbolt +intel-xhci-usb-role-switch +intel-xway +intel_atomisp2_pm +intel_bxt_pmic_thermal +intel_bxtwc_tmu +intel_cht_int33fe +intel_chtdc_ti_pwrbtn +intel_int0002_vgpio +intel_ips +intel_menlow +intel_oaktrail +intel_pch_thermal +intel_pmc_ipc +intel_powerclamp +intel_punit_ipc +intel_qat +intel_quark_i2c_gpio +intel_rapl_common +intel_rapl_msr +intel_soc_dts_iosf +intel_soc_dts_thermal +intel_soc_pmic_bxtwc +intel_soc_pmic_chtdc_ti +intel_telemetry_core +intel_telemetry_debugfs +intel_telemetry_pltdrv +intel_th +intel_th_acpi +intel_th_gth +intel_th_msu +intel_th_msu_sink +intel_th_pci +intel_th_pti +intel_th_sth +intel_vr_nor +intelfb +interact +inv-mpu6050 +inv-mpu6050-i2c +inv-mpu6050-spi +io_edgeport +io_ti +ioatdma +ionic +iowarrior +ip6_gre +ip6_tables +ip6_tunnel +ip6_udp_tunnel +ip6_vti +ip6t_NPT +ip6t_REJECT +ip6t_SYNPROXY +ip6t_ah +ip6t_eui64 +ip6t_frag +ip6t_hbh +ip6t_ipv6header +ip6t_mh +ip6t_rpfilter +ip6t_rt +ip6t_srh +ip6table_filter +ip6table_mangle +ip6table_nat +ip6table_raw +ip6table_security +ip_gre +ip_set +ip_set_bitmap_ip +ip_set_bitmap_ipmac +ip_set_bitmap_port +ip_set_hash_ip +ip_set_hash_ipmac +ip_set_hash_ipmark +ip_set_hash_ipport +ip_set_hash_ipportip +ip_set_hash_ipportnet +ip_set_hash_mac +ip_set_hash_net +ip_set_hash_netiface +ip_set_hash_netnet +ip_set_hash_netport +ip_set_hash_netportnet +ip_set_list_set +ip_tables +ip_tunnel +ip_vs +ip_vs_dh +ip_vs_fo +ip_vs_ftp +ip_vs_lblc +ip_vs_lblcr +ip_vs_lc +ip_vs_mh +ip_vs_nq +ip_vs_ovf +ip_vs_pe_sip +ip_vs_rr +ip_vs_sed +ip_vs_sh +ip_vs_wlc +ip_vs_wrr +ip_vti +ipack +ipaq +ipcomp +ipcomp6 +iphase +ipheth +ipip +ipmi_devintf +ipmi_msghandler +ipmi_poweroff +ipmi_si +ipmi_ssif +ipmi_watchdog +ipoctal +ipr +ips +ipt_CLUSTERIP +ipt_ECN +ipt_REJECT +ipt_SYNPROXY +ipt_ah +ipt_rpfilter +iptable_filter +iptable_mangle +iptable_nat +iptable_raw +iptable_security +ipu3-cio2 +ipu3-imgu +ipvlan +ipvtap +ipw +ipw2100 +ipw2200 +ipwireless +iqs5xx +ir-imon-decoder +ir-jvc-decoder +ir-kbd-i2c +ir-mce_kbd-decoder +ir-nec-decoder +ir-rc5-decoder +ir-rc6-decoder +ir-rcmm-decoder +ir-sanyo-decoder +ir-sharp-decoder +ir-sony-decoder +ir-usb +ir-xmp-decoder +ir35221 +ir38064 +irps5401 +irq-madera +isci +iscsi_boot_sysfs +iscsi_ibft +iscsi_target_mod +iscsi_tcp +isdnhdlc +isicom +isight_firmware +isl29003 +isl29018 +isl29020 +isl29028 +isl29125 +isl29501 +isl6271a-regulator +isl6405 +isl6421 +isl6423 +isl68137 +isl9305 +isofs +isp116x-hcd +isp1704_charger +isp1760 +isst_if_common +isst_if_mbox_msr +isst_if_mbox_pci +isst_if_mmio +it87 +it8712f_wdt +it87_wdt +it913x +itd1000 +ite-cir +itg3200 +iuu_phoenix +ivtv +ivtv-alsa +ivtvfb +iw_cm +iw_cxgb4 +iwl3945 +iwl4965 +iwldvm +iwlegacy +iwlmvm +iwlwifi +ix2505v +ixgb +ixgbe +ixgbevf +janz-cmodio +janz-ican3 +jc42 +jedec_probe +jffs2 +jfs +jmb38x_ms +jme +joydev +joydump +jr3_pci +jsa1212 +jsm +k10temp +k8temp +kafs +kalmia +kaweth +kb3886_bl +kbic +kbtab +kcm +kcomedilib +ke_counter +kempld-core +kempld_wdt +kernelcapi +keyspan +keyspan_pda +keyspan_remote +keywrap +kfifo_buf +khazad +kheaders +kl5kusb105 +kmem +kmx61 +kobil_sct +kpc2000 +kpc2000_i2c +kpc2000_spi +kpc_dma +ks0108 +ks0127 +ks7010 +ks8842 +ks8851 +ks8851_mll +ksz8795 +ksz8795_spi +ksz884x +ksz9477 +ksz9477_i2c +ksz9477_spi +ksz_common +ktti +kvaser_pci +kvaser_pciefd +kvaser_usb +kvm +kvm-amd +kvm-intel +kvmgt +kxcjk-1013 +kxsd9 +kxsd9-i2c +kxsd9-spi +kxtj9 +kyber-iosched +kyrofb +l1oip +l2tp_core +l2tp_debugfs +l2tp_eth +l2tp_ip +l2tp_ip6 +l2tp_netlink +l2tp_ppp +l440gx +l4f00242t03 +l64781 +lan743x +lan78xx +lan9303-core +lan9303_i2c +lan9303_mdio +lanai +lantiq_gswip +lapb +lapbether +lattice-ecp3-config +lcd +ldusb +lec +led-class-flash +leds-88pm860x +leds-adp5520 +leds-apu +leds-as3645a +leds-bd2802 +leds-blinkm +leds-clevo-mail +leds-da903x +leds-da9052 +leds-dac124s085 +leds-gpio +leds-lm3530 +leds-lm3532 +leds-lm3533 +leds-lm355x +leds-lm3601x +leds-lm36274 +leds-lm3642 +leds-lp3944 +leds-lp3952 +leds-lp5521 +leds-lp5523 +leds-lp5562 +leds-lp55xx-common +leds-lp8501 +leds-lp8788 +leds-max8997 +leds-mc13783 +leds-menf21bmc +leds-mlxcpld +leds-mlxreg +leds-mt6323 +leds-nic78bx +leds-pca9532 +leds-pca955x +leds-pca963x +leds-pwm +leds-regulator +leds-ss4200 +leds-tca6507 +leds-ti-lmu-common +leds-tlc591xx +leds-tps6105x +leds-wm831x-status +leds-wm8350 +ledtrig-activity +ledtrig-audio +ledtrig-backlight +ledtrig-camera +ledtrig-default-on +ledtrig-gpio +ledtrig-heartbeat +ledtrig-netdev +ledtrig-oneshot +ledtrig-pattern +ledtrig-timer +ledtrig-transient +ledtrig-usbport +legousbtower +lg-laptop +lg-vl600 +lg2160 +lgdt3305 +lgdt3306a +lgdt330x +lgs8gl5 +lgs8gxx +lib80211 +lib80211_crypt_ccmp +lib80211_crypt_tkip +lib80211_crypt_wep +libahci +libahci_platform +libarc4 +libblake2s +libblake2s-generic +libceph +libchacha +libchacha20poly1305 +libcomposite +libcrc32c +libcurve25519 +libcurve25519-generic +libcxgb +libcxgbi +libdes +libertas +libertas_cs +libertas_sdio +libertas_spi +libertas_tf +libertas_tf_usb +libfc +libfcoe +libipw +libiscsi +libiscsi_tcp +libpoly1305 +libsas +lightning +lineage-pem +linear +liquidio +liquidio_vf +lis3lv02d +lis3lv02d_i2c +lkkbd +ll_temac +llc +llc2 +lm25066 +lm3533-als +lm3533-core +lm3533-ctrlbank +lm3533_bl +lm3560 +lm3630a_bl +lm3639_bl +lm363x-regulator +lm3646 +lm63 +lm70 +lm73 +lm75 +lm77 +lm78 +lm80 +lm83 +lm8323 +lm8333 +lm85 +lm87 +lm90 +lm92 +lm93 +lm95234 +lm95241 +lm95245 +lmc +lmp91000 +lms283gf05 +lms501kf03 +lnbh25 +lnbh29 +lnbp21 +lnbp22 +lockd +lp +lp3943 +lp3971 +lp3972 +lp855x_bl +lp8727_charger +lp872x +lp873x +lp8755 +lp8788-buck +lp8788-charger +lp8788-ldo +lp8788_adc +lp8788_bl +lpc_ich +lpc_sch +lpddr_cmds +lpfc +lru_cache +lrw +lt3651-charger +ltc1660 +ltc2471 +ltc2485 +ltc2496 +ltc2497 +ltc2497-core +ltc2632 +ltc2941-battery-gauge +ltc2945 +ltc2947-core +ltc2947-i2c +ltc2947-spi +ltc2978 +ltc2983 +ltc2990 +ltc3589 +ltc3676 +ltc3815 +ltc4151 +ltc4215 +ltc4222 +ltc4245 +ltc4260 +ltc4261 +ltpc +ltr501 +ltv350qv +lv0104cs +lv5207lp +lvstest +lxt +lz4 +lz4hc +lz4hc_compress +m2m-deinterlace +m52790 +m5mols +m62332 +m88ds3103 +m88rs2000 +m88rs6000t +mISDN_core +mISDN_dsp +mISDNinfineon +mISDNipac +mISDNisar +m_can +m_can_platform +mac-celtic +mac-centeuro +mac-croatian +mac-cyrillic +mac-gaelic +mac-greek +mac-iceland +mac-inuit +mac-roman +mac-romanian +mac-turkish +mac80211 +mac80211_hwsim +mac802154 +mac802154_hwsim +mac_hid +macb +macb_pci +machxo2-spi +machzwd +macmodes +macsec +macvlan +macvtap +madera +madera-i2c +madera-spi +mag3110 +magellan +mailbox-altera +mantis +mantis_core +map_absent +map_funcs +map_ram +map_rom +marvell +marvell10g +matrix-keymap +matrix_keypad +matrox_w1 +matroxfb_DAC1064 +matroxfb_Ti3026 +matroxfb_accel +matroxfb_base +matroxfb_crtc2 +matroxfb_g450 +matroxfb_maven +matroxfb_misc +max1027 +max11100 +max1111 +max1118 +max11801_ts +max1363 +max14577-regulator +max14577_charger +max1586 +max16064 +max16065 +max1619 +max1668 +max17040_battery +max17042_battery +max1721x_battery +max197 +max20730 +max20751 +max2165 +max2175 +max30100 +max30102 +max3100 +max31722 +max31730 +max31785 +max31790 +max31856 +max3421-hcd +max34440 +max44000 +max44009 +max517 +max5432 +max5481 +max5487 +max63xx_wdt +max6621 +max6639 +max6642 +max6650 +max6697 +max6875 +max7359_keypad +max77693-haptic +max77693-regulator +max77693_charger +max8649 +max8660 +max8688 +max8903_charger +max8907 +max8907-regulator +max8925-regulator +max8925_bl +max8925_onkey +max8925_power +max8952 +max8997-regulator +max8997_charger +max8997_haptic +max8998 +max8998_charger +max9611 +maxim_thermocouple +mb1232 +mb862xxfb +mb86a16 +mb86a20s +mc +mc13783-adc +mc13783-pwrbutton +mc13783-regulator +mc13783_ts +mc13892-regulator +mc13xxx-core +mc13xxx-i2c +mc13xxx-regulator-core +mc13xxx-spi +mc3230 +mc44s803 +mcam-core +mcb +mcb-lpc +mcb-pci +mcba_usb +mce-inject +mceusb +mchp23k256 +mcp251x +mcp3021 +mcp320x +mcp3422 +mcp3911 +mcp4018 +mcp41010 +mcp4131 +mcp4531 +mcp4725 +mcp4922 +mcr20a +mcs5000_ts +mcs7830 +mcs_touchkey +mct_u232 +md-cluster +md4 +mdc800 +mdev +mdio +mdio-bcm-unimac +mdio-bitbang +mdio-cavium +mdio-gpio +mdio-i2c +mdio-mscc-miim +mdio-thunder +me4000 +me_daq +megaraid +megaraid_mbox +megaraid_mm +megaraid_sas +mei +mei-me +mei-txe +mei_hdcp +mei_phy +mei_wdt +melfas_mip4 +memory-notifier-error-inject +memstick +men_z135_uart +men_z188_adc +mena21_wdt +menf21bmc +menf21bmc_hwmon +menf21bmc_wdt +menz69_wdt +metro-usb +metronomefb +meye +mf6x4 +mgag200 +mi0283qt +mic_bus +mic_card +mic_cosm +mic_host +mic_x100_dma +michael_mic +micrel +microchip +microchip_t1 +microread +microread_i2c +microread_mei +microtek +mii +minix +mip6 +mite +mk712 +mkiss +ml86v7667 +mlx-platform +mlx4_core +mlx4_en +mlx4_ib +mlx5_core +mlx5_ib +mlx90614 +mlx90632 +mlx_wdt +mlxfw +mlxreg-fan +mlxreg-hotplug +mlxreg-io +mlxsw_core +mlxsw_i2c +mlxsw_minimal +mlxsw_pci +mlxsw_spectrum +mlxsw_switchib +mlxsw_switchx2 +mma7455_core +mma7455_i2c +mma7455_spi +mma7660 +mma8450 +mma8452 +mma9551 +mma9551_core +mma9553 +mmc35240 +mmc_block +mmc_spi +mms114 +mn88443x +mn88472 +mn88473 +mos7720 +mos7840 +most_cdev +most_core +most_i2c +most_net +most_sound +most_usb +most_video +moxa +mp8859 +mpc624 +mpl115 +mpl115_i2c +mpl115_spi +mpl3115 +mpls_gso +mpls_iptunnel +mpls_router +mpoa +mpr121_touchkey +mpt3sas +mptbase +mptctl +mptfc +mptlan +mptsas +mptscsih +mptspi +mpu3050 +mrf24j40 +mrp +ms5611_core +ms5611_i2c +ms5611_spi +ms5637 +ms_block +ms_sensors_i2c +mscc +mscc_ocelot_common +msdos +msi-laptop +msi-wmi +msi001 +msi2500 +msm-vibrator +msp3400 +mspro_block +msr +mt2060 +mt2063 +mt20xx +mt2131 +mt2266 +mt312 +mt352 +mt6311-regulator +mt6323-regulator +mt6397 +mt6397-regulator +mt7530 +mt76 +mt76-usb +mt7601u +mt7603e +mt7615e +mt76x0-common +mt76x02-lib +mt76x02-usb +mt76x0e +mt76x0u +mt76x2-common +mt76x2e +mt76x2u +mt9m001 +mt9m032 +mt9m111 +mt9p031 +mt9t001 +mt9t112 +mt9v011 +mt9v032 +mt9v111 +mtd +mtd_blkdevs +mtd_dataflash +mtdblock +mtdblock_ro +mtdoops +mtdram +mtdswap +mtip32xx +mtk-pmic-keys +mtk-quadspi +mtk-sd +mtouch +multipath +multiq3 +musb_hdrc +mv88e6060 +mv88e6xxx +mv_u3d_core +mv_udc +mvmdio +mvsas +mvumi +mwave +mwifiex +mwifiex_pcie +mwifiex_sdio +mwifiex_usb +mwl8k +mxb +mxc4005 +mxc6255 +mxic_nand +mxl111sf-demod +mxl111sf-tuner +mxl301rf +mxl5005s +mxl5007t +mxl5xx +mxm-wmi +mxser +mxuport +myrb +myri10ge +myrs +n411 +n5pf +n_gsm +n_hdlc +n_tracerouter +n_tracesink +nand +nand_ecc +nandcore +nandsim +national +natsemi +nau7802 +navman +nb8800 +nbd +nci +nci_spi +nci_uart +nct6683 +nct6775 +nct7802 +nct7904 +nd_blk +nd_btt +nd_pmem +nd_virtio +ne2k-pci +neofb +net1080 +net2272 +net2280 +net_failover +netconsole +netdevsim +netjet +netlink_diag +netrom +nettel +netup-unidvb +netxen_nic +newtonkbd +nf_conncount +nf_conntrack +nf_conntrack_amanda +nf_conntrack_bridge +nf_conntrack_broadcast +nf_conntrack_ftp +nf_conntrack_h323 +nf_conntrack_irc +nf_conntrack_netbios_ns +nf_conntrack_netlink +nf_conntrack_pptp +nf_conntrack_sane +nf_conntrack_sip +nf_conntrack_snmp +nf_conntrack_tftp +nf_defrag_ipv4 +nf_defrag_ipv6 +nf_dup_ipv4 +nf_dup_ipv6 +nf_dup_netdev +nf_flow_table +nf_flow_table_inet +nf_flow_table_ipv4 +nf_flow_table_ipv6 +nf_log_arp +nf_log_bridge +nf_log_common +nf_log_ipv4 +nf_log_ipv6 +nf_log_netdev +nf_nat +nf_nat_amanda +nf_nat_ftp +nf_nat_h323 +nf_nat_irc +nf_nat_pptp +nf_nat_sip +nf_nat_snmp_basic +nf_nat_tftp +nf_reject_ipv4 +nf_reject_ipv6 +nf_socket_ipv4 +nf_socket_ipv6 +nf_synproxy_core +nf_tables +nf_tables_set +nf_tproxy_ipv4 +nf_tproxy_ipv6 +nfc +nfc_digital +nfcmrvl +nfcmrvl_i2c +nfcmrvl_spi +nfcmrvl_uart +nfcmrvl_usb +nfcsim +nfit +nfnetlink +nfnetlink_acct +nfnetlink_cthelper +nfnetlink_cttimeout +nfnetlink_log +nfnetlink_osf +nfnetlink_queue +nfp +nfs +nfs_acl +nfs_layout_flexfiles +nfs_layout_nfsv41_files +nfsd +nfsv2 +nfsv3 +nfsv4 +nft_chain_nat +nft_compat +nft_connlimit +nft_counter +nft_ct +nft_dup_ipv4 +nft_dup_ipv6 +nft_dup_netdev +nft_fib +nft_fib_inet +nft_fib_ipv4 +nft_fib_ipv6 +nft_fib_netdev +nft_flow_offload +nft_fwd_netdev +nft_hash +nft_limit +nft_log +nft_masq +nft_meta_bridge +nft_nat +nft_numgen +nft_objref +nft_osf +nft_queue +nft_quota +nft_redir +nft_reject +nft_reject_bridge +nft_reject_inet +nft_reject_ipv4 +nft_reject_ipv6 +nft_socket +nft_synproxy +nft_tproxy +nft_tunnel +nft_xfrm +nftl +ngene +nhc_dest +nhc_fragment +nhc_hop +nhc_ipv6 +nhc_mobility +nhc_routing +nhc_udp +nhpoly1305 +nhpoly1305-avx2 +nhpoly1305-sse2 +ni903x_wdt +ni_6527 +ni_65xx +ni_660x +ni_670x +ni_at_a2150 +ni_at_ao +ni_atmio +ni_atmio16d +ni_daq_700 +ni_daq_dio24 +ni_labpc +ni_labpc_common +ni_labpc_cs +ni_labpc_isadma +ni_labpc_pci +ni_mio_cs +ni_pcidio +ni_pcimio +ni_routing +ni_tio +ni_tiocmd +ni_usb6501 +nic7018_wdt +nicpf +nicstar +nicvf +nilfs2 +niu +nixge +nlmon +nls_ascii +nls_cp1250 +nls_cp1251 +nls_cp1255 +nls_cp737 +nls_cp775 +nls_cp850 +nls_cp852 +nls_cp855 +nls_cp857 +nls_cp860 +nls_cp861 +nls_cp862 +nls_cp863 +nls_cp864 +nls_cp865 +nls_cp866 +nls_cp869 +nls_cp874 +nls_cp932 +nls_cp936 +nls_cp949 +nls_cp950 +nls_euc-jp +nls_iso8859-1 +nls_iso8859-13 +nls_iso8859-14 +nls_iso8859-15 +nls_iso8859-2 +nls_iso8859-3 +nls_iso8859-4 +nls_iso8859-5 +nls_iso8859-6 +nls_iso8859-7 +nls_iso8859-9 +nls_koi8-r +nls_koi8-ru +nls_koi8-u +nls_utf8 +nmclan_cs +noa1305 +noon010pc30 +nosy +notifier-error-inject +nouveau +nozomi +npcm750-pwm-fan +ns558 +ns83820 +nsh +ntb +ntb_hw_idt +ntb_hw_intel +ntb_hw_switchtec +ntb_netdev +ntb_perf +ntb_pingpong +ntb_tool +ntb_transport +ntc_thermistor +ntfs +null_blk +nuvoton-cir +nv_tco +nvidiafb +nvme +nvme-core +nvme-fabrics +nvme-fc +nvme-loop +nvme-rdma +nvme-tcp +nvmem-rave-sp-eeprom +nvmem_qcom-spmi-sdam +nvmet +nvmet-fc +nvmet-rdma +nvmet-tcp +nvram +nxp-nci +nxp-nci_i2c +nxp-tja11xx +nxt200x +nxt6000 +objagg +ocfb +ocfs2 +ocfs2_dlm +ocfs2_dlmfs +ocfs2_nodemanager +ocfs2_stack_o2cb +ocfs2_stack_user +ocfs2_stackglue +ocrdma +of_xilinx_wdt +ofb +omfs +omninet +on20 +on26 +onenand +opa_vnic +opencores-kbd +openvswitch +oprofile +opt3001 +opticon +option +or51132 +or51211 +orangefs +orinoco +orinoco_cs +orinoco_nortel +orinoco_plx +orinoco_tmd +orinoco_usb +oti6858 +otm3225a +ov13858 +ov2640 +ov2659 +ov2680 +ov2685 +ov5647 +ov5670 +ov5675 +ov5695 +ov6650 +ov7251 +ov7640 +ov7670 +ov772x +ov7740 +ov8856 +ov9640 +ov9650 +overlay +oxu210hp-hcd +p4-clockmod +p54common +p54pci +p54spi +p54usb +p8022 +pa12203001 +padlock-aes +padlock-sha +palmas-pwrbutton +palmas-regulator +palmas_gpadc +panasonic-laptop +pandora_bl +panel +panel-raspberrypi-touchscreen +paride +parkbd +parman +parport +parport_ax88796 +parport_cs +parport_pc +parport_serial +pata_acpi +pata_ali +pata_amd +pata_artop +pata_atiixp +pata_atp867x +pata_cmd640 +pata_cmd64x +pata_cypress +pata_efar +pata_hpt366 +pata_hpt37x +pata_hpt3x2n +pata_hpt3x3 +pata_it8213 +pata_it821x +pata_jmicron +pata_legacy +pata_marvell +pata_mpiix +pata_netcell +pata_ninja32 +pata_ns87410 +pata_ns87415 +pata_oldpiix +pata_opti +pata_optidma +pata_pcmcia +pata_pdc2027x +pata_pdc202xx_old +pata_piccolo +pata_platform +pata_radisys +pata_rdc +pata_rz1000 +pata_sch +pata_serverworks +pata_sil680 +pata_sl82c105 +pata_triflex +pata_via +pblk +pc300too +pc87360 +pc87413_wdt +pc87427 +pcap-regulator +pcap_keys +pcap_ts +pcbc +pcd +pcengines-apuv2 +pcf50633 +pcf50633-adc +pcf50633-backlight +pcf50633-charger +pcf50633-gpio +pcf50633-input +pcf50633-regulator +pcf8574_keypad +pcf8591 +pch_udc +pci +pci-hyperv +pci-hyperv-intf +pci-pf-stub +pci-stub +pci200syn +pcips2 +pcl711 +pcl724 +pcl726 +pcl730 +pcl812 +pcl816 +pcl818 +pcm3724 +pcmad +pcmcia +pcmcia_core +pcmcia_rsrc +pcmciamtd +pcmda12 +pcmmio +pcmuio +pcnet32 +pcnet_cs +pcrypt +pcspkr +pcwd_pci +pcwd_usb +pd +pd6729 +pda_power +pdc_adma +peak_pci +peak_pciefd +peak_pcmcia +peak_usb +peaq-wmi +pegasus +pegasus_notetaker +penmount +pf +pfuze100-regulator +pg +phantom +phonet +phram +phy-bcm-kona-usb2 +phy-cpcap-usb +phy-exynos-usb2 +phy-generic +phy-gpio-vbus-usb +phy-intel-emmc +phy-isp1301 +phy-pxa-28nm-hsic +phy-pxa-28nm-usb2 +phy-qcom-usb-hs +phy-qcom-usb-hsic +phy-tahvo +phy-tusb1210 +phylink +physmap +pi3usb30532 +pi433 +pinctrl-broxton +pinctrl-cannonlake +pinctrl-cedarfork +pinctrl-denverton +pinctrl-geminilake +pinctrl-icelake +pinctrl-intel +pinctrl-lewisburg +pinctrl-lynxpoint +pinctrl-madera +pinctrl-mcp23s08 +pinctrl-sunrisepoint +pinctrl-tigerlake +ping +pistachio-internal-dac +pixcir_i2c_ts +pkcs7_test_key +pkcs8_key_parser +pktcdvd +pktgen +pl2303 +plat-ram +plat_nand +platform_lcd +plip +plusb +pluto2 +plx_dma +plx_pci +pm-notifier-error-inject +pm2fb +pm3fb +pm80xx +pmbus +pmbus_core +pmc551 +pmcraid +pms7003 +pn532_uart +pn533 +pn533_i2c +pn533_usb +pn544 +pn544_i2c +pn544_mei +pn_pep +pnd2_edac +poly1305-x86_64 +poly1305_generic +port100 +powermate +powr1220 +ppa +ppdev +ppp_async +ppp_deflate +ppp_mppe +ppp_synctty +pppoatm +pppoe +pppox +pps-gpio +pps-ldisc +pps_parport +pptp +pretimeout_panic +prism2_usb +processor_thermal_device +ps2-gpio +ps2mult +psample +psmouse +psnap +psxpad-spi +pt +ptp_clockmatrix +ptp_ines +ptp_kvm +pulse8-cec +pulsedlight-lidar-lite-v2 +punit_atom_debug +pv88060-regulator +pv88080-regulator +pv88090-regulator +pvcalls-front +pvpanic +pvrusb2 +pwc +pwm-beeper +pwm-cros-ec +pwm-lp3943 +pwm-pca9685 +pwm-regulator +pwm-twl +pwm-twl-led +pwm-vibra +pwm_bl +pxa27x_udc +pxe1610 +pxrc +qat_c3xxx +qat_c3xxxvf +qat_c62x +qat_c62xvf +qat_dh895xcc +qat_dh895xccvf +qca8k +qcaux +qcom-cpr +qcom-emac +qcom-spmi-adc5 +qcom-spmi-iadc +qcom-spmi-vadc +qcom-vadc-common +qcom-wled +qcom_glink_native +qcom_glink_rpm +qcom_spmi-regulator +qcserial +qed +qede +qedf +qedi +qedr +qemu_fw_cfg +qinfo_probe +qla1280 +qla2xxx +qla3xxx +qla4xxx +qlcnic +qlge +qlogic_cs +qlogicfas408 +qm1d1b0004 +qm1d1c0042 +qmi_wwan +qnx4 +qnx6 +qsemi +qt1010 +qt1050 +qt1070 +qt2160 +qtnfmac +qtnfmac_pcie +quatech2 +quatech_daqp_cs +quota_tree +quota_v1 +quota_v2 +qxl +r592 +r6040 +r8152 +r8169 +r8188eu +r8192e_pci +r8192u_usb +r820t +r852 +r8712u +r8723bs +r8a66597-hcd +r8a66597-udc +radeon +radeonfb +radio-keene +radio-ma901 +radio-maxiradio +radio-mr800 +radio-platform-si4713 +radio-raremono +radio-shark +radio-si470x-common +radio-si470x-i2c +radio-si470x-usb +radio-si476x +radio-tea5764 +radio-usb-si4713 +radio-wl1273 +raid0 +raid1 +raid10 +raid456 +raid6_pq +raid_class +rainshadow-cec +ramoops +rave-sp +rave-sp-backlight +rave-sp-pwrbutton +rave-sp-wdt +raw +raw_diag +ray_cs +raydium_i2c_ts +rbd +rc-adstech-dvb-t-pci +rc-alink-dtu-m +rc-anysee +rc-apac-viewcomp +rc-astrometa-t2hybrid +rc-asus-pc39 +rc-asus-ps3-100 +rc-ati-tv-wonder-hd-600 +rc-ati-x10 +rc-avermedia +rc-avermedia-a16d +rc-avermedia-cardbus +rc-avermedia-dvbt +rc-avermedia-m135a +rc-avermedia-m733a-rm-k6 +rc-avermedia-rm-ks +rc-avertv-303 +rc-azurewave-ad-tu700 +rc-beelink-gs1 +rc-behold +rc-behold-columbus +rc-budget-ci-old +rc-cec +rc-cinergy +rc-cinergy-1400 +rc-core +rc-d680-dmb +rc-delock-61959 +rc-dib0700-nec +rc-dib0700-rc5 +rc-digitalnow-tinytwin +rc-digittrade +rc-dm1105-nec +rc-dntv-live-dvb-t +rc-dntv-live-dvbt-pro +rc-dtt200u +rc-dvbsky +rc-dvico-mce +rc-dvico-portable +rc-em-terratec +rc-encore-enltv +rc-encore-enltv-fm53 +rc-encore-enltv2 +rc-evga-indtube +rc-eztv +rc-flydvb +rc-flyvideo +rc-fusionhdtv-mce +rc-gadmei-rm008z +rc-geekbox +rc-genius-tvgo-a11mce +rc-gotview7135 +rc-hauppauge +rc-hisi-poplar +rc-hisi-tv-demo +rc-imon-mce +rc-imon-pad +rc-imon-rsc +rc-iodata-bctv7e +rc-it913x-v1 +rc-it913x-v2 +rc-kaiomy +rc-khadas +rc-kworld-315u +rc-kworld-pc150u +rc-kworld-plus-tv-analog +rc-leadtek-y04g0051 +rc-lme2510 +rc-loopback +rc-manli +rc-medion-x10 +rc-medion-x10-digitainer +rc-medion-x10-or2x +rc-msi-digivox-ii +rc-msi-digivox-iii +rc-msi-tvanywhere +rc-msi-tvanywhere-plus +rc-nebula +rc-nec-terratec-cinergy-xs +rc-norwood +rc-npgtech +rc-odroid +rc-pctv-sedna +rc-pinnacle-color +rc-pinnacle-grey +rc-pinnacle-pctv-hd +rc-pixelview +rc-pixelview-002t +rc-pixelview-mk12 +rc-pixelview-new +rc-powercolor-real-angel +rc-proteus-2309 +rc-purpletv +rc-pv951 +rc-rc6-mce +rc-real-audio-220-32-keys +rc-reddo +rc-snapstream-firefly +rc-streamzap +rc-su3000 +rc-tango +rc-tanix-tx3mini +rc-tanix-tx5max +rc-tbs-nec +rc-technisat-ts35 +rc-technisat-usb2 +rc-terratec-cinergy-c-pci +rc-terratec-cinergy-s2-hd +rc-terratec-cinergy-xs +rc-terratec-slim +rc-terratec-slim-2 +rc-tevii-nec +rc-tivo +rc-total-media-in-hand +rc-total-media-in-hand-02 +rc-trekstor +rc-tt-1500 +rc-twinhan-dtv-cab-ci +rc-twinhan1027 +rc-vega-s9x +rc-videomate-m1f +rc-videomate-s350 +rc-videomate-tv-pvr +rc-videostrong-kii-pro +rc-wetek-hub +rc-wetek-play2 +rc-winfast +rc-winfast-usbii-deluxe +rc-x96max +rc-xbox-dvd +rc-zx-irdec +rc5t583-regulator +rcuperf +rdc321x-southbridge +rdma_cm +rdma_rxe +rdma_ucm +rdmavt +rds +rds_rdma +rds_tcp +realtek +realtek-smi +redboot +redrat3 +reed_solomon +regmap-i3c +regmap-sccb +regmap-sdw +regmap-slimbus +regmap-spmi +regmap-w1 +regulator-haptic +reiserfs +repaper +reset-ti-syscon +resistive-adc-touch +retu-mfd +retu-pwrbutton +retu_wdt +rfc1051 +rfc1201 +rfcomm +rfd77402 +rfd_ftl +rfkill-gpio +rio-scan +rio_cm +rio_mport_cdev +rionet +rivafb +rj54n1cb0c +rm3100-core +rm3100-i2c +rm3100-spi +rmd128 +rmd160 +rmd256 +rmd320 +rmi_core +rmi_i2c +rmi_smbus +rmi_spi +rmnet +rndis_host +rndis_wlan +rockchip +rocker +rocket +rohm_bu21023 +roles +romfs +rose +rotary_encoder +rp2 +rpcrdma +rpcsec_gss_krb5 +rpmsg_char +rpmsg_core +rpr0521 +rsi_91x +rsi_sdio +rsi_usb +rsxx +rt2400pci +rt2500pci +rt2500usb +rt2800lib +rt2800mmio +rt2800pci +rt2800usb +rt2x00lib +rt2x00mmio +rt2x00pci +rt2x00usb +rt5033 +rt5033-regulator +rt5033_battery +rt61pci +rt73usb +rt9455_charger +rtc-88pm80x +rtc-88pm860x +rtc-ab-b5ze-s3 +rtc-ab-eoz9 +rtc-ab3100 +rtc-abx80x +rtc-bq32k +rtc-bq4802 +rtc-cros-ec +rtc-da9052 +rtc-da9055 +rtc-da9063 +rtc-ds1286 +rtc-ds1302 +rtc-ds1305 +rtc-ds1307 +rtc-ds1343 +rtc-ds1347 +rtc-ds1374 +rtc-ds1390 +rtc-ds1511 +rtc-ds1553 +rtc-ds1672 +rtc-ds1685 +rtc-ds1742 +rtc-ds2404 +rtc-ds3232 +rtc-em3027 +rtc-fm3130 +rtc-ftrtc010 +rtc-hid-sensor-time +rtc-isl12022 +rtc-isl1208 +rtc-lp8788 +rtc-m41t80 +rtc-m41t93 +rtc-m41t94 +rtc-m48t35 +rtc-m48t59 +rtc-m48t86 +rtc-max6900 +rtc-max6902 +rtc-max6916 +rtc-max8907 +rtc-max8925 +rtc-max8997 +rtc-max8998 +rtc-mc13xxx +rtc-mcp795 +rtc-msm6242 +rtc-mt6397 +rtc-palmas +rtc-pcap +rtc-pcf2123 +rtc-pcf2127 +rtc-pcf50633 +rtc-pcf85063 +rtc-pcf8523 +rtc-pcf85363 +rtc-pcf8563 +rtc-pcf8583 +rtc-r9701 +rtc-rc5t583 +rtc-rp5c01 +rtc-rs5c348 +rtc-rs5c372 +rtc-rv3028 +rtc-rv3029c2 +rtc-rv8803 +rtc-rx4581 +rtc-rx6110 +rtc-rx8010 +rtc-rx8025 +rtc-rx8581 +rtc-s35390a +rtc-s5m +rtc-sd3078 +rtc-stk17ta8 +rtc-tps6586x +rtc-tps65910 +rtc-tps80031 +rtc-v3020 +rtc-wilco-ec +rtc-wm831x +rtc-wm8350 +rtc-x1205 +rtd520 +rti800 +rti802 +rtl2830 +rtl2832 +rtl2832_sdr +rtl8150 +rtl8187 +rtl8188ee +rtl818x_pci +rtl8192c-common +rtl8192ce +rtl8192cu +rtl8192de +rtl8192ee +rtl8192se +rtl8723-common +rtl8723ae +rtl8723be +rtl8821ae +rtl8xxxu +rtl_pci +rtl_usb +rtllib +rtllib_crypt_ccmp +rtllib_crypt_tkip +rtllib_crypt_wep +rtlwifi +rts5208 +rtsx_pci +rtsx_pci_ms +rtsx_pci_sdmmc +rtsx_usb +rtsx_usb_ms +rtsx_usb_sdmmc +rtw88 +rtwpci +rx51_battery +rxrpc +s1d13xxxfb +s2250 +s2255drv +s2io +s2mpa01 +s2mps11 +s3fb +s3fwrn5 +s3fwrn5_i2c +s526 +s5c73m3 +s5h1409 +s5h1411 +s5h1420 +s5h1432 +s5k4ecgx +s5k5baf +s5k6a3 +s5k6aa +s5m8767 +s626 +s6sy761 +s921 +saa6588 +saa6752hs +saa7110 +saa7115 +saa7127 +saa7134 +saa7134-alsa +saa7134-dvb +saa7134-empress +saa7134-go7007 +saa7146 +saa7146_vv +saa7164 +saa717x +saa7185 +saa7706h +safe_serial +salsa20_generic +sample-trace-array +samsung-keypad +samsung-laptop +samsung-q10 +samsung-sxgbe +sata_dwc_460ex +sata_inic162x +sata_mv +sata_nv +sata_promise +sata_qstor +sata_sil +sata_sil24 +sata_sis +sata_svw +sata_sx4 +sata_uli +sata_via +sata_vsc +savagefb +sb1000 +sb_edac +sbc60xxwdt +sbc_epx_c3 +sbc_fitpc2_wdt +sbc_gxx +sbni +sbp_target +sbs +sbs-battery +sbs-charger +sbs-manager +sbshc +sc1200wdt +sc16is7xx +sc92031 +sca3000 +scb2_flash +sch311x_wdt +sch5627 +sch5636 +sch56xx-common +sch_atm +sch_cake +sch_cbq +sch_cbs +sch_choke +sch_codel +sch_drr +sch_dsmark +sch_etf +sch_ets +sch_fq +sch_fq_codel +sch_fq_pie +sch_gred +sch_hfsc +sch_hhf +sch_htb +sch_ingress +sch_mqprio +sch_multiq +sch_netem +sch_pie +sch_plug +sch_prio +sch_qfq +sch_red +sch_sfb +sch_sfq +sch_skbprio +sch_taprio +sch_tbf +sch_teql +scif +scif_bus +scr24x_cs +scsi_debug +scsi_dh_alua +scsi_dh_emc +scsi_dh_hp_sw +scsi_dh_rdac +scsi_transport_fc +scsi_transport_iscsi +scsi_transport_sas +scsi_transport_spi +scsi_transport_srp +sctp +sctp_diag +sdhci +sdhci-acpi +sdhci-pci +sdhci-pltfm +sdhci-xenon-driver +sdhci_f_sdh30 +sdio_uart +sdricoh_cs +seco-cec +seed +sensorhub +serial_cs +serial_ir +serio_raw +sermouse +serpent-avx-x86_64 +serpent-avx2 +serpent-sse2-x86_64 +serpent_generic +serport +ses +sf-pdma +sfc +sfc-falcon +sfp +sgi_w1 +sgp30 +sh_veu +sha1-ssse3 +sha256-ssse3 +sha3_generic +sha512-ssse3 +shark2 +shiftfs +sht15 +sht21 +sht3x +shtc1 +si1133 +si1145 +si2157 +si2165 +si2168 +si21xx +si4713 +si476x-core +si7005 +si7020 +sidewinder +sierra +sierra_net +sil164 +silead +sim710 +siox-bus-gpio +siox-core +sir_ir +sirf-audio-codec +sis-agp +sis190 +sis5595 +sis900 +sis_i2c +sisfb +sisusbvga +sit +siw +sja1000 +sja1000_isa +sja1000_platform +sja1105 +skd +skfp +skge +skx_edac +sky2 +sky81452 +sky81452-backlight +sky81452-regulator +sl811-hcd +sl811_cs +slcan +slg51000-regulator +slicoss +slim-qcom-ctrl +slimbus +slip +slram +sm3_generic +sm4_generic +sm501 +sm501fb +sm712fb +sm750fb +sm_common +sm_ftl +smartpqi +smb347-charger +smc +smc91c92_cs +smc_diag +smiapp +smiapp-pll +smipcie +smm665 +smsc +smsc37b787_wdt +smsc47b397 +smsc47m1 +smsc47m192 +smsc75xx +smsc911x +smsc9420 +smsc95xx +smscufx +smsdvb +smsmdtv +smssdio +smsusb +snd +snd-ac97-codec +snd-acp3x-i2s +snd-acp3x-pcm-dma +snd-acp3x-pdm-dma +snd-acp3x-rn +snd-ad1889 +snd-ak4113 +snd-ak4114 +snd-ak4117 +snd-ak4xxx-adda +snd-ali5451 +snd-aloop +snd-als300 +snd-als4000 +snd-asihpi +snd-atiixp +snd-atiixp-modem +snd-au8810 +snd-au8820 +snd-au8830 +snd-aw2 +snd-azt3328 +snd-bcd2000 +snd-bebob +snd-bt87x +snd-ca0106 +snd-cmipci +snd-compress +snd-cs4281 +snd-cs46xx +snd-cs8427 +snd-ctxfi +snd-darla20 +snd-darla24 +snd-dice +snd-dummy +snd-echo3g +snd-emu10k1 +snd-emu10k1-synth +snd-emu10k1x +snd-emux-synth +snd-ens1370 +snd-ens1371 +snd-es1938 +snd-es1968 +snd-fireface +snd-firewire-digi00x +snd-firewire-lib +snd-firewire-motu +snd-firewire-tascam +snd-fireworks +snd-fm801 +snd-gina20 +snd-gina24 +snd-hda-codec +snd-hda-codec-analog +snd-hda-codec-ca0110 +snd-hda-codec-ca0132 +snd-hda-codec-cirrus +snd-hda-codec-cmedia +snd-hda-codec-conexant +snd-hda-codec-generic +snd-hda-codec-hdmi +snd-hda-codec-idt +snd-hda-codec-realtek +snd-hda-codec-si3054 +snd-hda-codec-via +snd-hda-core +snd-hda-ext-core +snd-hda-intel +snd-hdmi-lpe-audio +snd-hdsp +snd-hdspm +snd-hrtimer +snd-hwdep +snd-i2c +snd-ice1712 +snd-ice1724 +snd-ice17xx-ak4xxx +snd-indigo +snd-indigodj +snd-indigodjx +snd-indigoio +snd-indigoiox +snd-intel-dspcfg +snd-intel-sst-acpi +snd-intel-sst-core +snd-intel8x0 +snd-intel8x0m +snd-isight +snd-korg1212 +snd-layla20 +snd-layla24 +snd-lola +snd-lx6464es +snd-maestro3 +snd-mia +snd-mixart +snd-mixer-oss +snd-mona +snd-mpu401 +snd-mpu401-uart +snd-mtpav +snd-mts64 +snd-nm256 +snd-opl3-lib +snd-opl3-synth +snd-oxfw +snd-oxygen +snd-oxygen-lib +snd-pci-acp3x +snd-pcm +snd-pcm-dmaengine +snd-pcsp +snd-pcxhr +snd-pdaudiocf +snd-portman2x4 +snd-pt2258 +snd-rawmidi +snd-riptide +snd-rme32 +snd-rme96 +snd-rme9652 +snd-rn-pci-acp3x +snd-sb-common +snd-seq +snd-seq-device +snd-seq-dummy +snd-seq-midi +snd-seq-midi-emul +snd-seq-midi-event +snd-seq-virmidi +snd-serial-u16550 +snd-skl_nau88l25_max98357a +snd-soc-ac97 +snd-soc-acp-da7219mx98357-mach +snd-soc-acp-rt5645-mach +snd-soc-acpi +snd-soc-acpi-intel-match +snd-soc-adau-utils +snd-soc-adau1701 +snd-soc-adau1761 +snd-soc-adau1761-i2c +snd-soc-adau1761-spi +snd-soc-adau17x1 +snd-soc-adau7002 +snd-soc-adau7118 +snd-soc-adau7118-hw +snd-soc-adau7118-i2c +snd-soc-ak4104 +snd-soc-ak4118 +snd-soc-ak4458 +snd-soc-ak4554 +snd-soc-ak4613 +snd-soc-ak4642 +snd-soc-ak5386 +snd-soc-ak5558 +snd-soc-alc5623 +snd-soc-bd28623 +snd-soc-bt-sco +snd-soc-cml_rt1011_rt5682 +snd-soc-core +snd-soc-cros-ec-codec +snd-soc-cs35l32 +snd-soc-cs35l33 +snd-soc-cs35l34 +snd-soc-cs35l35 +snd-soc-cs35l36 +snd-soc-cs4265 +snd-soc-cs4270 +snd-soc-cs4271 +snd-soc-cs4271-i2c +snd-soc-cs4271-spi +snd-soc-cs42l42 +snd-soc-cs42l51 +snd-soc-cs42l51-i2c +snd-soc-cs42l52 +snd-soc-cs42l56 +snd-soc-cs42l73 +snd-soc-cs42xx8 +snd-soc-cs42xx8-i2c +snd-soc-cs43130 +snd-soc-cs4341 +snd-soc-cs4349 +snd-soc-cs53l30 +snd-soc-cx2072x +snd-soc-da7213 +snd-soc-da7219 +snd-soc-dmic +snd-soc-es7134 +snd-soc-es7241 +snd-soc-es8316 +snd-soc-es8328 +snd-soc-es8328-i2c +snd-soc-es8328-spi +snd-soc-fsl-asrc +snd-soc-fsl-audmix +snd-soc-fsl-esai +snd-soc-fsl-micfil +snd-soc-fsl-mqs +snd-soc-fsl-sai +snd-soc-fsl-spdif +snd-soc-fsl-ssi +snd-soc-gtm601 +snd-soc-hdac-hda +snd-soc-hdac-hdmi +snd-soc-hdmi-codec +snd-soc-imx-audmux +snd-soc-inno-rk3036 +snd-soc-kbl_da7219_max98357a +snd-soc-kbl_da7219_max98927 +snd-soc-kbl_rt5660 +snd-soc-kbl_rt5663_max98927 +snd-soc-kbl_rt5663_rt5514_max98927 +snd-soc-max9759 +snd-soc-max98088 +snd-soc-max98090 +snd-soc-max98357a +snd-soc-max98373 +snd-soc-max98504 +snd-soc-max9860 +snd-soc-max9867 +snd-soc-max98927 +snd-soc-msm8916-analog +snd-soc-msm8916-digital +snd-soc-mt6351 +snd-soc-mt6358 +snd-soc-mt6660 +snd-soc-nau8540 +snd-soc-nau8810 +snd-soc-nau8822 +snd-soc-nau8824 +snd-soc-nau8825 +snd-soc-pcm1681 +snd-soc-pcm1789-codec +snd-soc-pcm1789-i2c +snd-soc-pcm179x-codec +snd-soc-pcm179x-i2c +snd-soc-pcm179x-spi +snd-soc-pcm186x +snd-soc-pcm186x-i2c +snd-soc-pcm186x-spi +snd-soc-pcm3060 +snd-soc-pcm3060-i2c +snd-soc-pcm3060-spi +snd-soc-pcm3168a +snd-soc-pcm3168a-i2c +snd-soc-pcm3168a-spi +snd-soc-pcm512x +snd-soc-pcm512x-i2c +snd-soc-pcm512x-spi +snd-soc-rk3328 +snd-soc-rl6231 +snd-soc-rl6347a +snd-soc-rt1011 +snd-soc-rt1015 +snd-soc-rt1308 +snd-soc-rt1308-sdw +snd-soc-rt286 +snd-soc-rt298 +snd-soc-rt5514 +snd-soc-rt5514-spi +snd-soc-rt5616 +snd-soc-rt5631 +snd-soc-rt5640 +snd-soc-rt5645 +snd-soc-rt5651 +snd-soc-rt5660 +snd-soc-rt5663 +snd-soc-rt5670 +snd-soc-rt5677 +snd-soc-rt5677-spi +snd-soc-rt5682 +snd-soc-rt700 +snd-soc-rt711 +snd-soc-rt715 +snd-soc-sgtl5000 +snd-soc-si476x +snd-soc-sigmadsp +snd-soc-sigmadsp-i2c +snd-soc-sigmadsp-regmap +snd-soc-simple-amplifier +snd-soc-simple-card +snd-soc-simple-card-utils +snd-soc-skl_hda_dsp +snd-soc-skl_nau88l25_ssm4567 +snd-soc-skl_rt286 +snd-soc-sof-sdw +snd-soc-sof_da7219_max98373 +snd-soc-sof_rt5682 +snd-soc-spdif-rx +snd-soc-spdif-tx +snd-soc-ssm2305 +snd-soc-ssm2602 +snd-soc-ssm2602-i2c +snd-soc-ssm2602-spi +snd-soc-ssm4567 +snd-soc-sst-acpi +snd-soc-sst-atom-hifi2-platform +snd-soc-sst-bdw-rt5650-mach +snd-soc-sst-bdw-rt5677-mach +snd-soc-sst-broadwell +snd-soc-sst-bxt-da7219_max98357a +snd-soc-sst-bxt-rt298 +snd-soc-sst-byt-cht-cx2072x +snd-soc-sst-byt-cht-da7213 +snd-soc-sst-byt-cht-es8316 +snd-soc-sst-bytcr-rt5640 +snd-soc-sst-bytcr-rt5651 +snd-soc-sst-cht-bsw-max98090_ti +snd-soc-sst-cht-bsw-nau8824 +snd-soc-sst-cht-bsw-rt5645 +snd-soc-sst-cht-bsw-rt5672 +snd-soc-sst-dsp +snd-soc-sst-firmware +snd-soc-sst-glk-rt5682_max98357a +snd-soc-sst-haswell-pcm +snd-soc-sst-ipc +snd-soc-sst-sof-pcm512x +snd-soc-sta32x +snd-soc-sta350 +snd-soc-sti-sas +snd-soc-tas2552 +snd-soc-tas2562 +snd-soc-tas2770 +snd-soc-tas5086 +snd-soc-tas571x +snd-soc-tas5720 +snd-soc-tas6424 +snd-soc-tda7419 +snd-soc-tfa9879 +snd-soc-tlv320aic23 +snd-soc-tlv320aic23-i2c +snd-soc-tlv320aic23-spi +snd-soc-tlv320aic31xx +snd-soc-tlv320aic32x4 +snd-soc-tlv320aic32x4-i2c +snd-soc-tlv320aic32x4-spi +snd-soc-tlv320aic3x +snd-soc-tpa6130a2 +snd-soc-ts3a227e +snd-soc-tscs42xx +snd-soc-tscs454 +snd-soc-uda1334 +snd-soc-wcd9335 +snd-soc-wcd934x +snd-soc-wm8510 +snd-soc-wm8523 +snd-soc-wm8524 +snd-soc-wm8580 +snd-soc-wm8711 +snd-soc-wm8728 +snd-soc-wm8731 +snd-soc-wm8737 +snd-soc-wm8741 +snd-soc-wm8750 +snd-soc-wm8753 +snd-soc-wm8770 +snd-soc-wm8776 +snd-soc-wm8782 +snd-soc-wm8804 +snd-soc-wm8804-i2c +snd-soc-wm8804-spi +snd-soc-wm8903 +snd-soc-wm8904 +snd-soc-wm8960 +snd-soc-wm8962 +snd-soc-wm8974 +snd-soc-wm8978 +snd-soc-wm8985 +snd-soc-wsa881x +snd-soc-xlnx-formatter-pcm +snd-soc-xlnx-i2s +snd-soc-xlnx-spdif +snd-soc-xtfpga-i2s +snd-soc-zx-aud96p22 +snd-sof +snd-sof-acpi +snd-sof-intel-hda +snd-sof-intel-hda-common +snd-sof-pci +snd-sof-xtensa-dsp +snd-sonicvibes +snd-timer +snd-trident +snd-ua101 +snd-usb-6fire +snd-usb-audio +snd-usb-caiaq +snd-usb-hiface +snd-usb-line6 +snd-usb-pod +snd-usb-podhd +snd-usb-toneport +snd-usb-us122l +snd-usb-usx2y +snd-usb-variax +snd-usbmidi-lib +snd-util-mem +snd-via82xx +snd-via82xx-modem +snd-virmidi +snd-virtuoso +snd-vx-lib +snd-vx222 +snd-vxpocket +snd-ymfpci +snd_xen_front +snic +snps_udc_core +soc_button_array +softdog +softing +softing_cs +solo6x10 +solos-pci +sony-btf-mpx +sony-laptop +soundcore +soundwire-bus +soundwire-cadence +soundwire-generic-allocation +soundwire-intel +soundwire-qcom +sp2 +sp5100_tco +sp8870 +sp887x +spaceball +spaceorb +sparse-keymap +spcp8x5 +speakup +speakup_acntsa +speakup_apollo +speakup_audptr +speakup_bns +speakup_decext +speakup_dectlk +speakup_dummy +speakup_ltlk +speakup_soft +speakup_spkout +speakup_txprt +spectrum_cs +speedfax +speedstep-lib +speedtch +spi-altera +spi-axi-spi-engine +spi-bitbang +spi-butterfly +spi-cadence +spi-dln2 +spi-dw +spi-dw-midpci +spi-dw-mmio +spi-gpio +spi-lm70llp +spi-loopback-test +spi-mxic +spi-nor +spi-nxp-fspi +spi-oc-tiny +spi-pxa2xx-pci +spi-pxa2xx-platform +spi-sc18is602 +spi-sifive +spi-slave-system-control +spi-slave-time +spi-tle62x0 +spi-xcomm +spi-zynqmp-gqspi +spi_ks8995 +spidev +spinand +spl +spmi +sps30 +sr030pc30 +sr9700 +sr9800 +srf04 +srf08 +ssb +ssb-hcd +ssfdc +ssp_accel_sensor +ssp_gyro_sensor +ssp_iio +sst25l +sstfb +ssu100 +st +st-mipid02 +st-nci +st-nci_i2c +st-nci_spi +st1232 +st21nfca_hci +st21nfca_i2c +st7586 +st7735r +st95hf +st_accel +st_accel_i2c +st_accel_spi +st_drv +st_gyro +st_gyro_i2c +st_gyro_spi +st_lsm6dsx +st_lsm6dsx_i2c +st_lsm6dsx_i3c +st_lsm6dsx_spi +st_magn +st_magn_i2c +st_magn_spi +st_pressure +st_pressure_i2c +st_pressure_spi +st_sensors +st_sensors_i2c +st_sensors_spi +st_uvis25_core +st_uvis25_i2c +st_uvis25_spi +starfire +stb0899 +stb6000 +stb6100 +ste10Xp +stex +stinger +stk1160 +stk3310 +stk8312 +stk8ba50 +stkwebcam +stm_console +stm_core +stm_ftrace +stm_heartbeat +stm_p_basic +stm_p_sys-t +stmfts +stmmac +stmmac-pci +stmmac-platform +stowaway +stp +streamzap +streebog_generic +stts751 +stv0288 +stv0297 +stv0299 +stv0367 +stv0900 +stv090x +stv0910 +stv6110 +stv6110x +stv6111 +stx104 +sundance +sungem +sungem_phy +sunhme +suni +sunkbd +sunrpc +sur40 +surface3-wmi +surface3_button +surface3_spi +surfacepro3_button +svgalib +switchtec +sx8 +sx8654 +sx9500 +sym53c500_cs +sym53c8xx +symbolserial +synaptics_i2c +synaptics_usb +synclink +synclink_cs +synclink_gt +synclinkmp +syscopyarea +sysfillrect +sysimgblt +system76_acpi +sysv +t5403 +tag_8021q +tag_ar9331 +tag_brcm +tag_dsa +tag_edsa +tag_gswip +tag_ksz +tag_lan9303 +tag_mtk +tag_ocelot +tag_qca +tag_sja1105 +tag_trailer +tap +target_core_file +target_core_iblock +target_core_mod +target_core_pscsi +target_core_user +tc-dwc-g210 +tc-dwc-g210-pci +tc-dwc-g210-pltfrm +tc358743 +tc654 +tc74 +tc90522 +tca6416-keypad +tca8418_keypad +tcan4x5x +tcm_fc +tcm_loop +tcm_qla2xxx +tcm_usb_gadget +tcp_bbr +tcp_bic +tcp_cdg +tcp_dctcp +tcp_diag +tcp_highspeed +tcp_htcp +tcp_hybla +tcp_illinois +tcp_lp +tcp_nv +tcp_scalable +tcp_vegas +tcp_veno +tcp_westwood +tcp_yeah +tcpci +tcpci_rt1711h +tcpm +tcrypt +tcs3414 +tcs3472 +tda10021 +tda10023 +tda10048 +tda1004x +tda10071 +tda10086 +tda18212 +tda18218 +tda18250 +tda18271 +tda18271c2dd +tda1997x +tda665x +tda7432 +tda8083 +tda8261 +tda826x +tda827x +tda8290 +tda9840 +tda9887 +tda9950 +tda998x +tdfxfb +tdo24m +tea +tea575x +tea5761 +tea5767 +tea6415c +tea6420 +team +team_mode_activebackup +team_mode_broadcast +team_mode_loadbalance +team_mode_random +team_mode_roundrobin +tee +tef6862 +tehuti +teranetics +test_blackhole_dev +test_bpf +test_power +tg3 +tgr192 +thermal-generic-adc +thinkpad_acpi +thmc50 +ths7303 +ths8200 +thunder_bgx +thunder_xcv +thunderbolt +thunderbolt-net +ti-adc081c +ti-adc0832 +ti-adc084s021 +ti-adc108s102 +ti-adc12138 +ti-adc128s052 +ti-adc161s626 +ti-ads1015 +ti-ads7950 +ti-dac082s085 +ti-dac5571 +ti-dac7311 +ti-dac7612 +ti-lmu +ti-tlc4541 +ti_am335x_adc +ti_am335x_tsc +ti_am335x_tscadc +ti_usb_3410_5052 +tifm_7xx1 +tifm_core +tifm_ms +tifm_sd +timeriomem-rng +tipc +tlan +tlclk +tls +tlv320aic23b +tm2-touchkey +tm6000 +tm6000-alsa +tm6000-dvb +tmdc +tmp006 +tmp007 +tmp102 +tmp103 +tmp108 +tmp401 +tmp421 +tmp513 +topstar-laptop +torture +toshiba_acpi +toshiba_bluetooth +toshiba_haps +toshsd +touchit213 +touchright +touchwin +tpci200 +tpl0102 +tpm_atmel +tpm_i2c_atmel +tpm_i2c_infineon +tpm_i2c_nuvoton +tpm_infineon +tpm_key_parser +tpm_nsc +tpm_st33zp24 +tpm_st33zp24_i2c +tpm_st33zp24_spi +tpm_tis_spi +tpm_vtpm_proxy +tps40422 +tps51632-regulator +tps53679 +tps6105x +tps6105x-regulator +tps62360-regulator +tps65010 +tps65023-regulator +tps6507x +tps6507x-regulator +tps6507x-ts +tps65086 +tps65086-regulator +tps65090-charger +tps65090-regulator +tps65132-regulator +tps6524x-regulator +tps6586x-regulator +tps65910-regulator +tps65912-regulator +tps6598x +tps80031-regulator +tqmx86 +tqmx86_wdt +trace-printk +trancevibrator +trf7970a +tridentfb +ts2020 +ts_bm +ts_fsm +ts_kmp +tsc2004 +tsc2005 +tsc2007 +tsc200x-core +tsc40 +tsi568 +tsi57x +tsi721_mport +tsl2550 +tsl2563 +tsl2583 +tsl2772 +tsl4531 +tsys01 +tsys02d +ttm +ttpci-eeprom +ttusb_dec +ttusbdecfe +ttusbir +ttynull +tua6100 +tua9001 +tulip +tuner +tuner-simple +tuner-types +tuner-xc2028 +tunnel4 +tunnel6 +turbografx +tvaudio +tveeprom +tvp514x +tvp5150 +tvp7002 +tw2804 +tw5864 +tw68 +tw686x +tw9903 +tw9906 +tw9910 +twidjoy +twl-regulator +twl4030-madc +twl4030-pwrbutton +twl4030-vibra +twl4030_charger +twl4030_keypad +twl4030_madc_battery +twl4030_wdt +twl6030-gpadc +twl6030-regulator +twl6040-vibra +twofish-avx-x86_64 +twofish-x86_64 +twofish-x86_64-3way +twofish_common +twofish_generic +typec +typec_displayport +typec_nvidia +typec_ucsi +typhoon +u132-hcd +uPD60620 +uPD98402 +u_audio +u_ether +u_serial +uartlite +uas +ubi +ubifs +ucan +ucb1400_core +ucb1400_ts +ucd9000 +ucd9200 +ucsi_acpi +ucsi_ccg +uda1342 +udc-core +udf +udl +udlfb +udp_diag +udp_tunnel +ueagle-atm +ufs +ufshcd-core +ufshcd-dwc +ufshcd-pci +ufshcd-pltfrm +uhid +uio +uio_aec +uio_cif +uio_dmem_genirq +uio_hv_generic +uio_mf624 +uio_netx +uio_pci_generic +uio_pdrv_genirq +uio_pruss +uio_sercos3 +uleds +uli526x +ulpi +umc +umem +ums-alauda +ums-cypress +ums-datafab +ums-eneub6250 +ums-freecom +ums-isd200 +ums-jumpshot +ums-karma +ums-onetouch +ums-realtek +ums-sddr09 +ums-sddr55 +ums-usbat +unix_diag +upd64031a +upd64083 +upd78f0730 +us5182d +usb-conn-gpio +usb-serial-simple +usb-storage +usb251xb +usb3503 +usb4604 +usb8xxx +usb_8dev +usb_debug +usb_f_acm +usb_f_ecm +usb_f_ecm_subset +usb_f_eem +usb_f_fs +usb_f_hid +usb_f_mass_storage +usb_f_midi +usb_f_ncm +usb_f_obex +usb_f_phonet +usb_f_printer +usb_f_rndis +usb_f_serial +usb_f_ss_lb +usb_f_tcm +usb_f_uac1 +usb_f_uac1_legacy +usb_f_uac2 +usb_f_uvc +usb_wwan +usbatm +usbdux +usbduxfast +usbduxsigma +usbhid +usbip-core +usbip-host +usbip-vudc +usbkbd +usblcd +usblp +usbmon +usbmouse +usbnet +usbserial +usbsevseg +usbtest +usbtmc +usbtouchscreen +usbtv +usbvision +usdhi6rol0 +userio +userspace-consumer +ushc +usnic_verbs +uss720 +uvcvideo +uvesafb +uwb +v4l2-dv-timings +v4l2-flash-led-class +v4l2-fwnode +v4l2-mem2mem +v4l2-tpg +vboxvideo +vcan +vcnl4000 +vcnl4035 +veml6030 +veml6070 +ves1820 +ves1x93 +veth +vfio_mdev +vga16fb +vgastate +vgem +vgg2432a4 +vhci-hcd +vhost +vhost_net +vhost_scsi +vhost_vsock +via-camera +via-cputemp +via-rhine +via-rng +via-sdmmc +via-velocity +via686a +via_wdt +viafb +vicodec +video +video-i2c +videobuf-core +videobuf-dma-sg +videobuf-vmalloc +videobuf2-common +videobuf2-dma-contig +videobuf2-dma-sg +videobuf2-dvb +videobuf2-memops +videobuf2-v4l2 +videobuf2-vmalloc +videodev +vim2m +vimc +viperboard +viperboard_adc +virt-dma +virt_wifi +virtio-gpu +virtio-rng +virtio_blk +virtio_crypto +virtio_input +virtio_net +virtio_pmem +virtio_rpmsg_bus +virtio_scsi +virtiofs +virtual +visor +visorbus +visorhba +visorinput +visornic +vitesse +vitesse-vsc73xx-core +vitesse-vsc73xx-platform +vitesse-vsc73xx-spi +vivid +vkms +vl53l0x-i2c +vl6180 +vmac +vmd +vme_ca91cx42 +vme_fake +vme_tsi148 +vme_user +vme_vmivme7805 +vmk80xx +vmlfb +vmw_balloon +vmw_pvrdma +vmw_pvscsi +vmw_vmci +vmw_vsock_virtio_transport +vmw_vsock_virtio_transport_common +vmw_vsock_vmci_transport +vmwgfx +vmxnet3 +vop +vop_bus +vp27smpx +vport-geneve +vport-gre +vport-vxlan +vpx3220 +vrf +vringh +vs6624 +vsock +vsock_diag +vsock_loopback +vsockmon +vsxxxaa +vt1211 +vt6655_stage +vt6656_stage +vt8231 +vt8623fb +vub300 +vx855 +vxcan +vxge +vxlan +vz89x +w1-gpio +w1_ds2405 +w1_ds2406 +w1_ds2408 +w1_ds2413 +w1_ds2423 +w1_ds2430 +w1_ds2431 +w1_ds2433 +w1_ds2438 +w1_ds250x +w1_ds2780 +w1_ds2781 +w1_ds2805 +w1_ds28e04 +w1_ds28e17 +w1_smem +w1_therm +w5100 +w5100-spi +w5300 +w6692 +w83627ehf +w83627hf +w83627hf_wdt +w83773g +w83781d +w83791d +w83792d +w83793 +w83795 +w83877f_wdt +w83977f_wdt +w83l785ts +w83l786ng +wacom +wacom_i2c +wacom_serial4 +wacom_w8001 +wafer5823wdt +walkera0701 +wanxl +warrior +wbsd +wcd934x +wcn36xx +wd719x +wdat_wdt +wdt87xx_i2c +wdt_pci +wfx +whc-rc +whci +whci-hcd +whiteheat +wil6210 +wilc1000 +wilc1000-sdio +wilc1000-spi +wilco-charger +wilco_ec +wilco_ec_debugfs +wilco_ec_events +wilco_ec_telem +wimax +winbond-840 +winbond-cir +wire +wireguard +wishbone-serial +wl1251 +wl1251_sdio +wl1251_spi +wl1273-core +wl12xx +wl18xx +wl3501_cs +wlcore +wlcore_sdio +wm831x-dcdc +wm831x-hwmon +wm831x-isink +wm831x-ldo +wm831x-on +wm831x-ts +wm831x_backup +wm831x_bl +wm831x_power +wm831x_wdt +wm8350-hwmon +wm8350-regulator +wm8350_power +wm8350_wdt +wm8400-regulator +wm8739 +wm8775 +wm8994 +wm8994-regulator +wm97xx-ts +wmi +wmi-bmof +wp512 +wusb-cbaf +wusb-wa +wusbcore +x25 +x25_asy +x38_edac +x86_pkg_temp_thermal +x_tables +xbox_remote +xc4000 +xc5000 +xcbc +xdpe12284 +xen-blkback +xen-evtchn +xen-fbfront +xen-front-pgdir-shbuf +xen-gntalloc +xen-gntdev +xen-kbdfront +xen-netback +xen-pciback +xen-pcifront +xen-privcmd +xen-scsiback +xen-scsifront +xen-tpmfront +xen_wdt +xenfs +xfrm4_tunnel +xfrm6_tunnel +xfrm_algo +xfrm_interface +xfrm_ipcomp +xfrm_user +xfs +xgene-hwmon +xhci-plat-hcd +xiaomi-wmi +xilinx-pr-decoupler +xilinx-spi +xilinx-xadc +xilinx_emac +xilinx_gmii2rgmii +xilinx_sdfec +xillybus_core +xillybus_pcie +xirc2ps_cs +xircom_cb +xlnx_vcu +xor +xpad +xr_usb_serial_common +xsens_mt +xsk_diag +xt_AUDIT +xt_CHECKSUM +xt_CLASSIFY +xt_CONNSECMARK +xt_CT +xt_DSCP +xt_HL +xt_HMARK +xt_IDLETIMER +xt_LED +xt_LOG +xt_MASQUERADE +xt_NETMAP +xt_NFLOG +xt_NFQUEUE +xt_RATEEST +xt_REDIRECT +xt_SECMARK +xt_TCPMSS +xt_TCPOPTSTRIP +xt_TEE +xt_TPROXY +xt_TRACE +xt_addrtype +xt_bpf +xt_cgroup +xt_cluster +xt_comment +xt_connbytes +xt_connlabel +xt_connlimit +xt_connmark +xt_conntrack +xt_cpu +xt_dccp +xt_devgroup +xt_dscp +xt_ecn +xt_esp +xt_hashlimit +xt_helper +xt_hl +xt_ipcomp +xt_iprange +xt_ipvs +xt_l2tp +xt_length +xt_limit +xt_mac +xt_mark +xt_multiport +xt_nat +xt_nfacct +xt_osf +xt_owner +xt_physdev +xt_pkttype +xt_policy +xt_quota +xt_rateest +xt_realm +xt_recent +xt_sctp +xt_set +xt_socket +xt_state +xt_statistic +xt_string +xt_tcpmss +xt_tcpudp +xt_time +xt_u32 +xtkbd +xusbatm +xxhash_generic +xz_dec_test +yam +yealink +yellowfin +yenta_socket +yurex +z3fold +zatm +zaurus +zavl +zcommon +zd1201 +zd1211rw +zd1301 +zd1301_demod +zet6223 +zforce_ts +zfs +zhenhua +ziirave_wdt +zl10036 +zl10039 +zl10353 +zl6100 +zlua +znvpair +zonefs +zopt2201 +zpa2326 +zpa2326_i2c +zpa2326_spi +zr364xx +zram +zstd +zstd_compress +zunicode +zx-tdm only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/debian.oem/abi/5.6.0-1038.42/amd64/oem.retpoline +++ linux-oem-5.6-5.6.0/debian.oem/abi/5.6.0-1038.42/amd64/oem.retpoline @@ -0,0 +1 @@ +# retpoline v1.0 only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/debian.oem/abi/5.6.0-1038.42/fwinfo +++ linux-oem-5.6-5.6.0/debian.oem/abi/5.6.0-1038.42/fwinfo @@ -0,0 +1,1708 @@ +firmware: 3826.arm +firmware: 3com/typhoon.bin +firmware: 6fire/dmx6fireap.ihx +firmware: 6fire/dmx6firecf.bin +firmware: 6fire/dmx6firel2.ihx +firmware: BCM2033-FW.bin +firmware: BCM2033-MD.hex +firmware: BT3CPCC.bin +firmware: RTL8192E/boot.img +firmware: RTL8192E/data.img +firmware: RTL8192E/main.img +firmware: RTL8192U/boot.img +firmware: RTL8192U/data.img +firmware: RTL8192U/main.img +firmware: acenic/tg1.bin +firmware: acenic/tg2.bin +firmware: adaptec/starfire_rx.bin +firmware: adaptec/starfire_tx.bin +firmware: advansys/3550.bin +firmware: advansys/38C0800.bin +firmware: advansys/38C1600.bin +firmware: advansys/mcode.bin +firmware: agere_ap_fw.bin +firmware: agere_sta_fw.bin +firmware: aic94xx-seq.fw +firmware: amdgpu/arcturus_asd.bin +firmware: amdgpu/arcturus_gpu_info.bin +firmware: amdgpu/arcturus_mec.bin +firmware: amdgpu/arcturus_mec2.bin +firmware: amdgpu/arcturus_rlc.bin +firmware: amdgpu/arcturus_sdma.bin +firmware: amdgpu/arcturus_smc.bin +firmware: amdgpu/arcturus_sos.bin +firmware: amdgpu/arcturus_ta.bin +firmware: amdgpu/arcturus_vcn.bin +firmware: amdgpu/banks_k_2_smc.bin +firmware: amdgpu/bonaire_ce.bin +firmware: amdgpu/bonaire_k_smc.bin +firmware: amdgpu/bonaire_mc.bin +firmware: amdgpu/bonaire_me.bin +firmware: amdgpu/bonaire_mec.bin +firmware: amdgpu/bonaire_pfp.bin +firmware: amdgpu/bonaire_rlc.bin +firmware: amdgpu/bonaire_sdma.bin +firmware: amdgpu/bonaire_sdma1.bin +firmware: amdgpu/bonaire_smc.bin +firmware: amdgpu/bonaire_uvd.bin +firmware: amdgpu/bonaire_vce.bin +firmware: amdgpu/carrizo_ce.bin +firmware: amdgpu/carrizo_me.bin +firmware: amdgpu/carrizo_mec.bin +firmware: amdgpu/carrizo_mec2.bin +firmware: amdgpu/carrizo_pfp.bin +firmware: amdgpu/carrizo_rlc.bin +firmware: amdgpu/carrizo_sdma.bin +firmware: amdgpu/carrizo_sdma1.bin +firmware: amdgpu/carrizo_uvd.bin +firmware: amdgpu/carrizo_vce.bin +firmware: amdgpu/fiji_ce.bin +firmware: amdgpu/fiji_me.bin +firmware: amdgpu/fiji_mec.bin +firmware: amdgpu/fiji_mec2.bin +firmware: amdgpu/fiji_pfp.bin +firmware: amdgpu/fiji_rlc.bin +firmware: amdgpu/fiji_sdma.bin +firmware: amdgpu/fiji_sdma1.bin +firmware: amdgpu/fiji_smc.bin +firmware: amdgpu/fiji_uvd.bin +firmware: amdgpu/fiji_vce.bin +firmware: amdgpu/hainan_ce.bin +firmware: amdgpu/hainan_k_smc.bin +firmware: amdgpu/hainan_mc.bin +firmware: amdgpu/hainan_me.bin +firmware: amdgpu/hainan_pfp.bin +firmware: amdgpu/hainan_rlc.bin +firmware: amdgpu/hainan_smc.bin +firmware: amdgpu/hawaii_ce.bin +firmware: amdgpu/hawaii_k_smc.bin +firmware: amdgpu/hawaii_mc.bin +firmware: amdgpu/hawaii_me.bin +firmware: amdgpu/hawaii_mec.bin +firmware: amdgpu/hawaii_pfp.bin +firmware: amdgpu/hawaii_rlc.bin +firmware: amdgpu/hawaii_sdma.bin +firmware: amdgpu/hawaii_sdma1.bin +firmware: amdgpu/hawaii_smc.bin +firmware: amdgpu/hawaii_uvd.bin +firmware: amdgpu/hawaii_vce.bin +firmware: amdgpu/kabini_ce.bin +firmware: amdgpu/kabini_me.bin +firmware: amdgpu/kabini_mec.bin +firmware: amdgpu/kabini_pfp.bin +firmware: amdgpu/kabini_rlc.bin +firmware: amdgpu/kabini_sdma.bin +firmware: amdgpu/kabini_sdma1.bin +firmware: amdgpu/kabini_uvd.bin +firmware: amdgpu/kabini_vce.bin +firmware: amdgpu/kaveri_ce.bin +firmware: amdgpu/kaveri_me.bin +firmware: amdgpu/kaveri_mec.bin +firmware: amdgpu/kaveri_mec2.bin +firmware: amdgpu/kaveri_pfp.bin +firmware: amdgpu/kaveri_rlc.bin +firmware: amdgpu/kaveri_sdma.bin +firmware: amdgpu/kaveri_sdma1.bin +firmware: amdgpu/kaveri_uvd.bin +firmware: amdgpu/kaveri_vce.bin +firmware: amdgpu/mullins_ce.bin +firmware: amdgpu/mullins_me.bin +firmware: amdgpu/mullins_mec.bin +firmware: amdgpu/mullins_pfp.bin +firmware: amdgpu/mullins_rlc.bin +firmware: amdgpu/mullins_sdma.bin +firmware: amdgpu/mullins_sdma1.bin +firmware: amdgpu/mullins_uvd.bin +firmware: amdgpu/mullins_vce.bin +firmware: amdgpu/navi10_asd.bin +firmware: amdgpu/navi10_ce.bin +firmware: amdgpu/navi10_gpu_info.bin +firmware: amdgpu/navi10_me.bin +firmware: amdgpu/navi10_mec.bin +firmware: amdgpu/navi10_mec2.bin +firmware: amdgpu/navi10_mes.bin +firmware: amdgpu/navi10_pfp.bin +firmware: amdgpu/navi10_rlc.bin +firmware: amdgpu/navi10_sdma.bin +firmware: amdgpu/navi10_sdma1.bin +firmware: amdgpu/navi10_smc.bin +firmware: amdgpu/navi10_sos.bin +firmware: amdgpu/navi10_ta.bin +firmware: amdgpu/navi10_vcn.bin +firmware: amdgpu/navi12_asd.bin +firmware: amdgpu/navi12_ce.bin +firmware: amdgpu/navi12_gpu_info.bin +firmware: amdgpu/navi12_me.bin +firmware: amdgpu/navi12_mec.bin +firmware: amdgpu/navi12_mec2.bin +firmware: amdgpu/navi12_pfp.bin +firmware: amdgpu/navi12_rlc.bin +firmware: amdgpu/navi12_sdma.bin +firmware: amdgpu/navi12_sdma1.bin +firmware: amdgpu/navi12_smc.bin +firmware: amdgpu/navi12_sos.bin +firmware: amdgpu/navi12_ta.bin +firmware: amdgpu/navi12_vcn.bin +firmware: amdgpu/navi14_asd.bin +firmware: amdgpu/navi14_ce.bin +firmware: amdgpu/navi14_ce_wks.bin +firmware: amdgpu/navi14_gpu_info.bin +firmware: amdgpu/navi14_me.bin +firmware: amdgpu/navi14_me_wks.bin +firmware: amdgpu/navi14_mec.bin +firmware: amdgpu/navi14_mec2.bin +firmware: amdgpu/navi14_mec2_wks.bin +firmware: amdgpu/navi14_mec_wks.bin +firmware: amdgpu/navi14_pfp.bin +firmware: amdgpu/navi14_pfp_wks.bin +firmware: amdgpu/navi14_rlc.bin +firmware: amdgpu/navi14_sdma.bin +firmware: amdgpu/navi14_sdma1.bin +firmware: amdgpu/navi14_smc.bin +firmware: amdgpu/navi14_sos.bin +firmware: amdgpu/navi14_ta.bin +firmware: amdgpu/navi14_vcn.bin +firmware: amdgpu/oland_ce.bin +firmware: amdgpu/oland_k_smc.bin +firmware: amdgpu/oland_mc.bin +firmware: amdgpu/oland_me.bin +firmware: amdgpu/oland_pfp.bin +firmware: amdgpu/oland_rlc.bin +firmware: amdgpu/oland_smc.bin +firmware: amdgpu/picasso_asd.bin +firmware: amdgpu/picasso_ce.bin +firmware: amdgpu/picasso_gpu_info.bin +firmware: amdgpu/picasso_me.bin +firmware: amdgpu/picasso_mec.bin +firmware: amdgpu/picasso_mec2.bin +firmware: amdgpu/picasso_pfp.bin +firmware: amdgpu/picasso_rlc.bin +firmware: amdgpu/picasso_rlc_am4.bin +firmware: amdgpu/picasso_sdma.bin +firmware: amdgpu/picasso_ta.bin +firmware: amdgpu/picasso_vcn.bin +firmware: amdgpu/pitcairn_ce.bin +firmware: amdgpu/pitcairn_k_smc.bin +firmware: amdgpu/pitcairn_mc.bin +firmware: amdgpu/pitcairn_me.bin +firmware: amdgpu/pitcairn_pfp.bin +firmware: amdgpu/pitcairn_rlc.bin +firmware: amdgpu/pitcairn_smc.bin +firmware: amdgpu/polaris10_ce.bin +firmware: amdgpu/polaris10_ce_2.bin +firmware: amdgpu/polaris10_k2_smc.bin +firmware: amdgpu/polaris10_k_mc.bin +firmware: amdgpu/polaris10_k_smc.bin +firmware: amdgpu/polaris10_mc.bin +firmware: amdgpu/polaris10_me.bin +firmware: amdgpu/polaris10_me_2.bin +firmware: amdgpu/polaris10_mec.bin +firmware: amdgpu/polaris10_mec2.bin +firmware: amdgpu/polaris10_mec2_2.bin +firmware: amdgpu/polaris10_mec_2.bin +firmware: amdgpu/polaris10_pfp.bin +firmware: amdgpu/polaris10_pfp_2.bin +firmware: amdgpu/polaris10_rlc.bin +firmware: amdgpu/polaris10_sdma.bin +firmware: amdgpu/polaris10_sdma1.bin +firmware: amdgpu/polaris10_smc.bin +firmware: amdgpu/polaris10_smc_sk.bin +firmware: amdgpu/polaris10_uvd.bin +firmware: amdgpu/polaris10_vce.bin +firmware: amdgpu/polaris11_ce.bin +firmware: amdgpu/polaris11_ce_2.bin +firmware: amdgpu/polaris11_k2_smc.bin +firmware: amdgpu/polaris11_k_mc.bin +firmware: amdgpu/polaris11_k_smc.bin +firmware: amdgpu/polaris11_mc.bin +firmware: amdgpu/polaris11_me.bin +firmware: amdgpu/polaris11_me_2.bin +firmware: amdgpu/polaris11_mec.bin +firmware: amdgpu/polaris11_mec2.bin +firmware: amdgpu/polaris11_mec2_2.bin +firmware: amdgpu/polaris11_mec_2.bin +firmware: amdgpu/polaris11_pfp.bin +firmware: amdgpu/polaris11_pfp_2.bin +firmware: amdgpu/polaris11_rlc.bin +firmware: amdgpu/polaris11_sdma.bin +firmware: amdgpu/polaris11_sdma1.bin +firmware: amdgpu/polaris11_smc.bin +firmware: amdgpu/polaris11_smc_sk.bin +firmware: amdgpu/polaris11_uvd.bin +firmware: amdgpu/polaris11_vce.bin +firmware: amdgpu/polaris12_ce.bin +firmware: amdgpu/polaris12_ce_2.bin +firmware: amdgpu/polaris12_k_mc.bin +firmware: amdgpu/polaris12_k_smc.bin +firmware: amdgpu/polaris12_mc.bin +firmware: amdgpu/polaris12_me.bin +firmware: amdgpu/polaris12_me_2.bin +firmware: amdgpu/polaris12_mec.bin +firmware: amdgpu/polaris12_mec2.bin +firmware: amdgpu/polaris12_mec2_2.bin +firmware: amdgpu/polaris12_mec_2.bin +firmware: amdgpu/polaris12_pfp.bin +firmware: amdgpu/polaris12_pfp_2.bin +firmware: amdgpu/polaris12_rlc.bin +firmware: amdgpu/polaris12_sdma.bin +firmware: amdgpu/polaris12_sdma1.bin +firmware: amdgpu/polaris12_smc.bin +firmware: amdgpu/polaris12_uvd.bin +firmware: amdgpu/polaris12_vce.bin +firmware: amdgpu/raven2_asd.bin +firmware: amdgpu/raven2_ce.bin +firmware: amdgpu/raven2_gpu_info.bin +firmware: amdgpu/raven2_me.bin +firmware: amdgpu/raven2_mec.bin +firmware: amdgpu/raven2_mec2.bin +firmware: amdgpu/raven2_pfp.bin +firmware: amdgpu/raven2_rlc.bin +firmware: amdgpu/raven2_sdma.bin +firmware: amdgpu/raven2_ta.bin +firmware: amdgpu/raven2_vcn.bin +firmware: amdgpu/raven_asd.bin +firmware: amdgpu/raven_ce.bin +firmware: amdgpu/raven_dmcu.bin +firmware: amdgpu/raven_gpu_info.bin +firmware: amdgpu/raven_kicker_rlc.bin +firmware: amdgpu/raven_me.bin +firmware: amdgpu/raven_mec.bin +firmware: amdgpu/raven_mec2.bin +firmware: amdgpu/raven_pfp.bin +firmware: amdgpu/raven_rlc.bin +firmware: amdgpu/raven_sdma.bin +firmware: amdgpu/raven_ta.bin +firmware: amdgpu/raven_vcn.bin +firmware: amdgpu/renoir_asd.bin +firmware: amdgpu/renoir_ce.bin +firmware: amdgpu/renoir_dmcub.bin +firmware: amdgpu/renoir_gpu_info.bin +firmware: amdgpu/renoir_me.bin +firmware: amdgpu/renoir_mec.bin +firmware: amdgpu/renoir_mec2.bin +firmware: amdgpu/renoir_pfp.bin +firmware: amdgpu/renoir_rlc.bin +firmware: amdgpu/renoir_sdma.bin +firmware: amdgpu/renoir_vcn.bin +firmware: amdgpu/si58_mc.bin +firmware: amdgpu/stoney_ce.bin +firmware: amdgpu/stoney_me.bin +firmware: amdgpu/stoney_mec.bin +firmware: amdgpu/stoney_pfp.bin +firmware: amdgpu/stoney_rlc.bin +firmware: amdgpu/stoney_sdma.bin +firmware: amdgpu/stoney_uvd.bin +firmware: amdgpu/stoney_vce.bin +firmware: amdgpu/tahiti_ce.bin +firmware: amdgpu/tahiti_mc.bin +firmware: amdgpu/tahiti_me.bin +firmware: amdgpu/tahiti_pfp.bin +firmware: amdgpu/tahiti_rlc.bin +firmware: amdgpu/tahiti_smc.bin +firmware: amdgpu/tonga_ce.bin +firmware: amdgpu/tonga_k_smc.bin +firmware: amdgpu/tonga_mc.bin +firmware: amdgpu/tonga_me.bin +firmware: amdgpu/tonga_mec.bin +firmware: amdgpu/tonga_mec2.bin +firmware: amdgpu/tonga_pfp.bin +firmware: amdgpu/tonga_rlc.bin +firmware: amdgpu/tonga_sdma.bin +firmware: amdgpu/tonga_sdma1.bin +firmware: amdgpu/tonga_smc.bin +firmware: amdgpu/tonga_uvd.bin +firmware: amdgpu/tonga_vce.bin +firmware: amdgpu/topaz_ce.bin +firmware: amdgpu/topaz_k_smc.bin +firmware: amdgpu/topaz_mc.bin +firmware: amdgpu/topaz_me.bin +firmware: amdgpu/topaz_mec.bin +firmware: amdgpu/topaz_pfp.bin +firmware: amdgpu/topaz_rlc.bin +firmware: amdgpu/topaz_sdma.bin +firmware: amdgpu/topaz_sdma1.bin +firmware: amdgpu/topaz_smc.bin +firmware: amdgpu/vega10_acg_smc.bin +firmware: amdgpu/vega10_asd.bin +firmware: amdgpu/vega10_ce.bin +firmware: amdgpu/vega10_gpu_info.bin +firmware: amdgpu/vega10_me.bin +firmware: amdgpu/vega10_mec.bin +firmware: amdgpu/vega10_mec2.bin +firmware: amdgpu/vega10_pfp.bin +firmware: amdgpu/vega10_rlc.bin +firmware: amdgpu/vega10_sdma.bin +firmware: amdgpu/vega10_sdma1.bin +firmware: amdgpu/vega10_smc.bin +firmware: amdgpu/vega10_sos.bin +firmware: amdgpu/vega10_uvd.bin +firmware: amdgpu/vega10_vce.bin +firmware: amdgpu/vega12_asd.bin +firmware: amdgpu/vega12_ce.bin +firmware: amdgpu/vega12_gpu_info.bin +firmware: amdgpu/vega12_me.bin +firmware: amdgpu/vega12_mec.bin +firmware: amdgpu/vega12_mec2.bin +firmware: amdgpu/vega12_pfp.bin +firmware: amdgpu/vega12_rlc.bin +firmware: amdgpu/vega12_sdma.bin +firmware: amdgpu/vega12_sdma1.bin +firmware: amdgpu/vega12_smc.bin +firmware: amdgpu/vega12_sos.bin +firmware: amdgpu/vega12_uvd.bin +firmware: amdgpu/vega12_vce.bin +firmware: amdgpu/vega20_asd.bin +firmware: amdgpu/vega20_ce.bin +firmware: amdgpu/vega20_me.bin +firmware: amdgpu/vega20_mec.bin +firmware: amdgpu/vega20_mec2.bin +firmware: amdgpu/vega20_pfp.bin +firmware: amdgpu/vega20_rlc.bin +firmware: amdgpu/vega20_sdma.bin +firmware: amdgpu/vega20_sdma1.bin +firmware: amdgpu/vega20_smc.bin +firmware: amdgpu/vega20_sos.bin +firmware: amdgpu/vega20_ta.bin +firmware: amdgpu/vega20_uvd.bin +firmware: amdgpu/vega20_vce.bin +firmware: amdgpu/vegam_ce.bin +firmware: amdgpu/vegam_me.bin +firmware: amdgpu/vegam_mec.bin +firmware: amdgpu/vegam_mec2.bin +firmware: amdgpu/vegam_pfp.bin +firmware: amdgpu/vegam_rlc.bin +firmware: amdgpu/vegam_sdma.bin +firmware: amdgpu/vegam_sdma1.bin +firmware: amdgpu/vegam_smc.bin +firmware: amdgpu/vegam_uvd.bin +firmware: amdgpu/vegam_vce.bin +firmware: amdgpu/verde_ce.bin +firmware: amdgpu/verde_k_smc.bin +firmware: amdgpu/verde_mc.bin +firmware: amdgpu/verde_me.bin +firmware: amdgpu/verde_pfp.bin +firmware: amdgpu/verde_rlc.bin +firmware: amdgpu/verde_smc.bin +firmware: ar5523.bin +firmware: asihpi/dsp5000.bin +firmware: asihpi/dsp6200.bin +firmware: asihpi/dsp6205.bin +firmware: asihpi/dsp6400.bin +firmware: asihpi/dsp6600.bin +firmware: asihpi/dsp8700.bin +firmware: asihpi/dsp8900.bin +firmware: ast_dp501_fw.bin +firmware: ath10k/QCA6174/hw2.1/board-2.bin +firmware: ath10k/QCA6174/hw2.1/board.bin +firmware: ath10k/QCA6174/hw2.1/firmware-4.bin +firmware: ath10k/QCA6174/hw2.1/firmware-5.bin +firmware: ath10k/QCA6174/hw3.0/board-2.bin +firmware: ath10k/QCA6174/hw3.0/board.bin +firmware: ath10k/QCA6174/hw3.0/firmware-4.bin +firmware: ath10k/QCA6174/hw3.0/firmware-5.bin +firmware: ath10k/QCA6174/hw3.0/firmware-6.bin +firmware: ath10k/QCA9377/hw1.0/board.bin +firmware: ath10k/QCA9377/hw1.0/firmware-5.bin +firmware: ath10k/QCA9377/hw1.0/firmware-6.bin +firmware: ath10k/QCA9887/hw1.0/board-2.bin +firmware: ath10k/QCA9887/hw1.0/board.bin +firmware: ath10k/QCA9887/hw1.0/firmware-5.bin +firmware: ath10k/QCA988X/hw2.0/board-2.bin +firmware: ath10k/QCA988X/hw2.0/board.bin +firmware: ath10k/QCA988X/hw2.0/firmware-2.bin +firmware: ath10k/QCA988X/hw2.0/firmware-3.bin +firmware: ath10k/QCA988X/hw2.0/firmware-4.bin +firmware: ath10k/QCA988X/hw2.0/firmware-5.bin +firmware: ath3k-1.fw +firmware: ath6k/AR6003/hw2.0/athwlan.bin.z77 +firmware: ath6k/AR6003/hw2.0/bdata.SD31.bin +firmware: ath6k/AR6003/hw2.0/bdata.bin +firmware: ath6k/AR6003/hw2.0/data.patch.bin +firmware: ath6k/AR6003/hw2.0/otp.bin.z77 +firmware: ath6k/AR6003/hw2.1.1/athwlan.bin +firmware: ath6k/AR6003/hw2.1.1/bdata.SD31.bin +firmware: ath6k/AR6003/hw2.1.1/bdata.bin +firmware: ath6k/AR6003/hw2.1.1/data.patch.bin +firmware: ath6k/AR6003/hw2.1.1/otp.bin +firmware: ath6k/AR6004/hw1.0/bdata.DB132.bin +firmware: ath6k/AR6004/hw1.0/bdata.bin +firmware: ath6k/AR6004/hw1.0/fw.ram.bin +firmware: ath6k/AR6004/hw1.1/bdata.DB132.bin +firmware: ath6k/AR6004/hw1.1/bdata.bin +firmware: ath6k/AR6004/hw1.1/fw.ram.bin +firmware: ath6k/AR6004/hw1.2/bdata.bin +firmware: ath6k/AR6004/hw1.2/fw.ram.bin +firmware: ath6k/AR6004/hw1.3/bdata.bin +firmware: ath6k/AR6004/hw1.3/fw.ram.bin +firmware: ath9k_htc/htc_7010-1.4.0.fw +firmware: ath9k_htc/htc_9271-1.4.0.fw +firmware: atmel_at76c502-wpa.bin +firmware: atmel_at76c502.bin +firmware: atmel_at76c502_3com-wpa.bin +firmware: atmel_at76c502_3com.bin +firmware: atmel_at76c502d-wpa.bin +firmware: atmel_at76c502d.bin +firmware: atmel_at76c502e-wpa.bin +firmware: atmel_at76c502e.bin +firmware: atmel_at76c503-i3861.bin +firmware: atmel_at76c503-i3863.bin +firmware: atmel_at76c503-rfmd-acc.bin +firmware: atmel_at76c503-rfmd.bin +firmware: atmel_at76c504-wpa.bin +firmware: atmel_at76c504.bin +firmware: atmel_at76c504_2958-wpa.bin +firmware: atmel_at76c504_2958.bin +firmware: atmel_at76c504a_2958-wpa.bin +firmware: atmel_at76c504a_2958.bin +firmware: atmel_at76c505-rfmd.bin +firmware: atmel_at76c505-rfmd2958.bin +firmware: atmel_at76c505a-rfmd2958.bin +firmware: atmel_at76c505amx-rfmd.bin +firmware: atmel_at76c506-wpa.bin +firmware: atmel_at76c506.bin +firmware: atmsar11.fw +firmware: atsc_denver.inp +firmware: av7110/bootcode.bin +firmware: b43/ucode11.fw +firmware: b43/ucode13.fw +firmware: b43/ucode14.fw +firmware: b43/ucode15.fw +firmware: b43/ucode16_lp.fw +firmware: b43/ucode16_mimo.fw +firmware: b43/ucode24_lcn.fw +firmware: b43/ucode25_lcn.fw +firmware: b43/ucode25_mimo.fw +firmware: b43/ucode26_mimo.fw +firmware: b43/ucode29_mimo.fw +firmware: b43/ucode30_mimo.fw +firmware: b43/ucode33_lcn40.fw +firmware: b43/ucode40.fw +firmware: b43/ucode42.fw +firmware: b43/ucode5.fw +firmware: b43/ucode9.fw +firmware: b43legacy/ucode2.fw +firmware: b43legacy/ucode4.fw +firmware: bfubase.frm +firmware: bnx2/bnx2-mips-06-6.2.3.fw +firmware: bnx2/bnx2-mips-09-6.2.1b.fw +firmware: bnx2/bnx2-rv2p-06-6.0.15.fw +firmware: bnx2/bnx2-rv2p-09-6.0.17.fw +firmware: bnx2/bnx2-rv2p-09ax-6.0.17.fw +firmware: bnx2x/bnx2x-e1-7.13.15.0.fw +firmware: bnx2x/bnx2x-e1h-7.13.15.0.fw +firmware: bnx2x/bnx2x-e2-7.13.15.0.fw +firmware: brcm/bcm43xx-0.fw +firmware: brcm/bcm43xx_hdr-0.fw +firmware: brcm/brcmfmac43012-sdio.bin +firmware: brcm/brcmfmac43143-sdio.bin +firmware: brcm/brcmfmac43143.bin +firmware: brcm/brcmfmac43236b.bin +firmware: brcm/brcmfmac43241b0-sdio.bin +firmware: brcm/brcmfmac43241b4-sdio.bin +firmware: brcm/brcmfmac43241b5-sdio.bin +firmware: brcm/brcmfmac43242a.bin +firmware: brcm/brcmfmac4329-sdio.bin +firmware: brcm/brcmfmac4330-sdio.bin +firmware: brcm/brcmfmac4334-sdio.bin +firmware: brcm/brcmfmac43340-sdio.bin +firmware: brcm/brcmfmac4335-sdio.bin +firmware: brcm/brcmfmac43362-sdio.bin +firmware: brcm/brcmfmac4339-sdio.bin +firmware: brcm/brcmfmac43430-sdio.bin +firmware: brcm/brcmfmac43430a0-sdio.bin +firmware: brcm/brcmfmac43455-sdio.bin +firmware: brcm/brcmfmac43456-sdio.bin +firmware: brcm/brcmfmac4350-pcie.bin +firmware: brcm/brcmfmac4350c2-pcie.bin +firmware: brcm/brcmfmac4354-sdio.bin +firmware: brcm/brcmfmac4356-pcie.bin +firmware: brcm/brcmfmac4356-sdio.bin +firmware: brcm/brcmfmac43569.bin +firmware: brcm/brcmfmac43570-pcie.bin +firmware: brcm/brcmfmac4358-pcie.bin +firmware: brcm/brcmfmac4359-pcie.bin +firmware: brcm/brcmfmac4359-sdio.bin +firmware: brcm/brcmfmac43602-pcie.bin +firmware: brcm/brcmfmac4365b-pcie.bin +firmware: brcm/brcmfmac4365c-pcie.bin +firmware: brcm/brcmfmac4366b-pcie.bin +firmware: brcm/brcmfmac4366c-pcie.bin +firmware: brcm/brcmfmac4371-pcie.bin +firmware: brcm/brcmfmac4373-sdio.bin +firmware: brcm/brcmfmac4373.bin +firmware: c218tunx.cod +firmware: c320tunx.cod +firmware: carl9170-1.fw +firmware: cavium/cnn55xx_se.fw +firmware: cbfw-3.2.5.1.bin +firmware: cis/3CCFEM556.cis +firmware: cis/3CXEM556.cis +firmware: cis/COMpad2.cis +firmware: cis/COMpad4.cis +firmware: cis/DP83903.cis +firmware: cis/LA-PCM.cis +firmware: cis/MT5634ZLX.cis +firmware: cis/NE2K.cis +firmware: cis/PCMLM28.cis +firmware: cis/PE-200.cis +firmware: cis/PE520.cis +firmware: cis/RS-COM-2P.cis +firmware: cis/SW_555_SER.cis +firmware: cis/SW_7xx_SER.cis +firmware: cis/SW_8xx_SER.cis +firmware: cis/tamarack.cis +firmware: cmmb_ming_app.inp +firmware: cmmb_vega_12mhz.inp +firmware: cmmb_venice_12mhz.inp +firmware: comedi/jr3pci.idm +firmware: cp204unx.cod +firmware: cpia2/stv0672_vp4.bin +firmware: cs46xx/cwc4630 +firmware: cs46xx/cwcasync +firmware: cs46xx/cwcbinhack +firmware: cs46xx/cwcdma +firmware: cs46xx/cwcsnoop +firmware: ct2fw-3.2.5.1.bin +firmware: ctefx-desktop.bin +firmware: ctefx-r3di.bin +firmware: ctefx.bin +firmware: ctfw-3.2.5.1.bin +firmware: cxgb3/ael2005_opt_edc.bin +firmware: cxgb3/ael2005_twx_edc.bin +firmware: cxgb3/ael2020_twx_edc.bin +firmware: cxgb3/t3b_psram-1.1.0.bin +firmware: cxgb3/t3c_psram-1.1.0.bin +firmware: cxgb3/t3fw-7.12.0.bin +firmware: cxgb4/t4fw.bin +firmware: cxgb4/t5fw.bin +firmware: cxgb4/t6fw.bin +firmware: cyzfirm.bin +firmware: daqboard2000_firmware.bin +firmware: digiface_firmware.bin +firmware: digiface_firmware_rev11.bin +firmware: dvb-cx18-mpc718-mt352.fw +firmware: dvb-demod-m88ds3103.fw +firmware: dvb-demod-m88rs6000.fw +firmware: dvb-demod-mn88472-02.fw +firmware: dvb-demod-mn88473-01.fw +firmware: dvb-demod-si2165.fw +firmware: dvb-demod-si2168-a20-01.fw +firmware: dvb-demod-si2168-a30-01.fw +firmware: dvb-demod-si2168-b40-01.fw +firmware: dvb-demod-si2168-d60-01.fw +firmware: dvb-fe-af9013.fw +firmware: dvb-fe-cx24117.fw +firmware: dvb-fe-drxj-mc-1.0.8.fw +firmware: dvb-fe-ds3000.fw +firmware: dvb-fe-tda10071.fw +firmware: dvb-fe-xc4000-1.4.1.fw +firmware: dvb-fe-xc4000-1.4.fw +firmware: dvb-fe-xc5000-1.6.114.fw +firmware: dvb-fe-xc5000c-4.1.30.7.fw +firmware: dvb-tuner-si2141-a10-01.fw +firmware: dvb-tuner-si2157-a30-01.fw +firmware: dvb-tuner-si2158-a20-01.fw +firmware: dvb-usb-af9015.fw +firmware: dvb-usb-af9035-02.fw +firmware: dvb-usb-dib0700-1.20.fw +firmware: dvb-usb-dw2101.fw +firmware: dvb-usb-dw2102.fw +firmware: dvb-usb-dw2104.fw +firmware: dvb-usb-dw3101.fw +firmware: dvb-usb-ec168.fw +firmware: dvb-usb-it9135-01.fw +firmware: dvb-usb-it9135-02.fw +firmware: dvb-usb-it9303-01.fw +firmware: dvb-usb-lme2510-lg.fw +firmware: dvb-usb-lme2510-s0194.fw +firmware: dvb-usb-lme2510c-lg.fw +firmware: dvb-usb-lme2510c-rs2000.fw +firmware: dvb-usb-lme2510c-s0194.fw +firmware: dvb-usb-lme2510c-s7395.fw +firmware: dvb-usb-p1100.fw +firmware: dvb-usb-p7500.fw +firmware: dvb-usb-s630.fw +firmware: dvb-usb-s660.fw +firmware: dvb-usb-terratec-h7-az6007.fw +firmware: dvb_nova_12mhz.inp +firmware: dvb_nova_12mhz_b0.inp +firmware: dvb_rio.inp +firmware: dvbh_rio.inp +firmware: e100/d101m_ucode.bin +firmware: e100/d101s_ucode.bin +firmware: e100/d102e_ucode.bin +firmware: ea/3g_asic.fw +firmware: ea/darla20_dsp.fw +firmware: ea/darla24_dsp.fw +firmware: ea/echo3g_dsp.fw +firmware: ea/gina20_dsp.fw +firmware: ea/gina24_301_asic.fw +firmware: ea/gina24_301_dsp.fw +firmware: ea/gina24_361_asic.fw +firmware: ea/gina24_361_dsp.fw +firmware: ea/indigo_dj_dsp.fw +firmware: ea/indigo_djx_dsp.fw +firmware: ea/indigo_dsp.fw +firmware: ea/indigo_io_dsp.fw +firmware: ea/indigo_iox_dsp.fw +firmware: ea/layla20_asic.fw +firmware: ea/layla20_dsp.fw +firmware: ea/layla24_1_asic.fw +firmware: ea/layla24_2A_asic.fw +firmware: ea/layla24_2S_asic.fw +firmware: ea/layla24_dsp.fw +firmware: ea/loader_dsp.fw +firmware: ea/mia_dsp.fw +firmware: ea/mona_2_asic.fw +firmware: ea/mona_301_1_asic_48.fw +firmware: ea/mona_301_1_asic_96.fw +firmware: ea/mona_301_dsp.fw +firmware: ea/mona_361_1_asic_48.fw +firmware: ea/mona_361_1_asic_96.fw +firmware: ea/mona_361_dsp.fw +firmware: edgeport/boot.fw +firmware: edgeport/boot2.fw +firmware: edgeport/down.fw +firmware: edgeport/down2.fw +firmware: edgeport/down3.bin +firmware: emi26/bitstream.fw +firmware: emi26/firmware.fw +firmware: emi26/loader.fw +firmware: emi62/bitstream.fw +firmware: emi62/loader.fw +firmware: emi62/spdif.fw +firmware: emu/audio_dock.fw +firmware: emu/emu0404.fw +firmware: emu/emu1010_notebook.fw +firmware: emu/emu1010b.fw +firmware: emu/hana.fw +firmware: emu/micro_dock.fw +firmware: ene-ub6250/ms_init.bin +firmware: ene-ub6250/ms_rdwr.bin +firmware: ene-ub6250/msp_rdwr.bin +firmware: ene-ub6250/sd_init1.bin +firmware: ene-ub6250/sd_init2.bin +firmware: ene-ub6250/sd_rdwr.bin +firmware: ess/maestro3_assp_kernel.fw +firmware: ess/maestro3_assp_minisrc.fw +firmware: f2255usb.bin +firmware: fm_radio.inp +firmware: fm_radio_rio.inp +firmware: fw.ram.bin +firmware: go7007/go7007fw.bin +firmware: go7007/go7007tv.bin +firmware: go7007/lr192.fw +firmware: go7007/px-m402u.fw +firmware: go7007/px-tv402u.fw +firmware: go7007/s2250-1.fw +firmware: go7007/s2250-2.fw +firmware: go7007/wis-startrek.fw +firmware: hfi1_dc8051.fw +firmware: hfi1_fabric.fw +firmware: hfi1_pcie.fw +firmware: hfi1_sbus.fw +firmware: i1480-phy-0.0.bin +firmware: i1480-pre-phy-0.0.bin +firmware: i1480-usb-0.0.bin +firmware: i2400m-fw-usb-1.5.sbcf +firmware: i6050-fw-usb-1.5.sbcf +firmware: i915/bxt_dmc_ver1_07.bin +firmware: i915/bxt_guc_33.0.0.bin +firmware: i915/bxt_huc_2.0.0.bin +firmware: i915/cml_guc_33.0.0.bin +firmware: i915/cml_huc_4.0.0.bin +firmware: i915/cnl_dmc_ver1_07.bin +firmware: i915/ehl_guc_33.0.4.bin +firmware: i915/ehl_huc_9.0.0.bin +firmware: i915/glk_dmc_ver1_04.bin +firmware: i915/glk_guc_33.0.0.bin +firmware: i915/glk_huc_4.0.0.bin +firmware: i915/icl_dmc_ver1_09.bin +firmware: i915/icl_guc_33.0.0.bin +firmware: i915/icl_huc_9.0.0.bin +firmware: i915/kbl_dmc_ver1_04.bin +firmware: i915/kbl_guc_33.0.0.bin +firmware: i915/kbl_huc_4.0.0.bin +firmware: i915/skl_dmc_ver1_27.bin +firmware: i915/skl_guc_33.0.0.bin +firmware: i915/skl_huc_2.0.0.bin +firmware: i915/tgl_dmc_ver2_06.bin +firmware: i915/tgl_guc_35.2.0.bin +firmware: i915/tgl_huc_7.0.12.bin +firmware: intel/ibt-11-5.ddc +firmware: intel/ibt-11-5.sfi +firmware: intel/ibt-12-16.ddc +firmware: intel/ibt-12-16.sfi +firmware: intel/ice/ddp/ice.pkg +firmware: ipw2100-1.3-i.fw +firmware: ipw2100-1.3-p.fw +firmware: ipw2100-1.3.fw +firmware: ipw2200-bss.fw +firmware: ipw2200-ibss.fw +firmware: ipw2200-sniffer.fw +firmware: isci/isci_firmware.bin +firmware: isdbt_nova_12mhz.inp +firmware: isdbt_nova_12mhz_b0.inp +firmware: isdbt_pele.inp +firmware: isdbt_rio.inp +firmware: isdn/ISAR.BIN +firmware: isi4608.bin +firmware: isi4616.bin +firmware: isi608.bin +firmware: isi608em.bin +firmware: isi616em.bin +firmware: isight.fw +firmware: isl3886pci +firmware: isl3886usb +firmware: isl3887usb +firmware: iwlwifi-100-5.ucode +firmware: iwlwifi-1000-5.ucode +firmware: iwlwifi-105-6.ucode +firmware: iwlwifi-135-6.ucode +firmware: iwlwifi-2000-6.ucode +firmware: iwlwifi-2030-6.ucode +firmware: iwlwifi-3160-17.ucode +firmware: iwlwifi-3168-29.ucode +firmware: iwlwifi-3945-2.ucode +firmware: iwlwifi-4965-2.ucode +firmware: iwlwifi-5000-5.ucode +firmware: iwlwifi-5150-2.ucode +firmware: iwlwifi-6000-6.ucode +firmware: iwlwifi-6000g2a-6.ucode +firmware: iwlwifi-6000g2b-6.ucode +firmware: iwlwifi-6050-5.ucode +firmware: iwlwifi-7260-17.ucode +firmware: iwlwifi-7265-17.ucode +firmware: iwlwifi-7265D-29.ucode +firmware: iwlwifi-8000C-36.ucode +firmware: iwlwifi-8265-36.ucode +firmware: iwlwifi-9000-pu-b0-jf-b0-46.ucode +firmware: iwlwifi-9260-th-b0-jf-b0-46.ucode +firmware: iwlwifi-Qu-a0-hr-a0-52.ucode +firmware: iwlwifi-Qu-a0-jf-b0-52.ucode +firmware: iwlwifi-Qu-b0-jf-b0-52.ucode +firmware: iwlwifi-Qu-c0-hr-b0-52.ucode +firmware: iwlwifi-QuQnj-a0-hr-a0-52.ucode +firmware: iwlwifi-QuQnj-b0-hr-b0-52.ucode +firmware: iwlwifi-QuQnj-b0-jf-b0-52.ucode +firmware: iwlwifi-QuQnj-f0-hr-a0-52.ucode +firmware: iwlwifi-QuZ-a0-hr-b0-52.ucode +firmware: iwlwifi-QuZ-a0-jf-b0-52.ucode +firmware: iwlwifi-cc-a0-52.ucode +firmware: iwlwifi-so-a0-gf-a0-52.ucode +firmware: iwlwifi-so-a0-hr-b0-52.ucode +firmware: iwlwifi-so-a0-jf-b0-52.ucode +firmware: iwlwifi-ty-a0-gf-a0-52.ucode +firmware: kaweth/new_code.bin +firmware: kaweth/new_code_fix.bin +firmware: kaweth/trigger_code.bin +firmware: kaweth/trigger_code_fix.bin +firmware: keyspan/mpr.fw +firmware: keyspan/usa18x.fw +firmware: keyspan/usa19.fw +firmware: keyspan/usa19qi.fw +firmware: keyspan/usa19qw.fw +firmware: keyspan/usa19w.fw +firmware: keyspan/usa28.fw +firmware: keyspan/usa28x.fw +firmware: keyspan/usa28xa.fw +firmware: keyspan/usa28xb.fw +firmware: keyspan/usa49w.fw +firmware: keyspan/usa49wlc.fw +firmware: keyspan_pda/keyspan_pda.fw +firmware: keyspan_pda/xircom_pgs.fw +firmware: korg/k1212.dsp +firmware: ks7010sd.rom +firmware: lantiq/xrx200_phy11g_a14.bin +firmware: lantiq/xrx200_phy11g_a22.bin +firmware: lantiq/xrx200_phy22f_a14.bin +firmware: lantiq/xrx200_phy22f_a22.bin +firmware: lantiq/xrx300_phy11g_a21.bin +firmware: lantiq/xrx300_phy22f_a21.bin +firmware: lattice-ecp3.bit +firmware: lbtf_usb.bin +firmware: lgs8g75.fw +firmware: libertas/cf8305.bin +firmware: libertas/cf8381.bin +firmware: libertas/cf8381_helper.bin +firmware: libertas/cf8385.bin +firmware: libertas/cf8385_helper.bin +firmware: libertas/gspi8385.bin +firmware: libertas/gspi8385_helper.bin +firmware: libertas/gspi8385_hlp.bin +firmware: libertas/gspi8686.bin +firmware: libertas/gspi8686_hlp.bin +firmware: libertas/gspi8686_v9.bin +firmware: libertas/gspi8686_v9_helper.bin +firmware: libertas/gspi8688.bin +firmware: libertas/gspi8688_helper.bin +firmware: libertas/sd8385.bin +firmware: libertas/sd8385_helper.bin +firmware: libertas/sd8686_v8.bin +firmware: libertas/sd8686_v8_helper.bin +firmware: libertas/sd8686_v9.bin +firmware: libertas/sd8686_v9_helper.bin +firmware: libertas/sd8688.bin +firmware: libertas/sd8688_helper.bin +firmware: libertas/usb8388.bin +firmware: libertas/usb8388_v5.bin +firmware: libertas/usb8388_v9.bin +firmware: libertas/usb8682.bin +firmware: libertas_cs.fw +firmware: libertas_cs_helper.fw +firmware: liquidio/lio_210nv_nic.bin +firmware: liquidio/lio_210sv_nic.bin +firmware: liquidio/lio_23xx_nic.bin +firmware: liquidio/lio_410nv_nic.bin +firmware: me2600_firmware.bin +firmware: me4000_firmware.bin +firmware: mediatek/mt7610e.bin +firmware: mediatek/mt7610u.bin +firmware: mediatek/mt7615_cr4.bin +firmware: mediatek/mt7615_n9.bin +firmware: mediatek/mt7615_rom_patch.bin +firmware: mediatek/mt7622pr2h.bin +firmware: mediatek/mt7650e.bin +firmware: mediatek/mt7663pr2h.bin +firmware: mediatek/mt7668pr2h.bin +firmware: mellanox/mlxsw_spectrum-13.2000.2714.mfa2 +firmware: mellanox/mlxsw_spectrum2-29.2000.2714.mfa2 +firmware: mixart/miXart8.elf +firmware: mixart/miXart8.xlx +firmware: mixart/miXart8AES.xlx +firmware: moxa/moxa-1110.fw +firmware: moxa/moxa-1130.fw +firmware: moxa/moxa-1131.fw +firmware: moxa/moxa-1150.fw +firmware: moxa/moxa-1151.fw +firmware: mrvl/sd8688.bin +firmware: mrvl/sd8688_helper.bin +firmware: mrvl/sd8786_uapsta.bin +firmware: mrvl/sd8787_uapsta.bin +firmware: mrvl/sd8797_uapsta.bin +firmware: mrvl/sd8887_uapsta.bin +firmware: mrvl/sd8897_uapsta.bin +firmware: mrvl/sd8977_uapsta.bin +firmware: mrvl/sd8987_uapsta.bin +firmware: mrvl/sd8997_uapsta.bin +firmware: mrvl/usb8766_uapsta.bin +firmware: mrvl/usb8797_uapsta.bin +firmware: mrvl/usb8801_uapsta.bin +firmware: mrvl/usbusb8997_combo_v4.bin +firmware: mt7601u.bin +firmware: mt7603_e1.bin +firmware: mt7603_e2.bin +firmware: mt7628_e1.bin +firmware: mt7628_e2.bin +firmware: mt7662.bin +firmware: mt7662_rom_patch.bin +firmware: mts_cdma.fw +firmware: mts_edge.fw +firmware: mts_gsm.fw +firmware: mts_mt9234mu.fw +firmware: mts_mt9234zba.fw +firmware: multiface_firmware.bin +firmware: multiface_firmware_rev11.bin +firmware: mwl8k/fmimage_8363.fw +firmware: mwl8k/fmimage_8366.fw +firmware: mwl8k/fmimage_8366_ap-3.fw +firmware: mwl8k/fmimage_8687.fw +firmware: mwl8k/helper_8363.fw +firmware: mwl8k/helper_8366.fw +firmware: mwl8k/helper_8687.fw +firmware: myri10ge_eth_z8e.dat +firmware: myri10ge_ethp_z8e.dat +firmware: myri10ge_rss_eth_z8e.dat +firmware: myri10ge_rss_ethp_z8e.dat +firmware: netronome/nic_AMDA0058-0011_2x40.nffw +firmware: netronome/nic_AMDA0058-0012_2x40.nffw +firmware: netronome/nic_AMDA0081-0001_1x40.nffw +firmware: netronome/nic_AMDA0081-0001_4x10.nffw +firmware: netronome/nic_AMDA0096-0001_2x10.nffw +firmware: netronome/nic_AMDA0097-0001_2x40.nffw +firmware: netronome/nic_AMDA0097-0001_4x10_1x40.nffw +firmware: netronome/nic_AMDA0097-0001_8x10.nffw +firmware: netronome/nic_AMDA0099-0001_1x10_1x25.nffw +firmware: netronome/nic_AMDA0099-0001_2x10.nffw +firmware: netronome/nic_AMDA0099-0001_2x25.nffw +firmware: ni6534a.bin +firmware: niscrb01.bin +firmware: niscrb02.bin +firmware: nvidia/gm200/acr/bl.bin +firmware: nvidia/gm200/acr/ucode_load.bin +firmware: nvidia/gm200/acr/ucode_unload.bin +firmware: nvidia/gm200/gr/fecs_bl.bin +firmware: nvidia/gm200/gr/fecs_data.bin +firmware: nvidia/gm200/gr/fecs_inst.bin +firmware: nvidia/gm200/gr/fecs_sig.bin +firmware: nvidia/gm200/gr/gpccs_bl.bin +firmware: nvidia/gm200/gr/gpccs_data.bin +firmware: nvidia/gm200/gr/gpccs_inst.bin +firmware: nvidia/gm200/gr/gpccs_sig.bin +firmware: nvidia/gm200/gr/sw_bundle_init.bin +firmware: nvidia/gm200/gr/sw_ctx.bin +firmware: nvidia/gm200/gr/sw_method_init.bin +firmware: nvidia/gm200/gr/sw_nonctx.bin +firmware: nvidia/gm204/acr/bl.bin +firmware: nvidia/gm204/acr/ucode_load.bin +firmware: nvidia/gm204/acr/ucode_unload.bin +firmware: nvidia/gm204/gr/fecs_bl.bin +firmware: nvidia/gm204/gr/fecs_data.bin +firmware: nvidia/gm204/gr/fecs_inst.bin +firmware: nvidia/gm204/gr/fecs_sig.bin +firmware: nvidia/gm204/gr/gpccs_bl.bin +firmware: nvidia/gm204/gr/gpccs_data.bin +firmware: nvidia/gm204/gr/gpccs_inst.bin +firmware: nvidia/gm204/gr/gpccs_sig.bin +firmware: nvidia/gm204/gr/sw_bundle_init.bin +firmware: nvidia/gm204/gr/sw_ctx.bin +firmware: nvidia/gm204/gr/sw_method_init.bin +firmware: nvidia/gm204/gr/sw_nonctx.bin +firmware: nvidia/gm206/acr/bl.bin +firmware: nvidia/gm206/acr/ucode_load.bin +firmware: nvidia/gm206/acr/ucode_unload.bin +firmware: nvidia/gm206/gr/fecs_bl.bin +firmware: nvidia/gm206/gr/fecs_data.bin +firmware: nvidia/gm206/gr/fecs_inst.bin +firmware: nvidia/gm206/gr/fecs_sig.bin +firmware: nvidia/gm206/gr/gpccs_bl.bin +firmware: nvidia/gm206/gr/gpccs_data.bin +firmware: nvidia/gm206/gr/gpccs_inst.bin +firmware: nvidia/gm206/gr/gpccs_sig.bin +firmware: nvidia/gm206/gr/sw_bundle_init.bin +firmware: nvidia/gm206/gr/sw_ctx.bin +firmware: nvidia/gm206/gr/sw_method_init.bin +firmware: nvidia/gm206/gr/sw_nonctx.bin +firmware: nvidia/gp100/acr/bl.bin +firmware: nvidia/gp100/acr/ucode_load.bin +firmware: nvidia/gp100/acr/ucode_unload.bin +firmware: nvidia/gp100/gr/fecs_bl.bin +firmware: nvidia/gp100/gr/fecs_data.bin +firmware: nvidia/gp100/gr/fecs_inst.bin +firmware: nvidia/gp100/gr/fecs_sig.bin +firmware: nvidia/gp100/gr/gpccs_bl.bin +firmware: nvidia/gp100/gr/gpccs_data.bin +firmware: nvidia/gp100/gr/gpccs_inst.bin +firmware: nvidia/gp100/gr/gpccs_sig.bin +firmware: nvidia/gp100/gr/sw_bundle_init.bin +firmware: nvidia/gp100/gr/sw_ctx.bin +firmware: nvidia/gp100/gr/sw_method_init.bin +firmware: nvidia/gp100/gr/sw_nonctx.bin +firmware: nvidia/gp102/acr/bl.bin +firmware: nvidia/gp102/acr/ucode_load.bin +firmware: nvidia/gp102/acr/ucode_unload.bin +firmware: nvidia/gp102/acr/unload_bl.bin +firmware: nvidia/gp102/gr/fecs_bl.bin +firmware: nvidia/gp102/gr/fecs_data.bin +firmware: nvidia/gp102/gr/fecs_inst.bin +firmware: nvidia/gp102/gr/fecs_sig.bin +firmware: nvidia/gp102/gr/gpccs_bl.bin +firmware: nvidia/gp102/gr/gpccs_data.bin +firmware: nvidia/gp102/gr/gpccs_inst.bin +firmware: nvidia/gp102/gr/gpccs_sig.bin +firmware: nvidia/gp102/gr/sw_bundle_init.bin +firmware: nvidia/gp102/gr/sw_ctx.bin +firmware: nvidia/gp102/gr/sw_method_init.bin +firmware: nvidia/gp102/gr/sw_nonctx.bin +firmware: nvidia/gp102/nvdec/scrubber.bin +firmware: nvidia/gp102/sec2/desc-1.bin +firmware: nvidia/gp102/sec2/desc.bin +firmware: nvidia/gp102/sec2/image-1.bin +firmware: nvidia/gp102/sec2/image.bin +firmware: nvidia/gp102/sec2/sig-1.bin +firmware: nvidia/gp102/sec2/sig.bin +firmware: nvidia/gp104/acr/bl.bin +firmware: nvidia/gp104/acr/ucode_load.bin +firmware: nvidia/gp104/acr/ucode_unload.bin +firmware: nvidia/gp104/acr/unload_bl.bin +firmware: nvidia/gp104/gr/fecs_bl.bin +firmware: nvidia/gp104/gr/fecs_data.bin +firmware: nvidia/gp104/gr/fecs_inst.bin +firmware: nvidia/gp104/gr/fecs_sig.bin +firmware: nvidia/gp104/gr/gpccs_bl.bin +firmware: nvidia/gp104/gr/gpccs_data.bin +firmware: nvidia/gp104/gr/gpccs_inst.bin +firmware: nvidia/gp104/gr/gpccs_sig.bin +firmware: nvidia/gp104/gr/sw_bundle_init.bin +firmware: nvidia/gp104/gr/sw_ctx.bin +firmware: nvidia/gp104/gr/sw_method_init.bin +firmware: nvidia/gp104/gr/sw_nonctx.bin +firmware: nvidia/gp104/nvdec/scrubber.bin +firmware: nvidia/gp104/sec2/desc-1.bin +firmware: nvidia/gp104/sec2/desc.bin +firmware: nvidia/gp104/sec2/image-1.bin +firmware: nvidia/gp104/sec2/image.bin +firmware: nvidia/gp104/sec2/sig-1.bin +firmware: nvidia/gp104/sec2/sig.bin +firmware: nvidia/gp106/acr/bl.bin +firmware: nvidia/gp106/acr/ucode_load.bin +firmware: nvidia/gp106/acr/ucode_unload.bin +firmware: nvidia/gp106/acr/unload_bl.bin +firmware: nvidia/gp106/gr/fecs_bl.bin +firmware: nvidia/gp106/gr/fecs_data.bin +firmware: nvidia/gp106/gr/fecs_inst.bin +firmware: nvidia/gp106/gr/fecs_sig.bin +firmware: nvidia/gp106/gr/gpccs_bl.bin +firmware: nvidia/gp106/gr/gpccs_data.bin +firmware: nvidia/gp106/gr/gpccs_inst.bin +firmware: nvidia/gp106/gr/gpccs_sig.bin +firmware: nvidia/gp106/gr/sw_bundle_init.bin +firmware: nvidia/gp106/gr/sw_ctx.bin +firmware: nvidia/gp106/gr/sw_method_init.bin +firmware: nvidia/gp106/gr/sw_nonctx.bin +firmware: nvidia/gp106/nvdec/scrubber.bin +firmware: nvidia/gp106/sec2/desc-1.bin +firmware: nvidia/gp106/sec2/desc.bin +firmware: nvidia/gp106/sec2/image-1.bin +firmware: nvidia/gp106/sec2/image.bin +firmware: nvidia/gp106/sec2/sig-1.bin +firmware: nvidia/gp106/sec2/sig.bin +firmware: nvidia/gp107/acr/bl.bin +firmware: nvidia/gp107/acr/ucode_load.bin +firmware: nvidia/gp107/acr/ucode_unload.bin +firmware: nvidia/gp107/acr/unload_bl.bin +firmware: nvidia/gp107/gr/fecs_bl.bin +firmware: nvidia/gp107/gr/fecs_data.bin +firmware: nvidia/gp107/gr/fecs_inst.bin +firmware: nvidia/gp107/gr/fecs_sig.bin +firmware: nvidia/gp107/gr/gpccs_bl.bin +firmware: nvidia/gp107/gr/gpccs_data.bin +firmware: nvidia/gp107/gr/gpccs_inst.bin +firmware: nvidia/gp107/gr/gpccs_sig.bin +firmware: nvidia/gp107/gr/sw_bundle_init.bin +firmware: nvidia/gp107/gr/sw_ctx.bin +firmware: nvidia/gp107/gr/sw_method_init.bin +firmware: nvidia/gp107/gr/sw_nonctx.bin +firmware: nvidia/gp107/nvdec/scrubber.bin +firmware: nvidia/gp107/sec2/desc-1.bin +firmware: nvidia/gp107/sec2/desc.bin +firmware: nvidia/gp107/sec2/image-1.bin +firmware: nvidia/gp107/sec2/image.bin +firmware: nvidia/gp107/sec2/sig-1.bin +firmware: nvidia/gp107/sec2/sig.bin +firmware: nvidia/gp108/acr/bl.bin +firmware: nvidia/gp108/acr/ucode_load.bin +firmware: nvidia/gp108/acr/ucode_unload.bin +firmware: nvidia/gp108/acr/unload_bl.bin +firmware: nvidia/gp108/gr/fecs_bl.bin +firmware: nvidia/gp108/gr/fecs_data.bin +firmware: nvidia/gp108/gr/fecs_inst.bin +firmware: nvidia/gp108/gr/fecs_sig.bin +firmware: nvidia/gp108/gr/gpccs_bl.bin +firmware: nvidia/gp108/gr/gpccs_data.bin +firmware: nvidia/gp108/gr/gpccs_inst.bin +firmware: nvidia/gp108/gr/gpccs_sig.bin +firmware: nvidia/gp108/gr/sw_bundle_init.bin +firmware: nvidia/gp108/gr/sw_ctx.bin +firmware: nvidia/gp108/gr/sw_method_init.bin +firmware: nvidia/gp108/gr/sw_nonctx.bin +firmware: nvidia/gp108/nvdec/scrubber.bin +firmware: nvidia/gp108/sec2/desc.bin +firmware: nvidia/gp108/sec2/image.bin +firmware: nvidia/gp108/sec2/sig.bin +firmware: nvidia/gv100/acr/bl.bin +firmware: nvidia/gv100/acr/ucode_load.bin +firmware: nvidia/gv100/acr/ucode_unload.bin +firmware: nvidia/gv100/acr/unload_bl.bin +firmware: nvidia/gv100/gr/fecs_bl.bin +firmware: nvidia/gv100/gr/fecs_data.bin +firmware: nvidia/gv100/gr/fecs_inst.bin +firmware: nvidia/gv100/gr/fecs_sig.bin +firmware: nvidia/gv100/gr/gpccs_bl.bin +firmware: nvidia/gv100/gr/gpccs_data.bin +firmware: nvidia/gv100/gr/gpccs_inst.bin +firmware: nvidia/gv100/gr/gpccs_sig.bin +firmware: nvidia/gv100/gr/sw_bundle_init.bin +firmware: nvidia/gv100/gr/sw_ctx.bin +firmware: nvidia/gv100/gr/sw_method_init.bin +firmware: nvidia/gv100/gr/sw_nonctx.bin +firmware: nvidia/gv100/nvdec/scrubber.bin +firmware: nvidia/gv100/sec2/desc.bin +firmware: nvidia/gv100/sec2/image.bin +firmware: nvidia/gv100/sec2/sig.bin +firmware: nvidia/tu102/acr/bl.bin +firmware: nvidia/tu102/acr/ucode_ahesasc.bin +firmware: nvidia/tu102/acr/ucode_asb.bin +firmware: nvidia/tu102/acr/ucode_unload.bin +firmware: nvidia/tu102/acr/unload_bl.bin +firmware: nvidia/tu102/gr/fecs_bl.bin +firmware: nvidia/tu102/gr/fecs_data.bin +firmware: nvidia/tu102/gr/fecs_inst.bin +firmware: nvidia/tu102/gr/fecs_sig.bin +firmware: nvidia/tu102/gr/gpccs_bl.bin +firmware: nvidia/tu102/gr/gpccs_data.bin +firmware: nvidia/tu102/gr/gpccs_inst.bin +firmware: nvidia/tu102/gr/gpccs_sig.bin +firmware: nvidia/tu102/gr/sw_bundle_init.bin +firmware: nvidia/tu102/gr/sw_ctx.bin +firmware: nvidia/tu102/gr/sw_method_init.bin +firmware: nvidia/tu102/gr/sw_nonctx.bin +firmware: nvidia/tu102/nvdec/scrubber.bin +firmware: nvidia/tu102/sec2/desc.bin +firmware: nvidia/tu102/sec2/image.bin +firmware: nvidia/tu102/sec2/sig.bin +firmware: nvidia/tu104/acr/bl.bin +firmware: nvidia/tu104/acr/ucode_ahesasc.bin +firmware: nvidia/tu104/acr/ucode_asb.bin +firmware: nvidia/tu104/acr/ucode_unload.bin +firmware: nvidia/tu104/acr/unload_bl.bin +firmware: nvidia/tu104/gr/fecs_bl.bin +firmware: nvidia/tu104/gr/fecs_data.bin +firmware: nvidia/tu104/gr/fecs_inst.bin +firmware: nvidia/tu104/gr/fecs_sig.bin +firmware: nvidia/tu104/gr/gpccs_bl.bin +firmware: nvidia/tu104/gr/gpccs_data.bin +firmware: nvidia/tu104/gr/gpccs_inst.bin +firmware: nvidia/tu104/gr/gpccs_sig.bin +firmware: nvidia/tu104/gr/sw_bundle_init.bin +firmware: nvidia/tu104/gr/sw_ctx.bin +firmware: nvidia/tu104/gr/sw_method_init.bin +firmware: nvidia/tu104/gr/sw_nonctx.bin +firmware: nvidia/tu104/nvdec/scrubber.bin +firmware: nvidia/tu104/sec2/desc.bin +firmware: nvidia/tu104/sec2/image.bin +firmware: nvidia/tu104/sec2/sig.bin +firmware: nvidia/tu106/acr/bl.bin +firmware: nvidia/tu106/acr/ucode_ahesasc.bin +firmware: nvidia/tu106/acr/ucode_asb.bin +firmware: nvidia/tu106/acr/ucode_unload.bin +firmware: nvidia/tu106/acr/unload_bl.bin +firmware: nvidia/tu106/gr/fecs_bl.bin +firmware: nvidia/tu106/gr/fecs_data.bin +firmware: nvidia/tu106/gr/fecs_inst.bin +firmware: nvidia/tu106/gr/fecs_sig.bin +firmware: nvidia/tu106/gr/gpccs_bl.bin +firmware: nvidia/tu106/gr/gpccs_data.bin +firmware: nvidia/tu106/gr/gpccs_inst.bin +firmware: nvidia/tu106/gr/gpccs_sig.bin +firmware: nvidia/tu106/gr/sw_bundle_init.bin +firmware: nvidia/tu106/gr/sw_ctx.bin +firmware: nvidia/tu106/gr/sw_method_init.bin +firmware: nvidia/tu106/gr/sw_nonctx.bin +firmware: nvidia/tu106/nvdec/scrubber.bin +firmware: nvidia/tu106/sec2/desc.bin +firmware: nvidia/tu106/sec2/image.bin +firmware: nvidia/tu106/sec2/sig.bin +firmware: nvidia/tu116/acr/bl.bin +firmware: nvidia/tu116/acr/ucode_ahesasc.bin +firmware: nvidia/tu116/acr/ucode_asb.bin +firmware: nvidia/tu116/acr/ucode_unload.bin +firmware: nvidia/tu116/acr/unload_bl.bin +firmware: nvidia/tu116/gr/fecs_bl.bin +firmware: nvidia/tu116/gr/fecs_data.bin +firmware: nvidia/tu116/gr/fecs_inst.bin +firmware: nvidia/tu116/gr/fecs_sig.bin +firmware: nvidia/tu116/gr/gpccs_bl.bin +firmware: nvidia/tu116/gr/gpccs_data.bin +firmware: nvidia/tu116/gr/gpccs_inst.bin +firmware: nvidia/tu116/gr/gpccs_sig.bin +firmware: nvidia/tu116/gr/sw_bundle_init.bin +firmware: nvidia/tu116/gr/sw_ctx.bin +firmware: nvidia/tu116/gr/sw_method_init.bin +firmware: nvidia/tu116/gr/sw_nonctx.bin +firmware: nvidia/tu116/nvdec/scrubber.bin +firmware: nvidia/tu116/sec2/desc.bin +firmware: nvidia/tu116/sec2/image.bin +firmware: nvidia/tu116/sec2/sig.bin +firmware: nvidia/tu117/acr/bl.bin +firmware: nvidia/tu117/acr/ucode_ahesasc.bin +firmware: nvidia/tu117/acr/ucode_asb.bin +firmware: nvidia/tu117/acr/ucode_unload.bin +firmware: nvidia/tu117/acr/unload_bl.bin +firmware: nvidia/tu117/gr/fecs_bl.bin +firmware: nvidia/tu117/gr/fecs_data.bin +firmware: nvidia/tu117/gr/fecs_inst.bin +firmware: nvidia/tu117/gr/fecs_sig.bin +firmware: nvidia/tu117/gr/gpccs_bl.bin +firmware: nvidia/tu117/gr/gpccs_data.bin +firmware: nvidia/tu117/gr/gpccs_inst.bin +firmware: nvidia/tu117/gr/gpccs_sig.bin +firmware: nvidia/tu117/gr/sw_bundle_init.bin +firmware: nvidia/tu117/gr/sw_ctx.bin +firmware: nvidia/tu117/gr/sw_method_init.bin +firmware: nvidia/tu117/gr/sw_nonctx.bin +firmware: nvidia/tu117/nvdec/scrubber.bin +firmware: nvidia/tu117/sec2/desc.bin +firmware: nvidia/tu117/sec2/image.bin +firmware: nvidia/tu117/sec2/sig.bin +firmware: orinoco_ezusb_fw +firmware: ositech/Xilinx7OD.bin +firmware: pca200e_ecd.bin2 +firmware: pcxhr/dspb1222e.b56 +firmware: pcxhr/dspb1222hr.b56 +firmware: pcxhr/dspb882e.b56 +firmware: pcxhr/dspb882hr.b56 +firmware: pcxhr/dspb924.b56 +firmware: pcxhr/dspd1222.d56 +firmware: pcxhr/dspd222.d56 +firmware: pcxhr/dspd882.d56 +firmware: pcxhr/dspe882.e56 +firmware: pcxhr/dspe924.e56 +firmware: pcxhr/xlxc1222e.dat +firmware: pcxhr/xlxc1222hr.dat +firmware: pcxhr/xlxc222.dat +firmware: pcxhr/xlxc882e.dat +firmware: pcxhr/xlxc882hr.dat +firmware: pcxhr/xlxc924.dat +firmware: pcxhr/xlxint.dat +firmware: phanfw.bin +firmware: prism2_ru.fw +firmware: prism_ap_fw.bin +firmware: prism_sta_fw.bin +firmware: qat_895xcc.bin +firmware: qat_895xcc_mmp.bin +firmware: qat_c3xxx.bin +firmware: qat_c3xxx_mmp.bin +firmware: qat_c62x.bin +firmware: qat_c62x_mmp.bin +firmware: qed/qed_init_values_zipped-8.42.2.0.bin +firmware: ql2100_fw.bin +firmware: ql2200_fw.bin +firmware: ql2300_fw.bin +firmware: ql2322_fw.bin +firmware: ql2400_fw.bin +firmware: ql2500_fw.bin +firmware: qlogic/1040.bin +firmware: qlogic/12160.bin +firmware: qlogic/1280.bin +firmware: qlogic/sd7220.fw +firmware: radeon/ARUBA_me.bin +firmware: radeon/ARUBA_pfp.bin +firmware: radeon/ARUBA_rlc.bin +firmware: radeon/BARTS_mc.bin +firmware: radeon/BARTS_me.bin +firmware: radeon/BARTS_pfp.bin +firmware: radeon/BARTS_smc.bin +firmware: radeon/BONAIRE_ce.bin +firmware: radeon/BONAIRE_mc.bin +firmware: radeon/BONAIRE_mc2.bin +firmware: radeon/BONAIRE_me.bin +firmware: radeon/BONAIRE_mec.bin +firmware: radeon/BONAIRE_pfp.bin +firmware: radeon/BONAIRE_rlc.bin +firmware: radeon/BONAIRE_sdma.bin +firmware: radeon/BONAIRE_smc.bin +firmware: radeon/BONAIRE_uvd.bin +firmware: radeon/BONAIRE_vce.bin +firmware: radeon/BTC_rlc.bin +firmware: radeon/CAICOS_mc.bin +firmware: radeon/CAICOS_me.bin +firmware: radeon/CAICOS_pfp.bin +firmware: radeon/CAICOS_smc.bin +firmware: radeon/CAYMAN_mc.bin +firmware: radeon/CAYMAN_me.bin +firmware: radeon/CAYMAN_pfp.bin +firmware: radeon/CAYMAN_rlc.bin +firmware: radeon/CAYMAN_smc.bin +firmware: radeon/CEDAR_me.bin +firmware: radeon/CEDAR_pfp.bin +firmware: radeon/CEDAR_rlc.bin +firmware: radeon/CEDAR_smc.bin +firmware: radeon/CYPRESS_me.bin +firmware: radeon/CYPRESS_pfp.bin +firmware: radeon/CYPRESS_rlc.bin +firmware: radeon/CYPRESS_smc.bin +firmware: radeon/CYPRESS_uvd.bin +firmware: radeon/HAINAN_ce.bin +firmware: radeon/HAINAN_mc.bin +firmware: radeon/HAINAN_mc2.bin +firmware: radeon/HAINAN_me.bin +firmware: radeon/HAINAN_pfp.bin +firmware: radeon/HAINAN_rlc.bin +firmware: radeon/HAINAN_smc.bin +firmware: radeon/HAWAII_ce.bin +firmware: radeon/HAWAII_mc.bin +firmware: radeon/HAWAII_mc2.bin +firmware: radeon/HAWAII_me.bin +firmware: radeon/HAWAII_mec.bin +firmware: radeon/HAWAII_pfp.bin +firmware: radeon/HAWAII_rlc.bin +firmware: radeon/HAWAII_sdma.bin +firmware: radeon/HAWAII_smc.bin +firmware: radeon/JUNIPER_me.bin +firmware: radeon/JUNIPER_pfp.bin +firmware: radeon/JUNIPER_rlc.bin +firmware: radeon/JUNIPER_smc.bin +firmware: radeon/KABINI_ce.bin +firmware: radeon/KABINI_me.bin +firmware: radeon/KABINI_mec.bin +firmware: radeon/KABINI_pfp.bin +firmware: radeon/KABINI_rlc.bin +firmware: radeon/KABINI_sdma.bin +firmware: radeon/KAVERI_ce.bin +firmware: radeon/KAVERI_me.bin +firmware: radeon/KAVERI_mec.bin +firmware: radeon/KAVERI_pfp.bin +firmware: radeon/KAVERI_rlc.bin +firmware: radeon/KAVERI_sdma.bin +firmware: radeon/MULLINS_ce.bin +firmware: radeon/MULLINS_me.bin +firmware: radeon/MULLINS_mec.bin +firmware: radeon/MULLINS_pfp.bin +firmware: radeon/MULLINS_rlc.bin +firmware: radeon/MULLINS_sdma.bin +firmware: radeon/OLAND_ce.bin +firmware: radeon/OLAND_mc.bin +firmware: radeon/OLAND_mc2.bin +firmware: radeon/OLAND_me.bin +firmware: radeon/OLAND_pfp.bin +firmware: radeon/OLAND_rlc.bin +firmware: radeon/OLAND_smc.bin +firmware: radeon/PALM_me.bin +firmware: radeon/PALM_pfp.bin +firmware: radeon/PITCAIRN_ce.bin +firmware: radeon/PITCAIRN_mc.bin +firmware: radeon/PITCAIRN_mc2.bin +firmware: radeon/PITCAIRN_me.bin +firmware: radeon/PITCAIRN_pfp.bin +firmware: radeon/PITCAIRN_rlc.bin +firmware: radeon/PITCAIRN_smc.bin +firmware: radeon/R100_cp.bin +firmware: radeon/R200_cp.bin +firmware: radeon/R300_cp.bin +firmware: radeon/R420_cp.bin +firmware: radeon/R520_cp.bin +firmware: radeon/R600_me.bin +firmware: radeon/R600_pfp.bin +firmware: radeon/R600_rlc.bin +firmware: radeon/R600_uvd.bin +firmware: radeon/R700_rlc.bin +firmware: radeon/REDWOOD_me.bin +firmware: radeon/REDWOOD_pfp.bin +firmware: radeon/REDWOOD_rlc.bin +firmware: radeon/REDWOOD_smc.bin +firmware: radeon/RS600_cp.bin +firmware: radeon/RS690_cp.bin +firmware: radeon/RS780_me.bin +firmware: radeon/RS780_pfp.bin +firmware: radeon/RS780_uvd.bin +firmware: radeon/RV610_me.bin +firmware: radeon/RV610_pfp.bin +firmware: radeon/RV620_me.bin +firmware: radeon/RV620_pfp.bin +firmware: radeon/RV630_me.bin +firmware: radeon/RV630_pfp.bin +firmware: radeon/RV635_me.bin +firmware: radeon/RV635_pfp.bin +firmware: radeon/RV670_me.bin +firmware: radeon/RV670_pfp.bin +firmware: radeon/RV710_me.bin +firmware: radeon/RV710_pfp.bin +firmware: radeon/RV710_smc.bin +firmware: radeon/RV710_uvd.bin +firmware: radeon/RV730_me.bin +firmware: radeon/RV730_pfp.bin +firmware: radeon/RV730_smc.bin +firmware: radeon/RV740_smc.bin +firmware: radeon/RV770_me.bin +firmware: radeon/RV770_pfp.bin +firmware: radeon/RV770_smc.bin +firmware: radeon/RV770_uvd.bin +firmware: radeon/SUMO2_me.bin +firmware: radeon/SUMO2_pfp.bin +firmware: radeon/SUMO_me.bin +firmware: radeon/SUMO_pfp.bin +firmware: radeon/SUMO_rlc.bin +firmware: radeon/SUMO_uvd.bin +firmware: radeon/TAHITI_ce.bin +firmware: radeon/TAHITI_mc.bin +firmware: radeon/TAHITI_mc2.bin +firmware: radeon/TAHITI_me.bin +firmware: radeon/TAHITI_pfp.bin +firmware: radeon/TAHITI_rlc.bin +firmware: radeon/TAHITI_smc.bin +firmware: radeon/TAHITI_uvd.bin +firmware: radeon/TAHITI_vce.bin +firmware: radeon/TURKS_mc.bin +firmware: radeon/TURKS_me.bin +firmware: radeon/TURKS_pfp.bin +firmware: radeon/TURKS_smc.bin +firmware: radeon/VERDE_ce.bin +firmware: radeon/VERDE_mc.bin +firmware: radeon/VERDE_mc2.bin +firmware: radeon/VERDE_me.bin +firmware: radeon/VERDE_pfp.bin +firmware: radeon/VERDE_rlc.bin +firmware: radeon/VERDE_smc.bin +firmware: radeon/banks_k_2_smc.bin +firmware: radeon/bonaire_ce.bin +firmware: radeon/bonaire_k_smc.bin +firmware: radeon/bonaire_mc.bin +firmware: radeon/bonaire_me.bin +firmware: radeon/bonaire_mec.bin +firmware: radeon/bonaire_pfp.bin +firmware: radeon/bonaire_rlc.bin +firmware: radeon/bonaire_sdma.bin +firmware: radeon/bonaire_smc.bin +firmware: radeon/bonaire_uvd.bin +firmware: radeon/hainan_ce.bin +firmware: radeon/hainan_k_smc.bin +firmware: radeon/hainan_mc.bin +firmware: radeon/hainan_me.bin +firmware: radeon/hainan_pfp.bin +firmware: radeon/hainan_rlc.bin +firmware: radeon/hainan_smc.bin +firmware: radeon/hawaii_ce.bin +firmware: radeon/hawaii_k_smc.bin +firmware: radeon/hawaii_mc.bin +firmware: radeon/hawaii_me.bin +firmware: radeon/hawaii_mec.bin +firmware: radeon/hawaii_pfp.bin +firmware: radeon/hawaii_rlc.bin +firmware: radeon/hawaii_sdma.bin +firmware: radeon/hawaii_smc.bin +firmware: radeon/kabini_ce.bin +firmware: radeon/kabini_me.bin +firmware: radeon/kabini_mec.bin +firmware: radeon/kabini_pfp.bin +firmware: radeon/kabini_rlc.bin +firmware: radeon/kabini_sdma.bin +firmware: radeon/kaveri_ce.bin +firmware: radeon/kaveri_me.bin +firmware: radeon/kaveri_mec.bin +firmware: radeon/kaveri_mec2.bin +firmware: radeon/kaveri_pfp.bin +firmware: radeon/kaveri_rlc.bin +firmware: radeon/kaveri_sdma.bin +firmware: radeon/mullins_ce.bin +firmware: radeon/mullins_me.bin +firmware: radeon/mullins_mec.bin +firmware: radeon/mullins_pfp.bin +firmware: radeon/mullins_rlc.bin +firmware: radeon/mullins_sdma.bin +firmware: radeon/oland_ce.bin +firmware: radeon/oland_k_smc.bin +firmware: radeon/oland_mc.bin +firmware: radeon/oland_me.bin +firmware: radeon/oland_pfp.bin +firmware: radeon/oland_rlc.bin +firmware: radeon/oland_smc.bin +firmware: radeon/pitcairn_ce.bin +firmware: radeon/pitcairn_k_smc.bin +firmware: radeon/pitcairn_mc.bin +firmware: radeon/pitcairn_me.bin +firmware: radeon/pitcairn_pfp.bin +firmware: radeon/pitcairn_rlc.bin +firmware: radeon/pitcairn_smc.bin +firmware: radeon/si58_mc.bin +firmware: radeon/tahiti_ce.bin +firmware: radeon/tahiti_mc.bin +firmware: radeon/tahiti_me.bin +firmware: radeon/tahiti_pfp.bin +firmware: radeon/tahiti_rlc.bin +firmware: radeon/tahiti_smc.bin +firmware: radeon/verde_ce.bin +firmware: radeon/verde_k_smc.bin +firmware: radeon/verde_mc.bin +firmware: radeon/verde_me.bin +firmware: radeon/verde_pfp.bin +firmware: radeon/verde_rlc.bin +firmware: radeon/verde_smc.bin +firmware: riptide.hex +firmware: rp2.fw +firmware: rpm_firmware.bin +firmware: rs9113_wlan_qspi.rps +firmware: rt2561.bin +firmware: rt2561s.bin +firmware: rt2661.bin +firmware: rt2860.bin +firmware: rt2870.bin +firmware: rt73.bin +firmware: rtl_bt/rtl8723a_fw.bin +firmware: rtl_bt/rtl8723b_config.bin +firmware: rtl_bt/rtl8723b_fw.bin +firmware: rtl_bt/rtl8723bs_config.bin +firmware: rtl_bt/rtl8723bs_fw.bin +firmware: rtl_bt/rtl8723ds_config.bin +firmware: rtl_bt/rtl8723ds_fw.bin +firmware: rtl_bt/rtl8761a_config.bin +firmware: rtl_bt/rtl8761a_fw.bin +firmware: rtl_bt/rtl8821a_config.bin +firmware: rtl_bt/rtl8821a_fw.bin +firmware: rtl_bt/rtl8822b_config.bin +firmware: rtl_bt/rtl8822b_fw.bin +firmware: rtl_nic/rtl8105e-1.fw +firmware: rtl_nic/rtl8106e-1.fw +firmware: rtl_nic/rtl8106e-2.fw +firmware: rtl_nic/rtl8107e-1.fw +firmware: rtl_nic/rtl8107e-2.fw +firmware: rtl_nic/rtl8125a-3.fw +firmware: rtl_nic/rtl8153a-2.fw +firmware: rtl_nic/rtl8153a-3.fw +firmware: rtl_nic/rtl8153a-4.fw +firmware: rtl_nic/rtl8153b-2.fw +firmware: rtl_nic/rtl8168d-1.fw +firmware: rtl_nic/rtl8168d-2.fw +firmware: rtl_nic/rtl8168e-1.fw +firmware: rtl_nic/rtl8168e-2.fw +firmware: rtl_nic/rtl8168e-3.fw +firmware: rtl_nic/rtl8168f-1.fw +firmware: rtl_nic/rtl8168f-2.fw +firmware: rtl_nic/rtl8168fp-3.fw +firmware: rtl_nic/rtl8168g-2.fw +firmware: rtl_nic/rtl8168g-3.fw +firmware: rtl_nic/rtl8168h-1.fw +firmware: rtl_nic/rtl8168h-2.fw +firmware: rtl_nic/rtl8402-1.fw +firmware: rtl_nic/rtl8411-1.fw +firmware: rtl_nic/rtl8411-2.fw +firmware: rtlwifi/rtl8188efw.bin +firmware: rtlwifi/rtl8188eufw.bin +firmware: rtlwifi/rtl8192cfw.bin +firmware: rtlwifi/rtl8192cfwU.bin +firmware: rtlwifi/rtl8192cfwU_B.bin +firmware: rtlwifi/rtl8192cufw.bin +firmware: rtlwifi/rtl8192cufw_A.bin +firmware: rtlwifi/rtl8192cufw_B.bin +firmware: rtlwifi/rtl8192cufw_TMSC.bin +firmware: rtlwifi/rtl8192defw.bin +firmware: rtlwifi/rtl8192eefw.bin +firmware: rtlwifi/rtl8192eu_nic.bin +firmware: rtlwifi/rtl8192sefw.bin +firmware: rtlwifi/rtl8712u.bin +firmware: rtlwifi/rtl8723aufw_A.bin +firmware: rtlwifi/rtl8723aufw_B.bin +firmware: rtlwifi/rtl8723aufw_B_NoBT.bin +firmware: rtlwifi/rtl8723befw.bin +firmware: rtlwifi/rtl8723befw_36.bin +firmware: rtlwifi/rtl8723bu_bt.bin +firmware: rtlwifi/rtl8723bu_nic.bin +firmware: rtlwifi/rtl8723efw.bin +firmware: rtlwifi/rtl8821aefw.bin +firmware: rtlwifi/rtl8821aefw_29.bin +firmware: rtw88/rtw8723d_fw.bin +firmware: rtw88/rtw8822b_fw.bin +firmware: rtw88/rtw8822c_fw.bin +firmware: rtw88/rtw8822c_wow_fw.bin +firmware: s5k4ecgx.bin +firmware: sd8385.bin +firmware: sd8385_helper.bin +firmware: sd8686.bin +firmware: sd8686_helper.bin +firmware: sd8688.bin +firmware: sd8688_helper.bin +firmware: slicoss/gbdownload.sys +firmware: slicoss/gbrcvucode.sys +firmware: slicoss/oasisdownload.sys +firmware: slicoss/oasisrcvucode.sys +firmware: sms1xxx-hcw-55xxx-dvbt-02.fw +firmware: sms1xxx-hcw-55xxx-isdbt-02.fw +firmware: sms1xxx-nova-a-dvbt-01.fw +firmware: sms1xxx-nova-b-dvbt-01.fw +firmware: sms1xxx-stellar-dvbt-01.fw +firmware: softing-4.6/bcard.bin +firmware: softing-4.6/bcard2.bin +firmware: softing-4.6/cancard.bin +firmware: softing-4.6/cancrd2.bin +firmware: softing-4.6/cansja.bin +firmware: softing-4.6/ldcard.bin +firmware: softing-4.6/ldcard2.bin +firmware: solos-FPGA.bin +firmware: solos-Firmware.bin +firmware: solos-db-FPGA.bin +firmware: sun/cassini.bin +firmware: symbol_sp24t_prim_fw +firmware: symbol_sp24t_sec_fw +firmware: tdmb_denver.inp +firmware: tdmb_nova_12mhz.inp +firmware: tdmb_nova_12mhz_b0.inp +firmware: tehuti/bdx.bin +firmware: ti-connectivity/wl1251-fw.bin +firmware: ti-connectivity/wl1251-nvs.bin +firmware: ti-connectivity/wl127x-fw-5-mr.bin +firmware: ti-connectivity/wl127x-fw-5-plt.bin +firmware: ti-connectivity/wl127x-fw-5-sr.bin +firmware: ti-connectivity/wl128x-fw-5-mr.bin +firmware: ti-connectivity/wl128x-fw-5-plt.bin +firmware: ti-connectivity/wl128x-fw-5-sr.bin +firmware: ti-connectivity/wl18xx-fw-4.bin +firmware: ti_3410.fw +firmware: ti_5052.fw +firmware: tigon/tg3.bin +firmware: tigon/tg3_tso.bin +firmware: tigon/tg3_tso5.bin +firmware: ttusb-budget/dspbootcode.bin +firmware: ueagle-atm/930-fpga.bin +firmware: ueagle-atm/CMV4i.bin +firmware: ueagle-atm/CMV4i.bin.v2 +firmware: ueagle-atm/CMV4p.bin +firmware: ueagle-atm/CMV4p.bin.v2 +firmware: ueagle-atm/CMV9i.bin +firmware: ueagle-atm/CMV9i.bin.v2 +firmware: ueagle-atm/CMV9p.bin +firmware: ueagle-atm/CMV9p.bin.v2 +firmware: ueagle-atm/CMVei.bin +firmware: ueagle-atm/CMVei.bin.v2 +firmware: ueagle-atm/CMVep.bin +firmware: ueagle-atm/CMVep.bin.v2 +firmware: ueagle-atm/DSP4i.bin +firmware: ueagle-atm/DSP4p.bin +firmware: ueagle-atm/DSP9i.bin +firmware: ueagle-atm/DSP9p.bin +firmware: ueagle-atm/DSPei.bin +firmware: ueagle-atm/DSPep.bin +firmware: ueagle-atm/adi930.fw +firmware: ueagle-atm/eagle.fw +firmware: ueagle-atm/eagleI.fw +firmware: ueagle-atm/eagleII.fw +firmware: ueagle-atm/eagleIII.fw +firmware: ueagle-atm/eagleIV.fw +firmware: usb8388.bin +firmware: usbdux_firmware.bin +firmware: usbduxfast_firmware.bin +firmware: usbduxsigma_firmware.bin +firmware: v4l-cx231xx-avcore-01.fw +firmware: v4l-cx23418-apu.fw +firmware: v4l-cx23418-cpu.fw +firmware: v4l-cx23418-dig.fw +firmware: v4l-cx2341x-dec.fw +firmware: v4l-cx2341x-enc.fw +firmware: v4l-cx2341x-init.mpg +firmware: v4l-cx23885-avcore-01.fw +firmware: v4l-cx23885-enc.fw +firmware: v4l-cx25840.fw +firmware: v4l-pvrusb2-24xxx-01.fw +firmware: v4l-pvrusb2-29xxx-01.fw +firmware: v4l-pvrusb2-73xxx-01.fw +firmware: vicam/firmware.fw +firmware: vntwusb.fw +firmware: vx/bd56002.boot +firmware: vx/bd563s3.boot +firmware: vx/bd563v2.boot +firmware: vx/bx_1_vp4.b56 +firmware: vx/bx_1_vxp.b56 +firmware: vx/l_1_v22.d56 +firmware: vx/l_1_vp4.d56 +firmware: vx/l_1_vx2.d56 +firmware: vx/l_1_vxp.d56 +firmware: vx/x1_1_vp4.xlx +firmware: vx/x1_1_vx2.xlx +firmware: vx/x1_1_vxp.xlx +firmware: vx/x1_2_v22.xlx +firmware: vxge/X3fw-pxe.ncf +firmware: vxge/X3fw.ncf +firmware: wd719x-risc.bin +firmware: wd719x-wcs.bin +firmware: whiteheat.fw +firmware: whiteheat_loader.fw +firmware: wil6210.brd +firmware: wil6210.fw +firmware: wil6210_sparrow_plus.fw +firmware: wil6436.brd +firmware: wil6436.fw +firmware: wlan/prima/WCNSS_qcom_wlan_nv.bin +firmware: xc3028-v27.fw +firmware: xc3028L-v36.fw +firmware: yam/1200.bin +firmware: yam/9600.bin +firmware: yamaha/ds1_ctrl.fw +firmware: yamaha/ds1_dsp.fw +firmware: yamaha/ds1e_ctrl.fw +firmware: zd1201-ap.fw +firmware: zd1201.fw +firmware: zd1211/zd1211_ub +firmware: zd1211/zd1211_uphr +firmware: zd1211/zd1211_ur +firmware: zd1211/zd1211b_ub +firmware: zd1211/zd1211b_uphr +firmware: zd1211/zd1211b_ur only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/bluetooth/btqca.c +++ linux-oem-5.6-5.6.0/drivers/bluetooth/btqca.c @@ -32,7 +32,7 @@ * VSE event. WCN3991 sends version command response as a payload to * command complete event. */ - if (soc_type == QCA_WCN3991) { + if (soc_type >= QCA_WCN3991) { event_type = 0; rlen += 1; rtype = EDL_PATCH_VER_REQ_CMD; @@ -69,22 +69,26 @@ goto out; } - if (soc_type == QCA_WCN3991) + if (soc_type >= QCA_WCN3991) memmove(&edl->data, &edl->data[1], sizeof(*ver)); ver = (struct qca_btsoc_version *)(edl->data); - BT_DBG("%s: Product:0x%08x", hdev->name, le32_to_cpu(ver->product_id)); - BT_DBG("%s: Patch :0x%08x", hdev->name, le16_to_cpu(ver->patch_ver)); - BT_DBG("%s: ROM :0x%08x", hdev->name, le16_to_cpu(ver->rom_ver)); - BT_DBG("%s: SOC :0x%08x", hdev->name, le32_to_cpu(ver->soc_id)); + bt_dev_info(hdev, "QCA Product ID :0x%08x", + le32_to_cpu(ver->product_id)); + bt_dev_info(hdev, "QCA SOC Version :0x%08x", + le32_to_cpu(ver->soc_id)); + bt_dev_info(hdev, "QCA ROM Version :0x%08x", + le16_to_cpu(ver->rom_ver)); + bt_dev_info(hdev, "QCA Patch Version:0x%08x", + le16_to_cpu(ver->patch_ver)); /* QCA chipset version can be decided by patch and SoC * version, combination with upper 2 bytes from SoC * and lower 2 bytes from patch will be used. */ *soc_version = (le32_to_cpu(ver->soc_id) << 16) | - (le16_to_cpu(ver->rom_ver) & 0x0000ffff); + (le16_to_cpu(ver->rom_ver) & 0x0000ffff); if (*soc_version == 0) err = -EILSEQ; @@ -139,7 +143,7 @@ EXPORT_SYMBOL_GPL(qca_send_pre_shutdown_cmd); static void qca_tlv_check_data(struct qca_fw_config *config, - const struct firmware *fw) + const struct firmware *fw, enum qca_btsoc_type soc_type) { const u8 *data; u32 type_len; @@ -148,6 +152,7 @@ struct tlv_type_hdr *tlv; struct tlv_type_patch *tlv_patch; struct tlv_type_nvm *tlv_nvm; + uint8_t nvm_baud_rate = config->user_baud_rate; tlv = (struct tlv_type_hdr *)fw->data; @@ -216,7 +221,10 @@ tlv_nvm->data[0] |= 0x80; /* UART Baud Rate */ - tlv_nvm->data[2] = config->user_baud_rate; + if (soc_type >= QCA_WCN3991) + tlv_nvm->data[1] = nvm_baud_rate; + else + tlv_nvm->data[2] = nvm_baud_rate; break; @@ -264,7 +272,7 @@ * VSE event. WCN3991 sends version command response as a payload to * command complete event. */ - if (soc_type == QCA_WCN3991) { + if (soc_type >= QCA_WCN3991) { event_type = 0; rlen = sizeof(*edl); rtype = EDL_PATCH_TLV_REQ_CMD; @@ -297,7 +305,7 @@ err = -EIO; } - if (soc_type == QCA_WCN3991) + if (soc_type >= QCA_WCN3991) goto out; tlv_resp = (struct tlv_seg_resp *)(edl->data); @@ -354,7 +362,7 @@ return ret; } - qca_tlv_check_data(config, fw); + qca_tlv_check_data(config, fw, soc_type); segment = fw->data; remain = fw->size; @@ -392,6 +400,27 @@ return ret; } +static int qca_disable_soc_logging(struct hci_dev *hdev) +{ + struct sk_buff *skb; + u8 cmd[2]; + int err; + + cmd[0] = QCA_DISABLE_LOGGING_SUB_OP; + cmd[1] = 0x00; + skb = __hci_cmd_sync_ev(hdev, QCA_DISABLE_LOGGING, sizeof(cmd), cmd, + HCI_EV_CMD_COMPLETE, HCI_INIT_TIMEOUT); + if (IS_ERR(skb)) { + err = PTR_ERR(skb); + bt_dev_err(hdev, "QCA Failed to disable soc logging(%d)", err); + return err; + } + + kfree_skb(skb); + + return 0; +} + int qca_set_bdaddr_rome(struct hci_dev *hdev, const bdaddr_t *bdaddr) { struct sk_buff *skb; @@ -438,6 +467,11 @@ (soc_ver & 0x0000000f); snprintf(config.fwname, sizeof(config.fwname), "qca/crbtfw%02x.tlv", rom_ver); + } else if (soc_type == QCA_QCA6390) { + rom_ver = ((soc_ver & 0x00000f00) >> 0x04) | + (soc_ver & 0x0000000f); + snprintf(config.fwname, sizeof(config.fwname), + "qca/htbtfw%02x.tlv", rom_ver); } else { snprintf(config.fwname, sizeof(config.fwname), "qca/rampatch_%08x.bin", soc_ver); @@ -460,6 +494,9 @@ else if (qca_is_wcn399x(soc_type)) snprintf(config.fwname, sizeof(config.fwname), "qca/crnv%02x.bin", rom_ver); + else if (soc_type == QCA_QCA6390) + snprintf(config.fwname, sizeof(config.fwname), + "qca/htnv%02x.bin", rom_ver); else snprintf(config.fwname, sizeof(config.fwname), "qca/nvm_%08x.bin", soc_ver); @@ -470,6 +507,12 @@ return err; } + if (soc_type >= QCA_WCN3991) { + err = qca_disable_soc_logging(hdev); + if (err < 0) + return err; + } + /* Perform HCI reset */ err = qca_send_reset(hdev); if (err < 0) { only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/bluetooth/btqca.h +++ linux-oem-5.6-5.6.0/drivers/bluetooth/btqca.h @@ -14,6 +14,7 @@ #define EDL_NVM_ACCESS_SET_REQ_CMD (0x01) #define MAX_SIZE_PER_TLV_SEGMENT (243) #define QCA_PRE_SHUTDOWN_CMD (0xFC08) +#define QCA_DISABLE_LOGGING (0xFC17) #define EDL_CMD_REQ_RES_EVT (0x00) #define EDL_PATCH_VER_RES_EVT (0x19) @@ -22,6 +23,7 @@ #define EDL_CMD_EXE_STATUS_EVT (0x00) #define EDL_SET_BAUDRATE_RSP_EVT (0x92) #define EDL_NVM_ACCESS_CODE_EVT (0x0B) +#define QCA_DISABLE_LOGGING_SUB_OP (0x14) #define EDL_TAG_ID_HCI (17) #define EDL_TAG_ID_DEEP_SLEEP (27) @@ -79,7 +81,7 @@ struct edl_event_hdr { __u8 cresp; __u8 rtype; - __u8 data[0]; + __u8 data[]; } __packed; struct qca_btsoc_version { @@ -112,12 +114,12 @@ __le16 tag_len; __le32 reserve1; __le32 reserve2; - __u8 data[0]; + __u8 data[]; } __packed; struct tlv_type_hdr { __le32 type_len; - __u8 data[0]; + __u8 data[]; } __packed; enum qca_btsoc_type { @@ -125,8 +127,9 @@ QCA_AR3002, QCA_ROME, QCA_WCN3990, - QCA_WCN3991, QCA_WCN3998, + QCA_WCN3991, + QCA_QCA6390, }; #if IS_ENABLED(CONFIG_BT_QCA) only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/bluetooth/btrtl.c +++ linux-oem-5.6-5.6.0/drivers/bluetooth/btrtl.c @@ -55,6 +55,7 @@ int fw_len; u8 *cfg_data; int cfg_len; + bool drop_fw; }; static const struct id_table ic_id_table[] = { @@ -543,6 +544,8 @@ u16 hci_rev, lmp_subver; u8 hci_ver; int ret; + u16 opcode; + u8 cmd[2]; btrtl_dev = kzalloc(sizeof(*btrtl_dev), GFP_KERNEL); if (!btrtl_dev) { @@ -564,6 +567,49 @@ hci_ver = resp->hci_ver; hci_rev = le16_to_cpu(resp->hci_rev); lmp_subver = le16_to_cpu(resp->lmp_subver); + + if (resp->hci_ver == 0x8 && le16_to_cpu(resp->hci_rev) == 0x826c && + resp->lmp_ver == 0x8 && le16_to_cpu(resp->lmp_subver) == 0xa99e) + btrtl_dev->drop_fw = true; + + if (btrtl_dev->drop_fw) { + opcode = hci_opcode_pack(0x3f, 0x66); + cmd[0] = opcode & 0xff; + cmd[1] = opcode >> 8; + + skb = bt_skb_alloc(sizeof(cmd), GFP_KERNEL); + if (!skb) + goto out_free; + + skb_put_data(skb, cmd, sizeof(cmd)); + hci_skb_pkt_type(skb) = HCI_COMMAND_PKT; + + hdev->send(hdev, skb); + + /* Ensure the above vendor command is sent to controller and + * process has done. + */ + msleep(200); + + /* Read the local version again. Expect to have the vanilla + * version as cold boot. + */ + skb = btrtl_read_local_version(hdev); + if (IS_ERR(skb)) { + ret = PTR_ERR(skb); + goto err_free; + } + + resp = (struct hci_rp_read_local_version *)skb->data; + rtl_dev_info(hdev, "examining hci_ver=%02x hci_rev=%04x lmp_ver=%02x lmp_subver=%04x", + resp->hci_ver, resp->hci_rev, + resp->lmp_ver, resp->lmp_subver); + + hci_ver = resp->hci_ver; + hci_rev = le16_to_cpu(resp->hci_rev); + lmp_subver = le16_to_cpu(resp->lmp_subver); + } +out_free: kfree_skb(skb); btrtl_dev->ic_info = btrtl_match_ic(lmp_subver, hci_rev, hci_ver, only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/bluetooth/btrtl.h +++ linux-oem-5.6-5.6.0/drivers/bluetooth/btrtl.h @@ -38,13 +38,13 @@ struct rtl_vendor_config_entry { __le16 offset; __u8 len; - __u8 data[0]; + __u8 data[]; } __packed; struct rtl_vendor_config { __le32 signature; __le16 total_len; - struct rtl_vendor_config_entry entry[0]; + struct rtl_vendor_config_entry entry[]; } __packed; #if IS_ENABLED(CONFIG_BT_RTL) only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/bluetooth/hci_qca.c +++ linux-oem-5.6-5.6.0/drivers/bluetooth/hci_qca.c @@ -26,9 +26,11 @@ #include #include #include +#include #include #include #include +#include #include #include @@ -44,7 +46,7 @@ #define HCI_MAX_IBS_SIZE 10 #define IBS_WAKE_RETRANS_TIMEOUT_MS 100 -#define IBS_BTSOC_TX_IDLE_TIMEOUT_MS 40 +#define IBS_BTSOC_TX_IDLE_TIMEOUT_MS 200 #define IBS_HOST_TX_IDLE_TIMEOUT_MS 2000 #define CMD_TRANS_TIMEOUT_MS 100 #define MEMDUMP_TIMEOUT_MS 8000 @@ -69,9 +71,14 @@ QCA_IBS_ENABLED, QCA_DROP_VENDOR_EVENT, QCA_SUSPENDING, - QCA_MEMDUMP_COLLECTION + QCA_MEMDUMP_COLLECTION, + QCA_HW_ERROR_EVENT, + QCA_SSR_TRIGGERED }; +enum qca_capabilities { + QCA_CAP_WIDEBAND_SPEECH = BIT(0), +}; /* HCI_IBS transmit side sleep protocol states */ enum tx_ibs_states { @@ -108,6 +115,7 @@ char *memdump_buf_tail; u32 current_seq_no; u32 received_dump; + u32 ram_dump_size; }; struct qca_memdump_event_hdr { @@ -138,18 +146,19 @@ u32 tx_idle_delay; struct timer_list wake_retrans_timer; u32 wake_retrans; - struct timer_list memdump_timer; struct workqueue_struct *workqueue; struct work_struct ws_awake_rx; struct work_struct ws_awake_device; struct work_struct ws_rx_vote_off; struct work_struct ws_tx_vote_off; struct work_struct ctrl_memdump_evt; + struct delayed_work ctrl_memdump_timeout; struct qca_memdump_data *qca_memdump; unsigned long flags; struct completion drop_ev_comp; wait_queue_head_t suspend_wait_q; enum qca_memdump_states memdump_state; + struct mutex hci_memdump_lock; /* For debugging purpose */ u64 ibs_sent_wacks; @@ -183,10 +192,11 @@ unsigned int load_uA; }; -struct qca_vreg_data { +struct qca_device_data { enum qca_btsoc_type soc_type; struct qca_vreg *vregs; size_t num_vregs; + uint32_t capabilities; }; /* @@ -280,25 +290,21 @@ case HCI_IBS_TX_VOTE_CLOCK_ON: qca->tx_vote = true; qca->tx_votes_on++; - new_vote = true; break; case HCI_IBS_RX_VOTE_CLOCK_ON: qca->rx_vote = true; qca->rx_votes_on++; - new_vote = true; break; case HCI_IBS_TX_VOTE_CLOCK_OFF: qca->tx_vote = false; qca->tx_votes_off++; - new_vote = qca->rx_vote | qca->tx_vote; break; case HCI_IBS_RX_VOTE_CLOCK_OFF: qca->rx_vote = false; qca->rx_votes_off++; - new_vote = qca->rx_vote | qca->tx_vote; break; default: @@ -306,6 +312,8 @@ return; } + new_vote = qca->rx_vote | qca->tx_vote; + if (new_vote != old_vote) { if (new_vote) __serial_clock_on(hu->tty); @@ -522,23 +530,28 @@ hci_uart_tx_wakeup(hu); } -static void hci_memdump_timeout(struct timer_list *t) + +static void qca_controller_memdump_timeout(struct work_struct *work) { - struct qca_data *qca = from_timer(qca, t, tx_idle_timer); + struct qca_data *qca = container_of(work, struct qca_data, + ctrl_memdump_timeout.work); struct hci_uart *hu = qca->hu; - struct qca_memdump_data *qca_memdump = qca->qca_memdump; - char *memdump_buf = qca_memdump->memdump_buf_tail; - bt_dev_err(hu->hdev, "clearing allocated memory due to memdump timeout"); - /* Inject hw error event to reset the device and driver. */ - hci_reset_dev(hu->hdev); - vfree(memdump_buf); - kfree(qca_memdump); - qca->memdump_state = QCA_MEMDUMP_TIMEOUT; - del_timer(&qca->memdump_timer); - cancel_work_sync(&qca->ctrl_memdump_evt); + mutex_lock(&qca->hci_memdump_lock); + if (test_bit(QCA_MEMDUMP_COLLECTION, &qca->flags)) { + qca->memdump_state = QCA_MEMDUMP_TIMEOUT; + if (!test_bit(QCA_HW_ERROR_EVENT, &qca->flags)) { + /* Inject hw error event to reset the device + * and driver. + */ + hci_reset_dev(hu->hdev); + } + } + + mutex_unlock(&qca->hci_memdump_lock); } + /* Initialize protocol */ static int qca_open(struct hci_uart *hu) { @@ -558,6 +571,7 @@ skb_queue_head_init(&qca->tx_wait_q); skb_queue_head_init(&qca->rx_memdump_q); spin_lock_init(&qca->hci_ibs_lock); + mutex_init(&qca->hci_memdump_lock); qca->workqueue = alloc_ordered_workqueue("qca_wq", 0); if (!qca->workqueue) { BT_ERR("QCA Workqueue not initialized properly"); @@ -570,6 +584,8 @@ INIT_WORK(&qca->ws_rx_vote_off, qca_wq_serial_rx_clock_vote_off); INIT_WORK(&qca->ws_tx_vote_off, qca_wq_serial_tx_clock_vote_off); INIT_WORK(&qca->ctrl_memdump_evt, qca_controller_memdump); + INIT_DELAYED_WORK(&qca->ctrl_memdump_timeout, + qca_controller_memdump_timeout); init_waitqueue_head(&qca->suspend_wait_q); qca->hu = hu; @@ -585,10 +601,12 @@ if (hu->serdev) { qcadev = serdev_device_get_drvdata(hu->serdev); - if (qca_is_wcn399x(qcadev->btsoc_type)) { + + if (qca_is_wcn399x(qcadev->btsoc_type)) hu->init_speed = qcadev->init_speed; + + if (qcadev->oper_speed) hu->oper_speed = qcadev->oper_speed; - } } timer_setup(&qca->wake_retrans_timer, hci_ibs_wake_retrans_timeout, 0); @@ -596,7 +614,6 @@ timer_setup(&qca->tx_idle_timer, hci_ibs_tx_idle_timeout, 0); qca->tx_idle_delay = IBS_HOST_TX_IDLE_TIMEOUT_MS; - timer_setup(&qca->memdump_timer, hci_memdump_timeout, 0); BT_DBG("HCI_UART_QCA open, tx_idle_delay=%u, wake_retrans=%u", qca->tx_idle_delay, qca->wake_retrans); @@ -677,12 +694,9 @@ skb_queue_purge(&qca->rx_memdump_q); del_timer(&qca->tx_idle_timer); del_timer(&qca->wake_retrans_timer); - del_timer(&qca->memdump_timer); destroy_workqueue(qca->workqueue); qca->hu = NULL; - qca_power_shutdown(hu); - kfree_skb(qca->rx_skb); hu->priv = NULL; @@ -845,6 +859,13 @@ BT_DBG("hu %p qca enq skb %p tx_ibs_state %d", hu, skb, qca->tx_ibs_state); + if (test_bit(QCA_SSR_TRIGGERED, &qca->flags)) { + /* As SSR is in progress, ignore the packets */ + bt_dev_dbg(hu->hdev, "SSR is in progress"); + kfree_skb(skb); + return 0; + } + /* Prepend skb with frame type */ memcpy(skb_push(skb, 1), &hci_skb_pkt_type(skb), 1); @@ -960,14 +981,28 @@ char nullBuff[QCA_DUMP_PACKET_SIZE] = { 0 }; u16 seq_no; u32 dump_size; + u32 rx_size; + enum qca_btsoc_type soc_type = qca_soc_type(hu); while ((skb = skb_dequeue(&qca->rx_memdump_q))) { + mutex_lock(&qca->hci_memdump_lock); + /* Skip processing the received packets if timeout detected + * or memdump collection completed. + */ + if (qca->memdump_state == QCA_MEMDUMP_TIMEOUT || + qca->memdump_state == QCA_MEMDUMP_COLLECTED) { + mutex_unlock(&qca->hci_memdump_lock); + return; + } + if (!qca_memdump) { qca_memdump = kzalloc(sizeof(struct qca_memdump_data), GFP_ATOMIC); - if (!qca_memdump) + if (!qca_memdump) { + mutex_unlock(&qca->hci_memdump_lock); return; + } qca->qca_memdump = qca_memdump; } @@ -992,16 +1027,20 @@ if (!(dump_size)) { bt_dev_err(hu->hdev, "Rx invalid memdump size"); kfree_skb(skb); + mutex_unlock(&qca->hci_memdump_lock); return; } bt_dev_info(hu->hdev, "QCA collecting dump of size:%u", dump_size); - mod_timer(&qca->memdump_timer, (jiffies + - msecs_to_jiffies(MEMDUMP_TIMEOUT_MS))); + queue_delayed_work(qca->workqueue, + &qca->ctrl_memdump_timeout, + msecs_to_jiffies(MEMDUMP_TIMEOUT_MS) + ); skb_pull(skb, sizeof(dump_size)); memdump_buf = vmalloc(dump_size); + qca_memdump->ram_dump_size = dump_size; qca_memdump->memdump_buf_head = memdump_buf; qca_memdump->memdump_buf_tail = memdump_buf; } @@ -1016,6 +1055,7 @@ kfree(qca_memdump); kfree_skb(skb); qca->qca_memdump = NULL; + mutex_unlock(&qca->hci_memdump_lock); return; } @@ -1023,43 +1063,79 @@ * the controller. In such cases let us store the dummy * packets in the buffer. */ + /* For QCA6390, controller does not lost packets but + * sequence number field of packat sometimes has error + * bits, so skip this checking for missing packet. + */ while ((seq_no > qca_memdump->current_seq_no + 1) && - seq_no != QCA_LAST_SEQUENCE_NUM) { + (soc_type != QCA_QCA6390) && + seq_no != QCA_LAST_SEQUENCE_NUM) { bt_dev_err(hu->hdev, "QCA controller missed packet:%d", qca_memdump->current_seq_no); + rx_size = qca_memdump->received_dump; + rx_size += QCA_DUMP_PACKET_SIZE; + if (rx_size > qca_memdump->ram_dump_size) { + bt_dev_err(hu->hdev, + "QCA memdump received %d, no space for missed packet", + qca_memdump->received_dump); + break; + } memcpy(memdump_buf, nullBuff, QCA_DUMP_PACKET_SIZE); memdump_buf = memdump_buf + QCA_DUMP_PACKET_SIZE; qca_memdump->received_dump += QCA_DUMP_PACKET_SIZE; qca_memdump->current_seq_no++; } - memcpy(memdump_buf, (unsigned char *) skb->data, skb->len); - memdump_buf = memdump_buf + skb->len; - qca_memdump->memdump_buf_tail = memdump_buf; - qca_memdump->current_seq_no = seq_no + 1; - qca_memdump->received_dump += skb->len; + rx_size = qca_memdump->received_dump + skb->len; + if (rx_size <= qca_memdump->ram_dump_size) { + if ((seq_no != QCA_LAST_SEQUENCE_NUM) && + (seq_no != qca_memdump->current_seq_no)) + bt_dev_err(hu->hdev, + "QCA memdump unexpected packet %d", + seq_no); + bt_dev_dbg(hu->hdev, + "QCA memdump packet %d with length %d", + seq_no, skb->len); + memcpy(memdump_buf, (unsigned char *)skb->data, + skb->len); + memdump_buf = memdump_buf + skb->len; + qca_memdump->memdump_buf_tail = memdump_buf; + qca_memdump->current_seq_no = seq_no + 1; + qca_memdump->received_dump += skb->len; + } else { + bt_dev_err(hu->hdev, + "QCA memdump received %d, no space for packet %d", + qca_memdump->received_dump, seq_no); + } qca->qca_memdump = qca_memdump; kfree_skb(skb); if (seq_no == QCA_LAST_SEQUENCE_NUM) { - bt_dev_info(hu->hdev, "QCA writing crash dump of size %d bytes", - qca_memdump->received_dump); + bt_dev_info(hu->hdev, + "QCA memdump Done, received %d, total %d", + qca_memdump->received_dump, + qca_memdump->ram_dump_size); memdump_buf = qca_memdump->memdump_buf_head; dev_coredumpv(&hu->serdev->dev, memdump_buf, qca_memdump->received_dump, GFP_KERNEL); - del_timer(&qca->memdump_timer); + cancel_delayed_work(&qca->ctrl_memdump_timeout); kfree(qca->qca_memdump); qca->qca_memdump = NULL; qca->memdump_state = QCA_MEMDUMP_COLLECTED; + clear_bit(QCA_MEMDUMP_COLLECTION, &qca->flags); } + + mutex_unlock(&qca->hci_memdump_lock); } } -int qca_controller_memdump_event(struct hci_dev *hdev, struct sk_buff *skb) +static int qca_controller_memdump_event(struct hci_dev *hdev, + struct sk_buff *skb) { struct hci_uart *hu = hci_get_drvdata(hdev); struct qca_data *qca = hu->priv; + set_bit(QCA_SSR_TRIGGERED, &qca->flags); skb_queue_tail(&qca->rx_memdump_q, skb); queue_work(qca->workqueue, &qca->ctrl_memdump_evt); @@ -1406,23 +1482,11 @@ { struct hci_uart *hu = hci_get_drvdata(hdev); struct qca_data *qca = hu->priv; - struct qca_memdump_data *qca_memdump = qca->qca_memdump; - char *memdump_buf = NULL; wait_on_bit_timeout(&qca->flags, QCA_MEMDUMP_COLLECTION, TASK_UNINTERRUPTIBLE, MEMDUMP_TIMEOUT_MS); clear_bit(QCA_MEMDUMP_COLLECTION, &qca->flags); - if (qca->memdump_state == QCA_MEMDUMP_IDLE) { - bt_dev_err(hu->hdev, "Clearing the buffers due to timeout"); - if (qca_memdump) - memdump_buf = qca_memdump->memdump_buf_tail; - vfree(memdump_buf); - kfree(qca_memdump); - qca->memdump_state = QCA_MEMDUMP_TIMEOUT; - del_timer(&qca->memdump_timer); - cancel_work_sync(&qca->ctrl_memdump_evt); - } } static void qca_hw_error(struct hci_dev *hdev, u8 code) @@ -1430,6 +1494,8 @@ struct hci_uart *hu = hci_get_drvdata(hdev); struct qca_data *qca = hu->priv; + set_bit(QCA_SSR_TRIGGERED, &qca->flags); + set_bit(QCA_HW_ERROR_EVENT, &qca->flags); bt_dev_info(hdev, "mem_dump_status: %d", qca->memdump_state); if (qca->memdump_state == QCA_MEMDUMP_IDLE) { @@ -1449,6 +1515,27 @@ bt_dev_info(hdev, "waiting for dump to complete"); qca_wait_for_dump_collection(hdev); } + + mutex_lock(&qca->hci_memdump_lock); + if (qca->memdump_state != QCA_MEMDUMP_COLLECTED) { + bt_dev_err(hu->hdev, "clearing allocated memory due to memdump timeout"); + if (qca->qca_memdump) { + vfree(qca->qca_memdump->memdump_buf_head); + kfree(qca->qca_memdump); + qca->qca_memdump = NULL; + } + qca->memdump_state = QCA_MEMDUMP_TIMEOUT; + cancel_delayed_work(&qca->ctrl_memdump_timeout); + } + mutex_unlock(&qca->hci_memdump_lock); + + if (qca->memdump_state == QCA_MEMDUMP_TIMEOUT || + qca->memdump_state == QCA_MEMDUMP_COLLECTED) { + cancel_work_sync(&qca->ctrl_memdump_evt); + skb_queue_purge(&qca->rx_memdump_q); + } + + clear_bit(QCA_HW_ERROR_EVENT, &qca->flags); } static void qca_cmd_timeout(struct hci_dev *hdev) @@ -1456,10 +1543,30 @@ struct hci_uart *hu = hci_get_drvdata(hdev); struct qca_data *qca = hu->priv; - if (qca->memdump_state == QCA_MEMDUMP_IDLE) + set_bit(QCA_SSR_TRIGGERED, &qca->flags); + if (qca->memdump_state == QCA_MEMDUMP_IDLE) { + set_bit(QCA_MEMDUMP_COLLECTION, &qca->flags); qca_send_crashbuffer(hu); - else - bt_dev_info(hdev, "Dump collection is in process"); + qca_wait_for_dump_collection(hdev); + } else if (qca->memdump_state == QCA_MEMDUMP_COLLECTING) { + /* Let us wait here until memory dump collected or + * memory dump timer expired. + */ + bt_dev_info(hdev, "waiting for dump to complete"); + qca_wait_for_dump_collection(hdev); + } + + mutex_lock(&qca->hci_memdump_lock); + if (qca->memdump_state != QCA_MEMDUMP_COLLECTED) { + qca->memdump_state = QCA_MEMDUMP_TIMEOUT; + if (!test_bit(QCA_HW_ERROR_EVENT, &qca->flags)) { + /* Inject hw error event to reset the device + * and driver. + */ + hci_reset_dev(hu->hdev); + } + } + mutex_unlock(&qca->hci_memdump_lock); } static int qca_wcn3990_init(struct hci_uart *hu) @@ -1529,9 +1636,11 @@ ret = qca_wcn3990_init(hu); } else { qcadev = serdev_device_get_drvdata(hu->serdev); - gpiod_set_value_cansleep(qcadev->bt_en, 1); - /* Controller needs time to bootup. */ - msleep(150); + if (qcadev->bt_en) { + gpiod_set_value_cansleep(qcadev->bt_en, 1); + /* Controller needs time to bootup. */ + msleep(150); + } } return ret; @@ -1561,13 +1670,17 @@ set_bit(HCI_QUIRK_SIMULTANEOUS_DISCOVERY, &hdev->quirks); bt_dev_info(hdev, "setting up %s", - qca_is_wcn399x(soc_type) ? "wcn399x" : "ROME"); + qca_is_wcn399x(soc_type) ? "wcn399x" : "ROME/QCA6390"); + + qca->memdump_state = QCA_MEMDUMP_IDLE; retry: ret = qca_power_on(hdev); if (ret) return ret; + clear_bit(QCA_SSR_TRIGGERED, &qca->flags); + if (qca_is_wcn399x(soc_type)) { set_bit(HCI_QUIRK_USE_BDADDR_PROPERTY, &hdev->quirks); @@ -1630,10 +1743,10 @@ } /* Setup bdaddr */ - if (qca_is_wcn399x(soc_type)) - hu->hdev->set_bdaddr = qca_set_bdaddr; - else + if (soc_type == QCA_ROME) hu->hdev->set_bdaddr = qca_set_bdaddr_rome; + else + hu->hdev->set_bdaddr = qca_set_bdaddr; return ret; } @@ -1653,7 +1766,7 @@ .dequeue = qca_dequeue, }; -static const struct qca_vreg_data qca_soc_data_wcn3990 = { +static const struct qca_device_data qca_soc_data_wcn3990 = { .soc_type = QCA_WCN3990, .vregs = (struct qca_vreg []) { { "vddio", 15000 }, @@ -1664,7 +1777,7 @@ .num_vregs = 4, }; -static const struct qca_vreg_data qca_soc_data_wcn3991 = { +static const struct qca_device_data qca_soc_data_wcn3991 = { .soc_type = QCA_WCN3991, .vregs = (struct qca_vreg []) { { "vddio", 15000 }, @@ -1673,9 +1786,10 @@ { "vddch0", 450000 }, }, .num_vregs = 4, + .capabilities = QCA_CAP_WIDEBAND_SPEECH, }; -static const struct qca_vreg_data qca_soc_data_wcn3998 = { +static const struct qca_device_data qca_soc_data_wcn3998 = { .soc_type = QCA_WCN3998, .vregs = (struct qca_vreg []) { { "vddio", 10000 }, @@ -1686,6 +1800,11 @@ .num_vregs = 4, }; +static const struct qca_device_data qca_soc_data_qca6390 = { + .soc_type = QCA_QCA6390, + .num_vregs = 0, +}; + static void qca_power_shutdown(struct hci_uart *hu) { struct qca_serdev *qcadev; @@ -1704,9 +1823,6 @@ qca_flush(hu); spin_unlock_irqrestore(&qca->hci_ibs_lock, flags); - hu->hdev->hw_error = NULL; - hu->hdev->cmd_timeout = NULL; - /* Non-serdev device usually is powered by external power * and don't need additional action in driver for power down */ @@ -1717,7 +1833,7 @@ host_set_baudrate(hu, 2400); qca_send_power_pulse(hu, false); qca_regulator_disable(qcadev); - } else { + } else if (qcadev->bt_en) { gpiod_set_value_cansleep(qcadev->bt_en, 0); } } @@ -1726,14 +1842,18 @@ { struct hci_uart *hu = hci_get_drvdata(hdev); struct qca_data *qca = hu->priv; + enum qca_btsoc_type soc_type = qca_soc_type(hu); + + hu->hdev->hw_error = NULL; + hu->hdev->cmd_timeout = NULL; /* Stop sending shutdown command if soc crashes. */ - if (qca->memdump_state == QCA_MEMDUMP_IDLE) { + if (soc_type != QCA_ROME + && qca->memdump_state == QCA_MEMDUMP_IDLE) { qca_send_pre_shutdown_cmd(hdev); usleep_range(8000, 10000); } - qca->memdump_state = QCA_MEMDUMP_IDLE; qca_power_shutdown(hu); return 0; } @@ -1755,7 +1875,11 @@ power->vregs_on = true; - return 0; + ret = clk_prepare_enable(qcadev->susclk); + if (ret) + qca_regulator_disable(qcadev); + + return ret; } static void qca_regulator_disable(struct qca_serdev *qcadev) @@ -1773,6 +1897,8 @@ regulator_bulk_disable(power->num_vregs, power->vreg_bulk); power->vregs_on = false; + + clk_disable_unprepare(qcadev->susclk); } static int qca_init_regulators(struct qca_power *qca, @@ -1809,8 +1935,9 @@ { struct qca_serdev *qcadev; struct hci_dev *hdev; - const struct qca_vreg_data *data; + const struct qca_device_data *data; int err; + bool power_ctrl_enabled = true; qcadev = devm_kzalloc(&serdev->dev, sizeof(*qcadev), GFP_KERNEL); if (!qcadev) @@ -1821,6 +1948,11 @@ serdev_device_set_drvdata(serdev, qcadev); device_property_read_string(&serdev->dev, "firmware-name", &qcadev->firmware_name); + device_property_read_u32(&serdev->dev, "max-speed", + &qcadev->oper_speed); + if (!qcadev->oper_speed) + BT_DBG("UART will pick default operating speed"); + if (data && qca_is_wcn399x(data->soc_type)) { qcadev->btsoc_type = data->soc_type; qcadev->bt_power = devm_kzalloc(&serdev->dev, @@ -1839,10 +1971,11 @@ qcadev->bt_power->vregs_on = false; - device_property_read_u32(&serdev->dev, "max-speed", - &qcadev->oper_speed); - if (!qcadev->oper_speed) - BT_DBG("UART will pick default operating speed"); + qcadev->susclk = devm_clk_get_optional(&serdev->dev, NULL); + if (IS_ERR(qcadev->susclk)) { + dev_err(&serdev->dev, "failed to acquire clk\n"); + return PTR_ERR(qcadev->susclk); + } err = hci_uart_register_device(&qcadev->serdev_hu, &qca_proto); if (err) { @@ -1850,20 +1983,23 @@ return err; } } else { - qcadev->btsoc_type = QCA_ROME; - qcadev->bt_en = devm_gpiod_get(&serdev->dev, "enable", + if (data) + qcadev->btsoc_type = data->soc_type; + else + qcadev->btsoc_type = QCA_ROME; + + qcadev->bt_en = devm_gpiod_get_optional(&serdev->dev, "enable", GPIOD_OUT_LOW); - if (IS_ERR(qcadev->bt_en)) { - dev_err(&serdev->dev, "failed to acquire enable gpio\n"); - return PTR_ERR(qcadev->bt_en); + if (!qcadev->bt_en) { + dev_warn(&serdev->dev, "failed to acquire enable gpio\n"); + power_ctrl_enabled = false; } - qcadev->susclk = devm_clk_get(&serdev->dev, NULL); + qcadev->susclk = devm_clk_get_optional(&serdev->dev, NULL); if (IS_ERR(qcadev->susclk)) { - dev_err(&serdev->dev, "failed to acquire clk\n"); + dev_warn(&serdev->dev, "failed to acquire clk\n"); return PTR_ERR(qcadev->susclk); } - err = clk_set_rate(qcadev->susclk, SUSCLK_RATE_32KHZ); if (err) return err; @@ -1881,8 +2017,17 @@ } hdev = qcadev->serdev_hu.hdev; - set_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks); - hdev->shutdown = qca_power_off; + + if (power_ctrl_enabled) { + set_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks); + hdev->shutdown = qca_power_off; + } + + /* Wideband speech support must be set per driver since it can't be + * queried via hci. + */ + if (data && (data->capabilities & QCA_CAP_WIDEBAND_SPEECH)) + set_bit(HCI_QUIRK_WIDEBAND_SPEECH_SUPPORTED, &hdev->quirks); return 0; } @@ -1890,21 +2035,56 @@ static void qca_serdev_remove(struct serdev_device *serdev) { struct qca_serdev *qcadev = serdev_device_get_drvdata(serdev); + struct qca_power *power = qcadev->bt_power; - if (qca_is_wcn399x(qcadev->btsoc_type)) + if (qca_is_wcn399x(qcadev->btsoc_type) && power->vregs_on) qca_power_shutdown(&qcadev->serdev_hu); - else + else if (qcadev->susclk) clk_disable_unprepare(qcadev->susclk); hci_uart_unregister_device(&qcadev->serdev_hu); } +static void qca_serdev_shutdown(struct device *dev) +{ + int ret; + int timeout = msecs_to_jiffies(CMD_TRANS_TIMEOUT_MS); + struct serdev_device *serdev = to_serdev_device(dev); + struct qca_serdev *qcadev = serdev_device_get_drvdata(serdev); + const u8 ibs_wake_cmd[] = { 0xFD }; + const u8 edl_reset_soc_cmd[] = { 0x01, 0x00, 0xFC, 0x01, 0x05 }; + + if (qcadev->btsoc_type == QCA_QCA6390) { + serdev_device_write_flush(serdev); + ret = serdev_device_write_buf(serdev, ibs_wake_cmd, + sizeof(ibs_wake_cmd)); + if (ret < 0) { + BT_ERR("QCA send IBS_WAKE_IND error: %d", ret); + return; + } + serdev_device_wait_until_sent(serdev, timeout); + usleep_range(8000, 10000); + + serdev_device_write_flush(serdev); + ret = serdev_device_write_buf(serdev, edl_reset_soc_cmd, + sizeof(edl_reset_soc_cmd)); + if (ret < 0) { + BT_ERR("QCA send EDL_RESET_REQ error: %d", ret); + return; + } + serdev_device_wait_until_sent(serdev, timeout); + usleep_range(8000, 10000); + } +} + static int __maybe_unused qca_suspend(struct device *dev) { - struct hci_dev *hdev = container_of(dev, struct hci_dev, dev); - struct hci_uart *hu = hci_get_drvdata(hdev); + struct serdev_device *serdev = to_serdev_device(dev); + struct qca_serdev *qcadev = serdev_device_get_drvdata(serdev); + struct hci_uart *hu = &qcadev->serdev_hu; struct qca_data *qca = hu->priv; unsigned long flags; + bool tx_pending = false; int ret = 0; u8 cmd; @@ -1938,8 +2118,7 @@ qca->tx_ibs_state = HCI_IBS_TX_ASLEEP; qca->ibs_sent_slps++; - - qca_wq_serial_tx_clock_vote_off(&qca->ws_tx_vote_off); + tx_pending = true; break; case HCI_IBS_TX_ASLEEP: @@ -1956,22 +2135,24 @@ if (ret < 0) goto error; - serdev_device_wait_until_sent(hu->serdev, - msecs_to_jiffies(CMD_TRANS_TIMEOUT_MS)); + if (tx_pending) { + serdev_device_wait_until_sent(hu->serdev, + msecs_to_jiffies(CMD_TRANS_TIMEOUT_MS)); + serial_clock_vote(HCI_IBS_TX_VOTE_CLOCK_OFF, hu); + } /* Wait for HCI_IBS_SLEEP_IND sent by device to indicate its Tx is going * to sleep, so that the packet does not wake the system later. */ - ret = wait_event_interruptible_timeout(qca->suspend_wait_q, qca->rx_ibs_state == HCI_IBS_RX_ASLEEP, msecs_to_jiffies(IBS_BTSOC_TX_IDLE_TIMEOUT_MS)); - - if (ret > 0) - return 0; - - if (ret == 0) + if (ret == 0) { ret = -ETIMEDOUT; + goto error; + } + + return 0; error: clear_bit(QCA_SUSPENDING, &qca->flags); @@ -1981,8 +2162,9 @@ static int __maybe_unused qca_resume(struct device *dev) { - struct hci_dev *hdev = container_of(dev, struct hci_dev, dev); - struct hci_uart *hu = hci_get_drvdata(hdev); + struct serdev_device *serdev = to_serdev_device(dev); + struct qca_serdev *qcadev = serdev_device_get_drvdata(serdev); + struct hci_uart *hu = &qcadev->serdev_hu; struct qca_data *qca = hu->priv; clear_bit(QCA_SUSPENDING, &qca->flags); @@ -1992,21 +2174,39 @@ static SIMPLE_DEV_PM_OPS(qca_pm_ops, qca_suspend, qca_resume); +#ifdef CONFIG_OF static const struct of_device_id qca_bluetooth_of_match[] = { { .compatible = "qcom,qca6174-bt" }, + { .compatible = "qcom,qca6390-bt", .data = &qca_soc_data_qca6390}, + { .compatible = "qcom,qca9377-bt" }, { .compatible = "qcom,wcn3990-bt", .data = &qca_soc_data_wcn3990}, { .compatible = "qcom,wcn3991-bt", .data = &qca_soc_data_wcn3991}, { .compatible = "qcom,wcn3998-bt", .data = &qca_soc_data_wcn3998}, { /* sentinel */ } }; MODULE_DEVICE_TABLE(of, qca_bluetooth_of_match); +#endif + +#ifdef CONFIG_ACPI +static const struct acpi_device_id qca_bluetooth_acpi_match[] = { + { "QCOM6390", (kernel_ulong_t)&qca_soc_data_qca6390 }, + { "DLA16390", (kernel_ulong_t)&qca_soc_data_qca6390 }, + { "DLB16390", (kernel_ulong_t)&qca_soc_data_qca6390 }, + { "DLB26390", (kernel_ulong_t)&qca_soc_data_qca6390 }, + { }, +}; +MODULE_DEVICE_TABLE(acpi, qca_bluetooth_acpi_match); +#endif + static struct serdev_device_driver qca_serdev_driver = { .probe = qca_serdev_probe, .remove = qca_serdev_remove, .driver = { .name = "hci_uart_qca", - .of_match_table = qca_bluetooth_of_match, + .of_match_table = of_match_ptr(qca_bluetooth_of_match), + .acpi_match_table = ACPI_PTR(qca_bluetooth_acpi_match), + .shutdown = qca_serdev_shutdown, .pm = &qca_pm_ops, }, }; only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/bus/Kconfig +++ linux-oem-5.6-5.6.0/drivers/bus/Kconfig @@ -201,5 +201,6 @@ peripherals. source "drivers/bus/fsl-mc/Kconfig" +source "drivers/bus/mhi/Kconfig" endmenu only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/bus/Makefile +++ linux-oem-5.6-5.6.0/drivers/bus/Makefile @@ -34,3 +34,6 @@ obj-$(CONFIG_VEXPRESS_CONFIG) += vexpress-config.o obj-$(CONFIG_DA8XX_MSTPRI) += da8xx-mstpri.o + +# MHI +obj-$(CONFIG_MHI_BUS) += mhi/ only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/bus/mhi/Kconfig +++ linux-oem-5.6-5.6.0/drivers/bus/mhi/Kconfig @@ -0,0 +1,22 @@ +# SPDX-License-Identifier: GPL-2.0 +# +# MHI bus +# +# Copyright (c) 2018-2020, The Linux Foundation. All rights reserved. +# + +config MHI_BUS + tristate "Modem Host Interface (MHI) bus" + help + Bus driver for MHI protocol. Modem Host Interface (MHI) is a + communication protocol used by the host processors to control + and communicate with modem devices over a high speed peripheral + bus or shared memory. + +config MHI_BUS_DEBUG + bool "Debugfs support for the MHI bus" + depends on MHI_BUS && DEBUG_FS + help + Enable debugfs support for use with the MHI transport. Allows + reading and/or modifying some values within the MHI controller + for debug and test purposes. only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/bus/mhi/Makefile +++ linux-oem-5.6-5.6.0/drivers/bus/mhi/Makefile @@ -0,0 +1,2 @@ +# core layer +obj-y += core/ only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/bus/mhi/core/Makefile +++ linux-oem-5.6-5.6.0/drivers/bus/mhi/core/Makefile @@ -0,0 +1,4 @@ +obj-$(CONFIG_MHI_BUS) += mhi.o + +mhi-y := init.o main.o pm.o boot.o +mhi-$(CONFIG_MHI_BUS_DEBUG) += debugfs.o only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/bus/mhi/core/boot.c +++ linux-oem-5.6-5.6.0/drivers/bus/mhi/core/boot.c @@ -0,0 +1,525 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Copyright (c) 2018-2020, The Linux Foundation. All rights reserved. + * + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "internal.h" + +/* Setup RDDM vector table for RDDM transfer and program RXVEC */ +void mhi_rddm_prepare(struct mhi_controller *mhi_cntrl, + struct image_info *img_info) +{ + struct mhi_buf *mhi_buf = img_info->mhi_buf; + struct bhi_vec_entry *bhi_vec = img_info->bhi_vec; + void __iomem *base = mhi_cntrl->bhie; + struct device *dev = &mhi_cntrl->mhi_dev->dev; + u32 sequence_id; + unsigned int i; + + for (i = 0; i < img_info->entries - 1; i++, mhi_buf++, bhi_vec++) { + bhi_vec->dma_addr = mhi_buf->dma_addr; + bhi_vec->size = mhi_buf->len; + } + + dev_dbg(dev, "BHIe programming for RDDM\n"); + + mhi_write_reg(mhi_cntrl, base, BHIE_RXVECADDR_HIGH_OFFS, + upper_32_bits(mhi_buf->dma_addr)); + + mhi_write_reg(mhi_cntrl, base, BHIE_RXVECADDR_LOW_OFFS, + lower_32_bits(mhi_buf->dma_addr)); + + mhi_write_reg(mhi_cntrl, base, BHIE_RXVECSIZE_OFFS, mhi_buf->len); + sequence_id = MHI_RANDOM_U32_NONZERO(BHIE_RXVECSTATUS_SEQNUM_BMSK); + + mhi_write_reg_field(mhi_cntrl, base, BHIE_RXVECDB_OFFS, + BHIE_RXVECDB_SEQNUM_BMSK, BHIE_RXVECDB_SEQNUM_SHFT, + sequence_id); + + dev_dbg(dev, "Address: %p and len: 0x%zx sequence: %u\n", + &mhi_buf->dma_addr, mhi_buf->len, sequence_id); +} + +/* Collect RDDM buffer during kernel panic */ +static int __mhi_download_rddm_in_panic(struct mhi_controller *mhi_cntrl) +{ + int ret; + u32 rx_status; + enum mhi_ee_type ee; + const u32 delayus = 2000; + u32 retry = (mhi_cntrl->timeout_ms * 1000) / delayus; + const u32 rddm_timeout_us = 200000; + int rddm_retry = rddm_timeout_us / delayus; + void __iomem *base = mhi_cntrl->bhie; + struct device *dev = &mhi_cntrl->mhi_dev->dev; + + dev_dbg(dev, "Entered with pm_state:%s dev_state:%s ee:%s\n", + to_mhi_pm_state_str(mhi_cntrl->pm_state), + TO_MHI_STATE_STR(mhi_cntrl->dev_state), + TO_MHI_EXEC_STR(mhi_cntrl->ee)); + + /* + * This should only be executing during a kernel panic, we expect all + * other cores to shutdown while we're collecting RDDM buffer. After + * returning from this function, we expect the device to reset. + * + * Normaly, we read/write pm_state only after grabbing the + * pm_lock, since we're in a panic, skipping it. Also there is no + * gurantee that this state change would take effect since + * we're setting it w/o grabbing pm_lock + */ + mhi_cntrl->pm_state = MHI_PM_LD_ERR_FATAL_DETECT; + /* update should take the effect immediately */ + smp_wmb(); + + /* + * Make sure device is not already in RDDM. In case the device asserts + * and a kernel panic follows, device will already be in RDDM. + * Do not trigger SYS ERR again and proceed with waiting for + * image download completion. + */ + ee = mhi_get_exec_env(mhi_cntrl); + if (ee != MHI_EE_RDDM) { + dev_dbg(dev, "Trigger device into RDDM mode using SYS ERR\n"); + mhi_set_mhi_state(mhi_cntrl, MHI_STATE_SYS_ERR); + + dev_dbg(dev, "Waiting for device to enter RDDM\n"); + while (rddm_retry--) { + ee = mhi_get_exec_env(mhi_cntrl); + if (ee == MHI_EE_RDDM) + break; + + udelay(delayus); + } + + if (rddm_retry <= 0) { + /* Hardware reset so force device to enter RDDM */ + dev_dbg(dev, + "Did not enter RDDM, do a host req reset\n"); + mhi_write_reg(mhi_cntrl, mhi_cntrl->regs, + MHI_SOC_RESET_REQ_OFFSET, + MHI_SOC_RESET_REQ); + udelay(delayus); + } + + ee = mhi_get_exec_env(mhi_cntrl); + } + + dev_dbg(dev, + "Waiting for RDDM image download via BHIe, current EE:%s\n", + TO_MHI_EXEC_STR(ee)); + + while (retry--) { + ret = mhi_read_reg_field(mhi_cntrl, base, BHIE_RXVECSTATUS_OFFS, + BHIE_RXVECSTATUS_STATUS_BMSK, + BHIE_RXVECSTATUS_STATUS_SHFT, + &rx_status); + if (ret) + return -EIO; + + if (rx_status == BHIE_RXVECSTATUS_STATUS_XFER_COMPL) + return 0; + + udelay(delayus); + } + + ee = mhi_get_exec_env(mhi_cntrl); + ret = mhi_read_reg(mhi_cntrl, base, BHIE_RXVECSTATUS_OFFS, &rx_status); + + dev_err(dev, "Did not complete RDDM transfer\n"); + dev_err(dev, "Current EE: %s\n", TO_MHI_EXEC_STR(ee)); + dev_err(dev, "RXVEC_STATUS: 0x%x\n", rx_status); + + return -EIO; +} + +/* Download RDDM image from device */ +int mhi_download_rddm_img(struct mhi_controller *mhi_cntrl, bool in_panic) +{ + void __iomem *base = mhi_cntrl->bhie; + struct device *dev = &mhi_cntrl->mhi_dev->dev; + u32 rx_status; + + if (in_panic) + return __mhi_download_rddm_in_panic(mhi_cntrl); + + dev_dbg(dev, "Waiting for RDDM image download via BHIe\n"); + + /* Wait for the image download to complete */ + wait_event_timeout(mhi_cntrl->state_event, + mhi_read_reg_field(mhi_cntrl, base, + BHIE_RXVECSTATUS_OFFS, + BHIE_RXVECSTATUS_STATUS_BMSK, + BHIE_RXVECSTATUS_STATUS_SHFT, + &rx_status) || rx_status, + msecs_to_jiffies(mhi_cntrl->timeout_ms)); + + return (rx_status == BHIE_RXVECSTATUS_STATUS_XFER_COMPL) ? 0 : -EIO; +} +EXPORT_SYMBOL_GPL(mhi_download_rddm_img); + +static int mhi_fw_load_amss(struct mhi_controller *mhi_cntrl, + const struct mhi_buf *mhi_buf) +{ + void __iomem *base = mhi_cntrl->bhie; + struct device *dev = &mhi_cntrl->mhi_dev->dev; + rwlock_t *pm_lock = &mhi_cntrl->pm_lock; + u32 tx_status, sequence_id; + int ret; + + read_lock_bh(pm_lock); + if (!MHI_REG_ACCESS_VALID(mhi_cntrl->pm_state)) { + read_unlock_bh(pm_lock); + return -EIO; + } + + sequence_id = MHI_RANDOM_U32_NONZERO(BHIE_TXVECSTATUS_SEQNUM_BMSK); + dev_dbg(dev, "Starting AMSS download via BHIe. Sequence ID:%u\n", + sequence_id); + mhi_write_reg(mhi_cntrl, base, BHIE_TXVECADDR_HIGH_OFFS, + upper_32_bits(mhi_buf->dma_addr)); + + mhi_write_reg(mhi_cntrl, base, BHIE_TXVECADDR_LOW_OFFS, + lower_32_bits(mhi_buf->dma_addr)); + + mhi_write_reg(mhi_cntrl, base, BHIE_TXVECSIZE_OFFS, mhi_buf->len); + + mhi_write_reg_field(mhi_cntrl, base, BHIE_TXVECDB_OFFS, + BHIE_TXVECDB_SEQNUM_BMSK, BHIE_TXVECDB_SEQNUM_SHFT, + sequence_id); + read_unlock_bh(pm_lock); + + /* Wait for the image download to complete */ + ret = wait_event_timeout(mhi_cntrl->state_event, + MHI_PM_IN_ERROR_STATE(mhi_cntrl->pm_state) || + mhi_read_reg_field(mhi_cntrl, base, + BHIE_TXVECSTATUS_OFFS, + BHIE_TXVECSTATUS_STATUS_BMSK, + BHIE_TXVECSTATUS_STATUS_SHFT, + &tx_status) || tx_status, + msecs_to_jiffies(mhi_cntrl->timeout_ms)); + if (MHI_PM_IN_ERROR_STATE(mhi_cntrl->pm_state) || + tx_status != BHIE_TXVECSTATUS_STATUS_XFER_COMPL) + return -EIO; + + return (!ret) ? -ETIMEDOUT : 0; +} + +static int mhi_fw_load_sbl(struct mhi_controller *mhi_cntrl, + dma_addr_t dma_addr, + size_t size) +{ + u32 tx_status, val, session_id; + int i, ret; + void __iomem *base = mhi_cntrl->bhi; + rwlock_t *pm_lock = &mhi_cntrl->pm_lock; + struct device *dev = &mhi_cntrl->mhi_dev->dev; + struct { + char *name; + u32 offset; + } error_reg[] = { + { "ERROR_CODE", BHI_ERRCODE }, + { "ERROR_DBG1", BHI_ERRDBG1 }, + { "ERROR_DBG2", BHI_ERRDBG2 }, + { "ERROR_DBG3", BHI_ERRDBG3 }, + { NULL }, + }; + + read_lock_bh(pm_lock); + if (!MHI_REG_ACCESS_VALID(mhi_cntrl->pm_state)) { + read_unlock_bh(pm_lock); + goto invalid_pm_state; + } + + session_id = MHI_RANDOM_U32_NONZERO(BHI_TXDB_SEQNUM_BMSK); + dev_dbg(dev, "Starting SBL download via BHI. Session ID:%u\n", + session_id); + mhi_write_reg(mhi_cntrl, base, BHI_STATUS, 0); + mhi_write_reg(mhi_cntrl, base, BHI_IMGADDR_HIGH, + upper_32_bits(dma_addr)); + mhi_write_reg(mhi_cntrl, base, BHI_IMGADDR_LOW, + lower_32_bits(dma_addr)); + mhi_write_reg(mhi_cntrl, base, BHI_IMGSIZE, size); + mhi_write_reg(mhi_cntrl, base, BHI_IMGTXDB, session_id); + read_unlock_bh(pm_lock); + + /* Wait for the image download to complete */ + ret = wait_event_timeout(mhi_cntrl->state_event, + MHI_PM_IN_ERROR_STATE(mhi_cntrl->pm_state) || + mhi_read_reg_field(mhi_cntrl, base, BHI_STATUS, + BHI_STATUS_MASK, BHI_STATUS_SHIFT, + &tx_status) || tx_status, + msecs_to_jiffies(mhi_cntrl->timeout_ms)); + if (MHI_PM_IN_ERROR_STATE(mhi_cntrl->pm_state)) + goto invalid_pm_state; + + if (tx_status == BHI_STATUS_ERROR) { + dev_err(dev, "Image transfer failed\n"); + read_lock_bh(pm_lock); + if (MHI_REG_ACCESS_VALID(mhi_cntrl->pm_state)) { + for (i = 0; error_reg[i].name; i++) { + ret = mhi_read_reg(mhi_cntrl, base, + error_reg[i].offset, &val); + if (ret) + break; + dev_err(dev, "Reg: %s value: 0x%x\n", + error_reg[i].name, val); + } + } + read_unlock_bh(pm_lock); + goto invalid_pm_state; + } + + return (!ret) ? -ETIMEDOUT : 0; + +invalid_pm_state: + + return -EIO; +} + +void mhi_free_bhie_table(struct mhi_controller *mhi_cntrl, + struct image_info *image_info) +{ + int i; + struct mhi_buf *mhi_buf = image_info->mhi_buf; + + for (i = 0; i < image_info->entries; i++, mhi_buf++) + mhi_free_coherent(mhi_cntrl, mhi_buf->len, mhi_buf->buf, + mhi_buf->dma_addr); + + kfree(image_info->mhi_buf); + kfree(image_info); +} + +int mhi_alloc_bhie_table(struct mhi_controller *mhi_cntrl, + struct image_info **image_info, + size_t alloc_size) +{ + size_t seg_size = mhi_cntrl->seg_len; + int segments = DIV_ROUND_UP(alloc_size, seg_size) + 1; + int i; + struct image_info *img_info; + struct mhi_buf *mhi_buf; + + img_info = kzalloc(sizeof(*img_info), GFP_KERNEL); + if (!img_info) + return -ENOMEM; + + /* Allocate memory for entries */ + img_info->mhi_buf = kcalloc(segments, sizeof(*img_info->mhi_buf), + GFP_KERNEL); + if (!img_info->mhi_buf) + goto error_alloc_mhi_buf; + + /* Allocate and populate vector table */ + mhi_buf = img_info->mhi_buf; + for (i = 0; i < segments; i++, mhi_buf++) { + size_t vec_size = seg_size; + + /* Vector table is the last entry */ + if (i == segments - 1) + vec_size = sizeof(struct bhi_vec_entry) * i; + + mhi_buf->len = vec_size; + mhi_buf->buf = mhi_alloc_coherent(mhi_cntrl, vec_size, + &mhi_buf->dma_addr, + GFP_KERNEL); + if (!mhi_buf->buf) + goto error_alloc_segment; + } + + img_info->bhi_vec = img_info->mhi_buf[segments - 1].buf; + img_info->entries = segments; + *image_info = img_info; + + return 0; + +error_alloc_segment: + for (--i, --mhi_buf; i >= 0; i--, mhi_buf--) + mhi_free_coherent(mhi_cntrl, mhi_buf->len, mhi_buf->buf, + mhi_buf->dma_addr); + +error_alloc_mhi_buf: + kfree(img_info); + + return -ENOMEM; +} + +static void mhi_firmware_copy(struct mhi_controller *mhi_cntrl, + const struct firmware *firmware, + struct image_info *img_info) +{ + size_t remainder = firmware->size; + size_t to_cpy; + const u8 *buf = firmware->data; + int i = 0; + struct mhi_buf *mhi_buf = img_info->mhi_buf; + struct bhi_vec_entry *bhi_vec = img_info->bhi_vec; + + while (remainder) { + to_cpy = min(remainder, mhi_buf->len); + memcpy(mhi_buf->buf, buf, to_cpy); + bhi_vec->dma_addr = mhi_buf->dma_addr; + bhi_vec->size = to_cpy; + + buf += to_cpy; + remainder -= to_cpy; + i++; + bhi_vec++; + mhi_buf++; + } +} + +void mhi_fw_load_handler(struct mhi_controller *mhi_cntrl) +{ + const struct firmware *firmware = NULL; + struct image_info *image_info; + struct device *dev = &mhi_cntrl->mhi_dev->dev; + const char *fw_name; + void *buf; + dma_addr_t dma_addr; + size_t size; + int i, ret; + + if (MHI_PM_IN_ERROR_STATE(mhi_cntrl->pm_state)) { + dev_err(dev, "Device MHI is not in valid state\n"); + return; + } + + /* save hardware info from BHI */ + ret = mhi_read_reg(mhi_cntrl, mhi_cntrl->bhi, BHI_SERIALNU, + &mhi_cntrl->serial_number); + if (ret) + dev_err(dev, "Could not capture serial number via BHI\n"); + + for (i = 0; i < ARRAY_SIZE(mhi_cntrl->oem_pk_hash); i++) { + ret = mhi_read_reg(mhi_cntrl, mhi_cntrl->bhi, BHI_OEMPKHASH(i), + &mhi_cntrl->oem_pk_hash[i]); + if (ret) { + dev_err(dev, "Could not capture OEM PK HASH via BHI\n"); + break; + } + } + + /* If device is in pass through, do reset to ready state transition */ + if (mhi_cntrl->ee == MHI_EE_PTHRU) + goto fw_load_ee_pthru; + + fw_name = (mhi_cntrl->ee == MHI_EE_EDL) ? + mhi_cntrl->edl_image : mhi_cntrl->fw_image; + + if (!fw_name || (mhi_cntrl->fbc_download && (!mhi_cntrl->sbl_size || + !mhi_cntrl->seg_len))) { + dev_err(dev, + "No firmware image defined or !sbl_size || !seg_len\n"); + return; + } + + ret = request_firmware(&firmware, fw_name, dev); + if (ret) { + dev_err(dev, "Error loading firmware: %d\n", ret); + return; + } + + size = (mhi_cntrl->fbc_download) ? mhi_cntrl->sbl_size : firmware->size; + + /* SBL size provided is maximum size, not necessarily the image size */ + if (size > firmware->size) + size = firmware->size; + + buf = mhi_alloc_coherent(mhi_cntrl, size, &dma_addr, GFP_KERNEL); + if (!buf) { + release_firmware(firmware); + return; + } + + /* Download SBL image */ + memcpy(buf, firmware->data, size); + ret = mhi_fw_load_sbl(mhi_cntrl, dma_addr, size); + mhi_free_coherent(mhi_cntrl, size, buf, dma_addr); + + if (!mhi_cntrl->fbc_download || ret || mhi_cntrl->ee == MHI_EE_EDL) + release_firmware(firmware); + + /* Error or in EDL mode, we're done */ + if (ret) { + dev_err(dev, "MHI did not load SBL, ret:%d\n", ret); + return; + } + + if (mhi_cntrl->ee == MHI_EE_EDL) + return; + + write_lock_irq(&mhi_cntrl->pm_lock); + mhi_cntrl->dev_state = MHI_STATE_RESET; + write_unlock_irq(&mhi_cntrl->pm_lock); + + /* + * If we're doing fbc, populate vector tables while + * device transitioning into MHI READY state + */ + if (mhi_cntrl->fbc_download) { + ret = mhi_alloc_bhie_table(mhi_cntrl, &mhi_cntrl->fbc_image, + firmware->size); + if (ret) + goto error_alloc_fw_table; + + /* Load the firmware into BHIE vec table */ + mhi_firmware_copy(mhi_cntrl, firmware, mhi_cntrl->fbc_image); + } + +fw_load_ee_pthru: + /* Transitioning into MHI RESET->READY state */ + ret = mhi_ready_state_transition(mhi_cntrl); + + if (!mhi_cntrl->fbc_download) + return; + + if (ret) { + dev_err(dev, "MHI did not enter READY state\n"); + goto error_read; + } + + /* Wait for the SBL event */ + ret = wait_event_timeout(mhi_cntrl->state_event, + mhi_cntrl->ee == MHI_EE_SBL || + MHI_PM_IN_ERROR_STATE(mhi_cntrl->pm_state), + msecs_to_jiffies(mhi_cntrl->timeout_ms)); + + if (!ret || MHI_PM_IN_ERROR_STATE(mhi_cntrl->pm_state)) { + dev_err(dev, "MHI did not enter SBL\n"); + goto error_read; + } + + /* Start full firmware image download */ + image_info = mhi_cntrl->fbc_image; + ret = mhi_fw_load_amss(mhi_cntrl, + /* Vector table is the last entry */ + &image_info->mhi_buf[image_info->entries - 1]); + if (ret) + dev_err(dev, "MHI did not load AMSS, ret:%d\n", ret); + + release_firmware(firmware); + + return; + +error_read: + mhi_free_bhie_table(mhi_cntrl, mhi_cntrl->fbc_image); + mhi_cntrl->fbc_image = NULL; + +error_alloc_fw_table: + release_firmware(firmware); +} only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/bus/mhi/core/debugfs.c +++ linux-oem-5.6-5.6.0/drivers/bus/mhi/core/debugfs.c @@ -0,0 +1,411 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Copyright (c) 2020, The Linux Foundation. All rights reserved. + * + */ + +#include +#include +#include +#include +#include +#include +#include "internal.h" + +static int mhi_debugfs_states_show(struct seq_file *m, void *d) +{ + struct mhi_controller *mhi_cntrl = m->private; + + /* states */ + seq_printf(m, "PM state: %s Device: %s MHI state: %s EE: %s wake: %s\n", + to_mhi_pm_state_str(mhi_cntrl->pm_state), + mhi_is_active(mhi_cntrl) ? "Active" : "Inactive", + TO_MHI_STATE_STR(mhi_cntrl->dev_state), + TO_MHI_EXEC_STR(mhi_cntrl->ee), + mhi_cntrl->wake_set ? "true" : "false"); + + /* counters */ + seq_printf(m, "M0: %u M2: %u M3: %u", mhi_cntrl->M0, mhi_cntrl->M2, + mhi_cntrl->M3); + + seq_printf(m, " device wake: %u pending packets: %u\n", + atomic_read(&mhi_cntrl->dev_wake), + atomic_read(&mhi_cntrl->pending_pkts)); + + return 0; +} + +static int mhi_debugfs_events_show(struct seq_file *m, void *d) +{ + struct mhi_controller *mhi_cntrl = m->private; + struct mhi_event *mhi_event; + struct mhi_event_ctxt *er_ctxt; + int i; + + if (!mhi_is_active(mhi_cntrl)) { + seq_puts(m, "Device not ready\n"); + return -ENODEV; + } + + er_ctxt = mhi_cntrl->mhi_ctxt->er_ctxt; + mhi_event = mhi_cntrl->mhi_event; + for (i = 0; i < mhi_cntrl->total_ev_rings; + i++, er_ctxt++, mhi_event++) { + struct mhi_ring *ring = &mhi_event->ring; + + if (mhi_event->offload_ev) { + seq_printf(m, "Index: %d is an offload event ring\n", + i); + continue; + } + + seq_printf(m, "Index: %d intmod count: %lu time: %lu", + i, (er_ctxt->intmod & EV_CTX_INTMODC_MASK) >> + EV_CTX_INTMODC_SHIFT, + (er_ctxt->intmod & EV_CTX_INTMODT_MASK) >> + EV_CTX_INTMODT_SHIFT); + + seq_printf(m, " base: 0x%0llx len: 0x%llx", er_ctxt->rbase, + er_ctxt->rlen); + + seq_printf(m, " rp: 0x%llx wp: 0x%llx", er_ctxt->rp, + er_ctxt->wp); + + seq_printf(m, " local rp: 0x%pK db: 0x%pad\n", ring->rp, + &mhi_event->db_cfg.db_val); + } + + return 0; +} + +static int mhi_debugfs_channels_show(struct seq_file *m, void *d) +{ + struct mhi_controller *mhi_cntrl = m->private; + struct mhi_chan *mhi_chan; + struct mhi_chan_ctxt *chan_ctxt; + int i; + + if (!mhi_is_active(mhi_cntrl)) { + seq_puts(m, "Device not ready\n"); + return -ENODEV; + } + + mhi_chan = mhi_cntrl->mhi_chan; + chan_ctxt = mhi_cntrl->mhi_ctxt->chan_ctxt; + for (i = 0; i < mhi_cntrl->max_chan; i++, chan_ctxt++, mhi_chan++) { + struct mhi_ring *ring = &mhi_chan->tre_ring; + + if (mhi_chan->offload_ch) { + seq_printf(m, "%s(%u) is an offload channel\n", + mhi_chan->name, mhi_chan->chan); + continue; + } + + if (!mhi_chan->mhi_dev) + continue; + + seq_printf(m, + "%s(%u) state: 0x%lx brstmode: 0x%lx pollcfg: 0x%lx", + mhi_chan->name, mhi_chan->chan, (chan_ctxt->chcfg & + CHAN_CTX_CHSTATE_MASK) >> CHAN_CTX_CHSTATE_SHIFT, + (chan_ctxt->chcfg & CHAN_CTX_BRSTMODE_MASK) >> + CHAN_CTX_BRSTMODE_SHIFT, (chan_ctxt->chcfg & + CHAN_CTX_POLLCFG_MASK) >> CHAN_CTX_POLLCFG_SHIFT); + + seq_printf(m, " type: 0x%x event ring: %u", chan_ctxt->chtype, + chan_ctxt->erindex); + + seq_printf(m, " base: 0x%llx len: 0x%llx rp: 0x%llx wp: 0x%llx", + chan_ctxt->rbase, chan_ctxt->rlen, chan_ctxt->rp, + chan_ctxt->wp); + + seq_printf(m, " local rp: 0x%pK local wp: 0x%pK db: 0x%pad\n", + ring->rp, ring->wp, + &mhi_chan->db_cfg.db_val); + } + + return 0; +} + +static int mhi_device_info_show(struct device *dev, void *data) +{ + struct mhi_device *mhi_dev; + + if (dev->bus != &mhi_bus_type) + return 0; + + mhi_dev = to_mhi_device(dev); + + seq_printf((struct seq_file *)data, "%s: type: %s dev_wake: %u", + mhi_dev->name, mhi_dev->dev_type ? "Controller" : "Transfer", + mhi_dev->dev_wake); + + /* for transfer device types only */ + if (mhi_dev->dev_type == MHI_DEVICE_XFER) + seq_printf((struct seq_file *)data, " channels: %u(UL)/%u(DL)", + mhi_dev->ul_chan_id, mhi_dev->dl_chan_id); + + seq_puts((struct seq_file *)data, "\n"); + + return 0; +} + +static int mhi_debugfs_devices_show(struct seq_file *m, void *d) +{ + struct mhi_controller *mhi_cntrl = m->private; + + if (!mhi_is_active(mhi_cntrl)) { + seq_puts(m, "Device not ready\n"); + return -ENODEV; + } + + device_for_each_child(mhi_cntrl->cntrl_dev, m, mhi_device_info_show); + + return 0; +} + +static int mhi_debugfs_regdump_show(struct seq_file *m, void *d) +{ + struct mhi_controller *mhi_cntrl = m->private; + enum mhi_state state; + enum mhi_ee_type ee; + int i, ret = -EIO; + u32 val; + void __iomem *mhi_base = mhi_cntrl->regs; + void __iomem *bhi_base = mhi_cntrl->bhi; + void __iomem *bhie_base = mhi_cntrl->bhie; + void __iomem *wake_db = mhi_cntrl->wake_db; + struct { + const char *name; + int offset; + void __iomem *base; + } regs[] = { + { "MHI_REGLEN", MHIREGLEN, mhi_base}, + { "MHI_VER", MHIVER, mhi_base}, + { "MHI_CFG", MHICFG, mhi_base}, + { "MHI_CTRL", MHICTRL, mhi_base}, + { "MHI_STATUS", MHISTATUS, mhi_base}, + { "MHI_WAKE_DB", 0, wake_db}, + { "BHI_EXECENV", BHI_EXECENV, bhi_base}, + { "BHI_STATUS", BHI_STATUS, bhi_base}, + { "BHI_ERRCODE", BHI_ERRCODE, bhi_base}, + { "BHI_ERRDBG1", BHI_ERRDBG1, bhi_base}, + { "BHI_ERRDBG2", BHI_ERRDBG2, bhi_base}, + { "BHI_ERRDBG3", BHI_ERRDBG3, bhi_base}, + { "BHIE_TXVEC_DB", BHIE_TXVECDB_OFFS, bhie_base}, + { "BHIE_TXVEC_STATUS", BHIE_TXVECSTATUS_OFFS, bhie_base}, + { "BHIE_RXVEC_DB", BHIE_RXVECDB_OFFS, bhie_base}, + { "BHIE_RXVEC_STATUS", BHIE_RXVECSTATUS_OFFS, bhie_base}, + { NULL }, + }; + + if (!MHI_REG_ACCESS_VALID(mhi_cntrl->pm_state)) + return ret; + + seq_printf(m, "Host PM state: %s Device state: %s EE: %s\n", + to_mhi_pm_state_str(mhi_cntrl->pm_state), + TO_MHI_STATE_STR(mhi_cntrl->dev_state), + TO_MHI_EXEC_STR(mhi_cntrl->ee)); + + state = mhi_get_mhi_state(mhi_cntrl); + ee = mhi_get_exec_env(mhi_cntrl); + seq_printf(m, "Device EE: %s state: %s\n", TO_MHI_EXEC_STR(ee), + TO_MHI_STATE_STR(state)); + + for (i = 0; regs[i].name; i++) { + if (!regs[i].base) + continue; + ret = mhi_read_reg(mhi_cntrl, regs[i].base, regs[i].offset, + &val); + if (ret) + continue; + + seq_printf(m, "%s: 0x%x\n", regs[i].name, val); + } + + return 0; +} + +static int mhi_debugfs_device_wake_show(struct seq_file *m, void *d) +{ + struct mhi_controller *mhi_cntrl = m->private; + struct mhi_device *mhi_dev = mhi_cntrl->mhi_dev; + + if (!mhi_is_active(mhi_cntrl)) { + seq_puts(m, "Device not ready\n"); + return -ENODEV; + } + + seq_printf(m, + "Wake count: %d\n%s\n", mhi_dev->dev_wake, + "Usage: echo get/put > device_wake to vote/unvote for M0"); + + return 0; +} + +static ssize_t mhi_debugfs_device_wake_write(struct file *file, + const char __user *ubuf, + size_t count, loff_t *ppos) +{ + struct seq_file *m = file->private_data; + struct mhi_controller *mhi_cntrl = m->private; + struct mhi_device *mhi_dev = mhi_cntrl->mhi_dev; + char buf[16]; + int ret = -EINVAL; + + if (copy_from_user(&buf, ubuf, min_t(size_t, sizeof(buf) - 1, count))) + return -EFAULT; + + if (!strncmp(buf, "get", 3)) { + ret = mhi_device_get_sync(mhi_dev); + } else if (!strncmp(buf, "put", 3)) { + mhi_device_put(mhi_dev); + ret = 0; + } + + return ret ? ret : count; +} + +static int mhi_debugfs_timeout_ms_show(struct seq_file *m, void *d) +{ + struct mhi_controller *mhi_cntrl = m->private; + + seq_printf(m, "%u ms\n", mhi_cntrl->timeout_ms); + + return 0; +} + +static ssize_t mhi_debugfs_timeout_ms_write(struct file *file, + const char __user *ubuf, + size_t count, loff_t *ppos) +{ + struct seq_file *m = file->private_data; + struct mhi_controller *mhi_cntrl = m->private; + u32 timeout_ms; + + if (kstrtou32_from_user(ubuf, count, 0, &timeout_ms)) + return -EINVAL; + + mhi_cntrl->timeout_ms = timeout_ms; + + return count; +} + +static int mhi_debugfs_states_open(struct inode *inode, struct file *fp) +{ + return single_open(fp, mhi_debugfs_states_show, inode->i_private); +} + +static int mhi_debugfs_events_open(struct inode *inode, struct file *fp) +{ + return single_open(fp, mhi_debugfs_events_show, inode->i_private); +} + +static int mhi_debugfs_channels_open(struct inode *inode, struct file *fp) +{ + return single_open(fp, mhi_debugfs_channels_show, inode->i_private); +} + +static int mhi_debugfs_devices_open(struct inode *inode, struct file *fp) +{ + return single_open(fp, mhi_debugfs_devices_show, inode->i_private); +} + +static int mhi_debugfs_regdump_open(struct inode *inode, struct file *fp) +{ + return single_open(fp, mhi_debugfs_regdump_show, inode->i_private); +} + +static int mhi_debugfs_device_wake_open(struct inode *inode, struct file *fp) +{ + return single_open(fp, mhi_debugfs_device_wake_show, inode->i_private); +} + +static int mhi_debugfs_timeout_ms_open(struct inode *inode, struct file *fp) +{ + return single_open(fp, mhi_debugfs_timeout_ms_show, inode->i_private); +} + +static const struct file_operations debugfs_states_fops = { + .open = mhi_debugfs_states_open, + .release = single_release, + .read = seq_read, +}; + +static const struct file_operations debugfs_events_fops = { + .open = mhi_debugfs_events_open, + .release = single_release, + .read = seq_read, +}; + +static const struct file_operations debugfs_channels_fops = { + .open = mhi_debugfs_channels_open, + .release = single_release, + .read = seq_read, +}; + +static const struct file_operations debugfs_devices_fops = { + .open = mhi_debugfs_devices_open, + .release = single_release, + .read = seq_read, +}; + +static const struct file_operations debugfs_regdump_fops = { + .open = mhi_debugfs_regdump_open, + .release = single_release, + .read = seq_read, +}; + +static const struct file_operations debugfs_device_wake_fops = { + .open = mhi_debugfs_device_wake_open, + .write = mhi_debugfs_device_wake_write, + .release = single_release, + .read = seq_read, +}; + +static const struct file_operations debugfs_timeout_ms_fops = { + .open = mhi_debugfs_timeout_ms_open, + .write = mhi_debugfs_timeout_ms_write, + .release = single_release, + .read = seq_read, +}; + +static struct dentry *mhi_debugfs_root; + +void mhi_create_debugfs(struct mhi_controller *mhi_cntrl) +{ + mhi_cntrl->debugfs_dentry = + debugfs_create_dir(dev_name(mhi_cntrl->cntrl_dev), + mhi_debugfs_root); + + debugfs_create_file("states", 0444, mhi_cntrl->debugfs_dentry, + mhi_cntrl, &debugfs_states_fops); + debugfs_create_file("events", 0444, mhi_cntrl->debugfs_dentry, + mhi_cntrl, &debugfs_events_fops); + debugfs_create_file("channels", 0444, mhi_cntrl->debugfs_dentry, + mhi_cntrl, &debugfs_channels_fops); + debugfs_create_file("devices", 0444, mhi_cntrl->debugfs_dentry, + mhi_cntrl, &debugfs_devices_fops); + debugfs_create_file("regdump", 0444, mhi_cntrl->debugfs_dentry, + mhi_cntrl, &debugfs_regdump_fops); + debugfs_create_file("device_wake", 0644, mhi_cntrl->debugfs_dentry, + mhi_cntrl, &debugfs_device_wake_fops); + debugfs_create_file("timeout_ms", 0644, mhi_cntrl->debugfs_dentry, + mhi_cntrl, &debugfs_timeout_ms_fops); +} + +void mhi_destroy_debugfs(struct mhi_controller *mhi_cntrl) +{ + debugfs_remove_recursive(mhi_cntrl->debugfs_dentry); + mhi_cntrl->debugfs_dentry = NULL; +} + +void mhi_debugfs_init(void) +{ + mhi_debugfs_root = debugfs_create_dir(mhi_bus_type.name, NULL); +} + +void mhi_debugfs_exit(void) +{ + debugfs_remove_recursive(mhi_debugfs_root); +} only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/bus/mhi/core/init.c +++ linux-oem-5.6-5.6.0/drivers/bus/mhi/core/init.c @@ -0,0 +1,1363 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Copyright (c) 2018-2020, The Linux Foundation. All rights reserved. + * + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "internal.h" + +const char * const mhi_ee_str[MHI_EE_MAX] = { + [MHI_EE_PBL] = "PBL", + [MHI_EE_SBL] = "SBL", + [MHI_EE_AMSS] = "AMSS", + [MHI_EE_RDDM] = "RDDM", + [MHI_EE_WFW] = "WFW", + [MHI_EE_PTHRU] = "PASS THRU", + [MHI_EE_EDL] = "EDL", + [MHI_EE_DISABLE_TRANSITION] = "DISABLE", + [MHI_EE_NOT_SUPPORTED] = "NOT SUPPORTED", +}; + +const char * const dev_state_tran_str[DEV_ST_TRANSITION_MAX] = { + [DEV_ST_TRANSITION_PBL] = "PBL", + [DEV_ST_TRANSITION_READY] = "READY", + [DEV_ST_TRANSITION_SBL] = "SBL", + [DEV_ST_TRANSITION_MISSION_MODE] = "MISSION_MODE", + [DEV_ST_TRANSITION_SYS_ERR] = "SYS_ERR", + [DEV_ST_TRANSITION_DISABLE] = "DISABLE", +}; + +const char * const mhi_state_str[MHI_STATE_MAX] = { + [MHI_STATE_RESET] = "RESET", + [MHI_STATE_READY] = "READY", + [MHI_STATE_M0] = "M0", + [MHI_STATE_M1] = "M1", + [MHI_STATE_M2] = "M2", + [MHI_STATE_M3] = "M3", + [MHI_STATE_M3_FAST] = "M3_FAST", + [MHI_STATE_BHI] = "BHI", + [MHI_STATE_SYS_ERR] = "SYS_ERR", +}; + +static const char * const mhi_pm_state_str[] = { + [MHI_PM_STATE_DISABLE] = "DISABLE", + [MHI_PM_STATE_POR] = "POR", + [MHI_PM_STATE_M0] = "M0", + [MHI_PM_STATE_M2] = "M2", + [MHI_PM_STATE_M3_ENTER] = "M?->M3", + [MHI_PM_STATE_M3] = "M3", + [MHI_PM_STATE_M3_EXIT] = "M3->M0", + [MHI_PM_STATE_FW_DL_ERR] = "FW DL Error", + [MHI_PM_STATE_SYS_ERR_DETECT] = "SYS_ERR Detect", + [MHI_PM_STATE_SYS_ERR_PROCESS] = "SYS_ERR Process", + [MHI_PM_STATE_SHUTDOWN_PROCESS] = "SHUTDOWN Process", + [MHI_PM_STATE_LD_ERR_FATAL_DETECT] = "LD or Error Fatal Detect", +}; + +const char *to_mhi_pm_state_str(enum mhi_pm_state state) +{ + int index = find_last_bit((unsigned long *)&state, 32); + + if (index >= ARRAY_SIZE(mhi_pm_state_str)) + return "Invalid State"; + + return mhi_pm_state_str[index]; +} + +static ssize_t serial_number_show(struct device *dev, + struct device_attribute *attr, + char *buf) +{ + struct mhi_device *mhi_dev = to_mhi_device(dev); + struct mhi_controller *mhi_cntrl = mhi_dev->mhi_cntrl; + + return snprintf(buf, PAGE_SIZE, "Serial Number: %u\n", + mhi_cntrl->serial_number); +} +static DEVICE_ATTR_RO(serial_number); + +static ssize_t oem_pk_hash_show(struct device *dev, + struct device_attribute *attr, + char *buf) +{ + struct mhi_device *mhi_dev = to_mhi_device(dev); + struct mhi_controller *mhi_cntrl = mhi_dev->mhi_cntrl; + int i, cnt = 0; + + for (i = 0; i < ARRAY_SIZE(mhi_cntrl->oem_pk_hash); i++) + cnt += snprintf(buf + cnt, PAGE_SIZE - cnt, + "OEMPKHASH[%d]: 0x%x\n", i, + mhi_cntrl->oem_pk_hash[i]); + + return cnt; +} +static DEVICE_ATTR_RO(oem_pk_hash); + +static struct attribute *mhi_dev_attrs[] = { + &dev_attr_serial_number.attr, + &dev_attr_oem_pk_hash.attr, + NULL, +}; +ATTRIBUTE_GROUPS(mhi_dev); + +/* MHI protocol requires the transfer ring to be aligned with ring length */ +static int mhi_alloc_aligned_ring(struct mhi_controller *mhi_cntrl, + struct mhi_ring *ring, + u64 len) +{ + ring->alloc_size = len + (len - 1); + ring->pre_aligned = mhi_alloc_coherent(mhi_cntrl, ring->alloc_size, + &ring->dma_handle, GFP_KERNEL); + if (!ring->pre_aligned) + return -ENOMEM; + + ring->iommu_base = (ring->dma_handle + (len - 1)) & ~(len - 1); + ring->base = ring->pre_aligned + (ring->iommu_base - ring->dma_handle); + + return 0; +} + +void mhi_deinit_free_irq(struct mhi_controller *mhi_cntrl) +{ + int i; + struct mhi_event *mhi_event = mhi_cntrl->mhi_event; + + for (i = 0; i < mhi_cntrl->total_ev_rings; i++, mhi_event++) { + if (mhi_event->offload_ev) + continue; + + free_irq(mhi_cntrl->irq[mhi_event->irq], mhi_event); + } + + free_irq(mhi_cntrl->irq[0], mhi_cntrl); +} + +int mhi_init_irq_setup(struct mhi_controller *mhi_cntrl) +{ + struct mhi_event *mhi_event = mhi_cntrl->mhi_event; + struct device *dev = &mhi_cntrl->mhi_dev->dev; + int i, ret; + + /* Setup BHI_INTVEC IRQ */ + ret = request_threaded_irq(mhi_cntrl->irq[0], mhi_intvec_handler, + mhi_intvec_threaded_handler, + IRQF_SHARED | IRQF_NOBALANCING, + "bhi", mhi_cntrl); + if (ret) + return ret; + + for (i = 0; i < mhi_cntrl->total_ev_rings; i++, mhi_event++) { + if (mhi_event->offload_ev) + continue; + + if (mhi_event->irq >= mhi_cntrl->nr_irqs) { + dev_err(dev, "irq %d not available for event ring\n", + mhi_event->irq); + ret = -EINVAL; + goto error_request; + } + + ret = request_irq(mhi_cntrl->irq[mhi_event->irq], + mhi_irq_handler, + IRQF_SHARED | IRQF_NOBALANCING, + "mhi", mhi_event); + if (ret) { + dev_err(dev, "Error requesting irq:%d for ev:%d\n", + mhi_cntrl->irq[mhi_event->irq], i); + goto error_request; + } + } + + return 0; + +error_request: + for (--i, --mhi_event; i >= 0; i--, mhi_event--) { + if (mhi_event->offload_ev) + continue; + + free_irq(mhi_cntrl->irq[mhi_event->irq], mhi_event); + } + free_irq(mhi_cntrl->irq[0], mhi_cntrl); + + return ret; +} + +void mhi_deinit_dev_ctxt(struct mhi_controller *mhi_cntrl) +{ + int i; + struct mhi_ctxt *mhi_ctxt = mhi_cntrl->mhi_ctxt; + struct mhi_cmd *mhi_cmd; + struct mhi_event *mhi_event; + struct mhi_ring *ring; + + mhi_cmd = mhi_cntrl->mhi_cmd; + for (i = 0; i < NR_OF_CMD_RINGS; i++, mhi_cmd++) { + ring = &mhi_cmd->ring; + mhi_free_coherent(mhi_cntrl, ring->alloc_size, + ring->pre_aligned, ring->dma_handle); + ring->base = NULL; + ring->iommu_base = 0; + } + + mhi_free_coherent(mhi_cntrl, + sizeof(*mhi_ctxt->cmd_ctxt) * NR_OF_CMD_RINGS, + mhi_ctxt->cmd_ctxt, mhi_ctxt->cmd_ctxt_addr); + + mhi_event = mhi_cntrl->mhi_event; + for (i = 0; i < mhi_cntrl->total_ev_rings; i++, mhi_event++) { + if (mhi_event->offload_ev) + continue; + + ring = &mhi_event->ring; + mhi_free_coherent(mhi_cntrl, ring->alloc_size, + ring->pre_aligned, ring->dma_handle); + ring->base = NULL; + ring->iommu_base = 0; + } + + mhi_free_coherent(mhi_cntrl, sizeof(*mhi_ctxt->er_ctxt) * + mhi_cntrl->total_ev_rings, mhi_ctxt->er_ctxt, + mhi_ctxt->er_ctxt_addr); + + mhi_free_coherent(mhi_cntrl, sizeof(*mhi_ctxt->chan_ctxt) * + mhi_cntrl->max_chan, mhi_ctxt->chan_ctxt, + mhi_ctxt->chan_ctxt_addr); + + kfree(mhi_ctxt); + mhi_cntrl->mhi_ctxt = NULL; +} + +int mhi_init_dev_ctxt(struct mhi_controller *mhi_cntrl) +{ + struct mhi_ctxt *mhi_ctxt; + struct mhi_chan_ctxt *chan_ctxt; + struct mhi_event_ctxt *er_ctxt; + struct mhi_cmd_ctxt *cmd_ctxt; + struct mhi_chan *mhi_chan; + struct mhi_event *mhi_event; + struct mhi_cmd *mhi_cmd; + u32 tmp; + int ret = -ENOMEM, i; + + atomic_set(&mhi_cntrl->dev_wake, 0); + atomic_set(&mhi_cntrl->pending_pkts, 0); + + mhi_ctxt = kzalloc(sizeof(*mhi_ctxt), GFP_KERNEL); + if (!mhi_ctxt) + return -ENOMEM; + + /* Setup channel ctxt */ + mhi_ctxt->chan_ctxt = mhi_alloc_coherent(mhi_cntrl, + sizeof(*mhi_ctxt->chan_ctxt) * + mhi_cntrl->max_chan, + &mhi_ctxt->chan_ctxt_addr, + GFP_KERNEL); + if (!mhi_ctxt->chan_ctxt) + goto error_alloc_chan_ctxt; + + mhi_chan = mhi_cntrl->mhi_chan; + chan_ctxt = mhi_ctxt->chan_ctxt; + for (i = 0; i < mhi_cntrl->max_chan; i++, chan_ctxt++, mhi_chan++) { + /* Skip if it is an offload channel */ + if (mhi_chan->offload_ch) + continue; + + tmp = chan_ctxt->chcfg; + tmp &= ~CHAN_CTX_CHSTATE_MASK; + tmp |= (MHI_CH_STATE_DISABLED << CHAN_CTX_CHSTATE_SHIFT); + tmp &= ~CHAN_CTX_BRSTMODE_MASK; + tmp |= (mhi_chan->db_cfg.brstmode << CHAN_CTX_BRSTMODE_SHIFT); + tmp &= ~CHAN_CTX_POLLCFG_MASK; + tmp |= (mhi_chan->db_cfg.pollcfg << CHAN_CTX_POLLCFG_SHIFT); + chan_ctxt->chcfg = tmp; + + chan_ctxt->chtype = mhi_chan->type; + chan_ctxt->erindex = mhi_chan->er_index; + + mhi_chan->ch_state = MHI_CH_STATE_DISABLED; + mhi_chan->tre_ring.db_addr = (void __iomem *)&chan_ctxt->wp; + } + + /* Setup event context */ + mhi_ctxt->er_ctxt = mhi_alloc_coherent(mhi_cntrl, + sizeof(*mhi_ctxt->er_ctxt) * + mhi_cntrl->total_ev_rings, + &mhi_ctxt->er_ctxt_addr, + GFP_KERNEL); + if (!mhi_ctxt->er_ctxt) + goto error_alloc_er_ctxt; + + er_ctxt = mhi_ctxt->er_ctxt; + mhi_event = mhi_cntrl->mhi_event; + for (i = 0; i < mhi_cntrl->total_ev_rings; i++, er_ctxt++, + mhi_event++) { + struct mhi_ring *ring = &mhi_event->ring; + + /* Skip if it is an offload event */ + if (mhi_event->offload_ev) + continue; + + tmp = er_ctxt->intmod; + tmp &= ~EV_CTX_INTMODC_MASK; + tmp &= ~EV_CTX_INTMODT_MASK; + tmp |= (mhi_event->intmod << EV_CTX_INTMODT_SHIFT); + er_ctxt->intmod = tmp; + + er_ctxt->ertype = MHI_ER_TYPE_VALID; + er_ctxt->msivec = mhi_event->irq; + mhi_event->db_cfg.db_mode = true; + + ring->el_size = sizeof(struct mhi_tre); + ring->len = ring->el_size * ring->elements; + ret = mhi_alloc_aligned_ring(mhi_cntrl, ring, ring->len); + if (ret) + goto error_alloc_er; + + /* + * If the read pointer equals to the write pointer, then the + * ring is empty + */ + ring->rp = ring->wp = ring->base; + er_ctxt->rbase = ring->iommu_base; + er_ctxt->rp = er_ctxt->wp = er_ctxt->rbase; + er_ctxt->rlen = ring->len; + ring->ctxt_wp = &er_ctxt->wp; + } + + /* Setup cmd context */ + ret = -ENOMEM; + mhi_ctxt->cmd_ctxt = mhi_alloc_coherent(mhi_cntrl, + sizeof(*mhi_ctxt->cmd_ctxt) * + NR_OF_CMD_RINGS, + &mhi_ctxt->cmd_ctxt_addr, + GFP_KERNEL); + if (!mhi_ctxt->cmd_ctxt) + goto error_alloc_er; + + mhi_cmd = mhi_cntrl->mhi_cmd; + cmd_ctxt = mhi_ctxt->cmd_ctxt; + for (i = 0; i < NR_OF_CMD_RINGS; i++, mhi_cmd++, cmd_ctxt++) { + struct mhi_ring *ring = &mhi_cmd->ring; + + ring->el_size = sizeof(struct mhi_tre); + ring->elements = CMD_EL_PER_RING; + ring->len = ring->el_size * ring->elements; + ret = mhi_alloc_aligned_ring(mhi_cntrl, ring, ring->len); + if (ret) + goto error_alloc_cmd; + + ring->rp = ring->wp = ring->base; + cmd_ctxt->rbase = ring->iommu_base; + cmd_ctxt->rp = cmd_ctxt->wp = cmd_ctxt->rbase; + cmd_ctxt->rlen = ring->len; + ring->ctxt_wp = &cmd_ctxt->wp; + } + + mhi_cntrl->mhi_ctxt = mhi_ctxt; + + return 0; + +error_alloc_cmd: + for (--i, --mhi_cmd; i >= 0; i--, mhi_cmd--) { + struct mhi_ring *ring = &mhi_cmd->ring; + + mhi_free_coherent(mhi_cntrl, ring->alloc_size, + ring->pre_aligned, ring->dma_handle); + } + mhi_free_coherent(mhi_cntrl, + sizeof(*mhi_ctxt->cmd_ctxt) * NR_OF_CMD_RINGS, + mhi_ctxt->cmd_ctxt, mhi_ctxt->cmd_ctxt_addr); + i = mhi_cntrl->total_ev_rings; + mhi_event = mhi_cntrl->mhi_event + i; + +error_alloc_er: + for (--i, --mhi_event; i >= 0; i--, mhi_event--) { + struct mhi_ring *ring = &mhi_event->ring; + + if (mhi_event->offload_ev) + continue; + + mhi_free_coherent(mhi_cntrl, ring->alloc_size, + ring->pre_aligned, ring->dma_handle); + } + mhi_free_coherent(mhi_cntrl, sizeof(*mhi_ctxt->er_ctxt) * + mhi_cntrl->total_ev_rings, mhi_ctxt->er_ctxt, + mhi_ctxt->er_ctxt_addr); + +error_alloc_er_ctxt: + mhi_free_coherent(mhi_cntrl, sizeof(*mhi_ctxt->chan_ctxt) * + mhi_cntrl->max_chan, mhi_ctxt->chan_ctxt, + mhi_ctxt->chan_ctxt_addr); + +error_alloc_chan_ctxt: + kfree(mhi_ctxt); + + return ret; +} + +int mhi_init_mmio(struct mhi_controller *mhi_cntrl) +{ + u32 val; + int i, ret; + struct mhi_chan *mhi_chan; + struct mhi_event *mhi_event; + void __iomem *base = mhi_cntrl->regs; + struct device *dev = &mhi_cntrl->mhi_dev->dev; + struct { + u32 offset; + u32 mask; + u32 shift; + u32 val; + } reg_info[] = { + { + CCABAP_HIGHER, U32_MAX, 0, + upper_32_bits(mhi_cntrl->mhi_ctxt->chan_ctxt_addr), + }, + { + CCABAP_LOWER, U32_MAX, 0, + lower_32_bits(mhi_cntrl->mhi_ctxt->chan_ctxt_addr), + }, + { + ECABAP_HIGHER, U32_MAX, 0, + upper_32_bits(mhi_cntrl->mhi_ctxt->er_ctxt_addr), + }, + { + ECABAP_LOWER, U32_MAX, 0, + lower_32_bits(mhi_cntrl->mhi_ctxt->er_ctxt_addr), + }, + { + CRCBAP_HIGHER, U32_MAX, 0, + upper_32_bits(mhi_cntrl->mhi_ctxt->cmd_ctxt_addr), + }, + { + CRCBAP_LOWER, U32_MAX, 0, + lower_32_bits(mhi_cntrl->mhi_ctxt->cmd_ctxt_addr), + }, + { + MHICFG, MHICFG_NER_MASK, MHICFG_NER_SHIFT, + mhi_cntrl->total_ev_rings, + }, + { + MHICFG, MHICFG_NHWER_MASK, MHICFG_NHWER_SHIFT, + mhi_cntrl->hw_ev_rings, + }, + { + MHICTRLBASE_HIGHER, U32_MAX, 0, + upper_32_bits(mhi_cntrl->iova_start), + }, + { + MHICTRLBASE_LOWER, U32_MAX, 0, + lower_32_bits(mhi_cntrl->iova_start), + }, + { + MHIDATABASE_HIGHER, U32_MAX, 0, + upper_32_bits(mhi_cntrl->iova_start), + }, + { + MHIDATABASE_LOWER, U32_MAX, 0, + lower_32_bits(mhi_cntrl->iova_start), + }, + { + MHICTRLLIMIT_HIGHER, U32_MAX, 0, + upper_32_bits(mhi_cntrl->iova_stop), + }, + { + MHICTRLLIMIT_LOWER, U32_MAX, 0, + lower_32_bits(mhi_cntrl->iova_stop), + }, + { + MHIDATALIMIT_HIGHER, U32_MAX, 0, + upper_32_bits(mhi_cntrl->iova_stop), + }, + { + MHIDATALIMIT_LOWER, U32_MAX, 0, + lower_32_bits(mhi_cntrl->iova_stop), + }, + { 0, 0, 0 } + }; + + dev_dbg(dev, "Initializing MHI registers\n"); + + /* Read channel db offset */ + ret = mhi_read_reg_field(mhi_cntrl, base, CHDBOFF, CHDBOFF_CHDBOFF_MASK, + CHDBOFF_CHDBOFF_SHIFT, &val); + if (ret) { + dev_err(dev, "Unable to read CHDBOFF register\n"); + return -EIO; + } + + /* Setup wake db */ + mhi_cntrl->wake_db = base + val + (8 * MHI_DEV_WAKE_DB); + mhi_write_reg(mhi_cntrl, mhi_cntrl->wake_db, 4, 0); + mhi_write_reg(mhi_cntrl, mhi_cntrl->wake_db, 0, 0); + mhi_cntrl->wake_set = false; + + /* Setup channel db address for each channel in tre_ring */ + mhi_chan = mhi_cntrl->mhi_chan; + for (i = 0; i < mhi_cntrl->max_chan; i++, val += 8, mhi_chan++) + mhi_chan->tre_ring.db_addr = base + val; + + /* Read event ring db offset */ + ret = mhi_read_reg_field(mhi_cntrl, base, ERDBOFF, ERDBOFF_ERDBOFF_MASK, + ERDBOFF_ERDBOFF_SHIFT, &val); + if (ret) { + dev_err(dev, "Unable to read ERDBOFF register\n"); + return -EIO; + } + + /* Setup event db address for each ev_ring */ + mhi_event = mhi_cntrl->mhi_event; + for (i = 0; i < mhi_cntrl->total_ev_rings; i++, val += 8, mhi_event++) { + if (mhi_event->offload_ev) + continue; + + mhi_event->ring.db_addr = base + val; + } + + /* Setup DB register for primary CMD rings */ + mhi_cntrl->mhi_cmd[PRIMARY_CMD_RING].ring.db_addr = base + CRDB_LOWER; + + /* Write to MMIO registers */ + for (i = 0; reg_info[i].offset; i++) + mhi_write_reg_field(mhi_cntrl, base, reg_info[i].offset, + reg_info[i].mask, reg_info[i].shift, + reg_info[i].val); + + return 0; +} + +void mhi_deinit_chan_ctxt(struct mhi_controller *mhi_cntrl, + struct mhi_chan *mhi_chan) +{ + struct mhi_ring *buf_ring; + struct mhi_ring *tre_ring; + struct mhi_chan_ctxt *chan_ctxt; + + buf_ring = &mhi_chan->buf_ring; + tre_ring = &mhi_chan->tre_ring; + chan_ctxt = &mhi_cntrl->mhi_ctxt->chan_ctxt[mhi_chan->chan]; + + mhi_free_coherent(mhi_cntrl, tre_ring->alloc_size, + tre_ring->pre_aligned, tre_ring->dma_handle); + vfree(buf_ring->base); + + buf_ring->base = tre_ring->base = NULL; + chan_ctxt->rbase = 0; +} + +int mhi_init_chan_ctxt(struct mhi_controller *mhi_cntrl, + struct mhi_chan *mhi_chan) +{ + struct mhi_ring *buf_ring; + struct mhi_ring *tre_ring; + struct mhi_chan_ctxt *chan_ctxt; + u32 tmp; + int ret; + + buf_ring = &mhi_chan->buf_ring; + tre_ring = &mhi_chan->tre_ring; + tre_ring->el_size = sizeof(struct mhi_tre); + tre_ring->len = tre_ring->el_size * tre_ring->elements; + chan_ctxt = &mhi_cntrl->mhi_ctxt->chan_ctxt[mhi_chan->chan]; + ret = mhi_alloc_aligned_ring(mhi_cntrl, tre_ring, tre_ring->len); + if (ret) + return -ENOMEM; + + buf_ring->el_size = sizeof(struct mhi_buf_info); + buf_ring->len = buf_ring->el_size * buf_ring->elements; + buf_ring->base = vzalloc(buf_ring->len); + + if (!buf_ring->base) { + mhi_free_coherent(mhi_cntrl, tre_ring->alloc_size, + tre_ring->pre_aligned, tre_ring->dma_handle); + return -ENOMEM; + } + + tmp = chan_ctxt->chcfg; + tmp &= ~CHAN_CTX_CHSTATE_MASK; + tmp |= (MHI_CH_STATE_ENABLED << CHAN_CTX_CHSTATE_SHIFT); + chan_ctxt->chcfg = tmp; + + chan_ctxt->rbase = tre_ring->iommu_base; + chan_ctxt->rp = chan_ctxt->wp = chan_ctxt->rbase; + chan_ctxt->rlen = tre_ring->len; + tre_ring->ctxt_wp = &chan_ctxt->wp; + + tre_ring->rp = tre_ring->wp = tre_ring->base; + buf_ring->rp = buf_ring->wp = buf_ring->base; + mhi_chan->db_cfg.db_mode = 1; + + /* Update to all cores */ + smp_wmb(); + + return 0; +} + +static int parse_ev_cfg(struct mhi_controller *mhi_cntrl, + const struct mhi_controller_config *config) +{ + struct mhi_event *mhi_event; + const struct mhi_event_config *event_cfg; + struct device *dev = &mhi_cntrl->mhi_dev->dev; + int i, num; + + num = config->num_events; + mhi_cntrl->total_ev_rings = num; + mhi_cntrl->mhi_event = kcalloc(num, sizeof(*mhi_cntrl->mhi_event), + GFP_KERNEL); + if (!mhi_cntrl->mhi_event) + return -ENOMEM; + + /* Populate event ring */ + mhi_event = mhi_cntrl->mhi_event; + for (i = 0; i < num; i++) { + event_cfg = &config->event_cfg[i]; + + mhi_event->er_index = i; + mhi_event->ring.elements = event_cfg->num_elements; + mhi_event->intmod = event_cfg->irq_moderation_ms; + mhi_event->irq = event_cfg->irq; + + if (event_cfg->channel != U32_MAX) { + /* This event ring has a dedicated channel */ + mhi_event->chan = event_cfg->channel; + if (mhi_event->chan >= mhi_cntrl->max_chan) { + dev_err(dev, + "Event Ring channel not available\n"); + goto error_ev_cfg; + } + + mhi_event->mhi_chan = + &mhi_cntrl->mhi_chan[mhi_event->chan]; + } + + /* Priority is fixed to 1 for now */ + mhi_event->priority = 1; + + mhi_event->db_cfg.brstmode = event_cfg->mode; + if (MHI_INVALID_BRSTMODE(mhi_event->db_cfg.brstmode)) + goto error_ev_cfg; + + if (mhi_event->db_cfg.brstmode == MHI_DB_BRST_ENABLE) + mhi_event->db_cfg.process_db = mhi_db_brstmode; + else + mhi_event->db_cfg.process_db = mhi_db_brstmode_disable; + + mhi_event->data_type = event_cfg->data_type; + + switch (mhi_event->data_type) { + case MHI_ER_DATA: + mhi_event->process_event = mhi_process_data_event_ring; + break; + case MHI_ER_CTRL: + mhi_event->process_event = mhi_process_ctrl_ev_ring; + break; + default: + dev_err(dev, "Event Ring type not supported\n"); + goto error_ev_cfg; + } + + mhi_event->hw_ring = event_cfg->hardware_event; + if (mhi_event->hw_ring) + mhi_cntrl->hw_ev_rings++; + else + mhi_cntrl->sw_ev_rings++; + + mhi_event->cl_manage = event_cfg->client_managed; + mhi_event->offload_ev = event_cfg->offload_channel; + mhi_event++; + } + + return 0; + +error_ev_cfg: + + kfree(mhi_cntrl->mhi_event); + return -EINVAL; +} + +static int parse_ch_cfg(struct mhi_controller *mhi_cntrl, + const struct mhi_controller_config *config) +{ + const struct mhi_channel_config *ch_cfg; + struct device *dev = &mhi_cntrl->mhi_dev->dev; + int i; + u32 chan; + + mhi_cntrl->max_chan = config->max_channels; + + /* + * The allocation of MHI channels can exceed 32KB in some scenarios, + * so to avoid any memory possible allocation failures, vzalloc is + * used here + */ + mhi_cntrl->mhi_chan = vzalloc(mhi_cntrl->max_chan * + sizeof(*mhi_cntrl->mhi_chan)); + if (!mhi_cntrl->mhi_chan) + return -ENOMEM; + + INIT_LIST_HEAD(&mhi_cntrl->lpm_chans); + + /* Populate channel configurations */ + for (i = 0; i < config->num_channels; i++) { + struct mhi_chan *mhi_chan; + + ch_cfg = &config->ch_cfg[i]; + + chan = ch_cfg->num; + if (chan >= mhi_cntrl->max_chan) { + dev_err(dev, "Channel %d not available\n", chan); + goto error_chan_cfg; + } + + mhi_chan = &mhi_cntrl->mhi_chan[chan]; + mhi_chan->name = ch_cfg->name; + mhi_chan->chan = chan; + + mhi_chan->tre_ring.elements = ch_cfg->num_elements; + if (!mhi_chan->tre_ring.elements) + goto error_chan_cfg; + + /* + * For some channels, local ring length should be bigger than + * the transfer ring length due to internal logical channels + * in device. So host can queue much more buffers than transfer + * ring length. Example, RSC channels should have a larger local + * channel length than transfer ring length. + */ + mhi_chan->buf_ring.elements = ch_cfg->local_elements; + if (!mhi_chan->buf_ring.elements) + mhi_chan->buf_ring.elements = mhi_chan->tre_ring.elements; + mhi_chan->er_index = ch_cfg->event_ring; + mhi_chan->dir = ch_cfg->dir; + + /* + * For most channels, chtype is identical to channel directions. + * So, if it is not defined then assign channel direction to + * chtype + */ + mhi_chan->type = ch_cfg->type; + if (!mhi_chan->type) + mhi_chan->type = (enum mhi_ch_type)mhi_chan->dir; + + mhi_chan->ee_mask = ch_cfg->ee_mask; + mhi_chan->db_cfg.pollcfg = ch_cfg->pollcfg; + mhi_chan->lpm_notify = ch_cfg->lpm_notify; + mhi_chan->offload_ch = ch_cfg->offload_channel; + mhi_chan->db_cfg.reset_req = ch_cfg->doorbell_mode_switch; + mhi_chan->pre_alloc = ch_cfg->auto_queue; + mhi_chan->auto_start = ch_cfg->auto_start; + + /* + * If MHI host allocates buffers, then the channel direction + * should be DMA_FROM_DEVICE + */ + if (mhi_chan->pre_alloc && mhi_chan->dir != DMA_FROM_DEVICE) { + dev_err(dev, "Invalid channel configuration\n"); + goto error_chan_cfg; + } + + /* + * Bi-directional and direction less channel must be an + * offload channel + */ + if ((mhi_chan->dir == DMA_BIDIRECTIONAL || + mhi_chan->dir == DMA_NONE) && !mhi_chan->offload_ch) { + dev_err(dev, "Invalid channel configuration\n"); + goto error_chan_cfg; + } + + if (!mhi_chan->offload_ch) { + mhi_chan->db_cfg.brstmode = ch_cfg->doorbell; + if (MHI_INVALID_BRSTMODE(mhi_chan->db_cfg.brstmode)) { + dev_err(dev, "Invalid Door bell mode\n"); + goto error_chan_cfg; + } + } + + if (mhi_chan->db_cfg.brstmode == MHI_DB_BRST_ENABLE) + mhi_chan->db_cfg.process_db = mhi_db_brstmode; + else + mhi_chan->db_cfg.process_db = mhi_db_brstmode_disable; + + mhi_chan->configured = true; + + if (mhi_chan->lpm_notify) + list_add_tail(&mhi_chan->node, &mhi_cntrl->lpm_chans); + } + + return 0; + +error_chan_cfg: + vfree(mhi_cntrl->mhi_chan); + + return -EINVAL; +} + +static int parse_config(struct mhi_controller *mhi_cntrl, + const struct mhi_controller_config *config) +{ + int ret; + + /* Parse MHI channel configuration */ + ret = parse_ch_cfg(mhi_cntrl, config); + if (ret) + return ret; + + /* Parse MHI event configuration */ + ret = parse_ev_cfg(mhi_cntrl, config); + if (ret) + goto error_ev_cfg; + + mhi_cntrl->timeout_ms = config->timeout_ms; + if (!mhi_cntrl->timeout_ms) + mhi_cntrl->timeout_ms = MHI_TIMEOUT_MS; + + mhi_cntrl->bounce_buf = config->use_bounce_buf; + mhi_cntrl->buffer_len = config->buf_len; + if (!mhi_cntrl->buffer_len) + mhi_cntrl->buffer_len = MHI_MAX_MTU; + + /* By default, host is allowed to ring DB in both M0 and M2 states */ + mhi_cntrl->db_access = MHI_PM_M0 | MHI_PM_M2; + if (config->m2_no_db) + mhi_cntrl->db_access &= ~MHI_PM_M2; + + return 0; + +error_ev_cfg: + vfree(mhi_cntrl->mhi_chan); + + return ret; +} + +int mhi_register_controller(struct mhi_controller *mhi_cntrl, + const struct mhi_controller_config *config) +{ + struct mhi_event *mhi_event; + struct mhi_chan *mhi_chan; + struct mhi_cmd *mhi_cmd; + struct mhi_device *mhi_dev; + u32 soc_info; + int ret, i; + + if (!mhi_cntrl) + return -EINVAL; + + if (!mhi_cntrl->runtime_get || !mhi_cntrl->runtime_put || + !mhi_cntrl->status_cb || !mhi_cntrl->read_reg || + !mhi_cntrl->write_reg) + return -EINVAL; + + ret = parse_config(mhi_cntrl, config); + if (ret) + return -EINVAL; + + mhi_cntrl->mhi_cmd = kcalloc(NR_OF_CMD_RINGS, + sizeof(*mhi_cntrl->mhi_cmd), GFP_KERNEL); + if (!mhi_cntrl->mhi_cmd) { + ret = -ENOMEM; + goto error_alloc_cmd; + } + + INIT_LIST_HEAD(&mhi_cntrl->transition_list); + mutex_init(&mhi_cntrl->pm_mutex); + rwlock_init(&mhi_cntrl->pm_lock); + spin_lock_init(&mhi_cntrl->transition_lock); + spin_lock_init(&mhi_cntrl->wlock); + INIT_WORK(&mhi_cntrl->st_worker, mhi_pm_st_worker); + init_waitqueue_head(&mhi_cntrl->state_event); + + mhi_cmd = mhi_cntrl->mhi_cmd; + for (i = 0; i < NR_OF_CMD_RINGS; i++, mhi_cmd++) + spin_lock_init(&mhi_cmd->lock); + + mhi_event = mhi_cntrl->mhi_event; + for (i = 0; i < mhi_cntrl->total_ev_rings; i++, mhi_event++) { + /* Skip for offload events */ + if (mhi_event->offload_ev) + continue; + + mhi_event->mhi_cntrl = mhi_cntrl; + spin_lock_init(&mhi_event->lock); + if (mhi_event->data_type == MHI_ER_CTRL) + tasklet_init(&mhi_event->task, mhi_ctrl_ev_task, + (ulong)mhi_event); + else + tasklet_init(&mhi_event->task, mhi_ev_task, + (ulong)mhi_event); + } + + mhi_chan = mhi_cntrl->mhi_chan; + for (i = 0; i < mhi_cntrl->max_chan; i++, mhi_chan++) { + mutex_init(&mhi_chan->mutex); + init_completion(&mhi_chan->completion); + rwlock_init(&mhi_chan->lock); + + /* used in setting bei field of TRE */ + mhi_event = &mhi_cntrl->mhi_event[mhi_chan->er_index]; + mhi_chan->intmod = mhi_event->intmod; + } + + if (mhi_cntrl->bounce_buf) { + mhi_cntrl->map_single = mhi_map_single_use_bb; + mhi_cntrl->unmap_single = mhi_unmap_single_use_bb; + } else { + mhi_cntrl->map_single = mhi_map_single_no_bb; + mhi_cntrl->unmap_single = mhi_unmap_single_no_bb; + } + + /* Read the MHI device info */ + ret = mhi_read_reg(mhi_cntrl, mhi_cntrl->regs, + SOC_HW_VERSION_OFFS, &soc_info); + if (ret) + goto error_alloc_dev; + + mhi_cntrl->family_number = (soc_info & SOC_HW_VERSION_FAM_NUM_BMSK) >> + SOC_HW_VERSION_FAM_NUM_SHFT; + mhi_cntrl->device_number = (soc_info & SOC_HW_VERSION_DEV_NUM_BMSK) >> + SOC_HW_VERSION_DEV_NUM_SHFT; + mhi_cntrl->major_version = (soc_info & SOC_HW_VERSION_MAJOR_VER_BMSK) >> + SOC_HW_VERSION_MAJOR_VER_SHFT; + mhi_cntrl->minor_version = (soc_info & SOC_HW_VERSION_MINOR_VER_BMSK) >> + SOC_HW_VERSION_MINOR_VER_SHFT; + + /* Register controller with MHI bus */ + mhi_dev = mhi_alloc_device(mhi_cntrl); + if (IS_ERR(mhi_dev)) { + dev_err(mhi_cntrl->cntrl_dev, "Failed to allocate MHI device\n"); + ret = PTR_ERR(mhi_dev); + goto error_alloc_dev; + } + + mhi_dev->dev_type = MHI_DEVICE_CONTROLLER; + mhi_dev->mhi_cntrl = mhi_cntrl; + dev_set_name(&mhi_dev->dev, "%s", dev_name(mhi_cntrl->cntrl_dev)); + mhi_dev->name = dev_name(mhi_cntrl->cntrl_dev); + + /* Init wakeup source */ + device_init_wakeup(&mhi_dev->dev, true); + + ret = device_add(&mhi_dev->dev); + if (ret) + goto error_add_dev; + + mhi_cntrl->mhi_dev = mhi_dev; + + mhi_create_debugfs(mhi_cntrl); + + return 0; + +error_add_dev: + put_device(&mhi_dev->dev); + +error_alloc_dev: + kfree(mhi_cntrl->mhi_cmd); + +error_alloc_cmd: + vfree(mhi_cntrl->mhi_chan); + kfree(mhi_cntrl->mhi_event); + + return ret; +} +EXPORT_SYMBOL_GPL(mhi_register_controller); + +void mhi_unregister_controller(struct mhi_controller *mhi_cntrl) +{ + struct mhi_device *mhi_dev = mhi_cntrl->mhi_dev; + struct mhi_chan *mhi_chan = mhi_cntrl->mhi_chan; + unsigned int i; + + mhi_destroy_debugfs(mhi_cntrl); + + kfree(mhi_cntrl->mhi_cmd); + kfree(mhi_cntrl->mhi_event); + + /* Drop the references to MHI devices created for channels */ + for (i = 0; i < mhi_cntrl->max_chan; i++, mhi_chan++) { + if (!mhi_chan->mhi_dev) + continue; + + put_device(&mhi_chan->mhi_dev->dev); + } + vfree(mhi_cntrl->mhi_chan); + + device_del(&mhi_dev->dev); + put_device(&mhi_dev->dev); +} +EXPORT_SYMBOL_GPL(mhi_unregister_controller); + +struct mhi_controller *mhi_alloc_controller(void) +{ + struct mhi_controller *mhi_cntrl; + + mhi_cntrl = kzalloc(sizeof(*mhi_cntrl), GFP_KERNEL); + + return mhi_cntrl; +} +EXPORT_SYMBOL_GPL(mhi_alloc_controller); + +void mhi_free_controller(struct mhi_controller *mhi_cntrl) +{ + kfree(mhi_cntrl); +} +EXPORT_SYMBOL_GPL(mhi_free_controller); + +int mhi_prepare_for_power_up(struct mhi_controller *mhi_cntrl) +{ + struct device *dev = &mhi_cntrl->mhi_dev->dev; + u32 bhie_off; + int ret; + + mutex_lock(&mhi_cntrl->pm_mutex); + + ret = mhi_init_dev_ctxt(mhi_cntrl); + if (ret) + goto error_dev_ctxt; + + /* + * Allocate RDDM table if specified, this table is for debugging purpose + */ + if (mhi_cntrl->rddm_size) { + mhi_alloc_bhie_table(mhi_cntrl, &mhi_cntrl->rddm_image, + mhi_cntrl->rddm_size); + + /* + * This controller supports RDDM, so we need to manually clear + * BHIE RX registers since POR values are undefined. + */ + ret = mhi_read_reg(mhi_cntrl, mhi_cntrl->regs, BHIEOFF, + &bhie_off); + if (ret) { + dev_err(dev, "Error getting BHIE offset\n"); + goto bhie_error; + } + + mhi_cntrl->bhie = mhi_cntrl->regs + bhie_off; + memset_io(mhi_cntrl->bhie + BHIE_RXVECADDR_LOW_OFFS, + 0, BHIE_RXVECSTATUS_OFFS - BHIE_RXVECADDR_LOW_OFFS + + 4); + + if (mhi_cntrl->rddm_image) + mhi_rddm_prepare(mhi_cntrl, mhi_cntrl->rddm_image); + } + + mhi_cntrl->pre_init = true; + + mutex_unlock(&mhi_cntrl->pm_mutex); + + return 0; + +bhie_error: + if (mhi_cntrl->rddm_image) { + mhi_free_bhie_table(mhi_cntrl, mhi_cntrl->rddm_image); + mhi_cntrl->rddm_image = NULL; + } + +error_dev_ctxt: + mutex_unlock(&mhi_cntrl->pm_mutex); + + return ret; +} +EXPORT_SYMBOL_GPL(mhi_prepare_for_power_up); + +void mhi_unprepare_after_power_down(struct mhi_controller *mhi_cntrl) +{ + if (mhi_cntrl->fbc_image) { + mhi_free_bhie_table(mhi_cntrl, mhi_cntrl->fbc_image); + mhi_cntrl->fbc_image = NULL; + } + + if (mhi_cntrl->rddm_image) { + mhi_free_bhie_table(mhi_cntrl, mhi_cntrl->rddm_image); + mhi_cntrl->rddm_image = NULL; + } + + mhi_deinit_dev_ctxt(mhi_cntrl); + mhi_cntrl->pre_init = false; +} +EXPORT_SYMBOL_GPL(mhi_unprepare_after_power_down); + +static void mhi_release_device(struct device *dev) +{ + struct mhi_device *mhi_dev = to_mhi_device(dev); + + /* + * We need to set the mhi_chan->mhi_dev to NULL here since the MHI + * devices for the channels will only get created if the mhi_dev + * associated with it is NULL. This scenario will happen during the + * controller suspend and resume. + */ + if (mhi_dev->ul_chan) + mhi_dev->ul_chan->mhi_dev = NULL; + + if (mhi_dev->dl_chan) + mhi_dev->dl_chan->mhi_dev = NULL; + + kfree(mhi_dev); +} + +struct mhi_device *mhi_alloc_device(struct mhi_controller *mhi_cntrl) +{ + struct mhi_device *mhi_dev; + struct device *dev; + + mhi_dev = kzalloc(sizeof(*mhi_dev), GFP_KERNEL); + if (!mhi_dev) + return ERR_PTR(-ENOMEM); + + dev = &mhi_dev->dev; + device_initialize(dev); + dev->bus = &mhi_bus_type; + dev->release = mhi_release_device; + dev->parent = mhi_cntrl->cntrl_dev; + mhi_dev->mhi_cntrl = mhi_cntrl; + mhi_dev->dev_wake = 0; + + return mhi_dev; +} + +static int mhi_driver_probe(struct device *dev) +{ + struct mhi_device *mhi_dev = to_mhi_device(dev); + struct mhi_controller *mhi_cntrl = mhi_dev->mhi_cntrl; + struct device_driver *drv = dev->driver; + struct mhi_driver *mhi_drv = to_mhi_driver(drv); + struct mhi_event *mhi_event; + struct mhi_chan *ul_chan = mhi_dev->ul_chan; + struct mhi_chan *dl_chan = mhi_dev->dl_chan; + int ret; + + /* Bring device out of LPM */ + ret = mhi_device_get_sync(mhi_dev); + if (ret) + return ret; + + ret = -EINVAL; + + if (ul_chan) { + /* + * If channel supports LPM notifications then status_cb should + * be provided + */ + if (ul_chan->lpm_notify && !mhi_drv->status_cb) + goto exit_probe; + + /* For non-offload channels then xfer_cb should be provided */ + if (!ul_chan->offload_ch && !mhi_drv->ul_xfer_cb) + goto exit_probe; + + ul_chan->xfer_cb = mhi_drv->ul_xfer_cb; + if (ul_chan->auto_start) { + ret = mhi_prepare_channel(mhi_cntrl, ul_chan); + if (ret) + goto exit_probe; + } + } + + ret = -EINVAL; + if (dl_chan) { + /* + * If channel supports LPM notifications then status_cb should + * be provided + */ + if (dl_chan->lpm_notify && !mhi_drv->status_cb) + goto exit_probe; + + /* For non-offload channels then xfer_cb should be provided */ + if (!dl_chan->offload_ch && !mhi_drv->dl_xfer_cb) + goto exit_probe; + + mhi_event = &mhi_cntrl->mhi_event[dl_chan->er_index]; + + /* + * If the channel event ring is managed by client, then + * status_cb must be provided so that the framework can + * notify pending data + */ + if (mhi_event->cl_manage && !mhi_drv->status_cb) + goto exit_probe; + + dl_chan->xfer_cb = mhi_drv->dl_xfer_cb; + } + + /* Call the user provided probe function */ + ret = mhi_drv->probe(mhi_dev, mhi_dev->id); + if (ret) + goto exit_probe; + + if (dl_chan && dl_chan->auto_start) + mhi_prepare_channel(mhi_cntrl, dl_chan); + + mhi_device_put(mhi_dev); + + return ret; + +exit_probe: + mhi_unprepare_from_transfer(mhi_dev); + + mhi_device_put(mhi_dev); + + return ret; +} + +static int mhi_driver_remove(struct device *dev) +{ + struct mhi_device *mhi_dev = to_mhi_device(dev); + struct mhi_driver *mhi_drv = to_mhi_driver(dev->driver); + struct mhi_controller *mhi_cntrl = mhi_dev->mhi_cntrl; + struct mhi_chan *mhi_chan; + enum mhi_ch_state ch_state[] = { + MHI_CH_STATE_DISABLED, + MHI_CH_STATE_DISABLED + }; + int dir; + + /* Skip if it is a controller device */ + if (mhi_dev->dev_type == MHI_DEVICE_CONTROLLER) + return 0; + + /* Reset both channels */ + for (dir = 0; dir < 2; dir++) { + mhi_chan = dir ? mhi_dev->ul_chan : mhi_dev->dl_chan; + + if (!mhi_chan) + continue; + + /* Wake all threads waiting for completion */ + write_lock_irq(&mhi_chan->lock); + mhi_chan->ccs = MHI_EV_CC_INVALID; + complete_all(&mhi_chan->completion); + write_unlock_irq(&mhi_chan->lock); + + /* Set the channel state to disabled */ + mutex_lock(&mhi_chan->mutex); + write_lock_irq(&mhi_chan->lock); + ch_state[dir] = mhi_chan->ch_state; + mhi_chan->ch_state = MHI_CH_STATE_SUSPENDED; + write_unlock_irq(&mhi_chan->lock); + + /* Reset the non-offload channel */ + if (!mhi_chan->offload_ch) + mhi_reset_chan(mhi_cntrl, mhi_chan); + + mutex_unlock(&mhi_chan->mutex); + } + + mhi_drv->remove(mhi_dev); + + /* De-init channel if it was enabled */ + for (dir = 0; dir < 2; dir++) { + mhi_chan = dir ? mhi_dev->ul_chan : mhi_dev->dl_chan; + + if (!mhi_chan) + continue; + + mutex_lock(&mhi_chan->mutex); + + if (ch_state[dir] == MHI_CH_STATE_ENABLED && + !mhi_chan->offload_ch) + mhi_deinit_chan_ctxt(mhi_cntrl, mhi_chan); + + mhi_chan->ch_state = MHI_CH_STATE_DISABLED; + + mutex_unlock(&mhi_chan->mutex); + } + + read_lock_bh(&mhi_cntrl->pm_lock); + while (mhi_dev->dev_wake) + mhi_device_put(mhi_dev); + read_unlock_bh(&mhi_cntrl->pm_lock); + + return 0; +} + +int __mhi_driver_register(struct mhi_driver *mhi_drv, struct module *owner) +{ + struct device_driver *driver = &mhi_drv->driver; + + if (!mhi_drv->probe || !mhi_drv->remove) + return -EINVAL; + + driver->bus = &mhi_bus_type; + driver->owner = owner; + driver->probe = mhi_driver_probe; + driver->remove = mhi_driver_remove; + + return driver_register(driver); +} +EXPORT_SYMBOL_GPL(__mhi_driver_register); + +void mhi_driver_unregister(struct mhi_driver *mhi_drv) +{ + driver_unregister(&mhi_drv->driver); +} +EXPORT_SYMBOL_GPL(mhi_driver_unregister); + +static int mhi_uevent(struct device *dev, struct kobj_uevent_env *env) +{ + struct mhi_device *mhi_dev = to_mhi_device(dev); + + return add_uevent_var(env, "MODALIAS=" MHI_DEVICE_MODALIAS_FMT, + mhi_dev->name); +} + +static int mhi_match(struct device *dev, struct device_driver *drv) +{ + struct mhi_device *mhi_dev = to_mhi_device(dev); + struct mhi_driver *mhi_drv = to_mhi_driver(drv); + const struct mhi_device_id *id; + + /* + * If the device is a controller type then there is no client driver + * associated with it + */ + if (mhi_dev->dev_type == MHI_DEVICE_CONTROLLER) + return 0; + + for (id = mhi_drv->id_table; id->chan[0]; id++) + if (!strcmp(mhi_dev->name, id->chan)) { + mhi_dev->id = id; + return 1; + } + + return 0; +}; + +struct bus_type mhi_bus_type = { + .name = "mhi", + .dev_name = "mhi", + .match = mhi_match, + .uevent = mhi_uevent, + .dev_groups = mhi_dev_groups, +}; + +static int __init mhi_init(void) +{ + mhi_debugfs_init(); + return bus_register(&mhi_bus_type); +} + +static void __exit mhi_exit(void) +{ + mhi_debugfs_exit(); + bus_unregister(&mhi_bus_type); +} + +postcore_initcall(mhi_init); +module_exit(mhi_exit); + +MODULE_LICENSE("GPL v2"); +MODULE_DESCRIPTION("MHI Host Interface"); only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/bus/mhi/core/internal.h +++ linux-oem-5.6-5.6.0/drivers/bus/mhi/core/internal.h @@ -0,0 +1,722 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +/* + * Copyright (c) 2018-2020, The Linux Foundation. All rights reserved. + * + */ + +#ifndef _MHI_INT_H +#define _MHI_INT_H + +#include + +extern struct bus_type mhi_bus_type; + +#define MHIREGLEN (0x0) +#define MHIREGLEN_MHIREGLEN_MASK (0xFFFFFFFF) +#define MHIREGLEN_MHIREGLEN_SHIFT (0) + +#define MHIVER (0x8) +#define MHIVER_MHIVER_MASK (0xFFFFFFFF) +#define MHIVER_MHIVER_SHIFT (0) + +#define MHICFG (0x10) +#define MHICFG_NHWER_MASK (0xFF000000) +#define MHICFG_NHWER_SHIFT (24) +#define MHICFG_NER_MASK (0xFF0000) +#define MHICFG_NER_SHIFT (16) +#define MHICFG_NHWCH_MASK (0xFF00) +#define MHICFG_NHWCH_SHIFT (8) +#define MHICFG_NCH_MASK (0xFF) +#define MHICFG_NCH_SHIFT (0) + +#define CHDBOFF (0x18) +#define CHDBOFF_CHDBOFF_MASK (0xFFFFFFFF) +#define CHDBOFF_CHDBOFF_SHIFT (0) + +#define ERDBOFF (0x20) +#define ERDBOFF_ERDBOFF_MASK (0xFFFFFFFF) +#define ERDBOFF_ERDBOFF_SHIFT (0) + +#define BHIOFF (0x28) +#define BHIOFF_BHIOFF_MASK (0xFFFFFFFF) +#define BHIOFF_BHIOFF_SHIFT (0) + +#define BHIEOFF (0x2C) +#define BHIEOFF_BHIEOFF_MASK (0xFFFFFFFF) +#define BHIEOFF_BHIEOFF_SHIFT (0) + +#define DEBUGOFF (0x30) +#define DEBUGOFF_DEBUGOFF_MASK (0xFFFFFFFF) +#define DEBUGOFF_DEBUGOFF_SHIFT (0) + +#define MHICTRL (0x38) +#define MHICTRL_MHISTATE_MASK (0x0000FF00) +#define MHICTRL_MHISTATE_SHIFT (8) +#define MHICTRL_RESET_MASK (0x2) +#define MHICTRL_RESET_SHIFT (1) + +#define MHISTATUS (0x48) +#define MHISTATUS_MHISTATE_MASK (0x0000FF00) +#define MHISTATUS_MHISTATE_SHIFT (8) +#define MHISTATUS_SYSERR_MASK (0x4) +#define MHISTATUS_SYSERR_SHIFT (2) +#define MHISTATUS_READY_MASK (0x1) +#define MHISTATUS_READY_SHIFT (0) + +#define CCABAP_LOWER (0x58) +#define CCABAP_LOWER_CCABAP_LOWER_MASK (0xFFFFFFFF) +#define CCABAP_LOWER_CCABAP_LOWER_SHIFT (0) + +#define CCABAP_HIGHER (0x5C) +#define CCABAP_HIGHER_CCABAP_HIGHER_MASK (0xFFFFFFFF) +#define CCABAP_HIGHER_CCABAP_HIGHER_SHIFT (0) + +#define ECABAP_LOWER (0x60) +#define ECABAP_LOWER_ECABAP_LOWER_MASK (0xFFFFFFFF) +#define ECABAP_LOWER_ECABAP_LOWER_SHIFT (0) + +#define ECABAP_HIGHER (0x64) +#define ECABAP_HIGHER_ECABAP_HIGHER_MASK (0xFFFFFFFF) +#define ECABAP_HIGHER_ECABAP_HIGHER_SHIFT (0) + +#define CRCBAP_LOWER (0x68) +#define CRCBAP_LOWER_CRCBAP_LOWER_MASK (0xFFFFFFFF) +#define CRCBAP_LOWER_CRCBAP_LOWER_SHIFT (0) + +#define CRCBAP_HIGHER (0x6C) +#define CRCBAP_HIGHER_CRCBAP_HIGHER_MASK (0xFFFFFFFF) +#define CRCBAP_HIGHER_CRCBAP_HIGHER_SHIFT (0) + +#define CRDB_LOWER (0x70) +#define CRDB_LOWER_CRDB_LOWER_MASK (0xFFFFFFFF) +#define CRDB_LOWER_CRDB_LOWER_SHIFT (0) + +#define CRDB_HIGHER (0x74) +#define CRDB_HIGHER_CRDB_HIGHER_MASK (0xFFFFFFFF) +#define CRDB_HIGHER_CRDB_HIGHER_SHIFT (0) + +#define MHICTRLBASE_LOWER (0x80) +#define MHICTRLBASE_LOWER_MHICTRLBASE_LOWER_MASK (0xFFFFFFFF) +#define MHICTRLBASE_LOWER_MHICTRLBASE_LOWER_SHIFT (0) + +#define MHICTRLBASE_HIGHER (0x84) +#define MHICTRLBASE_HIGHER_MHICTRLBASE_HIGHER_MASK (0xFFFFFFFF) +#define MHICTRLBASE_HIGHER_MHICTRLBASE_HIGHER_SHIFT (0) + +#define MHICTRLLIMIT_LOWER (0x88) +#define MHICTRLLIMIT_LOWER_MHICTRLLIMIT_LOWER_MASK (0xFFFFFFFF) +#define MHICTRLLIMIT_LOWER_MHICTRLLIMIT_LOWER_SHIFT (0) + +#define MHICTRLLIMIT_HIGHER (0x8C) +#define MHICTRLLIMIT_HIGHER_MHICTRLLIMIT_HIGHER_MASK (0xFFFFFFFF) +#define MHICTRLLIMIT_HIGHER_MHICTRLLIMIT_HIGHER_SHIFT (0) + +#define MHIDATABASE_LOWER (0x98) +#define MHIDATABASE_LOWER_MHIDATABASE_LOWER_MASK (0xFFFFFFFF) +#define MHIDATABASE_LOWER_MHIDATABASE_LOWER_SHIFT (0) + +#define MHIDATABASE_HIGHER (0x9C) +#define MHIDATABASE_HIGHER_MHIDATABASE_HIGHER_MASK (0xFFFFFFFF) +#define MHIDATABASE_HIGHER_MHIDATABASE_HIGHER_SHIFT (0) + +#define MHIDATALIMIT_LOWER (0xA0) +#define MHIDATALIMIT_LOWER_MHIDATALIMIT_LOWER_MASK (0xFFFFFFFF) +#define MHIDATALIMIT_LOWER_MHIDATALIMIT_LOWER_SHIFT (0) + +#define MHIDATALIMIT_HIGHER (0xA4) +#define MHIDATALIMIT_HIGHER_MHIDATALIMIT_HIGHER_MASK (0xFFFFFFFF) +#define MHIDATALIMIT_HIGHER_MHIDATALIMIT_HIGHER_SHIFT (0) + +/* Host request register */ +#define MHI_SOC_RESET_REQ_OFFSET (0xB0) +#define MHI_SOC_RESET_REQ BIT(0) + +/* MHI BHI offfsets */ +#define BHI_BHIVERSION_MINOR (0x00) +#define BHI_BHIVERSION_MAJOR (0x04) +#define BHI_IMGADDR_LOW (0x08) +#define BHI_IMGADDR_HIGH (0x0C) +#define BHI_IMGSIZE (0x10) +#define BHI_RSVD1 (0x14) +#define BHI_IMGTXDB (0x18) +#define BHI_TXDB_SEQNUM_BMSK (0x3FFFFFFF) +#define BHI_TXDB_SEQNUM_SHFT (0) +#define BHI_RSVD2 (0x1C) +#define BHI_INTVEC (0x20) +#define BHI_RSVD3 (0x24) +#define BHI_EXECENV (0x28) +#define BHI_STATUS (0x2C) +#define BHI_ERRCODE (0x30) +#define BHI_ERRDBG1 (0x34) +#define BHI_ERRDBG2 (0x38) +#define BHI_ERRDBG3 (0x3C) +#define BHI_SERIALNU (0x40) +#define BHI_SBLANTIROLLVER (0x44) +#define BHI_NUMSEG (0x48) +#define BHI_MSMHWID(n) (0x4C + (0x4 * n)) +#define BHI_OEMPKHASH(n) (0x64 + (0x4 * n)) +#define BHI_RSVD5 (0xC4) +#define BHI_STATUS_MASK (0xC0000000) +#define BHI_STATUS_SHIFT (30) +#define BHI_STATUS_ERROR (3) +#define BHI_STATUS_SUCCESS (2) +#define BHI_STATUS_RESET (0) + +/* MHI BHIE offsets */ +#define BHIE_MSMSOCID_OFFS (0x0000) +#define BHIE_TXVECADDR_LOW_OFFS (0x002C) +#define BHIE_TXVECADDR_HIGH_OFFS (0x0030) +#define BHIE_TXVECSIZE_OFFS (0x0034) +#define BHIE_TXVECDB_OFFS (0x003C) +#define BHIE_TXVECDB_SEQNUM_BMSK (0x3FFFFFFF) +#define BHIE_TXVECDB_SEQNUM_SHFT (0) +#define BHIE_TXVECSTATUS_OFFS (0x0044) +#define BHIE_TXVECSTATUS_SEQNUM_BMSK (0x3FFFFFFF) +#define BHIE_TXVECSTATUS_SEQNUM_SHFT (0) +#define BHIE_TXVECSTATUS_STATUS_BMSK (0xC0000000) +#define BHIE_TXVECSTATUS_STATUS_SHFT (30) +#define BHIE_TXVECSTATUS_STATUS_RESET (0x00) +#define BHIE_TXVECSTATUS_STATUS_XFER_COMPL (0x02) +#define BHIE_TXVECSTATUS_STATUS_ERROR (0x03) +#define BHIE_RXVECADDR_LOW_OFFS (0x0060) +#define BHIE_RXVECADDR_HIGH_OFFS (0x0064) +#define BHIE_RXVECSIZE_OFFS (0x0068) +#define BHIE_RXVECDB_OFFS (0x0070) +#define BHIE_RXVECDB_SEQNUM_BMSK (0x3FFFFFFF) +#define BHIE_RXVECDB_SEQNUM_SHFT (0) +#define BHIE_RXVECSTATUS_OFFS (0x0078) +#define BHIE_RXVECSTATUS_SEQNUM_BMSK (0x3FFFFFFF) +#define BHIE_RXVECSTATUS_SEQNUM_SHFT (0) +#define BHIE_RXVECSTATUS_STATUS_BMSK (0xC0000000) +#define BHIE_RXVECSTATUS_STATUS_SHFT (30) +#define BHIE_RXVECSTATUS_STATUS_RESET (0x00) +#define BHIE_RXVECSTATUS_STATUS_XFER_COMPL (0x02) +#define BHIE_RXVECSTATUS_STATUS_ERROR (0x03) + +#define SOC_HW_VERSION_OFFS (0x224) +#define SOC_HW_VERSION_FAM_NUM_BMSK (0xF0000000) +#define SOC_HW_VERSION_FAM_NUM_SHFT (28) +#define SOC_HW_VERSION_DEV_NUM_BMSK (0x0FFF0000) +#define SOC_HW_VERSION_DEV_NUM_SHFT (16) +#define SOC_HW_VERSION_MAJOR_VER_BMSK (0x0000FF00) +#define SOC_HW_VERSION_MAJOR_VER_SHFT (8) +#define SOC_HW_VERSION_MINOR_VER_BMSK (0x000000FF) +#define SOC_HW_VERSION_MINOR_VER_SHFT (0) + +#define EV_CTX_RESERVED_MASK GENMASK(7, 0) +#define EV_CTX_INTMODC_MASK GENMASK(15, 8) +#define EV_CTX_INTMODC_SHIFT 8 +#define EV_CTX_INTMODT_MASK GENMASK(31, 16) +#define EV_CTX_INTMODT_SHIFT 16 +struct mhi_event_ctxt { + __u32 intmod; + __u32 ertype; + __u32 msivec; + + __u64 rbase __packed __aligned(4); + __u64 rlen __packed __aligned(4); + __u64 rp __packed __aligned(4); + __u64 wp __packed __aligned(4); +}; + +#define CHAN_CTX_CHSTATE_MASK GENMASK(7, 0) +#define CHAN_CTX_CHSTATE_SHIFT 0 +#define CHAN_CTX_BRSTMODE_MASK GENMASK(9, 8) +#define CHAN_CTX_BRSTMODE_SHIFT 8 +#define CHAN_CTX_POLLCFG_MASK GENMASK(15, 10) +#define CHAN_CTX_POLLCFG_SHIFT 10 +#define CHAN_CTX_RESERVED_MASK GENMASK(31, 16) +struct mhi_chan_ctxt { + __u32 chcfg; + __u32 chtype; + __u32 erindex; + + __u64 rbase __packed __aligned(4); + __u64 rlen __packed __aligned(4); + __u64 rp __packed __aligned(4); + __u64 wp __packed __aligned(4); +}; + +struct mhi_cmd_ctxt { + __u32 reserved0; + __u32 reserved1; + __u32 reserved2; + + __u64 rbase __packed __aligned(4); + __u64 rlen __packed __aligned(4); + __u64 rp __packed __aligned(4); + __u64 wp __packed __aligned(4); +}; + +struct mhi_ctxt { + struct mhi_event_ctxt *er_ctxt; + struct mhi_chan_ctxt *chan_ctxt; + struct mhi_cmd_ctxt *cmd_ctxt; + dma_addr_t er_ctxt_addr; + dma_addr_t chan_ctxt_addr; + dma_addr_t cmd_ctxt_addr; +}; + +struct mhi_tre { + u64 ptr; + u32 dword[2]; +}; + +struct bhi_vec_entry { + u64 dma_addr; + u64 size; +}; + +enum mhi_cmd_type { + MHI_CMD_NOP = 1, + MHI_CMD_RESET_CHAN = 16, + MHI_CMD_STOP_CHAN = 17, + MHI_CMD_START_CHAN = 18, +}; + +/* No operation command */ +#define MHI_TRE_CMD_NOOP_PTR (0) +#define MHI_TRE_CMD_NOOP_DWORD0 (0) +#define MHI_TRE_CMD_NOOP_DWORD1 (MHI_CMD_NOP << 16) + +/* Channel reset command */ +#define MHI_TRE_CMD_RESET_PTR (0) +#define MHI_TRE_CMD_RESET_DWORD0 (0) +#define MHI_TRE_CMD_RESET_DWORD1(chid) ((chid << 24) | \ + (MHI_CMD_RESET_CHAN << 16)) + +/* Channel stop command */ +#define MHI_TRE_CMD_STOP_PTR (0) +#define MHI_TRE_CMD_STOP_DWORD0 (0) +#define MHI_TRE_CMD_STOP_DWORD1(chid) ((chid << 24) | \ + (MHI_CMD_STOP_CHAN << 16)) + +/* Channel start command */ +#define MHI_TRE_CMD_START_PTR (0) +#define MHI_TRE_CMD_START_DWORD0 (0) +#define MHI_TRE_CMD_START_DWORD1(chid) ((chid << 24) | \ + (MHI_CMD_START_CHAN << 16)) + +#define MHI_TRE_GET_CMD_CHID(tre) (((tre)->dword[1] >> 24) & 0xFF) +#define MHI_TRE_GET_CMD_TYPE(tre) (((tre)->dword[1] >> 16) & 0xFF) + +/* Event descriptor macros */ +#define MHI_TRE_EV_PTR(ptr) (ptr) +#define MHI_TRE_EV_DWORD0(code, len) ((code << 24) | len) +#define MHI_TRE_EV_DWORD1(chid, type) ((chid << 24) | (type << 16)) +#define MHI_TRE_GET_EV_PTR(tre) ((tre)->ptr) +#define MHI_TRE_GET_EV_CODE(tre) (((tre)->dword[0] >> 24) & 0xFF) +#define MHI_TRE_GET_EV_LEN(tre) ((tre)->dword[0] & 0xFFFF) +#define MHI_TRE_GET_EV_CHID(tre) (((tre)->dword[1] >> 24) & 0xFF) +#define MHI_TRE_GET_EV_TYPE(tre) (((tre)->dword[1] >> 16) & 0xFF) +#define MHI_TRE_GET_EV_STATE(tre) (((tre)->dword[0] >> 24) & 0xFF) +#define MHI_TRE_GET_EV_EXECENV(tre) (((tre)->dword[0] >> 24) & 0xFF) +#define MHI_TRE_GET_EV_SEQ(tre) ((tre)->dword[0]) +#define MHI_TRE_GET_EV_TIME(tre) ((tre)->ptr) +#define MHI_TRE_GET_EV_COOKIE(tre) lower_32_bits((tre)->ptr) +#define MHI_TRE_GET_EV_VEID(tre) (((tre)->dword[0] >> 16) & 0xFF) +#define MHI_TRE_GET_EV_LINKSPEED(tre) (((tre)->dword[1] >> 24) & 0xFF) +#define MHI_TRE_GET_EV_LINKWIDTH(tre) ((tre)->dword[0] & 0xFF) + +/* Transfer descriptor macros */ +#define MHI_TRE_DATA_PTR(ptr) (ptr) +#define MHI_TRE_DATA_DWORD0(len) (len & MHI_MAX_MTU) +#define MHI_TRE_DATA_DWORD1(bei, ieot, ieob, chain) ((2 << 16) | (bei << 10) \ + | (ieot << 9) | (ieob << 8) | chain) + +/* RSC transfer descriptor macros */ +#define MHI_RSCTRE_DATA_PTR(ptr, len) (((u64)len << 48) | ptr) +#define MHI_RSCTRE_DATA_DWORD0(cookie) (cookie) +#define MHI_RSCTRE_DATA_DWORD1 (MHI_PKT_TYPE_COALESCING << 16) + +enum mhi_pkt_type { + MHI_PKT_TYPE_INVALID = 0x0, + MHI_PKT_TYPE_NOOP_CMD = 0x1, + MHI_PKT_TYPE_TRANSFER = 0x2, + MHI_PKT_TYPE_COALESCING = 0x8, + MHI_PKT_TYPE_RESET_CHAN_CMD = 0x10, + MHI_PKT_TYPE_STOP_CHAN_CMD = 0x11, + MHI_PKT_TYPE_START_CHAN_CMD = 0x12, + MHI_PKT_TYPE_STATE_CHANGE_EVENT = 0x20, + MHI_PKT_TYPE_CMD_COMPLETION_EVENT = 0x21, + MHI_PKT_TYPE_TX_EVENT = 0x22, + MHI_PKT_TYPE_RSC_TX_EVENT = 0x28, + MHI_PKT_TYPE_EE_EVENT = 0x40, + MHI_PKT_TYPE_TSYNC_EVENT = 0x48, + MHI_PKT_TYPE_BW_REQ_EVENT = 0x50, + MHI_PKT_TYPE_STALE_EVENT, /* internal event */ +}; + +/* MHI transfer completion events */ +enum mhi_ev_ccs { + MHI_EV_CC_INVALID = 0x0, + MHI_EV_CC_SUCCESS = 0x1, + MHI_EV_CC_EOT = 0x2, /* End of transfer event */ + MHI_EV_CC_OVERFLOW = 0x3, + MHI_EV_CC_EOB = 0x4, /* End of block event */ + MHI_EV_CC_OOB = 0x5, /* Out of block event */ + MHI_EV_CC_DB_MODE = 0x6, + MHI_EV_CC_UNDEFINED_ERR = 0x10, + MHI_EV_CC_BAD_TRE = 0x11, +}; + +enum mhi_ch_state { + MHI_CH_STATE_DISABLED = 0x0, + MHI_CH_STATE_ENABLED = 0x1, + MHI_CH_STATE_RUNNING = 0x2, + MHI_CH_STATE_SUSPENDED = 0x3, + MHI_CH_STATE_STOP = 0x4, + MHI_CH_STATE_ERROR = 0x5, +}; + +#define MHI_INVALID_BRSTMODE(mode) (mode != MHI_DB_BRST_DISABLE && \ + mode != MHI_DB_BRST_ENABLE) + +extern const char * const mhi_ee_str[MHI_EE_MAX]; +#define TO_MHI_EXEC_STR(ee) (((ee) >= MHI_EE_MAX) ? \ + "INVALID_EE" : mhi_ee_str[ee]) + +#define MHI_IN_PBL(ee) (ee == MHI_EE_PBL || ee == MHI_EE_PTHRU || \ + ee == MHI_EE_EDL) + +#define MHI_IN_MISSION_MODE(ee) (ee == MHI_EE_AMSS || ee == MHI_EE_WFW) + +enum dev_st_transition { + DEV_ST_TRANSITION_PBL, + DEV_ST_TRANSITION_READY, + DEV_ST_TRANSITION_SBL, + DEV_ST_TRANSITION_MISSION_MODE, + DEV_ST_TRANSITION_SYS_ERR, + DEV_ST_TRANSITION_DISABLE, + DEV_ST_TRANSITION_MAX, +}; + +extern const char * const dev_state_tran_str[DEV_ST_TRANSITION_MAX]; +#define TO_DEV_STATE_TRANS_STR(state) (((state) >= DEV_ST_TRANSITION_MAX) ? \ + "INVALID_STATE" : dev_state_tran_str[state]) + +extern const char * const mhi_state_str[MHI_STATE_MAX]; +#define TO_MHI_STATE_STR(state) ((state >= MHI_STATE_MAX || \ + !mhi_state_str[state]) ? \ + "INVALID_STATE" : mhi_state_str[state]) + +/* internal power states */ +enum mhi_pm_state { + MHI_PM_STATE_DISABLE, + MHI_PM_STATE_POR, + MHI_PM_STATE_M0, + MHI_PM_STATE_M2, + MHI_PM_STATE_M3_ENTER, + MHI_PM_STATE_M3, + MHI_PM_STATE_M3_EXIT, + MHI_PM_STATE_FW_DL_ERR, + MHI_PM_STATE_SYS_ERR_DETECT, + MHI_PM_STATE_SYS_ERR_PROCESS, + MHI_PM_STATE_SHUTDOWN_PROCESS, + MHI_PM_STATE_LD_ERR_FATAL_DETECT, + MHI_PM_STATE_MAX +}; + +#define MHI_PM_DISABLE BIT(0) +#define MHI_PM_POR BIT(1) +#define MHI_PM_M0 BIT(2) +#define MHI_PM_M2 BIT(3) +#define MHI_PM_M3_ENTER BIT(4) +#define MHI_PM_M3 BIT(5) +#define MHI_PM_M3_EXIT BIT(6) +/* firmware download failure state */ +#define MHI_PM_FW_DL_ERR BIT(7) +#define MHI_PM_SYS_ERR_DETECT BIT(8) +#define MHI_PM_SYS_ERR_PROCESS BIT(9) +#define MHI_PM_SHUTDOWN_PROCESS BIT(10) +/* link not accessible */ +#define MHI_PM_LD_ERR_FATAL_DETECT BIT(11) + +#define MHI_REG_ACCESS_VALID(pm_state) ((pm_state & (MHI_PM_POR | MHI_PM_M0 | \ + MHI_PM_M2 | MHI_PM_M3_ENTER | MHI_PM_M3_EXIT | \ + MHI_PM_SYS_ERR_DETECT | MHI_PM_SYS_ERR_PROCESS | \ + MHI_PM_SHUTDOWN_PROCESS | MHI_PM_FW_DL_ERR))) +#define MHI_PM_IN_ERROR_STATE(pm_state) (pm_state >= MHI_PM_FW_DL_ERR) +#define MHI_PM_IN_FATAL_STATE(pm_state) (pm_state == MHI_PM_LD_ERR_FATAL_DETECT) +#define MHI_DB_ACCESS_VALID(mhi_cntrl) (mhi_cntrl->pm_state & \ + mhi_cntrl->db_access) +#define MHI_WAKE_DB_CLEAR_VALID(pm_state) (pm_state & (MHI_PM_M0 | \ + MHI_PM_M2 | MHI_PM_M3_EXIT)) +#define MHI_WAKE_DB_SET_VALID(pm_state) (pm_state & MHI_PM_M2) +#define MHI_WAKE_DB_FORCE_SET_VALID(pm_state) MHI_WAKE_DB_CLEAR_VALID(pm_state) +#define MHI_EVENT_ACCESS_INVALID(pm_state) (pm_state == MHI_PM_DISABLE || \ + MHI_PM_IN_ERROR_STATE(pm_state)) +#define MHI_PM_IN_SUSPEND_STATE(pm_state) (pm_state & \ + (MHI_PM_M3_ENTER | MHI_PM_M3)) + +#define NR_OF_CMD_RINGS 1 +#define CMD_EL_PER_RING 128 +#define PRIMARY_CMD_RING 0 +#define MHI_DEV_WAKE_DB 127 +#define MHI_MAX_MTU 0xffff +#define MHI_RANDOM_U32_NONZERO(bmsk) (prandom_u32_max(bmsk) + 1) + +enum mhi_er_type { + MHI_ER_TYPE_INVALID = 0x0, + MHI_ER_TYPE_VALID = 0x1, +}; + +struct db_cfg { + bool reset_req; + bool db_mode; + u32 pollcfg; + enum mhi_db_brst_mode brstmode; + dma_addr_t db_val; + void (*process_db)(struct mhi_controller *mhi_cntrl, + struct db_cfg *db_cfg, void __iomem *io_addr, + dma_addr_t db_val); +}; + +struct mhi_pm_transitions { + enum mhi_pm_state from_state; + u32 to_states; +}; + +struct state_transition { + struct list_head node; + enum dev_st_transition state; +}; + +struct mhi_ring { + dma_addr_t dma_handle; + dma_addr_t iommu_base; + u64 *ctxt_wp; /* point to ctxt wp */ + void *pre_aligned; + void *base; + void *rp; + void *wp; + size_t el_size; + size_t len; + size_t elements; + size_t alloc_size; + void __iomem *db_addr; +}; + +struct mhi_cmd { + struct mhi_ring ring; + spinlock_t lock; +}; + +struct mhi_buf_info { + void *v_addr; + void *bb_addr; + void *wp; + void *cb_buf; + dma_addr_t p_addr; + size_t len; + enum dma_data_direction dir; + bool used; /* Indicates whether the buffer is used or not */ + bool pre_mapped; /* Already pre-mapped by client */ +}; + +struct mhi_event { + struct mhi_controller *mhi_cntrl; + struct mhi_chan *mhi_chan; /* dedicated to channel */ + u32 er_index; + u32 intmod; + u32 irq; + int chan; /* this event ring is dedicated to a channel (optional) */ + u32 priority; + enum mhi_er_data_type data_type; + struct mhi_ring ring; + struct db_cfg db_cfg; + struct tasklet_struct task; + spinlock_t lock; + int (*process_event)(struct mhi_controller *mhi_cntrl, + struct mhi_event *mhi_event, + u32 event_quota); + bool hw_ring; + bool cl_manage; + bool offload_ev; /* managed by a device driver */ +}; + +struct mhi_chan { + const char *name; + /* + * Important: When consuming, increment tre_ring first and when + * releasing, decrement buf_ring first. If tre_ring has space, buf_ring + * is guranteed to have space so we do not need to check both rings. + */ + struct mhi_ring buf_ring; + struct mhi_ring tre_ring; + u32 chan; + u32 er_index; + u32 intmod; + enum mhi_ch_type type; + enum dma_data_direction dir; + struct db_cfg db_cfg; + enum mhi_ch_ee_mask ee_mask; + enum mhi_ch_state ch_state; + enum mhi_ev_ccs ccs; + struct mhi_device *mhi_dev; + void (*xfer_cb)(struct mhi_device *mhi_dev, struct mhi_result *result); + struct mutex mutex; + struct completion completion; + rwlock_t lock; + struct list_head node; + bool lpm_notify; + bool configured; + bool offload_ch; + bool pre_alloc; + bool auto_start; + bool wake_capable; +}; + +/* Default MHI timeout */ +#define MHI_TIMEOUT_MS (1000) + +/* debugfs related functions */ +#ifdef CONFIG_MHI_BUS_DEBUG +void mhi_create_debugfs(struct mhi_controller *mhi_cntrl); +void mhi_destroy_debugfs(struct mhi_controller *mhi_cntrl); +void mhi_debugfs_init(void); +void mhi_debugfs_exit(void); +#else +static inline void mhi_create_debugfs(struct mhi_controller *mhi_cntrl) +{ +} + +static inline void mhi_destroy_debugfs(struct mhi_controller *mhi_cntrl) +{ +} + +static inline void mhi_debugfs_init(void) +{ +} + +static inline void mhi_debugfs_exit(void) +{ +} +#endif + +struct mhi_device *mhi_alloc_device(struct mhi_controller *mhi_cntrl); + +int mhi_destroy_device(struct device *dev, void *data); +void mhi_create_devices(struct mhi_controller *mhi_cntrl); + +int mhi_alloc_bhie_table(struct mhi_controller *mhi_cntrl, + struct image_info **image_info, size_t alloc_size); +void mhi_free_bhie_table(struct mhi_controller *mhi_cntrl, + struct image_info *image_info); + +/* Power management APIs */ +enum mhi_pm_state __must_check mhi_tryset_pm_state( + struct mhi_controller *mhi_cntrl, + enum mhi_pm_state state); +const char *to_mhi_pm_state_str(enum mhi_pm_state state); +enum mhi_ee_type mhi_get_exec_env(struct mhi_controller *mhi_cntrl); +int mhi_queue_state_transition(struct mhi_controller *mhi_cntrl, + enum dev_st_transition state); +void mhi_pm_st_worker(struct work_struct *work); +void mhi_pm_sys_err_handler(struct mhi_controller *mhi_cntrl); +void mhi_fw_load_worker(struct work_struct *work); +int mhi_ready_state_transition(struct mhi_controller *mhi_cntrl); +int mhi_pm_m0_transition(struct mhi_controller *mhi_cntrl); +void mhi_pm_m1_transition(struct mhi_controller *mhi_cntrl); +int mhi_pm_m3_transition(struct mhi_controller *mhi_cntrl); +int __mhi_device_get_sync(struct mhi_controller *mhi_cntrl); +int mhi_send_cmd(struct mhi_controller *mhi_cntrl, struct mhi_chan *mhi_chan, + enum mhi_cmd_type cmd); +static inline bool mhi_is_active(struct mhi_controller *mhi_cntrl) +{ + return (mhi_cntrl->dev_state >= MHI_STATE_M0 && + mhi_cntrl->dev_state <= MHI_STATE_M3_FAST); +} + +static inline void mhi_trigger_resume(struct mhi_controller *mhi_cntrl) +{ + pm_wakeup_event(&mhi_cntrl->mhi_dev->dev, 0); + mhi_cntrl->runtime_get(mhi_cntrl); + mhi_cntrl->runtime_put(mhi_cntrl); +} + +/* Register access methods */ +void mhi_db_brstmode(struct mhi_controller *mhi_cntrl, struct db_cfg *db_cfg, + void __iomem *db_addr, dma_addr_t db_val); +void mhi_db_brstmode_disable(struct mhi_controller *mhi_cntrl, + struct db_cfg *db_mode, void __iomem *db_addr, + dma_addr_t db_val); +int __must_check mhi_read_reg(struct mhi_controller *mhi_cntrl, + void __iomem *base, u32 offset, u32 *out); +int __must_check mhi_read_reg_field(struct mhi_controller *mhi_cntrl, + void __iomem *base, u32 offset, u32 mask, + u32 shift, u32 *out); +void mhi_write_reg(struct mhi_controller *mhi_cntrl, void __iomem *base, + u32 offset, u32 val); +void mhi_write_reg_field(struct mhi_controller *mhi_cntrl, void __iomem *base, + u32 offset, u32 mask, u32 shift, u32 val); +void mhi_ring_er_db(struct mhi_event *mhi_event); +void mhi_write_db(struct mhi_controller *mhi_cntrl, void __iomem *db_addr, + dma_addr_t db_val); +void mhi_ring_cmd_db(struct mhi_controller *mhi_cntrl, struct mhi_cmd *mhi_cmd); +void mhi_ring_chan_db(struct mhi_controller *mhi_cntrl, + struct mhi_chan *mhi_chan); + +/* Initialization methods */ +int mhi_init_mmio(struct mhi_controller *mhi_cntrl); +int mhi_init_dev_ctxt(struct mhi_controller *mhi_cntrl); +void mhi_deinit_dev_ctxt(struct mhi_controller *mhi_cntrl); +int mhi_init_irq_setup(struct mhi_controller *mhi_cntrl); +void mhi_deinit_free_irq(struct mhi_controller *mhi_cntrl); +void mhi_rddm_prepare(struct mhi_controller *mhi_cntrl, + struct image_info *img_info); +void mhi_fw_load_handler(struct mhi_controller *mhi_cntrl); +int mhi_prepare_channel(struct mhi_controller *mhi_cntrl, + struct mhi_chan *mhi_chan); +int mhi_init_chan_ctxt(struct mhi_controller *mhi_cntrl, + struct mhi_chan *mhi_chan); +void mhi_deinit_chan_ctxt(struct mhi_controller *mhi_cntrl, + struct mhi_chan *mhi_chan); +void mhi_reset_chan(struct mhi_controller *mhi_cntrl, + struct mhi_chan *mhi_chan); + +/* Memory allocation methods */ +static inline void *mhi_alloc_coherent(struct mhi_controller *mhi_cntrl, + size_t size, + dma_addr_t *dma_handle, + gfp_t gfp) +{ + void *buf = dma_alloc_coherent(mhi_cntrl->cntrl_dev, size, dma_handle, + gfp); + + return buf; +} + +static inline void mhi_free_coherent(struct mhi_controller *mhi_cntrl, + size_t size, + void *vaddr, + dma_addr_t dma_handle) +{ + dma_free_coherent(mhi_cntrl->cntrl_dev, size, vaddr, dma_handle); +} + +/* Event processing methods */ +void mhi_ctrl_ev_task(unsigned long data); +void mhi_ev_task(unsigned long data); +int mhi_process_data_event_ring(struct mhi_controller *mhi_cntrl, + struct mhi_event *mhi_event, u32 event_quota); +int mhi_process_ctrl_ev_ring(struct mhi_controller *mhi_cntrl, + struct mhi_event *mhi_event, u32 event_quota); + +/* ISR handlers */ +irqreturn_t mhi_irq_handler(int irq_number, void *dev); +irqreturn_t mhi_intvec_threaded_handler(int irq_number, void *dev); +irqreturn_t mhi_intvec_handler(int irq_number, void *dev); + +int mhi_gen_tre(struct mhi_controller *mhi_cntrl, struct mhi_chan *mhi_chan, + struct mhi_buf_info *info, enum mhi_flags flags); +int mhi_map_single_no_bb(struct mhi_controller *mhi_cntrl, + struct mhi_buf_info *buf_info); +int mhi_map_single_use_bb(struct mhi_controller *mhi_cntrl, + struct mhi_buf_info *buf_info); +void mhi_unmap_single_no_bb(struct mhi_controller *mhi_cntrl, + struct mhi_buf_info *buf_info); +void mhi_unmap_single_use_bb(struct mhi_controller *mhi_cntrl, + struct mhi_buf_info *buf_info); + +#endif /* _MHI_INT_H */ only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/bus/mhi/core/main.c +++ linux-oem-5.6-5.6.0/drivers/bus/mhi/core/main.c @@ -0,0 +1,1535 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Copyright (c) 2018-2020, The Linux Foundation. All rights reserved. + * + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "internal.h" + +int __must_check mhi_read_reg(struct mhi_controller *mhi_cntrl, + void __iomem *base, u32 offset, u32 *out) +{ + return mhi_cntrl->read_reg(mhi_cntrl, base + offset, out); +} + +int __must_check mhi_read_reg_field(struct mhi_controller *mhi_cntrl, + void __iomem *base, u32 offset, + u32 mask, u32 shift, u32 *out) +{ + u32 tmp; + int ret; + + ret = mhi_read_reg(mhi_cntrl, base, offset, &tmp); + if (ret) + return ret; + + *out = (tmp & mask) >> shift; + + return 0; +} + +void mhi_write_reg(struct mhi_controller *mhi_cntrl, void __iomem *base, + u32 offset, u32 val) +{ + mhi_cntrl->write_reg(mhi_cntrl, base + offset, val); +} + +void mhi_write_reg_field(struct mhi_controller *mhi_cntrl, void __iomem *base, + u32 offset, u32 mask, u32 shift, u32 val) +{ + int ret; + u32 tmp; + + ret = mhi_read_reg(mhi_cntrl, base, offset, &tmp); + if (ret) + return; + + tmp &= ~mask; + tmp |= (val << shift); + mhi_write_reg(mhi_cntrl, base, offset, tmp); +} + +void mhi_write_db(struct mhi_controller *mhi_cntrl, void __iomem *db_addr, + dma_addr_t db_val) +{ + mhi_write_reg(mhi_cntrl, db_addr, 4, upper_32_bits(db_val)); + mhi_write_reg(mhi_cntrl, db_addr, 0, lower_32_bits(db_val)); +} + +void mhi_db_brstmode(struct mhi_controller *mhi_cntrl, + struct db_cfg *db_cfg, + void __iomem *db_addr, + dma_addr_t db_val) +{ + if (db_cfg->db_mode) { + db_cfg->db_val = db_val; + mhi_write_db(mhi_cntrl, db_addr, db_val); + db_cfg->db_mode = 0; + } +} + +void mhi_db_brstmode_disable(struct mhi_controller *mhi_cntrl, + struct db_cfg *db_cfg, + void __iomem *db_addr, + dma_addr_t db_val) +{ + db_cfg->db_val = db_val; + mhi_write_db(mhi_cntrl, db_addr, db_val); +} + +void mhi_ring_er_db(struct mhi_event *mhi_event) +{ + struct mhi_ring *ring = &mhi_event->ring; + + mhi_event->db_cfg.process_db(mhi_event->mhi_cntrl, &mhi_event->db_cfg, + ring->db_addr, *ring->ctxt_wp); +} + +void mhi_ring_cmd_db(struct mhi_controller *mhi_cntrl, struct mhi_cmd *mhi_cmd) +{ + dma_addr_t db; + struct mhi_ring *ring = &mhi_cmd->ring; + + db = ring->iommu_base + (ring->wp - ring->base); + *ring->ctxt_wp = db; + mhi_write_db(mhi_cntrl, ring->db_addr, db); +} + +void mhi_ring_chan_db(struct mhi_controller *mhi_cntrl, + struct mhi_chan *mhi_chan) +{ + struct mhi_ring *ring = &mhi_chan->tre_ring; + dma_addr_t db; + + db = ring->iommu_base + (ring->wp - ring->base); + *ring->ctxt_wp = db; + mhi_chan->db_cfg.process_db(mhi_cntrl, &mhi_chan->db_cfg, + ring->db_addr, db); +} + +enum mhi_ee_type mhi_get_exec_env(struct mhi_controller *mhi_cntrl) +{ + u32 exec; + int ret = mhi_read_reg(mhi_cntrl, mhi_cntrl->bhi, BHI_EXECENV, &exec); + + return (ret) ? MHI_EE_MAX : exec; +} + +enum mhi_state mhi_get_mhi_state(struct mhi_controller *mhi_cntrl) +{ + u32 state; + int ret = mhi_read_reg_field(mhi_cntrl, mhi_cntrl->regs, MHISTATUS, + MHISTATUS_MHISTATE_MASK, + MHISTATUS_MHISTATE_SHIFT, &state); + return ret ? MHI_STATE_MAX : state; +} + +int mhi_map_single_no_bb(struct mhi_controller *mhi_cntrl, + struct mhi_buf_info *buf_info) +{ + buf_info->p_addr = dma_map_single(mhi_cntrl->cntrl_dev, + buf_info->v_addr, buf_info->len, + buf_info->dir); + if (dma_mapping_error(mhi_cntrl->cntrl_dev, buf_info->p_addr)) + return -ENOMEM; + + return 0; +} + +int mhi_map_single_use_bb(struct mhi_controller *mhi_cntrl, + struct mhi_buf_info *buf_info) +{ + void *buf = mhi_alloc_coherent(mhi_cntrl, buf_info->len, + &buf_info->p_addr, GFP_ATOMIC); + + if (!buf) + return -ENOMEM; + + if (buf_info->dir == DMA_TO_DEVICE) + memcpy(buf, buf_info->v_addr, buf_info->len); + + buf_info->bb_addr = buf; + + return 0; +} + +void mhi_unmap_single_no_bb(struct mhi_controller *mhi_cntrl, + struct mhi_buf_info *buf_info) +{ + dma_unmap_single(mhi_cntrl->cntrl_dev, buf_info->p_addr, buf_info->len, + buf_info->dir); +} + +void mhi_unmap_single_use_bb(struct mhi_controller *mhi_cntrl, + struct mhi_buf_info *buf_info) +{ + if (buf_info->dir == DMA_FROM_DEVICE) + memcpy(buf_info->v_addr, buf_info->bb_addr, buf_info->len); + + mhi_free_coherent(mhi_cntrl, buf_info->len, buf_info->bb_addr, + buf_info->p_addr); +} + +static int get_nr_avail_ring_elements(struct mhi_controller *mhi_cntrl, + struct mhi_ring *ring) +{ + int nr_el; + + if (ring->wp < ring->rp) { + nr_el = ((ring->rp - ring->wp) / ring->el_size) - 1; + } else { + nr_el = (ring->rp - ring->base) / ring->el_size; + nr_el += ((ring->base + ring->len - ring->wp) / + ring->el_size) - 1; + } + + return nr_el; +} + +static void *mhi_to_virtual(struct mhi_ring *ring, dma_addr_t addr) +{ + return (addr - ring->iommu_base) + ring->base; +} + +static void mhi_add_ring_element(struct mhi_controller *mhi_cntrl, + struct mhi_ring *ring) +{ + ring->wp += ring->el_size; + if (ring->wp >= (ring->base + ring->len)) + ring->wp = ring->base; + /* smp update */ + smp_wmb(); +} + +static void mhi_del_ring_element(struct mhi_controller *mhi_cntrl, + struct mhi_ring *ring) +{ + ring->rp += ring->el_size; + if (ring->rp >= (ring->base + ring->len)) + ring->rp = ring->base; + /* smp update */ + smp_wmb(); +} + +int mhi_destroy_device(struct device *dev, void *data) +{ + struct mhi_device *mhi_dev; + struct mhi_controller *mhi_cntrl; + + if (dev->bus != &mhi_bus_type) + return 0; + + mhi_dev = to_mhi_device(dev); + mhi_cntrl = mhi_dev->mhi_cntrl; + + /* Only destroy virtual devices thats attached to bus */ + if (mhi_dev->dev_type == MHI_DEVICE_CONTROLLER) + return 0; + + /* + * For the suspend and resume case, this function will get called + * without mhi_unregister_controller(). Hence, we need to drop the + * references to mhi_dev created for ul and dl channels. We can + * be sure that there will be no instances of mhi_dev left after + * this. + */ + if (mhi_dev->ul_chan) + put_device(&mhi_dev->ul_chan->mhi_dev->dev); + + if (mhi_dev->dl_chan) + put_device(&mhi_dev->dl_chan->mhi_dev->dev); + + dev_dbg(&mhi_cntrl->mhi_dev->dev, "destroy device for chan:%s\n", + mhi_dev->name); + + /* Notify the client and remove the device from MHI bus */ + device_del(dev); + put_device(dev); + + return 0; +} + +void mhi_notify(struct mhi_device *mhi_dev, enum mhi_callback cb_reason) +{ + struct mhi_driver *mhi_drv; + + if (!mhi_dev->dev.driver) + return; + + mhi_drv = to_mhi_driver(mhi_dev->dev.driver); + + if (mhi_drv->status_cb) + mhi_drv->status_cb(mhi_dev, cb_reason); +} +EXPORT_SYMBOL_GPL(mhi_notify); + +/* Bind MHI channels to MHI devices */ +void mhi_create_devices(struct mhi_controller *mhi_cntrl) +{ + struct mhi_chan *mhi_chan; + struct mhi_device *mhi_dev; + struct device *dev = &mhi_cntrl->mhi_dev->dev; + int i, ret; + + mhi_chan = mhi_cntrl->mhi_chan; + for (i = 0; i < mhi_cntrl->max_chan; i++, mhi_chan++) { + if (!mhi_chan->configured || mhi_chan->mhi_dev || + !(mhi_chan->ee_mask & BIT(mhi_cntrl->ee))) + continue; + mhi_dev = mhi_alloc_device(mhi_cntrl); + if (IS_ERR(mhi_dev)) + return; + + mhi_dev->dev_type = MHI_DEVICE_XFER; + switch (mhi_chan->dir) { + case DMA_TO_DEVICE: + mhi_dev->ul_chan = mhi_chan; + mhi_dev->ul_chan_id = mhi_chan->chan; + break; + case DMA_FROM_DEVICE: + /* We use dl_chan as offload channels */ + mhi_dev->dl_chan = mhi_chan; + mhi_dev->dl_chan_id = mhi_chan->chan; + break; + default: + dev_err(dev, "Direction not supported\n"); + put_device(&mhi_dev->dev); + return; + } + + get_device(&mhi_dev->dev); + mhi_chan->mhi_dev = mhi_dev; + + /* Check next channel if it matches */ + if ((i + 1) < mhi_cntrl->max_chan && mhi_chan[1].configured) { + if (!strcmp(mhi_chan[1].name, mhi_chan->name)) { + i++; + mhi_chan++; + if (mhi_chan->dir == DMA_TO_DEVICE) { + mhi_dev->ul_chan = mhi_chan; + mhi_dev->ul_chan_id = mhi_chan->chan; + } else { + mhi_dev->dl_chan = mhi_chan; + mhi_dev->dl_chan_id = mhi_chan->chan; + } + get_device(&mhi_dev->dev); + mhi_chan->mhi_dev = mhi_dev; + } + } + + /* Channel name is same for both UL and DL */ + mhi_dev->name = mhi_chan->name; + dev_set_name(&mhi_dev->dev, "%s_%s", + dev_name(mhi_cntrl->cntrl_dev), + mhi_dev->name); + + /* Init wakeup source if available */ + if (mhi_dev->dl_chan && mhi_dev->dl_chan->wake_capable) + device_init_wakeup(&mhi_dev->dev, true); + + ret = device_add(&mhi_dev->dev); + if (ret) + put_device(&mhi_dev->dev); + } +} + +irqreturn_t mhi_irq_handler(int irq_number, void *dev) +{ + struct mhi_event *mhi_event = dev; + struct mhi_controller *mhi_cntrl = mhi_event->mhi_cntrl; + struct mhi_event_ctxt *er_ctxt = + &mhi_cntrl->mhi_ctxt->er_ctxt[mhi_event->er_index]; + struct mhi_ring *ev_ring = &mhi_event->ring; + void *dev_rp = mhi_to_virtual(ev_ring, er_ctxt->rp); + + /* Only proceed if event ring has pending events */ + if (ev_ring->rp == dev_rp) + return IRQ_HANDLED; + + /* For client managed event ring, notify pending data */ + if (mhi_event->cl_manage) { + struct mhi_chan *mhi_chan = mhi_event->mhi_chan; + struct mhi_device *mhi_dev = mhi_chan->mhi_dev; + + if (mhi_dev) + mhi_notify(mhi_dev, MHI_CB_PENDING_DATA); + } else { + tasklet_schedule(&mhi_event->task); + } + + return IRQ_HANDLED; +} + +irqreturn_t mhi_intvec_threaded_handler(int irq_number, void *priv) +{ + struct mhi_controller *mhi_cntrl = priv; + struct device *dev = &mhi_cntrl->mhi_dev->dev; + enum mhi_state state = MHI_STATE_MAX; + enum mhi_pm_state pm_state = 0; + enum mhi_ee_type ee = 0; + + write_lock_irq(&mhi_cntrl->pm_lock); + if (!MHI_REG_ACCESS_VALID(mhi_cntrl->pm_state)) { + write_unlock_irq(&mhi_cntrl->pm_lock); + goto exit_intvec; + } + + state = mhi_get_mhi_state(mhi_cntrl); + ee = mhi_cntrl->ee; + mhi_cntrl->ee = mhi_get_exec_env(mhi_cntrl); + dev_dbg(dev, "local ee:%s device ee:%s dev_state:%s\n", + TO_MHI_EXEC_STR(mhi_cntrl->ee), TO_MHI_EXEC_STR(ee), + TO_MHI_STATE_STR(state)); + + if (state == MHI_STATE_SYS_ERR) { + dev_dbg(dev, "System error detected\n"); + pm_state = mhi_tryset_pm_state(mhi_cntrl, + MHI_PM_SYS_ERR_DETECT); + } + write_unlock_irq(&mhi_cntrl->pm_lock); + + /* If device supports RDDM don't bother processing SYS error */ + if (mhi_cntrl->rddm_image) { + if (mhi_cntrl->ee == MHI_EE_RDDM && mhi_cntrl->ee != ee) { + mhi_cntrl->status_cb(mhi_cntrl, MHI_CB_EE_RDDM); + wake_up_all(&mhi_cntrl->state_event); + } + goto exit_intvec; + } + + if (pm_state == MHI_PM_SYS_ERR_DETECT) { + wake_up_all(&mhi_cntrl->state_event); + + /* For fatal errors, we let controller decide next step */ + if (MHI_IN_PBL(ee)) + mhi_cntrl->status_cb(mhi_cntrl, MHI_CB_FATAL_ERROR); + else + mhi_pm_sys_err_handler(mhi_cntrl); + } + +exit_intvec: + + return IRQ_HANDLED; +} + +irqreturn_t mhi_intvec_handler(int irq_number, void *dev) +{ + struct mhi_controller *mhi_cntrl = dev; + + /* Wake up events waiting for state change */ + wake_up_all(&mhi_cntrl->state_event); + + return IRQ_WAKE_THREAD; +} + +static void mhi_recycle_ev_ring_element(struct mhi_controller *mhi_cntrl, + struct mhi_ring *ring) +{ + dma_addr_t ctxt_wp; + + /* Update the WP */ + ring->wp += ring->el_size; + ctxt_wp = *ring->ctxt_wp + ring->el_size; + + if (ring->wp >= (ring->base + ring->len)) { + ring->wp = ring->base; + ctxt_wp = ring->iommu_base; + } + + *ring->ctxt_wp = ctxt_wp; + + /* Update the RP */ + ring->rp += ring->el_size; + if (ring->rp >= (ring->base + ring->len)) + ring->rp = ring->base; + + /* Update to all cores */ + smp_wmb(); +} + +static int parse_xfer_event(struct mhi_controller *mhi_cntrl, + struct mhi_tre *event, + struct mhi_chan *mhi_chan) +{ + struct mhi_ring *buf_ring, *tre_ring; + struct device *dev = &mhi_cntrl->mhi_dev->dev; + struct mhi_result result; + unsigned long flags = 0; + u32 ev_code; + + ev_code = MHI_TRE_GET_EV_CODE(event); + buf_ring = &mhi_chan->buf_ring; + tre_ring = &mhi_chan->tre_ring; + + result.transaction_status = (ev_code == MHI_EV_CC_OVERFLOW) ? + -EOVERFLOW : 0; + + /* + * If it's a DB Event then we need to grab the lock + * with preemption disabled and as a write because we + * have to update db register and there are chances that + * another thread could be doing the same. + */ + if (ev_code >= MHI_EV_CC_OOB) + write_lock_irqsave(&mhi_chan->lock, flags); + else + read_lock_bh(&mhi_chan->lock); + + if (mhi_chan->ch_state != MHI_CH_STATE_ENABLED) + goto end_process_tx_event; + + switch (ev_code) { + case MHI_EV_CC_OVERFLOW: + case MHI_EV_CC_EOB: + case MHI_EV_CC_EOT: + { + dma_addr_t ptr = MHI_TRE_GET_EV_PTR(event); + struct mhi_tre *local_rp, *ev_tre; + void *dev_rp; + struct mhi_buf_info *buf_info; + u16 xfer_len; + + /* Get the TRB this event points to */ + ev_tre = mhi_to_virtual(tre_ring, ptr); + + dev_rp = ev_tre + 1; + if (dev_rp >= (tre_ring->base + tre_ring->len)) + dev_rp = tre_ring->base; + + result.dir = mhi_chan->dir; + + local_rp = tre_ring->rp; + while (local_rp != dev_rp) { + buf_info = buf_ring->rp; + /* If it's the last TRE, get length from the event */ + if (local_rp == ev_tre) + xfer_len = MHI_TRE_GET_EV_LEN(event); + else + xfer_len = buf_info->len; + + /* Unmap if it's not pre-mapped by client */ + if (likely(!buf_info->pre_mapped)) + mhi_cntrl->unmap_single(mhi_cntrl, buf_info); + + result.buf_addr = buf_info->cb_buf; + + /* truncate to buf len if xfer_len is larger */ + result.bytes_xferd = + min_t(u16, xfer_len, buf_info->len); + mhi_del_ring_element(mhi_cntrl, buf_ring); + mhi_del_ring_element(mhi_cntrl, tre_ring); + local_rp = tre_ring->rp; + + /* notify client */ + mhi_chan->xfer_cb(mhi_chan->mhi_dev, &result); + + if (mhi_chan->dir == DMA_TO_DEVICE) + atomic_dec(&mhi_cntrl->pending_pkts); + + /* + * Recycle the buffer if buffer is pre-allocated, + * if there is an error, not much we can do apart + * from dropping the packet + */ + if (mhi_chan->pre_alloc) { + if (mhi_queue_buf(mhi_chan->mhi_dev, + mhi_chan->dir, + buf_info->cb_buf, + buf_info->len, MHI_EOT)) { + dev_err(dev, + "Error recycling buffer for chan:%d\n", + mhi_chan->chan); + kfree(buf_info->cb_buf); + } + } + } + break; + } /* CC_EOT */ + case MHI_EV_CC_OOB: + case MHI_EV_CC_DB_MODE: + { + unsigned long flags; + + mhi_chan->db_cfg.db_mode = 1; + read_lock_irqsave(&mhi_cntrl->pm_lock, flags); + if (tre_ring->wp != tre_ring->rp && + MHI_DB_ACCESS_VALID(mhi_cntrl)) { + mhi_ring_chan_db(mhi_cntrl, mhi_chan); + } + read_unlock_irqrestore(&mhi_cntrl->pm_lock, flags); + break; + } + case MHI_EV_CC_BAD_TRE: + default: + dev_err(dev, "Unknown event 0x%x\n", ev_code); + break; + } /* switch(MHI_EV_READ_CODE(EV_TRB_CODE,event)) */ + +end_process_tx_event: + if (ev_code >= MHI_EV_CC_OOB) + write_unlock_irqrestore(&mhi_chan->lock, flags); + else + read_unlock_bh(&mhi_chan->lock); + + return 0; +} + +static int parse_rsc_event(struct mhi_controller *mhi_cntrl, + struct mhi_tre *event, + struct mhi_chan *mhi_chan) +{ + struct mhi_ring *buf_ring, *tre_ring; + struct mhi_buf_info *buf_info; + struct mhi_result result; + int ev_code; + u32 cookie; /* offset to local descriptor */ + u16 xfer_len; + + buf_ring = &mhi_chan->buf_ring; + tre_ring = &mhi_chan->tre_ring; + + ev_code = MHI_TRE_GET_EV_CODE(event); + cookie = MHI_TRE_GET_EV_COOKIE(event); + xfer_len = MHI_TRE_GET_EV_LEN(event); + + /* Received out of bound cookie */ + WARN_ON(cookie >= buf_ring->len); + + buf_info = buf_ring->base + cookie; + + result.transaction_status = (ev_code == MHI_EV_CC_OVERFLOW) ? + -EOVERFLOW : 0; + + /* truncate to buf len if xfer_len is larger */ + result.bytes_xferd = min_t(u16, xfer_len, buf_info->len); + result.buf_addr = buf_info->cb_buf; + result.dir = mhi_chan->dir; + + read_lock_bh(&mhi_chan->lock); + + if (mhi_chan->ch_state != MHI_CH_STATE_ENABLED) + goto end_process_rsc_event; + + WARN_ON(!buf_info->used); + + /* notify the client */ + mhi_chan->xfer_cb(mhi_chan->mhi_dev, &result); + + /* + * Note: We're arbitrarily incrementing RP even though, completion + * packet we processed might not be the same one, reason we can do this + * is because device guaranteed to cache descriptors in order it + * receive, so even though completion event is different we can re-use + * all descriptors in between. + * Example: + * Transfer Ring has descriptors: A, B, C, D + * Last descriptor host queue is D (WP) and first descriptor + * host queue is A (RP). + * The completion event we just serviced is descriptor C. + * Then we can safely queue descriptors to replace A, B, and C + * even though host did not receive any completions. + */ + mhi_del_ring_element(mhi_cntrl, tre_ring); + buf_info->used = false; + +end_process_rsc_event: + read_unlock_bh(&mhi_chan->lock); + + return 0; +} + +static void mhi_process_cmd_completion(struct mhi_controller *mhi_cntrl, + struct mhi_tre *tre) +{ + dma_addr_t ptr = MHI_TRE_GET_EV_PTR(tre); + struct mhi_cmd *cmd_ring = &mhi_cntrl->mhi_cmd[PRIMARY_CMD_RING]; + struct mhi_ring *mhi_ring = &cmd_ring->ring; + struct mhi_tre *cmd_pkt; + struct mhi_chan *mhi_chan; + u32 chan; + + cmd_pkt = mhi_to_virtual(mhi_ring, ptr); + + chan = MHI_TRE_GET_CMD_CHID(cmd_pkt); + mhi_chan = &mhi_cntrl->mhi_chan[chan]; + write_lock_bh(&mhi_chan->lock); + mhi_chan->ccs = MHI_TRE_GET_EV_CODE(tre); + complete(&mhi_chan->completion); + write_unlock_bh(&mhi_chan->lock); + + mhi_del_ring_element(mhi_cntrl, mhi_ring); +} + +int mhi_process_ctrl_ev_ring(struct mhi_controller *mhi_cntrl, + struct mhi_event *mhi_event, + u32 event_quota) +{ + struct mhi_tre *dev_rp, *local_rp; + struct mhi_ring *ev_ring = &mhi_event->ring; + struct mhi_event_ctxt *er_ctxt = + &mhi_cntrl->mhi_ctxt->er_ctxt[mhi_event->er_index]; + struct mhi_chan *mhi_chan; + struct device *dev = &mhi_cntrl->mhi_dev->dev; + u32 chan; + int count = 0; + + /* + * This is a quick check to avoid unnecessary event processing + * in case MHI is already in error state, but it's still possible + * to transition to error state while processing events + */ + if (unlikely(MHI_EVENT_ACCESS_INVALID(mhi_cntrl->pm_state))) + return -EIO; + + dev_rp = mhi_to_virtual(ev_ring, er_ctxt->rp); + local_rp = ev_ring->rp; + + while (dev_rp != local_rp) { + enum mhi_pkt_type type = MHI_TRE_GET_EV_TYPE(local_rp); + + switch (type) { + case MHI_PKT_TYPE_BW_REQ_EVENT: + { + struct mhi_link_info *link_info; + + link_info = &mhi_cntrl->mhi_link_info; + write_lock_irq(&mhi_cntrl->pm_lock); + link_info->target_link_speed = + MHI_TRE_GET_EV_LINKSPEED(local_rp); + link_info->target_link_width = + MHI_TRE_GET_EV_LINKWIDTH(local_rp); + write_unlock_irq(&mhi_cntrl->pm_lock); + dev_dbg(dev, "Received BW_REQ event\n"); + mhi_cntrl->status_cb(mhi_cntrl, MHI_CB_BW_REQ); + break; + } + case MHI_PKT_TYPE_STATE_CHANGE_EVENT: + { + enum mhi_state new_state; + + new_state = MHI_TRE_GET_EV_STATE(local_rp); + + dev_dbg(dev, "State change event to state: %s\n", + TO_MHI_STATE_STR(new_state)); + + switch (new_state) { + case MHI_STATE_M0: + mhi_pm_m0_transition(mhi_cntrl); + break; + case MHI_STATE_M1: + mhi_pm_m1_transition(mhi_cntrl); + break; + case MHI_STATE_M3: + mhi_pm_m3_transition(mhi_cntrl); + break; + case MHI_STATE_SYS_ERR: + { + enum mhi_pm_state new_state; + + /* skip SYS_ERROR handling if RDDM supported */ + if (mhi_cntrl->ee == MHI_EE_RDDM || + mhi_cntrl->rddm_image) + break; + + dev_dbg(dev, "System error detected\n"); + write_lock_irq(&mhi_cntrl->pm_lock); + new_state = mhi_tryset_pm_state(mhi_cntrl, + MHI_PM_SYS_ERR_DETECT); + write_unlock_irq(&mhi_cntrl->pm_lock); + if (new_state == MHI_PM_SYS_ERR_DETECT) + mhi_pm_sys_err_handler(mhi_cntrl); + break; + } + default: + dev_err(dev, "Invalid state: %s\n", + TO_MHI_STATE_STR(new_state)); + } + + break; + } + case MHI_PKT_TYPE_CMD_COMPLETION_EVENT: + mhi_process_cmd_completion(mhi_cntrl, local_rp); + break; + case MHI_PKT_TYPE_EE_EVENT: + { + enum dev_st_transition st = DEV_ST_TRANSITION_MAX; + enum mhi_ee_type event = MHI_TRE_GET_EV_EXECENV(local_rp); + + dev_dbg(dev, "Received EE event: %s\n", + TO_MHI_EXEC_STR(event)); + switch (event) { + case MHI_EE_SBL: + st = DEV_ST_TRANSITION_SBL; + break; + case MHI_EE_WFW: + case MHI_EE_AMSS: + st = DEV_ST_TRANSITION_MISSION_MODE; + break; + case MHI_EE_RDDM: + mhi_cntrl->status_cb(mhi_cntrl, MHI_CB_EE_RDDM); + write_lock_irq(&mhi_cntrl->pm_lock); + mhi_cntrl->ee = event; + write_unlock_irq(&mhi_cntrl->pm_lock); + wake_up_all(&mhi_cntrl->state_event); + break; + default: + dev_err(dev, + "Unhandled EE event: 0x%x\n", type); + } + if (st != DEV_ST_TRANSITION_MAX) + mhi_queue_state_transition(mhi_cntrl, st); + + break; + } + case MHI_PKT_TYPE_TX_EVENT: + chan = MHI_TRE_GET_EV_CHID(local_rp); + + WARN_ON(chan >= mhi_cntrl->max_chan); + + /* + * Only process the event ring elements whose channel + * ID is within the maximum supported range. + */ + if (chan < mhi_cntrl->max_chan) { + mhi_chan = &mhi_cntrl->mhi_chan[chan]; + parse_xfer_event(mhi_cntrl, local_rp, mhi_chan); + event_quota--; + } + break; + default: + dev_err(dev, "Unhandled event type: %d\n", type); + break; + } + + mhi_recycle_ev_ring_element(mhi_cntrl, ev_ring); + local_rp = ev_ring->rp; + dev_rp = mhi_to_virtual(ev_ring, er_ctxt->rp); + count++; + } + + read_lock_bh(&mhi_cntrl->pm_lock); + if (likely(MHI_DB_ACCESS_VALID(mhi_cntrl))) + mhi_ring_er_db(mhi_event); + read_unlock_bh(&mhi_cntrl->pm_lock); + + return count; +} + +int mhi_process_data_event_ring(struct mhi_controller *mhi_cntrl, + struct mhi_event *mhi_event, + u32 event_quota) +{ + struct mhi_tre *dev_rp, *local_rp; + struct mhi_ring *ev_ring = &mhi_event->ring; + struct mhi_event_ctxt *er_ctxt = + &mhi_cntrl->mhi_ctxt->er_ctxt[mhi_event->er_index]; + int count = 0; + u32 chan; + struct mhi_chan *mhi_chan; + + if (unlikely(MHI_EVENT_ACCESS_INVALID(mhi_cntrl->pm_state))) + return -EIO; + + dev_rp = mhi_to_virtual(ev_ring, er_ctxt->rp); + local_rp = ev_ring->rp; + + while (dev_rp != local_rp && event_quota > 0) { + enum mhi_pkt_type type = MHI_TRE_GET_EV_TYPE(local_rp); + + chan = MHI_TRE_GET_EV_CHID(local_rp); + + WARN_ON(chan >= mhi_cntrl->max_chan); + + /* + * Only process the event ring elements whose channel + * ID is within the maximum supported range. + */ + if (chan < mhi_cntrl->max_chan) { + mhi_chan = &mhi_cntrl->mhi_chan[chan]; + + if (likely(type == MHI_PKT_TYPE_TX_EVENT)) { + parse_xfer_event(mhi_cntrl, local_rp, mhi_chan); + event_quota--; + } else if (type == MHI_PKT_TYPE_RSC_TX_EVENT) { + parse_rsc_event(mhi_cntrl, local_rp, mhi_chan); + event_quota--; + } + } + + mhi_recycle_ev_ring_element(mhi_cntrl, ev_ring); + local_rp = ev_ring->rp; + dev_rp = mhi_to_virtual(ev_ring, er_ctxt->rp); + count++; + } + read_lock_bh(&mhi_cntrl->pm_lock); + if (likely(MHI_DB_ACCESS_VALID(mhi_cntrl))) + mhi_ring_er_db(mhi_event); + read_unlock_bh(&mhi_cntrl->pm_lock); + + return count; +} + +void mhi_ev_task(unsigned long data) +{ + struct mhi_event *mhi_event = (struct mhi_event *)data; + struct mhi_controller *mhi_cntrl = mhi_event->mhi_cntrl; + + /* process all pending events */ + spin_lock_bh(&mhi_event->lock); + mhi_event->process_event(mhi_cntrl, mhi_event, U32_MAX); + spin_unlock_bh(&mhi_event->lock); +} + +void mhi_ctrl_ev_task(unsigned long data) +{ + struct mhi_event *mhi_event = (struct mhi_event *)data; + struct mhi_controller *mhi_cntrl = mhi_event->mhi_cntrl; + struct device *dev = &mhi_cntrl->mhi_dev->dev; + enum mhi_state state; + enum mhi_pm_state pm_state = 0; + int ret; + + /* + * We can check PM state w/o a lock here because there is no way + * PM state can change from reg access valid to no access while this + * thread being executed. + */ + if (!MHI_REG_ACCESS_VALID(mhi_cntrl->pm_state)) { + /* + * We may have a pending event but not allowed to + * process it since we are probably in a suspended state, + * so trigger a resume. + */ + mhi_trigger_resume(mhi_cntrl); + + return; + } + + /* Process ctrl events events */ + ret = mhi_event->process_event(mhi_cntrl, mhi_event, U32_MAX); + + /* + * We received an IRQ but no events to process, maybe device went to + * SYS_ERR state? Check the state to confirm. + */ + if (!ret) { + write_lock_irq(&mhi_cntrl->pm_lock); + state = mhi_get_mhi_state(mhi_cntrl); + if (state == MHI_STATE_SYS_ERR) { + dev_dbg(dev, "System error detected\n"); + pm_state = mhi_tryset_pm_state(mhi_cntrl, + MHI_PM_SYS_ERR_DETECT); + } + write_unlock_irq(&mhi_cntrl->pm_lock); + if (pm_state == MHI_PM_SYS_ERR_DETECT) + mhi_pm_sys_err_handler(mhi_cntrl); + } +} + +static bool mhi_is_ring_full(struct mhi_controller *mhi_cntrl, + struct mhi_ring *ring) +{ + void *tmp = ring->wp + ring->el_size; + + if (tmp >= (ring->base + ring->len)) + tmp = ring->base; + + return (tmp == ring->rp); +} + +int mhi_queue_skb(struct mhi_device *mhi_dev, enum dma_data_direction dir, + struct sk_buff *skb, size_t len, enum mhi_flags mflags) +{ + struct mhi_controller *mhi_cntrl = mhi_dev->mhi_cntrl; + struct mhi_chan *mhi_chan = (dir == DMA_TO_DEVICE) ? mhi_dev->ul_chan : + mhi_dev->dl_chan; + struct mhi_ring *tre_ring = &mhi_chan->tre_ring; + struct mhi_buf_info buf_info = { }; + int ret; + + /* If MHI host pre-allocates buffers then client drivers cannot queue */ + if (mhi_chan->pre_alloc) + return -EINVAL; + + if (mhi_is_ring_full(mhi_cntrl, tre_ring)) + return -ENOMEM; + + read_lock_bh(&mhi_cntrl->pm_lock); + if (unlikely(MHI_PM_IN_ERROR_STATE(mhi_cntrl->pm_state))) { + read_unlock_bh(&mhi_cntrl->pm_lock); + return -EIO; + } + + /* we're in M3 or transitioning to M3 */ + if (MHI_PM_IN_SUSPEND_STATE(mhi_cntrl->pm_state)) + mhi_trigger_resume(mhi_cntrl); + + /* Toggle wake to exit out of M2 */ + mhi_cntrl->wake_toggle(mhi_cntrl); + + buf_info.v_addr = skb->data; + buf_info.cb_buf = skb; + buf_info.len = len; + + ret = mhi_gen_tre(mhi_cntrl, mhi_chan, &buf_info, mflags); + if (unlikely(ret)) { + read_unlock_bh(&mhi_cntrl->pm_lock); + return ret; + } + + if (mhi_chan->dir == DMA_TO_DEVICE) + atomic_inc(&mhi_cntrl->pending_pkts); + + if (likely(MHI_DB_ACCESS_VALID(mhi_cntrl))) { + read_lock_bh(&mhi_chan->lock); + mhi_ring_chan_db(mhi_cntrl, mhi_chan); + read_unlock_bh(&mhi_chan->lock); + } + + read_unlock_bh(&mhi_cntrl->pm_lock); + + return 0; +} +EXPORT_SYMBOL_GPL(mhi_queue_skb); + +int mhi_queue_dma(struct mhi_device *mhi_dev, enum dma_data_direction dir, + struct mhi_buf *mhi_buf, size_t len, enum mhi_flags mflags) +{ + struct mhi_controller *mhi_cntrl = mhi_dev->mhi_cntrl; + struct mhi_chan *mhi_chan = (dir == DMA_TO_DEVICE) ? mhi_dev->ul_chan : + mhi_dev->dl_chan; + struct device *dev = &mhi_cntrl->mhi_dev->dev; + struct mhi_ring *tre_ring = &mhi_chan->tre_ring; + struct mhi_buf_info buf_info = { }; + int ret; + + /* If MHI host pre-allocates buffers then client drivers cannot queue */ + if (mhi_chan->pre_alloc) + return -EINVAL; + + if (mhi_is_ring_full(mhi_cntrl, tre_ring)) + return -ENOMEM; + + read_lock_bh(&mhi_cntrl->pm_lock); + if (unlikely(MHI_PM_IN_ERROR_STATE(mhi_cntrl->pm_state))) { + dev_err(dev, "MHI is not in activate state, PM state: %s\n", + to_mhi_pm_state_str(mhi_cntrl->pm_state)); + read_unlock_bh(&mhi_cntrl->pm_lock); + + return -EIO; + } + + /* we're in M3 or transitioning to M3 */ + if (MHI_PM_IN_SUSPEND_STATE(mhi_cntrl->pm_state)) + mhi_trigger_resume(mhi_cntrl); + + /* Toggle wake to exit out of M2 */ + mhi_cntrl->wake_toggle(mhi_cntrl); + + buf_info.p_addr = mhi_buf->dma_addr; + buf_info.cb_buf = mhi_buf; + buf_info.pre_mapped = true; + buf_info.len = len; + + ret = mhi_gen_tre(mhi_cntrl, mhi_chan, &buf_info, mflags); + if (unlikely(ret)) { + read_unlock_bh(&mhi_cntrl->pm_lock); + return ret; + } + + if (mhi_chan->dir == DMA_TO_DEVICE) + atomic_inc(&mhi_cntrl->pending_pkts); + + if (likely(MHI_DB_ACCESS_VALID(mhi_cntrl))) { + read_lock_bh(&mhi_chan->lock); + mhi_ring_chan_db(mhi_cntrl, mhi_chan); + read_unlock_bh(&mhi_chan->lock); + } + + read_unlock_bh(&mhi_cntrl->pm_lock); + + return 0; +} +EXPORT_SYMBOL_GPL(mhi_queue_dma); + +int mhi_gen_tre(struct mhi_controller *mhi_cntrl, struct mhi_chan *mhi_chan, + struct mhi_buf_info *info, enum mhi_flags flags) +{ + struct mhi_ring *buf_ring, *tre_ring; + struct mhi_tre *mhi_tre; + struct mhi_buf_info *buf_info; + int eot, eob, chain, bei; + int ret; + + buf_ring = &mhi_chan->buf_ring; + tre_ring = &mhi_chan->tre_ring; + + buf_info = buf_ring->wp; + WARN_ON(buf_info->used); + buf_info->pre_mapped = info->pre_mapped; + if (info->pre_mapped) + buf_info->p_addr = info->p_addr; + else + buf_info->v_addr = info->v_addr; + buf_info->cb_buf = info->cb_buf; + buf_info->wp = tre_ring->wp; + buf_info->dir = mhi_chan->dir; + buf_info->len = info->len; + + if (!info->pre_mapped) { + ret = mhi_cntrl->map_single(mhi_cntrl, buf_info); + if (ret) + return ret; + } + + eob = !!(flags & MHI_EOB); + eot = !!(flags & MHI_EOT); + chain = !!(flags & MHI_CHAIN); + bei = !!(mhi_chan->intmod); + + mhi_tre = tre_ring->wp; + mhi_tre->ptr = MHI_TRE_DATA_PTR(buf_info->p_addr); + mhi_tre->dword[0] = MHI_TRE_DATA_DWORD0(info->len); + mhi_tre->dword[1] = MHI_TRE_DATA_DWORD1(bei, eot, eob, chain); + + /* increment WP */ + mhi_add_ring_element(mhi_cntrl, tre_ring); + mhi_add_ring_element(mhi_cntrl, buf_ring); + + return 0; +} + +int mhi_queue_buf(struct mhi_device *mhi_dev, enum dma_data_direction dir, + void *buf, size_t len, enum mhi_flags mflags) +{ + struct mhi_controller *mhi_cntrl = mhi_dev->mhi_cntrl; + struct mhi_chan *mhi_chan = (dir == DMA_TO_DEVICE) ? mhi_dev->ul_chan : + mhi_dev->dl_chan; + struct mhi_ring *tre_ring; + struct mhi_buf_info buf_info = { }; + unsigned long flags; + int ret; + + /* + * this check here only as a guard, it's always + * possible mhi can enter error while executing rest of function, + * which is not fatal so we do not need to hold pm_lock + */ + if (unlikely(MHI_PM_IN_ERROR_STATE(mhi_cntrl->pm_state))) + return -EIO; + + tre_ring = &mhi_chan->tre_ring; + if (mhi_is_ring_full(mhi_cntrl, tre_ring)) + return -ENOMEM; + + buf_info.v_addr = buf; + buf_info.cb_buf = buf; + buf_info.len = len; + + ret = mhi_gen_tre(mhi_cntrl, mhi_chan, &buf_info, mflags); + if (unlikely(ret)) + return ret; + + read_lock_irqsave(&mhi_cntrl->pm_lock, flags); + + /* we're in M3 or transitioning to M3 */ + if (MHI_PM_IN_SUSPEND_STATE(mhi_cntrl->pm_state)) + mhi_trigger_resume(mhi_cntrl); + + /* Toggle wake to exit out of M2 */ + mhi_cntrl->wake_toggle(mhi_cntrl); + + if (mhi_chan->dir == DMA_TO_DEVICE) + atomic_inc(&mhi_cntrl->pending_pkts); + + if (likely(MHI_DB_ACCESS_VALID(mhi_cntrl))) { + unsigned long flags; + + read_lock_irqsave(&mhi_chan->lock, flags); + mhi_ring_chan_db(mhi_cntrl, mhi_chan); + read_unlock_irqrestore(&mhi_chan->lock, flags); + } + + read_unlock_irqrestore(&mhi_cntrl->pm_lock, flags); + + return 0; +} +EXPORT_SYMBOL_GPL(mhi_queue_buf); + +int mhi_send_cmd(struct mhi_controller *mhi_cntrl, + struct mhi_chan *mhi_chan, + enum mhi_cmd_type cmd) +{ + struct mhi_tre *cmd_tre = NULL; + struct mhi_cmd *mhi_cmd = &mhi_cntrl->mhi_cmd[PRIMARY_CMD_RING]; + struct mhi_ring *ring = &mhi_cmd->ring; + struct device *dev = &mhi_cntrl->mhi_dev->dev; + int chan = 0; + + if (mhi_chan) + chan = mhi_chan->chan; + + spin_lock_bh(&mhi_cmd->lock); + if (!get_nr_avail_ring_elements(mhi_cntrl, ring)) { + spin_unlock_bh(&mhi_cmd->lock); + return -ENOMEM; + } + + /* prepare the cmd tre */ + cmd_tre = ring->wp; + switch (cmd) { + case MHI_CMD_RESET_CHAN: + cmd_tre->ptr = MHI_TRE_CMD_RESET_PTR; + cmd_tre->dword[0] = MHI_TRE_CMD_RESET_DWORD0; + cmd_tre->dword[1] = MHI_TRE_CMD_RESET_DWORD1(chan); + break; + case MHI_CMD_START_CHAN: + cmd_tre->ptr = MHI_TRE_CMD_START_PTR; + cmd_tre->dword[0] = MHI_TRE_CMD_START_DWORD0; + cmd_tre->dword[1] = MHI_TRE_CMD_START_DWORD1(chan); + break; + default: + dev_err(dev, "Command not supported\n"); + break; + } + + /* queue to hardware */ + mhi_add_ring_element(mhi_cntrl, ring); + read_lock_bh(&mhi_cntrl->pm_lock); + if (likely(MHI_DB_ACCESS_VALID(mhi_cntrl))) + mhi_ring_cmd_db(mhi_cntrl, mhi_cmd); + read_unlock_bh(&mhi_cntrl->pm_lock); + spin_unlock_bh(&mhi_cmd->lock); + + return 0; +} + +static void __mhi_unprepare_channel(struct mhi_controller *mhi_cntrl, + struct mhi_chan *mhi_chan) +{ + int ret; + struct device *dev = &mhi_cntrl->mhi_dev->dev; + + dev_dbg(dev, "Entered: unprepare channel:%d\n", mhi_chan->chan); + + /* no more processing events for this channel */ + mutex_lock(&mhi_chan->mutex); + write_lock_irq(&mhi_chan->lock); + if (mhi_chan->ch_state != MHI_CH_STATE_ENABLED) { + write_unlock_irq(&mhi_chan->lock); + mutex_unlock(&mhi_chan->mutex); + return; + } + + mhi_chan->ch_state = MHI_CH_STATE_DISABLED; + write_unlock_irq(&mhi_chan->lock); + + reinit_completion(&mhi_chan->completion); + read_lock_bh(&mhi_cntrl->pm_lock); + if (MHI_PM_IN_ERROR_STATE(mhi_cntrl->pm_state)) { + read_unlock_bh(&mhi_cntrl->pm_lock); + goto error_invalid_state; + } + + mhi_cntrl->wake_toggle(mhi_cntrl); + read_unlock_bh(&mhi_cntrl->pm_lock); + + mhi_cntrl->runtime_get(mhi_cntrl); + mhi_cntrl->runtime_put(mhi_cntrl); + ret = mhi_send_cmd(mhi_cntrl, mhi_chan, MHI_CMD_RESET_CHAN); + if (ret) + goto error_invalid_state; + + /* even if it fails we will still reset */ + ret = wait_for_completion_timeout(&mhi_chan->completion, + msecs_to_jiffies(mhi_cntrl->timeout_ms)); + if (!ret || mhi_chan->ccs != MHI_EV_CC_SUCCESS) + dev_err(dev, + "Failed to receive cmd completion, still resetting\n"); + +error_invalid_state: + if (!mhi_chan->offload_ch) { + mhi_reset_chan(mhi_cntrl, mhi_chan); + mhi_deinit_chan_ctxt(mhi_cntrl, mhi_chan); + } + dev_dbg(dev, "chan:%d successfully resetted\n", mhi_chan->chan); + mutex_unlock(&mhi_chan->mutex); +} + +int mhi_prepare_channel(struct mhi_controller *mhi_cntrl, + struct mhi_chan *mhi_chan) +{ + int ret = 0; + struct device *dev = &mhi_cntrl->mhi_dev->dev; + + dev_dbg(dev, "Preparing channel: %d\n", mhi_chan->chan); + + if (!(BIT(mhi_cntrl->ee) & mhi_chan->ee_mask)) { + dev_err(dev, + "Current EE: %s Required EE Mask: 0x%x for chan: %s\n", + TO_MHI_EXEC_STR(mhi_cntrl->ee), mhi_chan->ee_mask, + mhi_chan->name); + return -ENOTCONN; + } + + mutex_lock(&mhi_chan->mutex); + + /* If channel is not in disable state, do not allow it to start */ + if (mhi_chan->ch_state != MHI_CH_STATE_DISABLED) { + ret = -EIO; + dev_dbg(dev, "channel: %d is not in disabled state\n", + mhi_chan->chan); + goto error_init_chan; + } + + /* Check of client manages channel context for offload channels */ + if (!mhi_chan->offload_ch) { + ret = mhi_init_chan_ctxt(mhi_cntrl, mhi_chan); + if (ret) + goto error_init_chan; + } + + reinit_completion(&mhi_chan->completion); + read_lock_bh(&mhi_cntrl->pm_lock); + if (MHI_PM_IN_ERROR_STATE(mhi_cntrl->pm_state)) { + read_unlock_bh(&mhi_cntrl->pm_lock); + ret = -EIO; + goto error_pm_state; + } + + mhi_cntrl->wake_toggle(mhi_cntrl); + read_unlock_bh(&mhi_cntrl->pm_lock); + mhi_cntrl->runtime_get(mhi_cntrl); + mhi_cntrl->runtime_put(mhi_cntrl); + + ret = mhi_send_cmd(mhi_cntrl, mhi_chan, MHI_CMD_START_CHAN); + if (ret) + goto error_pm_state; + + ret = wait_for_completion_timeout(&mhi_chan->completion, + msecs_to_jiffies(mhi_cntrl->timeout_ms)); + if (!ret || mhi_chan->ccs != MHI_EV_CC_SUCCESS) { + ret = -EIO; + goto error_pm_state; + } + + write_lock_irq(&mhi_chan->lock); + mhi_chan->ch_state = MHI_CH_STATE_ENABLED; + write_unlock_irq(&mhi_chan->lock); + + /* Pre-allocate buffer for xfer ring */ + if (mhi_chan->pre_alloc) { + int nr_el = get_nr_avail_ring_elements(mhi_cntrl, + &mhi_chan->tre_ring); + size_t len = mhi_cntrl->buffer_len; + + while (nr_el--) { + void *buf; + struct mhi_buf_info info = { }; + buf = kmalloc(len, GFP_KERNEL); + if (!buf) { + ret = -ENOMEM; + goto error_pre_alloc; + } + + /* Prepare transfer descriptors */ + info.v_addr = buf; + info.cb_buf = buf; + info.len = len; + ret = mhi_gen_tre(mhi_cntrl, mhi_chan, &info, MHI_EOT); + if (ret) { + kfree(buf); + goto error_pre_alloc; + } + } + + read_lock_bh(&mhi_cntrl->pm_lock); + if (MHI_DB_ACCESS_VALID(mhi_cntrl)) { + read_lock_irq(&mhi_chan->lock); + mhi_ring_chan_db(mhi_cntrl, mhi_chan); + read_unlock_irq(&mhi_chan->lock); + } + read_unlock_bh(&mhi_cntrl->pm_lock); + } + + mutex_unlock(&mhi_chan->mutex); + + dev_dbg(dev, "Chan: %d successfully moved to start state\n", + mhi_chan->chan); + + return 0; + +error_pm_state: + if (!mhi_chan->offload_ch) + mhi_deinit_chan_ctxt(mhi_cntrl, mhi_chan); + +error_init_chan: + mutex_unlock(&mhi_chan->mutex); + + return ret; + +error_pre_alloc: + mutex_unlock(&mhi_chan->mutex); + __mhi_unprepare_channel(mhi_cntrl, mhi_chan); + + return ret; +} + +static void mhi_mark_stale_events(struct mhi_controller *mhi_cntrl, + struct mhi_event *mhi_event, + struct mhi_event_ctxt *er_ctxt, + int chan) + +{ + struct mhi_tre *dev_rp, *local_rp; + struct mhi_ring *ev_ring; + struct device *dev = &mhi_cntrl->mhi_dev->dev; + unsigned long flags; + + dev_dbg(dev, "Marking all events for chan: %d as stale\n", chan); + + ev_ring = &mhi_event->ring; + + /* mark all stale events related to channel as STALE event */ + spin_lock_irqsave(&mhi_event->lock, flags); + dev_rp = mhi_to_virtual(ev_ring, er_ctxt->rp); + + local_rp = ev_ring->rp; + while (dev_rp != local_rp) { + if (MHI_TRE_GET_EV_TYPE(local_rp) == MHI_PKT_TYPE_TX_EVENT && + chan == MHI_TRE_GET_EV_CHID(local_rp)) + local_rp->dword[1] = MHI_TRE_EV_DWORD1(chan, + MHI_PKT_TYPE_STALE_EVENT); + local_rp++; + if (local_rp == (ev_ring->base + ev_ring->len)) + local_rp = ev_ring->base; + } + + dev_dbg(dev, "Finished marking events as stale events\n"); + spin_unlock_irqrestore(&mhi_event->lock, flags); +} + +static void mhi_reset_data_chan(struct mhi_controller *mhi_cntrl, + struct mhi_chan *mhi_chan) +{ + struct mhi_ring *buf_ring, *tre_ring; + struct mhi_result result; + + /* Reset any pending buffers */ + buf_ring = &mhi_chan->buf_ring; + tre_ring = &mhi_chan->tre_ring; + result.transaction_status = -ENOTCONN; + result.bytes_xferd = 0; + while (tre_ring->rp != tre_ring->wp) { + struct mhi_buf_info *buf_info = buf_ring->rp; + + if (mhi_chan->dir == DMA_TO_DEVICE) + atomic_dec(&mhi_cntrl->pending_pkts); + + if (!buf_info->pre_mapped) + mhi_cntrl->unmap_single(mhi_cntrl, buf_info); + + mhi_del_ring_element(mhi_cntrl, buf_ring); + mhi_del_ring_element(mhi_cntrl, tre_ring); + + if (mhi_chan->pre_alloc) { + kfree(buf_info->cb_buf); + } else { + result.buf_addr = buf_info->cb_buf; + mhi_chan->xfer_cb(mhi_chan->mhi_dev, &result); + } + } +} + +void mhi_reset_chan(struct mhi_controller *mhi_cntrl, struct mhi_chan *mhi_chan) +{ + struct mhi_event *mhi_event; + struct mhi_event_ctxt *er_ctxt; + int chan = mhi_chan->chan; + + /* Nothing to reset, client doesn't queue buffers */ + if (mhi_chan->offload_ch) + return; + + read_lock_bh(&mhi_cntrl->pm_lock); + mhi_event = &mhi_cntrl->mhi_event[mhi_chan->er_index]; + er_ctxt = &mhi_cntrl->mhi_ctxt->er_ctxt[mhi_chan->er_index]; + + mhi_mark_stale_events(mhi_cntrl, mhi_event, er_ctxt, chan); + + mhi_reset_data_chan(mhi_cntrl, mhi_chan); + + read_unlock_bh(&mhi_cntrl->pm_lock); +} + +/* Move channel to start state */ +int mhi_prepare_for_transfer(struct mhi_device *mhi_dev) +{ + int ret, dir; + struct mhi_controller *mhi_cntrl = mhi_dev->mhi_cntrl; + struct mhi_chan *mhi_chan; + + for (dir = 0; dir < 2; dir++) { + mhi_chan = dir ? mhi_dev->dl_chan : mhi_dev->ul_chan; + if (!mhi_chan) + continue; + + ret = mhi_prepare_channel(mhi_cntrl, mhi_chan); + if (ret) + goto error_open_chan; + } + + return 0; + +error_open_chan: + for (--dir; dir >= 0; dir--) { + mhi_chan = dir ? mhi_dev->dl_chan : mhi_dev->ul_chan; + if (!mhi_chan) + continue; + + __mhi_unprepare_channel(mhi_cntrl, mhi_chan); + } + + return ret; +} +EXPORT_SYMBOL_GPL(mhi_prepare_for_transfer); + +void mhi_unprepare_from_transfer(struct mhi_device *mhi_dev) +{ + struct mhi_controller *mhi_cntrl = mhi_dev->mhi_cntrl; + struct mhi_chan *mhi_chan; + int dir; + + for (dir = 0; dir < 2; dir++) { + mhi_chan = dir ? mhi_dev->ul_chan : mhi_dev->dl_chan; + if (!mhi_chan) + continue; + + __mhi_unprepare_channel(mhi_cntrl, mhi_chan); + } +} +EXPORT_SYMBOL_GPL(mhi_unprepare_from_transfer); + +int mhi_poll(struct mhi_device *mhi_dev, u32 budget) +{ + struct mhi_controller *mhi_cntrl = mhi_dev->mhi_cntrl; + struct mhi_chan *mhi_chan = mhi_dev->dl_chan; + struct mhi_event *mhi_event = &mhi_cntrl->mhi_event[mhi_chan->er_index]; + int ret; + + spin_lock_bh(&mhi_event->lock); + ret = mhi_event->process_event(mhi_cntrl, mhi_event, budget); + spin_unlock_bh(&mhi_event->lock); + + return ret; +} +EXPORT_SYMBOL_GPL(mhi_poll); only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/bus/mhi/core/pm.c +++ linux-oem-5.6-5.6.0/drivers/bus/mhi/core/pm.c @@ -0,0 +1,1152 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Copyright (c) 2018-2020, The Linux Foundation. All rights reserved. + * + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "internal.h" + +/* + * Not all MHI state transitions are synchronous. Transitions like Linkdown, + * SYS_ERR, and shutdown can happen anytime asynchronously. This function will + * transition to a new state only if we're allowed to. + * + * Priority increases as we go down. For instance, from any state in L0, the + * transition can be made to states in L1, L2 and L3. A notable exception to + * this rule is state DISABLE. From DISABLE state we can only transition to + * POR state. Also, while in L2 state, user cannot jump back to previous + * L1 or L0 states. + * + * Valid transitions: + * L0: DISABLE <--> POR + * POR <--> POR + * POR -> M0 -> M2 --> M0 + * POR -> FW_DL_ERR + * FW_DL_ERR <--> FW_DL_ERR + * M0 <--> M0 + * M0 -> FW_DL_ERR + * M0 -> M3_ENTER -> M3 -> M3_EXIT --> M0 + * L1: SYS_ERR_DETECT -> SYS_ERR_PROCESS --> POR + * L2: SHUTDOWN_PROCESS -> DISABLE + * L3: LD_ERR_FATAL_DETECT <--> LD_ERR_FATAL_DETECT + * LD_ERR_FATAL_DETECT -> SHUTDOWN_PROCESS + */ +static struct mhi_pm_transitions const dev_state_transitions[] = { + /* L0 States */ + { + MHI_PM_DISABLE, + MHI_PM_POR + }, + { + MHI_PM_POR, + MHI_PM_POR | MHI_PM_DISABLE | MHI_PM_M0 | + MHI_PM_SYS_ERR_DETECT | MHI_PM_SHUTDOWN_PROCESS | + MHI_PM_LD_ERR_FATAL_DETECT | MHI_PM_FW_DL_ERR + }, + { + MHI_PM_M0, + MHI_PM_M0 | MHI_PM_M2 | MHI_PM_M3_ENTER | + MHI_PM_SYS_ERR_DETECT | MHI_PM_SHUTDOWN_PROCESS | + MHI_PM_LD_ERR_FATAL_DETECT | MHI_PM_FW_DL_ERR + }, + { + MHI_PM_M2, + MHI_PM_M0 | MHI_PM_SYS_ERR_DETECT | MHI_PM_SHUTDOWN_PROCESS | + MHI_PM_LD_ERR_FATAL_DETECT + }, + { + MHI_PM_M3_ENTER, + MHI_PM_M3 | MHI_PM_SYS_ERR_DETECT | MHI_PM_SHUTDOWN_PROCESS | + MHI_PM_LD_ERR_FATAL_DETECT + }, + { + MHI_PM_M3, + MHI_PM_M3_EXIT | MHI_PM_SYS_ERR_DETECT | + MHI_PM_SHUTDOWN_PROCESS | MHI_PM_LD_ERR_FATAL_DETECT + }, + { + MHI_PM_M3_EXIT, + MHI_PM_M0 | MHI_PM_SYS_ERR_DETECT | MHI_PM_SHUTDOWN_PROCESS | + MHI_PM_LD_ERR_FATAL_DETECT + }, + { + MHI_PM_FW_DL_ERR, + MHI_PM_FW_DL_ERR | MHI_PM_SYS_ERR_DETECT | + MHI_PM_SHUTDOWN_PROCESS | MHI_PM_LD_ERR_FATAL_DETECT + }, + /* L1 States */ + { + MHI_PM_SYS_ERR_DETECT, + MHI_PM_SYS_ERR_PROCESS | MHI_PM_SHUTDOWN_PROCESS | + MHI_PM_LD_ERR_FATAL_DETECT + }, + { + MHI_PM_SYS_ERR_PROCESS, + MHI_PM_POR | MHI_PM_SHUTDOWN_PROCESS | + MHI_PM_LD_ERR_FATAL_DETECT + }, + /* L2 States */ + { + MHI_PM_SHUTDOWN_PROCESS, + MHI_PM_DISABLE | MHI_PM_LD_ERR_FATAL_DETECT + }, + /* L3 States */ + { + MHI_PM_LD_ERR_FATAL_DETECT, + MHI_PM_LD_ERR_FATAL_DETECT | MHI_PM_SHUTDOWN_PROCESS + }, +}; + +enum mhi_pm_state __must_check mhi_tryset_pm_state(struct mhi_controller *mhi_cntrl, + enum mhi_pm_state state) +{ + unsigned long cur_state = mhi_cntrl->pm_state; + int index = find_last_bit(&cur_state, 32); + + if (unlikely(index >= ARRAY_SIZE(dev_state_transitions))) + return cur_state; + + if (unlikely(dev_state_transitions[index].from_state != cur_state)) + return cur_state; + + if (unlikely(!(dev_state_transitions[index].to_states & state))) + return cur_state; + + mhi_cntrl->pm_state = state; + return mhi_cntrl->pm_state; +} + +void mhi_set_mhi_state(struct mhi_controller *mhi_cntrl, enum mhi_state state) +{ + if (state == MHI_STATE_RESET) { + mhi_write_reg_field(mhi_cntrl, mhi_cntrl->regs, MHICTRL, + MHICTRL_RESET_MASK, MHICTRL_RESET_SHIFT, 1); + } else { + mhi_write_reg_field(mhi_cntrl, mhi_cntrl->regs, MHICTRL, + MHICTRL_MHISTATE_MASK, + MHICTRL_MHISTATE_SHIFT, state); + } +} + +/* NOP for backward compatibility, host allowed to ring DB in M2 state */ +static void mhi_toggle_dev_wake_nop(struct mhi_controller *mhi_cntrl) +{ +} + +static void mhi_toggle_dev_wake(struct mhi_controller *mhi_cntrl) +{ + mhi_cntrl->wake_get(mhi_cntrl, false); + mhi_cntrl->wake_put(mhi_cntrl, true); +} + +/* Handle device ready state transition */ +int mhi_ready_state_transition(struct mhi_controller *mhi_cntrl) +{ + void __iomem *base = mhi_cntrl->regs; + struct mhi_event *mhi_event; + enum mhi_pm_state cur_state; + struct device *dev = &mhi_cntrl->mhi_dev->dev; + u32 reset = 1, ready = 0; + int ret, i; + + /* Wait for RESET to be cleared and READY bit to be set by the device */ + wait_event_timeout(mhi_cntrl->state_event, + MHI_PM_IN_FATAL_STATE(mhi_cntrl->pm_state) || + mhi_read_reg_field(mhi_cntrl, base, MHICTRL, + MHICTRL_RESET_MASK, + MHICTRL_RESET_SHIFT, &reset) || + mhi_read_reg_field(mhi_cntrl, base, MHISTATUS, + MHISTATUS_READY_MASK, + MHISTATUS_READY_SHIFT, &ready) || + (!reset && ready), + msecs_to_jiffies(mhi_cntrl->timeout_ms)); + + /* Check if device entered error state */ + if (MHI_PM_IN_FATAL_STATE(mhi_cntrl->pm_state)) { + dev_err(dev, "Device link is not accessible\n"); + return -EIO; + } + + /* Timeout if device did not transition to ready state */ + if (reset || !ready) { + dev_err(dev, "Device Ready timeout\n"); + return -ETIMEDOUT; + } + + dev_dbg(dev, "Device in READY State\n"); + write_lock_irq(&mhi_cntrl->pm_lock); + cur_state = mhi_tryset_pm_state(mhi_cntrl, MHI_PM_POR); + mhi_cntrl->dev_state = MHI_STATE_READY; + write_unlock_irq(&mhi_cntrl->pm_lock); + + if (cur_state != MHI_PM_POR) { + dev_err(dev, "Error moving to state %s from %s\n", + to_mhi_pm_state_str(MHI_PM_POR), + to_mhi_pm_state_str(cur_state)); + return -EIO; + } + + read_lock_bh(&mhi_cntrl->pm_lock); + if (!MHI_REG_ACCESS_VALID(mhi_cntrl->pm_state)) { + dev_err(dev, "Device registers not accessible\n"); + goto error_mmio; + } + + /* Configure MMIO registers */ + ret = mhi_init_mmio(mhi_cntrl); + if (ret) { + dev_err(dev, "Error configuring MMIO registers\n"); + goto error_mmio; + } + + /* Add elements to all SW event rings */ + mhi_event = mhi_cntrl->mhi_event; + for (i = 0; i < mhi_cntrl->total_ev_rings; i++, mhi_event++) { + struct mhi_ring *ring = &mhi_event->ring; + + /* Skip if this is an offload or HW event */ + if (mhi_event->offload_ev || mhi_event->hw_ring) + continue; + + ring->wp = ring->base + ring->len - ring->el_size; + *ring->ctxt_wp = ring->iommu_base + ring->len - ring->el_size; + /* Update all cores */ + smp_wmb(); + + /* Ring the event ring db */ + spin_lock_irq(&mhi_event->lock); + mhi_ring_er_db(mhi_event); + spin_unlock_irq(&mhi_event->lock); + } + + /* Set MHI to M0 state */ + mhi_set_mhi_state(mhi_cntrl, MHI_STATE_M0); + read_unlock_bh(&mhi_cntrl->pm_lock); + + return 0; + +error_mmio: + read_unlock_bh(&mhi_cntrl->pm_lock); + + return -EIO; +} + +int mhi_pm_m0_transition(struct mhi_controller *mhi_cntrl) +{ + enum mhi_pm_state cur_state; + struct mhi_chan *mhi_chan; + struct device *dev = &mhi_cntrl->mhi_dev->dev; + int i; + + write_lock_irq(&mhi_cntrl->pm_lock); + mhi_cntrl->dev_state = MHI_STATE_M0; + cur_state = mhi_tryset_pm_state(mhi_cntrl, MHI_PM_M0); + write_unlock_irq(&mhi_cntrl->pm_lock); + if (unlikely(cur_state != MHI_PM_M0)) { + dev_err(dev, "Unable to transition to M0 state\n"); + return -EIO; + } + mhi_cntrl->M0++; + + /* Wake up the device */ + read_lock_bh(&mhi_cntrl->pm_lock); + mhi_cntrl->wake_get(mhi_cntrl, true); + + /* Ring all event rings and CMD ring only if we're in mission mode */ + if (MHI_IN_MISSION_MODE(mhi_cntrl->ee)) { + struct mhi_event *mhi_event = mhi_cntrl->mhi_event; + struct mhi_cmd *mhi_cmd = + &mhi_cntrl->mhi_cmd[PRIMARY_CMD_RING]; + + for (i = 0; i < mhi_cntrl->total_ev_rings; i++, mhi_event++) { + if (mhi_event->offload_ev) + continue; + + spin_lock_irq(&mhi_event->lock); + mhi_ring_er_db(mhi_event); + spin_unlock_irq(&mhi_event->lock); + } + + /* Only ring primary cmd ring if ring is not empty */ + spin_lock_irq(&mhi_cmd->lock); + if (mhi_cmd->ring.rp != mhi_cmd->ring.wp) + mhi_ring_cmd_db(mhi_cntrl, mhi_cmd); + spin_unlock_irq(&mhi_cmd->lock); + } + + /* Ring channel DB registers */ + mhi_chan = mhi_cntrl->mhi_chan; + for (i = 0; i < mhi_cntrl->max_chan; i++, mhi_chan++) { + struct mhi_ring *tre_ring = &mhi_chan->tre_ring; + + if (mhi_chan->db_cfg.reset_req) { + write_lock_irq(&mhi_chan->lock); + mhi_chan->db_cfg.db_mode = true; + write_unlock_irq(&mhi_chan->lock); + } + + read_lock_irq(&mhi_chan->lock); + + /* Only ring DB if ring is not empty */ + if (tre_ring->base && tre_ring->wp != tre_ring->rp) + mhi_ring_chan_db(mhi_cntrl, mhi_chan); + read_unlock_irq(&mhi_chan->lock); + } + + mhi_cntrl->wake_put(mhi_cntrl, false); + read_unlock_bh(&mhi_cntrl->pm_lock); + wake_up_all(&mhi_cntrl->state_event); + + return 0; +} + +/* + * After receiving the MHI state change event from the device indicating the + * transition to M1 state, the host can transition the device to M2 state + * for keeping it in low power state. + */ +void mhi_pm_m1_transition(struct mhi_controller *mhi_cntrl) +{ + enum mhi_pm_state state; + struct device *dev = &mhi_cntrl->mhi_dev->dev; + + write_lock_irq(&mhi_cntrl->pm_lock); + state = mhi_tryset_pm_state(mhi_cntrl, MHI_PM_M2); + if (state == MHI_PM_M2) { + mhi_set_mhi_state(mhi_cntrl, MHI_STATE_M2); + mhi_cntrl->dev_state = MHI_STATE_M2; + + write_unlock_irq(&mhi_cntrl->pm_lock); + + mhi_cntrl->M2++; + wake_up_all(&mhi_cntrl->state_event); + + /* If there are any pending resources, exit M2 immediately */ + if (unlikely(atomic_read(&mhi_cntrl->pending_pkts) || + atomic_read(&mhi_cntrl->dev_wake))) { + dev_dbg(dev, + "Exiting M2, pending_pkts: %d dev_wake: %d\n", + atomic_read(&mhi_cntrl->pending_pkts), + atomic_read(&mhi_cntrl->dev_wake)); + read_lock_bh(&mhi_cntrl->pm_lock); + mhi_cntrl->wake_get(mhi_cntrl, true); + mhi_cntrl->wake_put(mhi_cntrl, true); + read_unlock_bh(&mhi_cntrl->pm_lock); + } else { + mhi_cntrl->status_cb(mhi_cntrl, MHI_CB_IDLE); + } + } else { + write_unlock_irq(&mhi_cntrl->pm_lock); + } +} + +/* MHI M3 completion handler */ +int mhi_pm_m3_transition(struct mhi_controller *mhi_cntrl) +{ + enum mhi_pm_state state; + struct device *dev = &mhi_cntrl->mhi_dev->dev; + + write_lock_irq(&mhi_cntrl->pm_lock); + mhi_cntrl->dev_state = MHI_STATE_M3; + state = mhi_tryset_pm_state(mhi_cntrl, MHI_PM_M3); + write_unlock_irq(&mhi_cntrl->pm_lock); + if (state != MHI_PM_M3) { + dev_err(dev, "Unable to transition to M3 state\n"); + return -EIO; + } + + mhi_cntrl->M3++; + wake_up_all(&mhi_cntrl->state_event); + + return 0; +} + +/* Handle device Mission Mode transition */ +static int mhi_pm_mission_mode_transition(struct mhi_controller *mhi_cntrl) +{ + struct mhi_event *mhi_event; + struct device *dev = &mhi_cntrl->mhi_dev->dev; + int i, ret; + + dev_dbg(dev, "Processing Mission Mode transition\n"); + + write_lock_irq(&mhi_cntrl->pm_lock); + if (MHI_REG_ACCESS_VALID(mhi_cntrl->pm_state)) + mhi_cntrl->ee = mhi_get_exec_env(mhi_cntrl); + write_unlock_irq(&mhi_cntrl->pm_lock); + + if (!MHI_IN_MISSION_MODE(mhi_cntrl->ee)) + return -EIO; + + wake_up_all(&mhi_cntrl->state_event); + + mhi_cntrl->status_cb(mhi_cntrl, MHI_CB_EE_MISSION_MODE); + + /* Force MHI to be in M0 state before continuing */ + ret = __mhi_device_get_sync(mhi_cntrl); + if (ret) + return ret; + + read_lock_bh(&mhi_cntrl->pm_lock); + + if (MHI_PM_IN_ERROR_STATE(mhi_cntrl->pm_state)) { + ret = -EIO; + goto error_mission_mode; + } + + /* Add elements to all HW event rings */ + mhi_event = mhi_cntrl->mhi_event; + for (i = 0; i < mhi_cntrl->total_ev_rings; i++, mhi_event++) { + struct mhi_ring *ring = &mhi_event->ring; + + if (mhi_event->offload_ev || !mhi_event->hw_ring) + continue; + + ring->wp = ring->base + ring->len - ring->el_size; + *ring->ctxt_wp = ring->iommu_base + ring->len - ring->el_size; + /* Update to all cores */ + smp_wmb(); + + spin_lock_irq(&mhi_event->lock); + if (MHI_DB_ACCESS_VALID(mhi_cntrl)) + mhi_ring_er_db(mhi_event); + spin_unlock_irq(&mhi_event->lock); + } + + read_unlock_bh(&mhi_cntrl->pm_lock); + + /* + * The MHI devices are only created when the client device switches its + * Execution Environment (EE) to either SBL or AMSS states + */ + mhi_create_devices(mhi_cntrl); + + read_lock_bh(&mhi_cntrl->pm_lock); + +error_mission_mode: + mhi_cntrl->wake_put(mhi_cntrl, false); + read_unlock_bh(&mhi_cntrl->pm_lock); + + return ret; +} + +/* Handle SYS_ERR and Shutdown transitions */ +static void mhi_pm_disable_transition(struct mhi_controller *mhi_cntrl, + enum mhi_pm_state transition_state) +{ + enum mhi_pm_state cur_state, prev_state; + struct mhi_event *mhi_event; + struct mhi_cmd_ctxt *cmd_ctxt; + struct mhi_cmd *mhi_cmd; + struct mhi_event_ctxt *er_ctxt; + struct device *dev = &mhi_cntrl->mhi_dev->dev; + int ret, i; + + dev_dbg(dev, "Transitioning from PM state: %s to: %s\n", + to_mhi_pm_state_str(mhi_cntrl->pm_state), + to_mhi_pm_state_str(transition_state)); + + /* We must notify MHI control driver so it can clean up first */ + if (transition_state == MHI_PM_SYS_ERR_PROCESS) + mhi_cntrl->status_cb(mhi_cntrl, MHI_CB_SYS_ERROR); + + mutex_lock(&mhi_cntrl->pm_mutex); + write_lock_irq(&mhi_cntrl->pm_lock); + prev_state = mhi_cntrl->pm_state; + cur_state = mhi_tryset_pm_state(mhi_cntrl, transition_state); + if (cur_state == transition_state) { + mhi_cntrl->ee = MHI_EE_DISABLE_TRANSITION; + mhi_cntrl->dev_state = MHI_STATE_RESET; + } + write_unlock_irq(&mhi_cntrl->pm_lock); + + /* Wake up threads waiting for state transition */ + wake_up_all(&mhi_cntrl->state_event); + + if (cur_state != transition_state) { + dev_err(dev, "Failed to transition to state: %s from: %s\n", + to_mhi_pm_state_str(transition_state), + to_mhi_pm_state_str(cur_state)); + mutex_unlock(&mhi_cntrl->pm_mutex); + return; + } + + /* Trigger MHI RESET so that the device will not access host memory */ + if (MHI_REG_ACCESS_VALID(prev_state)) { + u32 in_reset = -1; + unsigned long timeout = msecs_to_jiffies(mhi_cntrl->timeout_ms); + + dev_dbg(dev, "Triggering MHI Reset in device\n"); + mhi_set_mhi_state(mhi_cntrl, MHI_STATE_RESET); + + /* Wait for the reset bit to be cleared by the device */ + ret = wait_event_timeout(mhi_cntrl->state_event, + mhi_read_reg_field(mhi_cntrl, + mhi_cntrl->regs, + MHICTRL, + MHICTRL_RESET_MASK, + MHICTRL_RESET_SHIFT, + &in_reset) || + !in_reset, timeout); + if ((!ret || in_reset) && cur_state == MHI_PM_SYS_ERR_PROCESS) { + dev_err(dev, "Device failed to exit MHI Reset state\n"); + mutex_unlock(&mhi_cntrl->pm_mutex); + return; + } + + /* + * Device will clear BHI_INTVEC as a part of RESET processing, + * hence re-program it + */ + mhi_write_reg(mhi_cntrl, mhi_cntrl->bhi, BHI_INTVEC, 0); + } + + dev_dbg(dev, + "Waiting for all pending event ring processing to complete\n"); + mhi_event = mhi_cntrl->mhi_event; + for (i = 0; i < mhi_cntrl->total_ev_rings; i++, mhi_event++) { + if (mhi_event->offload_ev) + continue; + tasklet_kill(&mhi_event->task); + } + + /* Release lock and wait for all pending threads to complete */ + mutex_unlock(&mhi_cntrl->pm_mutex); + dev_dbg(dev, "Waiting for all pending threads to complete\n"); + wake_up_all(&mhi_cntrl->state_event); + + dev_dbg(dev, "Reset all active channels and remove MHI devices\n"); + device_for_each_child(mhi_cntrl->cntrl_dev, NULL, mhi_destroy_device); + + mutex_lock(&mhi_cntrl->pm_mutex); + + WARN_ON(atomic_read(&mhi_cntrl->dev_wake)); + WARN_ON(atomic_read(&mhi_cntrl->pending_pkts)); + + /* Reset the ev rings and cmd rings */ + dev_dbg(dev, "Resetting EV CTXT and CMD CTXT\n"); + mhi_cmd = mhi_cntrl->mhi_cmd; + cmd_ctxt = mhi_cntrl->mhi_ctxt->cmd_ctxt; + for (i = 0; i < NR_OF_CMD_RINGS; i++, mhi_cmd++, cmd_ctxt++) { + struct mhi_ring *ring = &mhi_cmd->ring; + + ring->rp = ring->base; + ring->wp = ring->base; + cmd_ctxt->rp = cmd_ctxt->rbase; + cmd_ctxt->wp = cmd_ctxt->rbase; + } + + mhi_event = mhi_cntrl->mhi_event; + er_ctxt = mhi_cntrl->mhi_ctxt->er_ctxt; + for (i = 0; i < mhi_cntrl->total_ev_rings; i++, er_ctxt++, + mhi_event++) { + struct mhi_ring *ring = &mhi_event->ring; + + /* Skip offload events */ + if (mhi_event->offload_ev) + continue; + + ring->rp = ring->base; + ring->wp = ring->base; + er_ctxt->rp = er_ctxt->rbase; + er_ctxt->wp = er_ctxt->rbase; + } + + if (cur_state == MHI_PM_SYS_ERR_PROCESS) { + mhi_ready_state_transition(mhi_cntrl); + } else { + /* Move to disable state */ + write_lock_irq(&mhi_cntrl->pm_lock); + cur_state = mhi_tryset_pm_state(mhi_cntrl, MHI_PM_DISABLE); + write_unlock_irq(&mhi_cntrl->pm_lock); + if (unlikely(cur_state != MHI_PM_DISABLE)) + dev_err(dev, "Error moving from PM state: %s to: %s\n", + to_mhi_pm_state_str(cur_state), + to_mhi_pm_state_str(MHI_PM_DISABLE)); + } + + dev_dbg(dev, "Exiting with PM state: %s, MHI state: %s\n", + to_mhi_pm_state_str(mhi_cntrl->pm_state), + TO_MHI_STATE_STR(mhi_cntrl->dev_state)); + + mutex_unlock(&mhi_cntrl->pm_mutex); +} + +/* Queue a new work item and schedule work */ +int mhi_queue_state_transition(struct mhi_controller *mhi_cntrl, + enum dev_st_transition state) +{ + struct state_transition *item = kmalloc(sizeof(*item), GFP_ATOMIC); + unsigned long flags; + + if (!item) + return -ENOMEM; + + item->state = state; + spin_lock_irqsave(&mhi_cntrl->transition_lock, flags); + list_add_tail(&item->node, &mhi_cntrl->transition_list); + spin_unlock_irqrestore(&mhi_cntrl->transition_lock, flags); + + schedule_work(&mhi_cntrl->st_worker); + + return 0; +} + +/* SYS_ERR worker */ +void mhi_pm_sys_err_handler(struct mhi_controller *mhi_cntrl) +{ + struct device *dev = &mhi_cntrl->mhi_dev->dev; + + /* skip if controller supports RDDM */ + if (mhi_cntrl->rddm_image) { + dev_dbg(dev, "Controller supports RDDM, skip SYS_ERROR\n"); + return; + } + + mhi_queue_state_transition(mhi_cntrl, DEV_ST_TRANSITION_SYS_ERR); +} + +/* Device State Transition worker */ +void mhi_pm_st_worker(struct work_struct *work) +{ + struct state_transition *itr, *tmp; + LIST_HEAD(head); + struct mhi_controller *mhi_cntrl = container_of(work, + struct mhi_controller, + st_worker); + struct device *dev = &mhi_cntrl->mhi_dev->dev; + + spin_lock_irq(&mhi_cntrl->transition_lock); + list_splice_tail_init(&mhi_cntrl->transition_list, &head); + spin_unlock_irq(&mhi_cntrl->transition_lock); + + list_for_each_entry_safe(itr, tmp, &head, node) { + list_del(&itr->node); + dev_dbg(dev, "Handling state transition: %s\n", + TO_DEV_STATE_TRANS_STR(itr->state)); + + switch (itr->state) { + case DEV_ST_TRANSITION_PBL: + write_lock_irq(&mhi_cntrl->pm_lock); + if (MHI_REG_ACCESS_VALID(mhi_cntrl->pm_state)) + mhi_cntrl->ee = mhi_get_exec_env(mhi_cntrl); + write_unlock_irq(&mhi_cntrl->pm_lock); + if (MHI_IN_PBL(mhi_cntrl->ee)) + mhi_fw_load_handler(mhi_cntrl); + break; + case DEV_ST_TRANSITION_SBL: + write_lock_irq(&mhi_cntrl->pm_lock); + mhi_cntrl->ee = MHI_EE_SBL; + write_unlock_irq(&mhi_cntrl->pm_lock); + /* + * The MHI devices are only created when the client + * device switches its Execution Environment (EE) to + * either SBL or AMSS states + */ + mhi_create_devices(mhi_cntrl); + break; + case DEV_ST_TRANSITION_MISSION_MODE: + mhi_pm_mission_mode_transition(mhi_cntrl); + break; + case DEV_ST_TRANSITION_READY: + mhi_ready_state_transition(mhi_cntrl); + break; + case DEV_ST_TRANSITION_SYS_ERR: + mhi_pm_disable_transition + (mhi_cntrl, MHI_PM_SYS_ERR_PROCESS); + break; + case DEV_ST_TRANSITION_DISABLE: + mhi_pm_disable_transition + (mhi_cntrl, MHI_PM_SHUTDOWN_PROCESS); + break; + default: + break; + } + kfree(itr); + } +} + +int mhi_pm_suspend(struct mhi_controller *mhi_cntrl) +{ + struct mhi_chan *itr, *tmp; + struct device *dev = &mhi_cntrl->mhi_dev->dev; + enum mhi_pm_state new_state; + int ret; + + if (mhi_cntrl->pm_state == MHI_PM_DISABLE) + return -EINVAL; + + if (MHI_PM_IN_ERROR_STATE(mhi_cntrl->pm_state)) + return -EIO; + + /* Return busy if there are any pending resources */ + if (atomic_read(&mhi_cntrl->dev_wake) || + atomic_read(&mhi_cntrl->pending_pkts)) + return -EBUSY; + + /* Take MHI out of M2 state */ + read_lock_bh(&mhi_cntrl->pm_lock); + mhi_cntrl->wake_get(mhi_cntrl, false); + read_unlock_bh(&mhi_cntrl->pm_lock); + + ret = wait_event_timeout(mhi_cntrl->state_event, + mhi_cntrl->dev_state == MHI_STATE_M0 || + mhi_cntrl->dev_state == MHI_STATE_M1 || + MHI_PM_IN_ERROR_STATE(mhi_cntrl->pm_state), + msecs_to_jiffies(mhi_cntrl->timeout_ms)); + + read_lock_bh(&mhi_cntrl->pm_lock); + mhi_cntrl->wake_put(mhi_cntrl, false); + read_unlock_bh(&mhi_cntrl->pm_lock); + + if (!ret || MHI_PM_IN_ERROR_STATE(mhi_cntrl->pm_state)) { + dev_err(dev, + "Could not enter M0/M1 state"); + return -EIO; + } + + write_lock_irq(&mhi_cntrl->pm_lock); + + if (atomic_read(&mhi_cntrl->dev_wake) || + atomic_read(&mhi_cntrl->pending_pkts)) { + write_unlock_irq(&mhi_cntrl->pm_lock); + return -EBUSY; + } + + dev_info(dev, "Allowing M3 transition\n"); + new_state = mhi_tryset_pm_state(mhi_cntrl, MHI_PM_M3_ENTER); + if (new_state != MHI_PM_M3_ENTER) { + write_unlock_irq(&mhi_cntrl->pm_lock); + dev_err(dev, + "Error setting to PM state: %s from: %s\n", + to_mhi_pm_state_str(MHI_PM_M3_ENTER), + to_mhi_pm_state_str(mhi_cntrl->pm_state)); + return -EIO; + } + + /* Set MHI to M3 and wait for completion */ + mhi_set_mhi_state(mhi_cntrl, MHI_STATE_M3); + write_unlock_irq(&mhi_cntrl->pm_lock); + dev_info(dev, "Wait for M3 completion\n"); + + ret = wait_event_timeout(mhi_cntrl->state_event, + mhi_cntrl->dev_state == MHI_STATE_M3 || + MHI_PM_IN_ERROR_STATE(mhi_cntrl->pm_state), + msecs_to_jiffies(mhi_cntrl->timeout_ms)); + + if (!ret || MHI_PM_IN_ERROR_STATE(mhi_cntrl->pm_state)) { + dev_err(dev, + "Did not enter M3 state, MHI state: %s, PM state: %s\n", + TO_MHI_STATE_STR(mhi_cntrl->dev_state), + to_mhi_pm_state_str(mhi_cntrl->pm_state)); + return -EIO; + } + + /* Notify clients about entering LPM */ + list_for_each_entry_safe(itr, tmp, &mhi_cntrl->lpm_chans, node) { + mutex_lock(&itr->mutex); + if (itr->mhi_dev) + mhi_notify(itr->mhi_dev, MHI_CB_LPM_ENTER); + mutex_unlock(&itr->mutex); + } + + return 0; +} +EXPORT_SYMBOL_GPL(mhi_pm_suspend); + +int mhi_pm_resume(struct mhi_controller *mhi_cntrl) +{ + struct mhi_chan *itr, *tmp; + struct device *dev = &mhi_cntrl->mhi_dev->dev; + enum mhi_pm_state cur_state; + int ret; + + dev_info(dev, "Entered with PM state: %s, MHI state: %s\n", + to_mhi_pm_state_str(mhi_cntrl->pm_state), + TO_MHI_STATE_STR(mhi_cntrl->dev_state)); + + if (mhi_cntrl->pm_state == MHI_PM_DISABLE) + return 0; + + if (MHI_PM_IN_ERROR_STATE(mhi_cntrl->pm_state)) + return -EIO; + + /* Notify clients about exiting LPM */ + list_for_each_entry_safe(itr, tmp, &mhi_cntrl->lpm_chans, node) { + mutex_lock(&itr->mutex); + if (itr->mhi_dev) + mhi_notify(itr->mhi_dev, MHI_CB_LPM_EXIT); + mutex_unlock(&itr->mutex); + } + + write_lock_irq(&mhi_cntrl->pm_lock); + cur_state = mhi_tryset_pm_state(mhi_cntrl, MHI_PM_M3_EXIT); + if (cur_state != MHI_PM_M3_EXIT) { + write_unlock_irq(&mhi_cntrl->pm_lock); + dev_info(dev, + "Error setting to PM state: %s from: %s\n", + to_mhi_pm_state_str(MHI_PM_M3_EXIT), + to_mhi_pm_state_str(mhi_cntrl->pm_state)); + return -EIO; + } + + /* Set MHI to M0 and wait for completion */ + mhi_set_mhi_state(mhi_cntrl, MHI_STATE_M0); + write_unlock_irq(&mhi_cntrl->pm_lock); + + ret = wait_event_timeout(mhi_cntrl->state_event, + mhi_cntrl->dev_state == MHI_STATE_M0 || + MHI_PM_IN_ERROR_STATE(mhi_cntrl->pm_state), + msecs_to_jiffies(mhi_cntrl->timeout_ms)); + + if (!ret || MHI_PM_IN_ERROR_STATE(mhi_cntrl->pm_state)) { + dev_err(dev, + "Did not enter M0 state, MHI state: %s, PM state: %s\n", + TO_MHI_STATE_STR(mhi_cntrl->dev_state), + to_mhi_pm_state_str(mhi_cntrl->pm_state)); + return -EIO; + } + + return 0; +} +EXPORT_SYMBOL_GPL(mhi_pm_resume); + +int __mhi_device_get_sync(struct mhi_controller *mhi_cntrl) +{ + int ret; + + /* Wake up the device */ + read_lock_bh(&mhi_cntrl->pm_lock); + mhi_cntrl->wake_get(mhi_cntrl, true); + if (MHI_PM_IN_SUSPEND_STATE(mhi_cntrl->pm_state)) + mhi_trigger_resume(mhi_cntrl); + read_unlock_bh(&mhi_cntrl->pm_lock); + + ret = wait_event_timeout(mhi_cntrl->state_event, + mhi_cntrl->pm_state == MHI_PM_M0 || + MHI_PM_IN_ERROR_STATE(mhi_cntrl->pm_state), + msecs_to_jiffies(mhi_cntrl->timeout_ms)); + + if (!ret || MHI_PM_IN_ERROR_STATE(mhi_cntrl->pm_state)) { + read_lock_bh(&mhi_cntrl->pm_lock); + mhi_cntrl->wake_put(mhi_cntrl, false); + read_unlock_bh(&mhi_cntrl->pm_lock); + return -EIO; + } + + return 0; +} + +/* Assert device wake db */ +static void mhi_assert_dev_wake(struct mhi_controller *mhi_cntrl, bool force) +{ + unsigned long flags; + + /* + * If force flag is set, then increment the wake count value and + * ring wake db + */ + if (unlikely(force)) { + spin_lock_irqsave(&mhi_cntrl->wlock, flags); + atomic_inc(&mhi_cntrl->dev_wake); + if (MHI_WAKE_DB_FORCE_SET_VALID(mhi_cntrl->pm_state) && + !mhi_cntrl->wake_set) { + mhi_write_db(mhi_cntrl, mhi_cntrl->wake_db, 1); + mhi_cntrl->wake_set = true; + } + spin_unlock_irqrestore(&mhi_cntrl->wlock, flags); + } else { + /* + * If resources are already requested, then just increment + * the wake count value and return + */ + if (likely(atomic_add_unless(&mhi_cntrl->dev_wake, 1, 0))) + return; + + spin_lock_irqsave(&mhi_cntrl->wlock, flags); + if ((atomic_inc_return(&mhi_cntrl->dev_wake) == 1) && + MHI_WAKE_DB_SET_VALID(mhi_cntrl->pm_state) && + !mhi_cntrl->wake_set) { + mhi_write_db(mhi_cntrl, mhi_cntrl->wake_db, 1); + mhi_cntrl->wake_set = true; + } + spin_unlock_irqrestore(&mhi_cntrl->wlock, flags); + } +} + +/* De-assert device wake db */ +static void mhi_deassert_dev_wake(struct mhi_controller *mhi_cntrl, + bool override) +{ + unsigned long flags; + + /* + * Only continue if there is a single resource, else just decrement + * and return + */ + if (likely(atomic_add_unless(&mhi_cntrl->dev_wake, -1, 1))) + return; + + spin_lock_irqsave(&mhi_cntrl->wlock, flags); + if ((atomic_dec_return(&mhi_cntrl->dev_wake) == 0) && + MHI_WAKE_DB_CLEAR_VALID(mhi_cntrl->pm_state) && !override && + mhi_cntrl->wake_set) { + mhi_write_db(mhi_cntrl, mhi_cntrl->wake_db, 0); + mhi_cntrl->wake_set = false; + } + spin_unlock_irqrestore(&mhi_cntrl->wlock, flags); +} + +int mhi_async_power_up(struct mhi_controller *mhi_cntrl) +{ + enum mhi_state state; + enum mhi_ee_type current_ee; + enum dev_st_transition next_state; + struct device *dev = &mhi_cntrl->mhi_dev->dev; + u32 val; + int ret; + + dev_info(dev, "Requested to power ON\n"); + + if (mhi_cntrl->nr_irqs < 1) + return -EINVAL; + + /* Supply default wake routines if not provided by controller driver */ + if (!mhi_cntrl->wake_get || !mhi_cntrl->wake_put || + !mhi_cntrl->wake_toggle) { + mhi_cntrl->wake_get = mhi_assert_dev_wake; + mhi_cntrl->wake_put = mhi_deassert_dev_wake; + mhi_cntrl->wake_toggle = (mhi_cntrl->db_access & MHI_PM_M2) ? + mhi_toggle_dev_wake_nop : mhi_toggle_dev_wake; + } + + mutex_lock(&mhi_cntrl->pm_mutex); + mhi_cntrl->pm_state = MHI_PM_DISABLE; + + if (!mhi_cntrl->pre_init) { + /* Setup device context */ + ret = mhi_init_dev_ctxt(mhi_cntrl); + if (ret) + goto error_dev_ctxt; + } + + ret = mhi_init_irq_setup(mhi_cntrl); + if (ret) + goto error_setup_irq; + + /* Setup BHI offset & INTVEC */ + write_lock_irq(&mhi_cntrl->pm_lock); + ret = mhi_read_reg(mhi_cntrl, mhi_cntrl->regs, BHIOFF, &val); + if (ret) { + write_unlock_irq(&mhi_cntrl->pm_lock); + goto error_bhi_offset; + } + + mhi_cntrl->bhi = mhi_cntrl->regs + val; + + /* Setup BHIE offset */ + if (mhi_cntrl->fbc_download) { + ret = mhi_read_reg(mhi_cntrl, mhi_cntrl->regs, BHIEOFF, &val); + if (ret) { + write_unlock_irq(&mhi_cntrl->pm_lock); + dev_err(dev, "Error reading BHIE offset\n"); + goto error_bhi_offset; + } + + mhi_cntrl->bhie = mhi_cntrl->regs + val; + } + + mhi_write_reg(mhi_cntrl, mhi_cntrl->bhi, BHI_INTVEC, 0); + mhi_cntrl->pm_state = MHI_PM_POR; + mhi_cntrl->ee = MHI_EE_MAX; + current_ee = mhi_get_exec_env(mhi_cntrl); + write_unlock_irq(&mhi_cntrl->pm_lock); + + /* Confirm that the device is in valid exec env */ + if (!MHI_IN_PBL(current_ee) && current_ee != MHI_EE_AMSS) { + dev_err(dev, "Not a valid EE for power on\n"); + ret = -EIO; + goto error_bhi_offset; + } + + state = mhi_get_mhi_state(mhi_cntrl); + if (state == MHI_STATE_SYS_ERR) { + mhi_set_mhi_state(mhi_cntrl, MHI_STATE_RESET); + ret = wait_event_timeout(mhi_cntrl->state_event, + MHI_PM_IN_FATAL_STATE(mhi_cntrl->pm_state) || + mhi_read_reg_field(mhi_cntrl, + mhi_cntrl->regs, + MHICTRL, + MHICTRL_RESET_MASK, + MHICTRL_RESET_SHIFT, + &val) || + !val, + msecs_to_jiffies(mhi_cntrl->timeout_ms)); + if (ret) { + ret = -EIO; + dev_info(dev, "Failed to reset MHI due to syserr state\n"); + goto error_bhi_offset; + } + + /* + * device cleares INTVEC as part of RESET processing, + * re-program it + */ + mhi_write_reg(mhi_cntrl, mhi_cntrl->bhi, BHI_INTVEC, 0); + } + + /* Transition to next state */ + next_state = MHI_IN_PBL(current_ee) ? + DEV_ST_TRANSITION_PBL : DEV_ST_TRANSITION_READY; + + mhi_queue_state_transition(mhi_cntrl, next_state); + + mutex_unlock(&mhi_cntrl->pm_mutex); + + dev_info(dev, "Power on setup success\n"); + + return 0; + +error_bhi_offset: + mhi_deinit_free_irq(mhi_cntrl); + +error_setup_irq: + if (!mhi_cntrl->pre_init) + mhi_deinit_dev_ctxt(mhi_cntrl); + +error_dev_ctxt: + mutex_unlock(&mhi_cntrl->pm_mutex); + + return ret; +} +EXPORT_SYMBOL_GPL(mhi_async_power_up); + +void mhi_power_down(struct mhi_controller *mhi_cntrl, bool graceful) +{ + enum mhi_pm_state cur_state; + struct device *dev = &mhi_cntrl->mhi_dev->dev; + + /* If it's not a graceful shutdown, force MHI to linkdown state */ + if (!graceful) { + mutex_lock(&mhi_cntrl->pm_mutex); + write_lock_irq(&mhi_cntrl->pm_lock); + cur_state = mhi_tryset_pm_state(mhi_cntrl, + MHI_PM_LD_ERR_FATAL_DETECT); + write_unlock_irq(&mhi_cntrl->pm_lock); + mutex_unlock(&mhi_cntrl->pm_mutex); + if (cur_state != MHI_PM_LD_ERR_FATAL_DETECT) + dev_dbg(dev, "Failed to move to state: %s from: %s\n", + to_mhi_pm_state_str(MHI_PM_LD_ERR_FATAL_DETECT), + to_mhi_pm_state_str(mhi_cntrl->pm_state)); + } + + mhi_queue_state_transition(mhi_cntrl, DEV_ST_TRANSITION_DISABLE); + + /* Wait for shutdown to complete */ + flush_work(&mhi_cntrl->st_worker); + + mhi_deinit_free_irq(mhi_cntrl); + + if (!mhi_cntrl->pre_init) { + /* Free all allocated resources */ + if (mhi_cntrl->fbc_image) { + mhi_free_bhie_table(mhi_cntrl, mhi_cntrl->fbc_image); + mhi_cntrl->fbc_image = NULL; + } + mhi_deinit_dev_ctxt(mhi_cntrl); + } +} +EXPORT_SYMBOL_GPL(mhi_power_down); + +int mhi_sync_power_up(struct mhi_controller *mhi_cntrl) +{ + int ret = mhi_async_power_up(mhi_cntrl); + + if (ret) + return ret; + + wait_event_timeout(mhi_cntrl->state_event, + MHI_IN_MISSION_MODE(mhi_cntrl->ee) || + MHI_PM_IN_ERROR_STATE(mhi_cntrl->pm_state), + msecs_to_jiffies(mhi_cntrl->timeout_ms)); + + ret = (MHI_IN_MISSION_MODE(mhi_cntrl->ee)) ? 0 : -ETIMEDOUT; + if (ret) + mhi_power_down(mhi_cntrl, false); + + return ret; +} +EXPORT_SYMBOL(mhi_sync_power_up); + +int mhi_force_rddm_mode(struct mhi_controller *mhi_cntrl) +{ + struct device *dev = &mhi_cntrl->mhi_dev->dev; + int ret; + + /* Check if device is already in RDDM */ + if (mhi_cntrl->ee == MHI_EE_RDDM) + return 0; + + dev_dbg(dev, "Triggering SYS_ERR to force RDDM state\n"); + mhi_set_mhi_state(mhi_cntrl, MHI_STATE_SYS_ERR); + + /* Wait for RDDM event */ + ret = wait_event_timeout(mhi_cntrl->state_event, + mhi_cntrl->ee == MHI_EE_RDDM, + msecs_to_jiffies(mhi_cntrl->timeout_ms)); + ret = ret ? 0 : -EIO; + + return ret; +} +EXPORT_SYMBOL_GPL(mhi_force_rddm_mode); + +void mhi_device_get(struct mhi_device *mhi_dev) +{ + struct mhi_controller *mhi_cntrl = mhi_dev->mhi_cntrl; + + mhi_dev->dev_wake++; + read_lock_bh(&mhi_cntrl->pm_lock); + if (MHI_PM_IN_SUSPEND_STATE(mhi_cntrl->pm_state)) + mhi_trigger_resume(mhi_cntrl); + + mhi_cntrl->wake_get(mhi_cntrl, true); + read_unlock_bh(&mhi_cntrl->pm_lock); +} +EXPORT_SYMBOL_GPL(mhi_device_get); + +int mhi_device_get_sync(struct mhi_device *mhi_dev) +{ + struct mhi_controller *mhi_cntrl = mhi_dev->mhi_cntrl; + int ret; + + ret = __mhi_device_get_sync(mhi_cntrl); + if (!ret) + mhi_dev->dev_wake++; + + return ret; +} +EXPORT_SYMBOL_GPL(mhi_device_get_sync); + +void mhi_device_put(struct mhi_device *mhi_dev) +{ + struct mhi_controller *mhi_cntrl = mhi_dev->mhi_cntrl; + + mhi_dev->dev_wake--; + read_lock_bh(&mhi_cntrl->pm_lock); + if (MHI_PM_IN_SUSPEND_STATE(mhi_cntrl->pm_state)) + mhi_trigger_resume(mhi_cntrl); + + mhi_cntrl->wake_put(mhi_cntrl, false); + read_unlock_bh(&mhi_cntrl->pm_lock); +} +EXPORT_SYMBOL_GPL(mhi_device_put); only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/cpufreq/acpi-cpufreq.c +++ linux-oem-5.6-5.6.0/drivers/cpufreq/acpi-cpufreq.c @@ -30,6 +30,7 @@ #include #include #include +#include MODULE_AUTHOR("Paul Diefenbaugh, Dominik Brodowski"); MODULE_DESCRIPTION("ACPI Processor P-States Driver"); only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/cpufreq/amd_freq_sensitivity.c +++ linux-oem-5.6-5.6.0/drivers/cpufreq/amd_freq_sensitivity.c @@ -18,6 +18,7 @@ #include #include +#include #include "cpufreq_ondemand.h" only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c +++ linux-oem-5.6-5.6.0/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c @@ -110,7 +110,7 @@ result = dc_link_aux_transfer_raw(TO_DM_AUX(aux)->ddc_service, &payload, &operation_result); - if (payload.write) + if (payload.write && result >= 0) result = msg->size; if (result < 0) only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/gpu/drm/i915/display/intel_dp_link_training.c +++ linux-oem-5.6-5.6.0/drivers/gpu/drm/i915/display/intel_dp_link_training.c @@ -130,12 +130,17 @@ static bool intel_dp_link_training_clock_recovery(struct intel_dp *intel_dp) { + struct drm_i915_private *dev_priv; u8 voltage; int voltage_tries, cr_tries, max_cr_tries; bool max_vswing_reached = false; u8 link_config[2]; u8 link_bw, rate_select; + if (intel_dp->attached_connector) { + dev_priv = to_i915(intel_dp->attached_connector->base.dev); + } + if (intel_dp->prepare_link_retrain) intel_dp->prepare_link_retrain(intel_dp); @@ -187,10 +192,15 @@ max_cr_tries = 80; voltage_tries = 1; + for (cr_tries = 0; cr_tries < max_cr_tries; ++cr_tries) { u8 link_status[DP_LINK_STATUS_SIZE]; - drm_dp_link_train_clock_recovery_delay(intel_dp->dpcd); + if (dev_priv && IS_TGL_REVID(dev_priv, TGL_REVID_A0, TGL_REVID_C0)) { + drm_dp_link_train_clock_recovery_larger_delay(intel_dp->dpcd); + } else { + drm_dp_link_train_clock_recovery_delay(intel_dp->dpcd); + } if (!intel_dp_get_link_status(intel_dp, link_status)) { DRM_ERROR("failed to get link status\n"); only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/hwtracing/intel_th/pci.c +++ linux-oem-5.6-5.6.0/drivers/hwtracing/intel_th/pci.c @@ -230,6 +230,11 @@ .driver_data = (kernel_ulong_t)&intel_th_2x, }, { + /* Tiger Lake PCH-H */ + PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x43a6), + .driver_data = (kernel_ulong_t)&intel_th_2x, + }, + { /* Jasper Lake PCH */ PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x4da6), .driver_data = (kernel_ulong_t)&intel_th_2x, only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/i2c/busses/i2c-i801.c +++ linux-oem-5.6-5.6.0/drivers/i2c/busses/i2c-i801.c @@ -67,6 +67,7 @@ * Comet Lake-H (PCH) 0x06a3 32 hard yes yes yes * Elkhart Lake (PCH) 0x4b23 32 hard yes yes yes * Tiger Lake-LP (PCH) 0xa0a3 32 hard yes yes yes + * Tiger Lake-H (PCH) 0x43a3 32 hard yes yes yes * Jasper Lake (SOC) 0x4da3 32 hard yes yes yes * Comet Lake-V (PCH) 0xa3a3 32 hard yes yes yes * @@ -221,6 +222,7 @@ #define PCI_DEVICE_ID_INTEL_GEMINILAKE_SMBUS 0x31d4 #define PCI_DEVICE_ID_INTEL_ICELAKE_LP_SMBUS 0x34a3 #define PCI_DEVICE_ID_INTEL_5_3400_SERIES_SMBUS 0x3b30 +#define PCI_DEVICE_ID_INTEL_TIGERLAKE_H_SMBUS 0x43a3 #define PCI_DEVICE_ID_INTEL_ELKHART_LAKE_SMBUS 0x4b23 #define PCI_DEVICE_ID_INTEL_JASPER_LAKE_SMBUS 0x4da3 #define PCI_DEVICE_ID_INTEL_BROXTON_SMBUS 0x5ad4 @@ -1074,6 +1076,7 @@ { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_COMETLAKE_V_SMBUS) }, { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ELKHART_LAKE_SMBUS) }, { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_TIGERLAKE_LP_SMBUS) }, + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_TIGERLAKE_H_SMBUS) }, { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_JASPER_LAKE_SMBUS) }, { 0, } }; @@ -1742,6 +1745,7 @@ case PCI_DEVICE_ID_INTEL_COMETLAKE_H_SMBUS: case PCI_DEVICE_ID_INTEL_ELKHART_LAKE_SMBUS: case PCI_DEVICE_ID_INTEL_TIGERLAKE_LP_SMBUS: + case PCI_DEVICE_ID_INTEL_TIGERLAKE_H_SMBUS: case PCI_DEVICE_ID_INTEL_JASPER_LAKE_SMBUS: priv->features |= FEATURE_BLOCK_PROC; priv->features |= FEATURE_I2C_BLOCK_READ; only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/input/mouse/elan_i2c.h +++ linux-oem-5.6-5.6.0/drivers/input/mouse/elan_i2c.h @@ -26,6 +26,24 @@ #define ETP_CALIBRATE_MAX_LEN 3 +#define ETP_FEATURE_REPORT_MK BIT(0) + +#define ETP_REPORT_ID 0x5D +#define ETP_TP_REPORT_ID 0x5E +#define ETP_TP_REPORT_ID2 0x5F +#define ETP_REPORT_ID2 0x60 /* High precision report */ + +#define ETP_REPORT_ID_OFFSET 2 +#define ETP_TOUCH_INFO_OFFSET 3 +#define ETP_FINGER_DATA_OFFSET 4 +#define ETP_HOVER_INFO_OFFSET 30 +#define ETP_MK_DATA_OFFSET 33 /* For high precision reports */ + +#define ETP_MAX_REPORT_LEN 39 + +#define ETP_MAX_FINGERS 5 +#define ETP_FINGER_DATA_LEN 5 + /* IAP Firmware handling */ #define ETP_PRODUCT_ID_FORMAT_STRING "%d.0" #define ETP_FW_NAME "elan_i2c_" ETP_PRODUCT_ID_FORMAT_STRING ".bin" @@ -78,7 +96,11 @@ int (*finish_fw_update)(struct i2c_client *client, struct completion *reset_done); - int (*get_report)(struct i2c_client *client, u8 *report); + int (*get_report_features)(struct i2c_client *client, u8 pattern, + unsigned int *features, + unsigned int *report_len); + int (*get_report)(struct i2c_client *client, u8 *report, + unsigned int report_len); int (*get_pressure_adjustment)(struct i2c_client *client, int *adjustment); int (*get_pattern)(struct i2c_client *client, u8 *pattern); only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/input/mouse/elan_i2c_core.c +++ linux-oem-5.6-5.6.0/drivers/input/mouse/elan_i2c_core.c @@ -47,16 +47,6 @@ #define ETP_FINGER_WIDTH 15 #define ETP_RETRY_COUNT 3 -#define ETP_MAX_FINGERS 5 -#define ETP_FINGER_DATA_LEN 5 -#define ETP_REPORT_ID 0x5D -#define ETP_TP_REPORT_ID 0x5E -#define ETP_REPORT_ID_OFFSET 2 -#define ETP_TOUCH_INFO_OFFSET 3 -#define ETP_FINGER_DATA_OFFSET 4 -#define ETP_HOVER_INFO_OFFSET 30 -#define ETP_MAX_REPORT_LEN 34 - /* The main device structure */ struct elan_tp_data { struct i2c_client *client; @@ -85,6 +75,8 @@ u8 sm_version; u8 iap_version; u16 fw_checksum; + unsigned int report_features; + unsigned int report_len; int pressure_adjustment; u8 mode; u16 ic_type; @@ -341,6 +333,12 @@ else ic_type = data->iap_version; + error = data->ops->get_report_features(data->client, data->pattern, + &data->report_features, + &data->report_len); + if (error) + return error; + error = elan_get_fwinfo(ic_type, &data->fw_validpage_count, &data->fw_signature_address); if (error) @@ -351,16 +349,21 @@ return 0; } -static unsigned int elan_convert_resolution(u8 val) +static unsigned int elan_convert_resolution(u8 val, u8 pattern) { /* - * (value from firmware) * 10 + 790 = dpi - * + * pattern <= 0x01: + * (value from firmware) * 10 + 790 = dpi + * else + * ((value from firmware) + 3) * 100 = dpi + */ + int res = pattern <= 0x01 ? + (int)(char)val * 10 + 790 : ((int)(char)val + 3) * 100; + /* * We also have to convert dpi to dots/mm (*10/254 to avoid floating * point). */ - - return ((int)(char)val * 10 + 790) * 10 / 254; + return res * 10 / 254; } static int elan_query_device_parameters(struct elan_tp_data *data) @@ -409,8 +412,8 @@ if (error) return error; - data->x_res = elan_convert_resolution(hw_x_res); - data->y_res = elan_convert_resolution(hw_y_res); + data->x_res = elan_convert_resolution(hw_x_res, data->pattern); + data->y_res = elan_convert_resolution(hw_y_res, data->pattern); } else { data->x_res = (data->max_x + 1) / x_mm; data->y_res = (data->max_y + 1) / y_mm; @@ -886,24 +889,22 @@ * Elan isr functions ****************************************************************** */ -static void elan_report_contact(struct elan_tp_data *data, - int contact_num, bool contact_valid, - u8 *finger_data) +static void elan_report_contact(struct elan_tp_data *data, int contact_num, + bool contact_valid, bool high_precision, + u8 *packet, u8 *finger_data) { struct input_dev *input = data->input; unsigned int pos_x, pos_y; - unsigned int pressure, mk_x, mk_y; - unsigned int area_x, area_y, major, minor; - unsigned int scaled_pressure; + unsigned int pressure, scaled_pressure; if (contact_valid) { - pos_x = ((finger_data[0] & 0xf0) << 4) | - finger_data[1]; - pos_y = ((finger_data[0] & 0x0f) << 8) | - finger_data[2]; - mk_x = (finger_data[3] & 0x0f); - mk_y = (finger_data[3] >> 4); - pressure = finger_data[4]; + if (high_precision) { + pos_x = get_unaligned_be16(&finger_data[0]); + pos_y = get_unaligned_be16(&finger_data[2]); + } else { + pos_x = ((finger_data[0] & 0xf0) << 4) | finger_data[1]; + pos_y = ((finger_data[0] & 0x0f) << 8) | finger_data[2]; + } if (pos_x > data->max_x || pos_y > data->max_y) { dev_dbg(input->dev.parent, @@ -913,18 +914,8 @@ return; } - /* - * To avoid treating large finger as palm, let's reduce the - * width x and y per trace. - */ - area_x = mk_x * (data->width_x - ETP_FWIDTH_REDUCE); - area_y = mk_y * (data->width_y - ETP_FWIDTH_REDUCE); - - major = max(area_x, area_y); - minor = min(area_x, area_y); - + pressure = finger_data[4]; scaled_pressure = pressure + data->pressure_adjustment; - if (scaled_pressure > ETP_MAX_PRESSURE) scaled_pressure = ETP_MAX_PRESSURE; @@ -933,16 +924,37 @@ input_report_abs(input, ABS_MT_POSITION_X, pos_x); input_report_abs(input, ABS_MT_POSITION_Y, data->max_y - pos_y); input_report_abs(input, ABS_MT_PRESSURE, scaled_pressure); - input_report_abs(input, ABS_TOOL_WIDTH, mk_x); - input_report_abs(input, ABS_MT_TOUCH_MAJOR, major); - input_report_abs(input, ABS_MT_TOUCH_MINOR, minor); + + if (data->report_features & ETP_FEATURE_REPORT_MK) { + unsigned int mk_x, mk_y, area_x, area_y; + u8 mk_data = high_precision ? + packet[ETP_MK_DATA_OFFSET + contact_num] : + finger_data[3]; + + mk_x = mk_data & 0x0f; + mk_y = mk_data >> 4; + + /* + * To avoid treating large finger as palm, let's reduce + * the width x and y per trace. + */ + area_x = mk_x * (data->width_x - ETP_FWIDTH_REDUCE); + area_y = mk_y * (data->width_y - ETP_FWIDTH_REDUCE); + + input_report_abs(input, ABS_TOOL_WIDTH, mk_x); + input_report_abs(input, ABS_MT_TOUCH_MAJOR, + max(area_x, area_y)); + input_report_abs(input, ABS_MT_TOUCH_MINOR, + min(area_x, area_y)); + } } else { input_mt_slot(input, contact_num); input_mt_report_slot_state(input, MT_TOOL_FINGER, false); } } -static void elan_report_absolute(struct elan_tp_data *data, u8 *packet) +static void elan_report_absolute(struct elan_tp_data *data, u8 *packet, + bool high_precision) { struct input_dev *input = data->input; u8 *finger_data = &packet[ETP_FINGER_DATA_OFFSET]; @@ -951,11 +963,12 @@ u8 hover_info = packet[ETP_HOVER_INFO_OFFSET]; bool contact_valid, hover_event; - hover_event = hover_info & 0x40; - for (i = 0; i < ETP_MAX_FINGERS; i++) { - contact_valid = tp_info & (1U << (3 + i)); - elan_report_contact(data, i, contact_valid, finger_data); + hover_event = hover_info & BIT(6); + for (i = 0; i < ETP_MAX_FINGERS; i++) { + contact_valid = tp_info & BIT(3 + i); + elan_report_contact(data, i, contact_valid, high_precision, + packet, finger_data); if (contact_valid) finger_data += ETP_FINGER_DATA_LEN; } @@ -1012,7 +1025,7 @@ goto out; } - error = data->ops->get_report(data->client, report); + error = data->ops->get_report(data->client, report, data->report_len); if (error) goto out; @@ -1020,9 +1033,13 @@ switch (report[ETP_REPORT_ID_OFFSET]) { case ETP_REPORT_ID: - elan_report_absolute(data, report); + elan_report_absolute(data, report, false); + break; + case ETP_REPORT_ID2: + elan_report_absolute(data, report, true); break; case ETP_TP_REPORT_ID: + case ETP_TP_REPORT_ID2: elan_report_trackpoint(data, report); break; default: @@ -1111,7 +1128,9 @@ input_abs_set_res(input, ABS_X, data->x_res); input_abs_set_res(input, ABS_Y, data->y_res); input_set_abs_params(input, ABS_PRESSURE, 0, ETP_MAX_PRESSURE, 0, 0); - input_set_abs_params(input, ABS_TOOL_WIDTH, 0, ETP_FINGER_WIDTH, 0, 0); + if (data->report_features & ETP_FEATURE_REPORT_MK) + input_set_abs_params(input, ABS_TOOL_WIDTH, + 0, ETP_FINGER_WIDTH, 0, 0); input_set_abs_params(input, ABS_DISTANCE, 0, 1, 0, 0); /* And MT parameters */ @@ -1121,10 +1140,12 @@ input_abs_set_res(input, ABS_MT_POSITION_Y, data->y_res); input_set_abs_params(input, ABS_MT_PRESSURE, 0, ETP_MAX_PRESSURE, 0, 0); - input_set_abs_params(input, ABS_MT_TOUCH_MAJOR, 0, - ETP_FINGER_WIDTH * max_width, 0, 0); - input_set_abs_params(input, ABS_MT_TOUCH_MINOR, 0, - ETP_FINGER_WIDTH * min_width, 0, 0); + if (data->report_features & ETP_FEATURE_REPORT_MK) { + input_set_abs_params(input, ABS_MT_TOUCH_MAJOR, + 0, ETP_FINGER_WIDTH * max_width, 0, 0); + input_set_abs_params(input, ABS_MT_TOUCH_MINOR, + 0, ETP_FINGER_WIDTH * min_width, 0, 0); + } data->input = input; only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/input/mouse/elan_i2c_i2c.c +++ linux-oem-5.6-5.6.0/drivers/input/mouse/elan_i2c_i2c.c @@ -55,6 +55,8 @@ #define ETP_I2C_MIN_BASELINE_CMD 0x0318 #define ETP_I2C_REPORT_LEN 34 +#define ETP_I2C_REPORT_LEN_ID2 39 +#define ETP_I2C_REPORT_MAX_LEN 39 #define ETP_I2C_DESC_LENGTH 30 #define ETP_I2C_REPORT_DESC_LENGTH 158 #define ETP_I2C_INF_LENGTH 2 @@ -386,7 +388,7 @@ return error; } - *max_x = le16_to_cpup((__le16 *)val) & 0x0fff; + *max_x = le16_to_cpup((__le16 *)val); error = elan_i2c_read_cmd(client, ETP_I2C_MAX_Y_AXIS_CMD, val); if (error) { @@ -394,7 +396,7 @@ return error; } - *max_y = le16_to_cpup((__le16 *)val) & 0x0fff; + *max_y = le16_to_cpup((__le16 *)val); return 0; } @@ -617,12 +619,12 @@ struct completion *completion) { struct device *dev = &client->dev; - int error; + int error = 0; int len; - u8 buffer[ETP_I2C_REPORT_LEN]; + u8 buffer[ETP_I2C_REPORT_MAX_LEN]; - len = i2c_master_recv(client, buffer, ETP_I2C_REPORT_LEN); - if (len != ETP_I2C_REPORT_LEN) { + len = i2c_master_recv(client, buffer, ETP_I2C_REPORT_MAX_LEN); + if (len <= 0) { error = len < 0 ? len : -EIO; dev_warn(dev, "failed to read I2C data after FW WDT reset: %d (%d)\n", error, len); @@ -656,20 +658,31 @@ return 0; } -static int elan_i2c_get_report(struct i2c_client *client, u8 *report) +static int elan_i2c_get_report_features(struct i2c_client *client, u8 pattern, + unsigned int *features, + unsigned int *report_len) +{ + *features = ETP_FEATURE_REPORT_MK; + *report_len = pattern <= 0x01 ? + ETP_I2C_REPORT_LEN : ETP_I2C_REPORT_LEN_ID2; + return 0; +} + +static int elan_i2c_get_report(struct i2c_client *client, + u8 *report, unsigned int report_len) { int len; - len = i2c_master_recv(client, report, ETP_I2C_REPORT_LEN); + len = i2c_master_recv(client, report, report_len); if (len < 0) { dev_err(&client->dev, "failed to read report data: %d\n", len); return len; } - if (len != ETP_I2C_REPORT_LEN) { + if (len != report_len) { dev_err(&client->dev, "wrong report length (%d vs %d expected)\n", - len, ETP_I2C_REPORT_LEN); + len, report_len); return -EIO; } @@ -706,5 +719,6 @@ .get_pattern = elan_i2c_get_pattern, + .get_report_features = elan_i2c_get_report_features, .get_report = elan_i2c_get_report, }; only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/input/mouse/elan_i2c_smbus.c +++ linux-oem-5.6-5.6.0/drivers/input/mouse/elan_i2c_smbus.c @@ -45,6 +45,7 @@ #define ETP_SMBUS_CALIBRATE_QUERY 0xC5 #define ETP_SMBUS_REPORT_LEN 32 +#define ETP_SMBUS_REPORT_LEN2 7 #define ETP_SMBUS_REPORT_OFFSET 2 #define ETP_SMBUS_HELLOPACKET_LEN 5 #define ETP_SMBUS_IAP_PASSWORD 0x1234 @@ -469,7 +470,21 @@ return 0; } -static int elan_smbus_get_report(struct i2c_client *client, u8 *report) +static int elan_smbus_get_report_features(struct i2c_client *client, u8 pattern, + unsigned int *features, + unsigned int *report_len) +{ + /* + * SMBus controllers with pattern 2 lack area info, as newer + * high-precision packets use that space for coordinates. + */ + *features = pattern <= 0x01 ? ETP_FEATURE_REPORT_MK : 0; + *report_len = ETP_SMBUS_REPORT_LEN; + return 0; +} + +static int elan_smbus_get_report(struct i2c_client *client, + u8 *report, unsigned int report_len) { int len; @@ -483,10 +498,13 @@ return len; } - if (len != ETP_SMBUS_REPORT_LEN) { + if (report[ETP_REPORT_ID_OFFSET] == ETP_TP_REPORT_ID2) + report_len = ETP_SMBUS_REPORT_LEN2; + + if (len != report_len) { dev_err(&client->dev, "wrong report length (%d vs %d expected)\n", - len, ETP_SMBUS_REPORT_LEN); + len, report_len); return -EIO; } @@ -534,6 +552,7 @@ .write_fw_block = elan_smbus_write_fw_block, .finish_fw_update = elan_smbus_finish_fw_update, + .get_report_features = elan_smbus_get_report_features, .get_report = elan_smbus_get_report, .get_pattern = elan_smbus_get_pattern, }; only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/input/mouse/elantech.c +++ linux-oem-5.6-5.6.0/drivers/input/mouse/elantech.c @@ -90,6 +90,47 @@ } /* + * Send an Elantech style special command to read 3 bytes from a register + */ +static int elantech_read_reg_params(struct psmouse *psmouse, u8 reg, u8 *param) +{ + if (elantech_ps2_command(psmouse, NULL, ETP_PS2_CUSTOM_COMMAND) || + elantech_ps2_command(psmouse, NULL, ETP_REGISTER_READWRITE) || + elantech_ps2_command(psmouse, NULL, ETP_PS2_CUSTOM_COMMAND) || + elantech_ps2_command(psmouse, NULL, reg) || + elantech_ps2_command(psmouse, param, PSMOUSE_CMD_GETINFO)) { + psmouse_err(psmouse, + "failed to read register %#02x\n", reg); + return -EIO; + } + + return 0; +} + +/* + * Send an Elantech style special command to write a register with a parameter + */ +static int elantech_write_reg_params(struct psmouse *psmouse, u8 reg, u8 *param) +{ + if (elantech_ps2_command(psmouse, NULL, ETP_PS2_CUSTOM_COMMAND) || + elantech_ps2_command(psmouse, NULL, ETP_REGISTER_READWRITE) || + elantech_ps2_command(psmouse, NULL, ETP_PS2_CUSTOM_COMMAND) || + elantech_ps2_command(psmouse, NULL, reg) || + elantech_ps2_command(psmouse, NULL, ETP_PS2_CUSTOM_COMMAND) || + elantech_ps2_command(psmouse, NULL, param[0]) || + elantech_ps2_command(psmouse, NULL, ETP_PS2_CUSTOM_COMMAND) || + elantech_ps2_command(psmouse, NULL, param[1]) || + elantech_ps2_command(psmouse, NULL, PSMOUSE_CMD_SETSCALE11)) { + psmouse_err(psmouse, + "failed to write register %#02x with value %#02x%#02x\n", + reg, param[0], param[1]); + return -EIO; + } + + return 0; +} + +/* * Send an Elantech style special command to read a value from a register */ static int elantech_read_reg(struct psmouse *psmouse, unsigned char reg, @@ -1530,18 +1571,34 @@ }; /* + * Change Report id 0x5E to 0x5F. + */ +static int elantech_change_report_id(struct psmouse *psmouse) +{ + unsigned char param[2] = { 0x10, 0x03 }; + + if (elantech_write_reg_params(psmouse, 0x7, param) || + elantech_read_reg_params(psmouse, 0x7, param) || + param[0] != 0x10 || param[1] != 0x03) { + psmouse_err(psmouse, "Unable to change report ID to 0x5f.\n"); + return -EIO; + } + + return 0; +} +/* * determine hardware version and set some properties according to it. */ static int elantech_set_properties(struct elantech_device_info *info) { /* This represents the version of IC body. */ - int ver = (info->fw_version & 0x0f0000) >> 16; + info->ic_version = (info->fw_version & 0x0f0000) >> 16; /* Early version of Elan touchpads doesn't obey the rule. */ if (info->fw_version < 0x020030 || info->fw_version == 0x020600) info->hw_version = 1; else { - switch (ver) { + switch (info->ic_version) { case 2: case 4: info->hw_version = 2; @@ -1557,6 +1614,11 @@ } } + /* Get information pattern for hw_version 4 */ + info->pattern = 0x00; + if (info->ic_version == 0x0f && (info->fw_version & 0xff) <= 0x02) + info->pattern = info->fw_version & 0xff; + /* decide which send_cmd we're gonna use early */ info->send_cmd = info->hw_version >= 3 ? elantech_send_cmd : synaptics_send_cmd; @@ -1598,6 +1660,7 @@ { unsigned char param[3]; unsigned char traces; + unsigned char ic_body[3]; memset(info, 0, sizeof(*info)); @@ -1640,6 +1703,21 @@ info->samples[2]); } + if (info->pattern > 0x00 && info->ic_version == 0xf) { + if (info->send_cmd(psmouse, ETP_ICBODY_QUERY, ic_body)) { + psmouse_err(psmouse, "failed to query ic body\n"); + return -EINVAL; + } + info->ic_version = be16_to_cpup((__be16 *)ic_body); + psmouse_info(psmouse, + "Elan ic body: %#04x, current fw version: %#02x\n", + info->ic_version, ic_body[2]); + } + + info->product_id = be16_to_cpup((__be16 *)info->samples); + if (info->pattern == 0x00) + info->product_id &= 0xff; + if (info->samples[1] == 0x74 && info->hw_version == 0x03) { /* * This module has a bug which makes absolute mode @@ -1654,6 +1732,23 @@ /* The MSB indicates the presence of the trackpoint */ info->has_trackpoint = (info->capabilities[0] & 0x80) == 0x80; + if (info->has_trackpoint && info->ic_version == 0x0011 && + (info->product_id == 0x08 || info->product_id == 0x09 || + info->product_id == 0x0d || info->product_id == 0x0e)) { + /* + * This module has a bug which makes trackpoint in SMBus + * mode return invalid data unless trackpoint is switched + * from using 0x5e reports to 0x5f. If we are not able to + * make the switch, let's abort initialization so we'll be + * using standard PS/2 protocol. + */ + if (elantech_change_report_id(psmouse)) { + psmouse_info(psmouse, + "Trackpoint report is broken, forcing standard PS/2 protocol\n"); + return -ENODEV; + } + } + info->x_res = 31; info->y_res = 31; if (info->hw_version == 4) { only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/input/mouse/elantech.h +++ linux-oem-5.6-5.6.0/drivers/input/mouse/elantech.h @@ -18,6 +18,7 @@ #define ETP_CAPABILITIES_QUERY 0x02 #define ETP_SAMPLE_QUERY 0x03 #define ETP_RESOLUTION_QUERY 0x04 +#define ETP_ICBODY_QUERY 0x05 /* * Command values for register reading or writing @@ -140,7 +141,10 @@ unsigned char samples[3]; unsigned char debug; unsigned char hw_version; + unsigned char pattern; unsigned int fw_version; + unsigned int ic_version; + unsigned int product_id; unsigned int x_min; unsigned int y_min; unsigned int x_max; only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/mfd/intel-lpss-pci.c +++ linux-oem-5.6-5.6.0/drivers/mfd/intel-lpss-pci.c @@ -225,6 +225,22 @@ { PCI_VDEVICE(INTEL, 0x34ea), (kernel_ulong_t)&bxt_i2c_info }, { PCI_VDEVICE(INTEL, 0x34eb), (kernel_ulong_t)&bxt_i2c_info }, { PCI_VDEVICE(INTEL, 0x34fb), (kernel_ulong_t)&spt_info }, + /* TGL-H */ + { PCI_VDEVICE(INTEL, 0x43a7), (kernel_ulong_t)&bxt_uart_info }, + { PCI_VDEVICE(INTEL, 0x43a8), (kernel_ulong_t)&bxt_uart_info }, + { PCI_VDEVICE(INTEL, 0x43a9), (kernel_ulong_t)&bxt_uart_info }, + { PCI_VDEVICE(INTEL, 0x43aa), (kernel_ulong_t)&bxt_info }, + { PCI_VDEVICE(INTEL, 0x43ab), (kernel_ulong_t)&bxt_info }, + { PCI_VDEVICE(INTEL, 0x43ad), (kernel_ulong_t)&bxt_i2c_info }, + { PCI_VDEVICE(INTEL, 0x43ae), (kernel_ulong_t)&bxt_i2c_info }, + { PCI_VDEVICE(INTEL, 0x43d8), (kernel_ulong_t)&bxt_i2c_info }, + { PCI_VDEVICE(INTEL, 0x43da), (kernel_ulong_t)&bxt_uart_info }, + { PCI_VDEVICE(INTEL, 0x43e8), (kernel_ulong_t)&bxt_i2c_info }, + { PCI_VDEVICE(INTEL, 0x43e9), (kernel_ulong_t)&bxt_i2c_info }, + { PCI_VDEVICE(INTEL, 0x43ea), (kernel_ulong_t)&bxt_i2c_info }, + { PCI_VDEVICE(INTEL, 0x43eb), (kernel_ulong_t)&bxt_i2c_info }, + { PCI_VDEVICE(INTEL, 0x43fb), (kernel_ulong_t)&bxt_info }, + { PCI_VDEVICE(INTEL, 0x43fd), (kernel_ulong_t)&bxt_info }, /* EHL */ { PCI_VDEVICE(INTEL, 0x4b28), (kernel_ulong_t)&bxt_uart_info }, { PCI_VDEVICE(INTEL, 0x4b29), (kernel_ulong_t)&bxt_uart_info }, only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/mtd/spi-nor/Kconfig +++ linux-oem-5.6-5.6.0/drivers/mtd/spi-nor/Kconfig @@ -24,87 +24,6 @@ Please note that some tools/drivers/filesystems may not work with 4096 B erase size (e.g. UBIFS requires 15 KiB as a minimum). -config SPI_ASPEED_SMC - tristate "Aspeed flash controllers in SPI mode" - depends on ARCH_ASPEED || COMPILE_TEST - depends on HAS_IOMEM && OF - help - This enables support for the Firmware Memory controller (FMC) - in the Aspeed AST2500/AST2400 SoCs when attached to SPI NOR chips, - and support for the SPI flash memory controller (SPI) for - the host firmware. The implementation only supports SPI NOR. - -config SPI_CADENCE_QUADSPI - tristate "Cadence Quad SPI controller" - depends on OF && (ARM || ARM64 || COMPILE_TEST) - help - Enable support for the Cadence Quad SPI Flash controller. - - Cadence QSPI is a specialized controller for connecting an SPI - Flash over 1/2/4-bit wide bus. Enable this option if you have a - device with a Cadence QSPI controller and want to access the - Flash as an MTD device. - -config SPI_HISI_SFC - tristate "Hisilicon FMC SPI-NOR Flash Controller(SFC)" - depends on ARCH_HISI || COMPILE_TEST - depends on HAS_IOMEM - help - This enables support for HiSilicon FMC SPI-NOR flash controller. - -config SPI_MTK_QUADSPI - tristate "MediaTek Quad SPI controller" - depends on HAS_IOMEM - help - This enables support for the Quad SPI controller in master mode. - This controller does not support generic SPI. It only supports - SPI NOR. - -config SPI_NXP_SPIFI - tristate "NXP SPI Flash Interface (SPIFI)" - depends on OF && (ARCH_LPC18XX || COMPILE_TEST) - depends on HAS_IOMEM - help - Enable support for the NXP LPC SPI Flash Interface controller. - - SPIFI is a specialized controller for connecting serial SPI - Flash. Enable this option if you have a device with a SPIFI - controller and want to access the Flash as a mtd device. - -config SPI_INTEL_SPI - tristate - -config SPI_INTEL_SPI_PCI - tristate "Intel PCH/PCU SPI flash PCI driver (DANGEROUS)" - depends on X86 && PCI - select SPI_INTEL_SPI - help - This enables PCI support for the Intel PCH/PCU SPI controller in - master mode. This controller is present in modern Intel hardware - and is used to hold BIOS and other persistent settings. Using - this driver it is possible to upgrade BIOS directly from Linux. - - Say N here unless you know what you are doing. Overwriting the - SPI flash may render the system unbootable. - - To compile this driver as a module, choose M here: the module - will be called intel-spi-pci. - -config SPI_INTEL_SPI_PLATFORM - tristate "Intel PCH/PCU SPI flash platform driver (DANGEROUS)" - depends on X86 - select SPI_INTEL_SPI - help - This enables platform support for the Intel PCH/PCU SPI - controller in master mode. This controller is present in modern - Intel hardware and is used to hold BIOS and other persistent - settings. Using this driver it is possible to upgrade BIOS - directly from Linux. - - Say N here unless you know what you are doing. Overwriting the - SPI flash may render the system unbootable. - - To compile this driver as a module, choose M here: the module - will be called intel-spi-platform. +source "drivers/mtd/spi-nor/controllers/Kconfig" endif # MTD_SPI_NOR only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/mtd/spi-nor/Makefile +++ linux-oem-5.6-5.6.0/drivers/mtd/spi-nor/Makefile @@ -1,10 +1,6 @@ # SPDX-License-Identifier: GPL-2.0 + +spi-nor-objs := core.o obj-$(CONFIG_MTD_SPI_NOR) += spi-nor.o -obj-$(CONFIG_SPI_ASPEED_SMC) += aspeed-smc.o -obj-$(CONFIG_SPI_CADENCE_QUADSPI) += cadence-quadspi.o -obj-$(CONFIG_SPI_HISI_SFC) += hisi-sfc.o -obj-$(CONFIG_SPI_MTK_QUADSPI) += mtk-quadspi.o -obj-$(CONFIG_SPI_NXP_SPIFI) += nxp-spifi.o -obj-$(CONFIG_SPI_INTEL_SPI) += intel-spi.o -obj-$(CONFIG_SPI_INTEL_SPI_PCI) += intel-spi-pci.o -obj-$(CONFIG_SPI_INTEL_SPI_PLATFORM) += intel-spi-platform.o + +obj-$(CONFIG_MTD_SPI_NOR) += controllers/ only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/mtd/spi-nor/controllers/Kconfig +++ linux-oem-5.6-5.6.0/drivers/mtd/spi-nor/controllers/Kconfig @@ -0,0 +1,83 @@ +# SPDX-License-Identifier: GPL-2.0-only +config SPI_ASPEED_SMC + tristate "Aspeed flash controllers in SPI mode" + depends on ARCH_ASPEED || COMPILE_TEST + depends on HAS_IOMEM && OF + help + This enables support for the Firmware Memory controller (FMC) + in the Aspeed AST2500/AST2400 SoCs when attached to SPI NOR chips, + and support for the SPI flash memory controller (SPI) for + the host firmware. The implementation only supports SPI NOR. + +config SPI_CADENCE_QUADSPI + tristate "Cadence Quad SPI controller" + depends on OF && (ARM || ARM64 || COMPILE_TEST) + help + Enable support for the Cadence Quad SPI Flash controller. + + Cadence QSPI is a specialized controller for connecting an SPI + Flash over 1/2/4-bit wide bus. Enable this option if you have a + device with a Cadence QSPI controller and want to access the + Flash as an MTD device. + +config SPI_HISI_SFC + tristate "Hisilicon FMC SPI-NOR Flash Controller(SFC)" + depends on ARCH_HISI || COMPILE_TEST + depends on HAS_IOMEM + help + This enables support for HiSilicon FMC SPI-NOR flash controller. + +config SPI_MTK_QUADSPI + tristate "MediaTek Quad SPI controller" + depends on HAS_IOMEM + help + This enables support for the Quad SPI controller in master mode. + This controller does not support generic SPI. It only supports + SPI NOR. + +config SPI_NXP_SPIFI + tristate "NXP SPI Flash Interface (SPIFI)" + depends on OF && (ARCH_LPC18XX || COMPILE_TEST) + depends on HAS_IOMEM + help + Enable support for the NXP LPC SPI Flash Interface controller. + + SPIFI is a specialized controller for connecting serial SPI + Flash. Enable this option if you have a device with a SPIFI + controller and want to access the Flash as a mtd device. + +config SPI_INTEL_SPI + tristate + +config SPI_INTEL_SPI_PCI + tristate "Intel PCH/PCU SPI flash PCI driver (DANGEROUS)" + depends on X86 && PCI + select SPI_INTEL_SPI + help + This enables PCI support for the Intel PCH/PCU SPI controller in + master mode. This controller is present in modern Intel hardware + and is used to hold BIOS and other persistent settings. Using + this driver it is possible to upgrade BIOS directly from Linux. + + Say N here unless you know what you are doing. Overwriting the + SPI flash may render the system unbootable. + + To compile this driver as a module, choose M here: the module + will be called intel-spi-pci. + +config SPI_INTEL_SPI_PLATFORM + tristate "Intel PCH/PCU SPI flash platform driver (DANGEROUS)" + depends on X86 + select SPI_INTEL_SPI + help + This enables platform support for the Intel PCH/PCU SPI + controller in master mode. This controller is present in modern + Intel hardware and is used to hold BIOS and other persistent + settings. Using this driver it is possible to upgrade BIOS + directly from Linux. + + Say N here unless you know what you are doing. Overwriting the + SPI flash may render the system unbootable. + + To compile this driver as a module, choose M here: the module + will be called intel-spi-platform. only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/mtd/spi-nor/controllers/Makefile +++ linux-oem-5.6-5.6.0/drivers/mtd/spi-nor/controllers/Makefile @@ -0,0 +1,9 @@ +# SPDX-License-Identifier: GPL-2.0 +obj-$(CONFIG_SPI_ASPEED_SMC) += aspeed-smc.o +obj-$(CONFIG_SPI_CADENCE_QUADSPI) += cadence-quadspi.o +obj-$(CONFIG_SPI_HISI_SFC) += hisi-sfc.o +obj-$(CONFIG_SPI_MTK_QUADSPI) += mtk-quadspi.o +obj-$(CONFIG_SPI_NXP_SPIFI) += nxp-spifi.o +obj-$(CONFIG_SPI_INTEL_SPI) += intel-spi.o +obj-$(CONFIG_SPI_INTEL_SPI_PCI) += intel-spi-pci.o +obj-$(CONFIG_SPI_INTEL_SPI_PLATFORM) += intel-spi-platform.o only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/mtd/spi-nor/controllers/aspeed-smc.c +++ linux-oem-5.6-5.6.0/drivers/mtd/spi-nor/controllers/aspeed-smc.c @@ -0,0 +1,910 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +/* + * ASPEED Static Memory Controller driver + * + * Copyright (c) 2015-2016, IBM Corporation. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define DEVICE_NAME "aspeed-smc" + +/* + * The driver only support SPI flash + */ +enum aspeed_smc_flash_type { + smc_type_nor = 0, + smc_type_nand = 1, + smc_type_spi = 2, +}; + +struct aspeed_smc_chip; + +struct aspeed_smc_info { + u32 maxsize; /* maximum size of chip window */ + u8 nce; /* number of chip enables */ + bool hastype; /* flash type field exists in config reg */ + u8 we0; /* shift for write enable bit for CE0 */ + u8 ctl0; /* offset in regs of ctl for CE0 */ + + void (*set_4b)(struct aspeed_smc_chip *chip); +}; + +static void aspeed_smc_chip_set_4b_spi_2400(struct aspeed_smc_chip *chip); +static void aspeed_smc_chip_set_4b(struct aspeed_smc_chip *chip); + +static const struct aspeed_smc_info fmc_2400_info = { + .maxsize = 64 * 1024 * 1024, + .nce = 5, + .hastype = true, + .we0 = 16, + .ctl0 = 0x10, + .set_4b = aspeed_smc_chip_set_4b, +}; + +static const struct aspeed_smc_info spi_2400_info = { + .maxsize = 64 * 1024 * 1024, + .nce = 1, + .hastype = false, + .we0 = 0, + .ctl0 = 0x04, + .set_4b = aspeed_smc_chip_set_4b_spi_2400, +}; + +static const struct aspeed_smc_info fmc_2500_info = { + .maxsize = 256 * 1024 * 1024, + .nce = 3, + .hastype = true, + .we0 = 16, + .ctl0 = 0x10, + .set_4b = aspeed_smc_chip_set_4b, +}; + +static const struct aspeed_smc_info spi_2500_info = { + .maxsize = 128 * 1024 * 1024, + .nce = 2, + .hastype = false, + .we0 = 16, + .ctl0 = 0x10, + .set_4b = aspeed_smc_chip_set_4b, +}; + +enum aspeed_smc_ctl_reg_value { + smc_base, /* base value without mode for other commands */ + smc_read, /* command reg for (maybe fast) reads */ + smc_write, /* command reg for writes */ + smc_max, +}; + +struct aspeed_smc_controller; + +struct aspeed_smc_chip { + int cs; + struct aspeed_smc_controller *controller; + void __iomem *ctl; /* control register */ + void __iomem *ahb_base; /* base of chip window */ + u32 ahb_window_size; /* chip mapping window size */ + u32 ctl_val[smc_max]; /* control settings */ + enum aspeed_smc_flash_type type; /* what type of flash */ + struct spi_nor nor; +}; + +struct aspeed_smc_controller { + struct device *dev; + + struct mutex mutex; /* controller access mutex */ + const struct aspeed_smc_info *info; /* type info of controller */ + void __iomem *regs; /* controller registers */ + void __iomem *ahb_base; /* per-chip windows resource */ + u32 ahb_window_size; /* full mapping window size */ + + struct aspeed_smc_chip *chips[0]; /* pointers to attached chips */ +}; + +/* + * SPI Flash Configuration Register (AST2500 SPI) + * or + * Type setting Register (AST2500 FMC). + * CE0 and CE1 can only be of type SPI. CE2 can be of type NOR but the + * driver does not support it. + */ +#define CONFIG_REG 0x0 +#define CONFIG_DISABLE_LEGACY BIT(31) /* 1 */ + +#define CONFIG_CE2_WRITE BIT(18) +#define CONFIG_CE1_WRITE BIT(17) +#define CONFIG_CE0_WRITE BIT(16) + +#define CONFIG_CE2_TYPE BIT(4) /* AST2500 FMC only */ +#define CONFIG_CE1_TYPE BIT(2) /* AST2500 FMC only */ +#define CONFIG_CE0_TYPE BIT(0) /* AST2500 FMC only */ + +/* + * CE Control Register + */ +#define CE_CONTROL_REG 0x4 + +/* + * CEx Control Register + */ +#define CONTROL_AAF_MODE BIT(31) +#define CONTROL_IO_MODE_MASK GENMASK(30, 28) +#define CONTROL_IO_DUAL_DATA BIT(29) +#define CONTROL_IO_DUAL_ADDR_DATA (BIT(29) | BIT(28)) +#define CONTROL_IO_QUAD_DATA BIT(30) +#define CONTROL_IO_QUAD_ADDR_DATA (BIT(30) | BIT(28)) +#define CONTROL_CE_INACTIVE_SHIFT 24 +#define CONTROL_CE_INACTIVE_MASK GENMASK(27, \ + CONTROL_CE_INACTIVE_SHIFT) +/* 0 = 16T ... 15 = 1T T=HCLK */ +#define CONTROL_COMMAND_SHIFT 16 +#define CONTROL_DUMMY_COMMAND_OUT BIT(15) +#define CONTROL_IO_DUMMY_HI BIT(14) +#define CONTROL_IO_DUMMY_HI_SHIFT 14 +#define CONTROL_CLK_DIV4 BIT(13) /* others */ +#define CONTROL_IO_ADDRESS_4B BIT(13) /* AST2400 SPI */ +#define CONTROL_RW_MERGE BIT(12) +#define CONTROL_IO_DUMMY_LO_SHIFT 6 +#define CONTROL_IO_DUMMY_LO GENMASK(7, \ + CONTROL_IO_DUMMY_LO_SHIFT) +#define CONTROL_IO_DUMMY_MASK (CONTROL_IO_DUMMY_HI | \ + CONTROL_IO_DUMMY_LO) +#define CONTROL_IO_DUMMY_SET(dummy) \ + (((((dummy) >> 2) & 0x1) << CONTROL_IO_DUMMY_HI_SHIFT) | \ + (((dummy) & 0x3) << CONTROL_IO_DUMMY_LO_SHIFT)) + +#define CONTROL_CLOCK_FREQ_SEL_SHIFT 8 +#define CONTROL_CLOCK_FREQ_SEL_MASK GENMASK(11, \ + CONTROL_CLOCK_FREQ_SEL_SHIFT) +#define CONTROL_LSB_FIRST BIT(5) +#define CONTROL_CLOCK_MODE_3 BIT(4) +#define CONTROL_IN_DUAL_DATA BIT(3) +#define CONTROL_CE_STOP_ACTIVE_CONTROL BIT(2) +#define CONTROL_COMMAND_MODE_MASK GENMASK(1, 0) +#define CONTROL_COMMAND_MODE_NORMAL 0 +#define CONTROL_COMMAND_MODE_FREAD 1 +#define CONTROL_COMMAND_MODE_WRITE 2 +#define CONTROL_COMMAND_MODE_USER 3 + +#define CONTROL_KEEP_MASK \ + (CONTROL_AAF_MODE | CONTROL_CE_INACTIVE_MASK | CONTROL_CLK_DIV4 | \ + CONTROL_CLOCK_FREQ_SEL_MASK | CONTROL_LSB_FIRST | CONTROL_CLOCK_MODE_3) + +/* + * The Segment Register uses a 8MB unit to encode the start address + * and the end address of the mapping window of a flash SPI slave : + * + * | byte 1 | byte 2 | byte 3 | byte 4 | + * +--------+--------+--------+--------+ + * | end | start | 0 | 0 | + */ +#define SEGMENT_ADDR_REG0 0x30 +#define SEGMENT_ADDR_START(_r) ((((_r) >> 16) & 0xFF) << 23) +#define SEGMENT_ADDR_END(_r) ((((_r) >> 24) & 0xFF) << 23) +#define SEGMENT_ADDR_VALUE(start, end) \ + (((((start) >> 23) & 0xFF) << 16) | ((((end) >> 23) & 0xFF) << 24)) +#define SEGMENT_ADDR_REG(controller, cs) \ + ((controller)->regs + SEGMENT_ADDR_REG0 + (cs) * 4) + +/* + * In user mode all data bytes read or written to the chip decode address + * range are transferred to or from the SPI bus. The range is treated as a + * fifo of arbitratry 1, 2, or 4 byte width but each write has to be aligned + * to its size. The address within the multiple 8kB range is ignored when + * sending bytes to the SPI bus. + * + * On the arm architecture, as of Linux version 4.3, memcpy_fromio and + * memcpy_toio on little endian targets use the optimized memcpy routines + * that were designed for well behavied memory storage. These routines + * have a stutter if the source and destination are not both word aligned, + * once with a duplicate access to the source after aligning to the + * destination to a word boundary, and again with a duplicate access to + * the source when the final byte count is not word aligned. + * + * When writing or reading the fifo this stutter discards data or sends + * too much data to the fifo and can not be used by this driver. + * + * While the low level io string routines that implement the insl family do + * the desired accesses and memory increments, the cross architecture io + * macros make them essentially impossible to use on a memory mapped address + * instead of a a token from the call to iomap of an io port. + * + * These fifo routines use readl and friends to a constant io port and update + * the memory buffer pointer and count via explicit code. The final updates + * to len are optimistically suppressed. + */ +static int aspeed_smc_read_from_ahb(void *buf, void __iomem *src, size_t len) +{ + size_t offset = 0; + + if (IS_ALIGNED((uintptr_t)src, sizeof(uintptr_t)) && + IS_ALIGNED((uintptr_t)buf, sizeof(uintptr_t))) { + ioread32_rep(src, buf, len >> 2); + offset = len & ~0x3; + len -= offset; + } + ioread8_rep(src, (u8 *)buf + offset, len); + return 0; +} + +static int aspeed_smc_write_to_ahb(void __iomem *dst, const void *buf, + size_t len) +{ + size_t offset = 0; + + if (IS_ALIGNED((uintptr_t)dst, sizeof(uintptr_t)) && + IS_ALIGNED((uintptr_t)buf, sizeof(uintptr_t))) { + iowrite32_rep(dst, buf, len >> 2); + offset = len & ~0x3; + len -= offset; + } + iowrite8_rep(dst, (const u8 *)buf + offset, len); + return 0; +} + +static inline u32 aspeed_smc_chip_write_bit(struct aspeed_smc_chip *chip) +{ + return BIT(chip->controller->info->we0 + chip->cs); +} + +static void aspeed_smc_chip_check_config(struct aspeed_smc_chip *chip) +{ + struct aspeed_smc_controller *controller = chip->controller; + u32 reg; + + reg = readl(controller->regs + CONFIG_REG); + + if (reg & aspeed_smc_chip_write_bit(chip)) + return; + + dev_dbg(controller->dev, "config write is not set ! @%p: 0x%08x\n", + controller->regs + CONFIG_REG, reg); + reg |= aspeed_smc_chip_write_bit(chip); + writel(reg, controller->regs + CONFIG_REG); +} + +static void aspeed_smc_start_user(struct spi_nor *nor) +{ + struct aspeed_smc_chip *chip = nor->priv; + u32 ctl = chip->ctl_val[smc_base]; + + /* + * When the chip is controlled in user mode, we need write + * access to send the opcodes to it. So check the config. + */ + aspeed_smc_chip_check_config(chip); + + ctl |= CONTROL_COMMAND_MODE_USER | + CONTROL_CE_STOP_ACTIVE_CONTROL; + writel(ctl, chip->ctl); + + ctl &= ~CONTROL_CE_STOP_ACTIVE_CONTROL; + writel(ctl, chip->ctl); +} + +static void aspeed_smc_stop_user(struct spi_nor *nor) +{ + struct aspeed_smc_chip *chip = nor->priv; + + u32 ctl = chip->ctl_val[smc_read]; + u32 ctl2 = ctl | CONTROL_COMMAND_MODE_USER | + CONTROL_CE_STOP_ACTIVE_CONTROL; + + writel(ctl2, chip->ctl); /* stop user CE control */ + writel(ctl, chip->ctl); /* default to fread or read mode */ +} + +static int aspeed_smc_prep(struct spi_nor *nor) +{ + struct aspeed_smc_chip *chip = nor->priv; + + mutex_lock(&chip->controller->mutex); + return 0; +} + +static void aspeed_smc_unprep(struct spi_nor *nor) +{ + struct aspeed_smc_chip *chip = nor->priv; + + mutex_unlock(&chip->controller->mutex); +} + +static int aspeed_smc_read_reg(struct spi_nor *nor, u8 opcode, u8 *buf, + size_t len) +{ + struct aspeed_smc_chip *chip = nor->priv; + + aspeed_smc_start_user(nor); + aspeed_smc_write_to_ahb(chip->ahb_base, &opcode, 1); + aspeed_smc_read_from_ahb(buf, chip->ahb_base, len); + aspeed_smc_stop_user(nor); + return 0; +} + +static int aspeed_smc_write_reg(struct spi_nor *nor, u8 opcode, const u8 *buf, + size_t len) +{ + struct aspeed_smc_chip *chip = nor->priv; + + aspeed_smc_start_user(nor); + aspeed_smc_write_to_ahb(chip->ahb_base, &opcode, 1); + aspeed_smc_write_to_ahb(chip->ahb_base, buf, len); + aspeed_smc_stop_user(nor); + return 0; +} + +static void aspeed_smc_send_cmd_addr(struct spi_nor *nor, u8 cmd, u32 addr) +{ + struct aspeed_smc_chip *chip = nor->priv; + __be32 temp; + u32 cmdaddr; + + switch (nor->addr_width) { + default: + WARN_ONCE(1, "Unexpected address width %u, defaulting to 3\n", + nor->addr_width); + /* FALLTHROUGH */ + case 3: + cmdaddr = addr & 0xFFFFFF; + cmdaddr |= cmd << 24; + + temp = cpu_to_be32(cmdaddr); + aspeed_smc_write_to_ahb(chip->ahb_base, &temp, 4); + break; + case 4: + temp = cpu_to_be32(addr); + aspeed_smc_write_to_ahb(chip->ahb_base, &cmd, 1); + aspeed_smc_write_to_ahb(chip->ahb_base, &temp, 4); + break; + } +} + +static ssize_t aspeed_smc_read_user(struct spi_nor *nor, loff_t from, + size_t len, u_char *read_buf) +{ + struct aspeed_smc_chip *chip = nor->priv; + int i; + u8 dummy = 0xFF; + + aspeed_smc_start_user(nor); + aspeed_smc_send_cmd_addr(nor, nor->read_opcode, from); + for (i = 0; i < chip->nor.read_dummy / 8; i++) + aspeed_smc_write_to_ahb(chip->ahb_base, &dummy, sizeof(dummy)); + + aspeed_smc_read_from_ahb(read_buf, chip->ahb_base, len); + aspeed_smc_stop_user(nor); + return len; +} + +static ssize_t aspeed_smc_write_user(struct spi_nor *nor, loff_t to, + size_t len, const u_char *write_buf) +{ + struct aspeed_smc_chip *chip = nor->priv; + + aspeed_smc_start_user(nor); + aspeed_smc_send_cmd_addr(nor, nor->program_opcode, to); + aspeed_smc_write_to_ahb(chip->ahb_base, write_buf, len); + aspeed_smc_stop_user(nor); + return len; +} + +static int aspeed_smc_unregister(struct aspeed_smc_controller *controller) +{ + struct aspeed_smc_chip *chip; + int n; + + for (n = 0; n < controller->info->nce; n++) { + chip = controller->chips[n]; + if (chip) + mtd_device_unregister(&chip->nor.mtd); + } + + return 0; +} + +static int aspeed_smc_remove(struct platform_device *dev) +{ + return aspeed_smc_unregister(platform_get_drvdata(dev)); +} + +static const struct of_device_id aspeed_smc_matches[] = { + { .compatible = "aspeed,ast2400-fmc", .data = &fmc_2400_info }, + { .compatible = "aspeed,ast2400-spi", .data = &spi_2400_info }, + { .compatible = "aspeed,ast2500-fmc", .data = &fmc_2500_info }, + { .compatible = "aspeed,ast2500-spi", .data = &spi_2500_info }, + { } +}; +MODULE_DEVICE_TABLE(of, aspeed_smc_matches); + +/* + * Each chip has a mapping window defined by a segment address + * register defining a start and an end address on the AHB bus. These + * addresses can be configured to fit the chip size and offer a + * contiguous memory region across chips. For the moment, we only + * check that each chip segment is valid. + */ +static void __iomem *aspeed_smc_chip_base(struct aspeed_smc_chip *chip, + struct resource *res) +{ + struct aspeed_smc_controller *controller = chip->controller; + u32 offset = 0; + u32 reg; + + if (controller->info->nce > 1) { + reg = readl(SEGMENT_ADDR_REG(controller, chip->cs)); + + if (SEGMENT_ADDR_START(reg) >= SEGMENT_ADDR_END(reg)) + return NULL; + + offset = SEGMENT_ADDR_START(reg) - res->start; + } + + return controller->ahb_base + offset; +} + +static u32 aspeed_smc_ahb_base_phy(struct aspeed_smc_controller *controller) +{ + u32 seg0_val = readl(SEGMENT_ADDR_REG(controller, 0)); + + return SEGMENT_ADDR_START(seg0_val); +} + +static u32 chip_set_segment(struct aspeed_smc_chip *chip, u32 cs, u32 start, + u32 size) +{ + struct aspeed_smc_controller *controller = chip->controller; + void __iomem *seg_reg; + u32 seg_oldval, seg_newval, ahb_base_phy, end; + + ahb_base_phy = aspeed_smc_ahb_base_phy(controller); + + seg_reg = SEGMENT_ADDR_REG(controller, cs); + seg_oldval = readl(seg_reg); + + /* + * If the chip size is not specified, use the default segment + * size, but take into account the possible overlap with the + * previous segment + */ + if (!size) + size = SEGMENT_ADDR_END(seg_oldval) - start; + + /* + * The segment cannot exceed the maximum window size of the + * controller. + */ + if (start + size > ahb_base_phy + controller->ahb_window_size) { + size = ahb_base_phy + controller->ahb_window_size - start; + dev_warn(chip->nor.dev, "CE%d window resized to %dMB", + cs, size >> 20); + } + + end = start + size; + seg_newval = SEGMENT_ADDR_VALUE(start, end); + writel(seg_newval, seg_reg); + + /* + * Restore default value if something goes wrong. The chip + * might have set some bogus value and we would loose access + * to the chip. + */ + if (seg_newval != readl(seg_reg)) { + dev_err(chip->nor.dev, "CE%d window invalid", cs); + writel(seg_oldval, seg_reg); + start = SEGMENT_ADDR_START(seg_oldval); + end = SEGMENT_ADDR_END(seg_oldval); + size = end - start; + } + + dev_info(chip->nor.dev, "CE%d window [ 0x%.8x - 0x%.8x ] %dMB", + cs, start, end, size >> 20); + + return size; +} + +/* + * The segment register defines the mapping window on the AHB bus and + * it needs to be configured depending on the chip size. The segment + * register of the following CE also needs to be tuned in order to + * provide a contiguous window across multiple chips. + * + * This is expected to be called in increasing CE order + */ +static u32 aspeed_smc_chip_set_segment(struct aspeed_smc_chip *chip) +{ + struct aspeed_smc_controller *controller = chip->controller; + u32 ahb_base_phy, start; + u32 size = chip->nor.mtd.size; + + /* + * Each controller has a chip size limit for direct memory + * access + */ + if (size > controller->info->maxsize) + size = controller->info->maxsize; + + /* + * The AST2400 SPI controller only handles one chip and does + * not have segment registers. Let's use the chip size for the + * AHB window. + */ + if (controller->info == &spi_2400_info) + goto out; + + /* + * The AST2500 SPI controller has a HW bug when the CE0 chip + * size reaches 128MB. Enforce a size limit of 120MB to + * prevent the controller from using bogus settings in the + * segment register. + */ + if (chip->cs == 0 && controller->info == &spi_2500_info && + size == SZ_128M) { + size = 120 << 20; + dev_info(chip->nor.dev, + "CE%d window resized to %dMB (AST2500 HW quirk)", + chip->cs, size >> 20); + } + + ahb_base_phy = aspeed_smc_ahb_base_phy(controller); + + /* + * As a start address for the current segment, use the default + * start address if we are handling CE0 or use the previous + * segment ending address + */ + if (chip->cs) { + u32 prev = readl(SEGMENT_ADDR_REG(controller, chip->cs - 1)); + + start = SEGMENT_ADDR_END(prev); + } else { + start = ahb_base_phy; + } + + size = chip_set_segment(chip, chip->cs, start, size); + + /* Update chip base address on the AHB bus */ + chip->ahb_base = controller->ahb_base + (start - ahb_base_phy); + + /* + * Now, make sure the next segment does not overlap with the + * current one we just configured, even if there is no + * available chip. That could break access in Command Mode. + */ + if (chip->cs < controller->info->nce - 1) + chip_set_segment(chip, chip->cs + 1, start + size, 0); + +out: + if (size < chip->nor.mtd.size) + dev_warn(chip->nor.dev, + "CE%d window too small for chip %dMB", + chip->cs, (u32)chip->nor.mtd.size >> 20); + + return size; +} + +static void aspeed_smc_chip_enable_write(struct aspeed_smc_chip *chip) +{ + struct aspeed_smc_controller *controller = chip->controller; + u32 reg; + + reg = readl(controller->regs + CONFIG_REG); + + reg |= aspeed_smc_chip_write_bit(chip); + writel(reg, controller->regs + CONFIG_REG); +} + +static void aspeed_smc_chip_set_type(struct aspeed_smc_chip *chip, int type) +{ + struct aspeed_smc_controller *controller = chip->controller; + u32 reg; + + chip->type = type; + + reg = readl(controller->regs + CONFIG_REG); + reg &= ~(3 << (chip->cs * 2)); + reg |= chip->type << (chip->cs * 2); + writel(reg, controller->regs + CONFIG_REG); +} + +/* + * The first chip of the AST2500 FMC flash controller is strapped by + * hardware, or autodetected, but other chips need to be set. Enforce + * the 4B setting for all chips. + */ +static void aspeed_smc_chip_set_4b(struct aspeed_smc_chip *chip) +{ + struct aspeed_smc_controller *controller = chip->controller; + u32 reg; + + reg = readl(controller->regs + CE_CONTROL_REG); + reg |= 1 << chip->cs; + writel(reg, controller->regs + CE_CONTROL_REG); +} + +/* + * The AST2400 SPI flash controller does not have a CE Control + * register. It uses the CE0 control register to set 4Byte mode at the + * controller level. + */ +static void aspeed_smc_chip_set_4b_spi_2400(struct aspeed_smc_chip *chip) +{ + chip->ctl_val[smc_base] |= CONTROL_IO_ADDRESS_4B; + chip->ctl_val[smc_read] |= CONTROL_IO_ADDRESS_4B; +} + +static int aspeed_smc_chip_setup_init(struct aspeed_smc_chip *chip, + struct resource *res) +{ + struct aspeed_smc_controller *controller = chip->controller; + const struct aspeed_smc_info *info = controller->info; + u32 reg, base_reg; + + /* + * Always turn on the write enable bit to allow opcodes to be + * sent in user mode. + */ + aspeed_smc_chip_enable_write(chip); + + /* The driver only supports SPI type flash */ + if (info->hastype) + aspeed_smc_chip_set_type(chip, smc_type_spi); + + /* + * Configure chip base address in memory + */ + chip->ahb_base = aspeed_smc_chip_base(chip, res); + if (!chip->ahb_base) { + dev_warn(chip->nor.dev, "CE%d window closed", chip->cs); + return -EINVAL; + } + + /* + * Get value of the inherited control register. U-Boot usually + * does some timing calibration on the FMC chip, so it's good + * to keep them. In the future, we should handle calibration + * from Linux. + */ + reg = readl(chip->ctl); + dev_dbg(controller->dev, "control register: %08x\n", reg); + + base_reg = reg & CONTROL_KEEP_MASK; + if (base_reg != reg) { + dev_dbg(controller->dev, + "control register changed to: %08x\n", + base_reg); + } + chip->ctl_val[smc_base] = base_reg; + + /* + * Retain the prior value of the control register as the + * default if it was normal access mode. Otherwise start with + * the sanitized base value set to read mode. + */ + if ((reg & CONTROL_COMMAND_MODE_MASK) == + CONTROL_COMMAND_MODE_NORMAL) + chip->ctl_val[smc_read] = reg; + else + chip->ctl_val[smc_read] = chip->ctl_val[smc_base] | + CONTROL_COMMAND_MODE_NORMAL; + + dev_dbg(controller->dev, "default control register: %08x\n", + chip->ctl_val[smc_read]); + return 0; +} + +static int aspeed_smc_chip_setup_finish(struct aspeed_smc_chip *chip) +{ + struct aspeed_smc_controller *controller = chip->controller; + const struct aspeed_smc_info *info = controller->info; + u32 cmd; + + if (chip->nor.addr_width == 4 && info->set_4b) + info->set_4b(chip); + + /* This is for direct AHB access when using Command Mode. */ + chip->ahb_window_size = aspeed_smc_chip_set_segment(chip); + + /* + * base mode has not been optimized yet. use it for writes. + */ + chip->ctl_val[smc_write] = chip->ctl_val[smc_base] | + chip->nor.program_opcode << CONTROL_COMMAND_SHIFT | + CONTROL_COMMAND_MODE_WRITE; + + dev_dbg(controller->dev, "write control register: %08x\n", + chip->ctl_val[smc_write]); + + /* + * TODO: Adjust clocks if fast read is supported and interpret + * SPI-NOR flags to adjust controller settings. + */ + if (chip->nor.read_proto == SNOR_PROTO_1_1_1) { + if (chip->nor.read_dummy == 0) + cmd = CONTROL_COMMAND_MODE_NORMAL; + else + cmd = CONTROL_COMMAND_MODE_FREAD; + } else { + dev_err(chip->nor.dev, "unsupported SPI read mode\n"); + return -EINVAL; + } + + chip->ctl_val[smc_read] |= cmd | + CONTROL_IO_DUMMY_SET(chip->nor.read_dummy / 8); + + dev_dbg(controller->dev, "base control register: %08x\n", + chip->ctl_val[smc_read]); + return 0; +} + +static const struct spi_nor_controller_ops aspeed_smc_controller_ops = { + .prepare = aspeed_smc_prep, + .unprepare = aspeed_smc_unprep, + .read_reg = aspeed_smc_read_reg, + .write_reg = aspeed_smc_write_reg, + .read = aspeed_smc_read_user, + .write = aspeed_smc_write_user, +}; + +static int aspeed_smc_setup_flash(struct aspeed_smc_controller *controller, + struct device_node *np, struct resource *r) +{ + const struct spi_nor_hwcaps hwcaps = { + .mask = SNOR_HWCAPS_READ | + SNOR_HWCAPS_READ_FAST | + SNOR_HWCAPS_PP, + }; + const struct aspeed_smc_info *info = controller->info; + struct device *dev = controller->dev; + struct device_node *child; + unsigned int cs; + int ret = -ENODEV; + + for_each_available_child_of_node(np, child) { + struct aspeed_smc_chip *chip; + struct spi_nor *nor; + struct mtd_info *mtd; + + /* This driver does not support NAND or NOR flash devices. */ + if (!of_device_is_compatible(child, "jedec,spi-nor")) + continue; + + ret = of_property_read_u32(child, "reg", &cs); + if (ret) { + dev_err(dev, "Couldn't not read chip select.\n"); + break; + } + + if (cs >= info->nce) { + dev_err(dev, "Chip select %d out of range.\n", + cs); + ret = -ERANGE; + break; + } + + if (controller->chips[cs]) { + dev_err(dev, "Chip select %d already in use by %s\n", + cs, dev_name(controller->chips[cs]->nor.dev)); + ret = -EBUSY; + break; + } + + chip = devm_kzalloc(controller->dev, sizeof(*chip), GFP_KERNEL); + if (!chip) { + ret = -ENOMEM; + break; + } + + chip->controller = controller; + chip->ctl = controller->regs + info->ctl0 + cs * 4; + chip->cs = cs; + + nor = &chip->nor; + mtd = &nor->mtd; + + nor->dev = dev; + nor->priv = chip; + spi_nor_set_flash_node(nor, child); + nor->controller_ops = &aspeed_smc_controller_ops; + + ret = aspeed_smc_chip_setup_init(chip, r); + if (ret) + break; + + /* + * TODO: Add support for Dual and Quad SPI protocols + * attach when board support is present as determined + * by of property. + */ + ret = spi_nor_scan(nor, NULL, &hwcaps); + if (ret) + break; + + ret = aspeed_smc_chip_setup_finish(chip); + if (ret) + break; + + ret = mtd_device_register(mtd, NULL, 0); + if (ret) + break; + + controller->chips[cs] = chip; + } + + if (ret) { + of_node_put(child); + aspeed_smc_unregister(controller); + } + + return ret; +} + +static int aspeed_smc_probe(struct platform_device *pdev) +{ + struct device_node *np = pdev->dev.of_node; + struct device *dev = &pdev->dev; + struct aspeed_smc_controller *controller; + const struct of_device_id *match; + const struct aspeed_smc_info *info; + struct resource *res; + int ret; + + match = of_match_device(aspeed_smc_matches, &pdev->dev); + if (!match || !match->data) + return -ENODEV; + info = match->data; + + controller = devm_kzalloc(&pdev->dev, + struct_size(controller, chips, info->nce), + GFP_KERNEL); + if (!controller) + return -ENOMEM; + controller->info = info; + controller->dev = dev; + + mutex_init(&controller->mutex); + platform_set_drvdata(pdev, controller); + + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); + controller->regs = devm_ioremap_resource(dev, res); + if (IS_ERR(controller->regs)) + return PTR_ERR(controller->regs); + + res = platform_get_resource(pdev, IORESOURCE_MEM, 1); + controller->ahb_base = devm_ioremap_resource(dev, res); + if (IS_ERR(controller->ahb_base)) + return PTR_ERR(controller->ahb_base); + + controller->ahb_window_size = resource_size(res); + + ret = aspeed_smc_setup_flash(controller, np, res); + if (ret) + dev_err(dev, "Aspeed SMC probe failed %d\n", ret); + + return ret; +} + +static struct platform_driver aspeed_smc_driver = { + .probe = aspeed_smc_probe, + .remove = aspeed_smc_remove, + .driver = { + .name = DEVICE_NAME, + .of_match_table = aspeed_smc_matches, + } +}; + +module_platform_driver(aspeed_smc_driver); + +MODULE_DESCRIPTION("ASPEED Static Memory Controller Driver"); +MODULE_AUTHOR("Cedric Le Goater "); +MODULE_LICENSE("GPL v2"); only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/mtd/spi-nor/controllers/cadence-quadspi.c +++ linux-oem-5.6-5.6.0/drivers/mtd/spi-nor/controllers/cadence-quadspi.c @@ -0,0 +1,1540 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * Driver for Cadence QSPI Controller + * + * Copyright Altera Corporation (C) 2012-2014. All rights reserved. + */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define CQSPI_NAME "cadence-qspi" +#define CQSPI_MAX_CHIPSELECT 16 + +/* Quirks */ +#define CQSPI_NEEDS_WR_DELAY BIT(0) + +/* Capabilities mask */ +#define CQSPI_BASE_HWCAPS_MASK \ + (SNOR_HWCAPS_READ | SNOR_HWCAPS_READ_FAST | \ + SNOR_HWCAPS_READ_1_1_2 | SNOR_HWCAPS_READ_1_1_4 | \ + SNOR_HWCAPS_PP) + +struct cqspi_st; + +struct cqspi_flash_pdata { + struct spi_nor nor; + struct cqspi_st *cqspi; + u32 clk_rate; + u32 read_delay; + u32 tshsl_ns; + u32 tsd2d_ns; + u32 tchsh_ns; + u32 tslch_ns; + u8 inst_width; + u8 addr_width; + u8 data_width; + u8 cs; + bool registered; + bool use_direct_mode; +}; + +struct cqspi_st { + struct platform_device *pdev; + + struct clk *clk; + unsigned int sclk; + + void __iomem *iobase; + void __iomem *ahb_base; + resource_size_t ahb_size; + struct completion transfer_complete; + struct mutex bus_mutex; + + struct dma_chan *rx_chan; + struct completion rx_dma_complete; + dma_addr_t mmap_phys_base; + + int current_cs; + int current_page_size; + int current_erase_size; + int current_addr_width; + unsigned long master_ref_clk_hz; + bool is_decoded_cs; + u32 fifo_depth; + u32 fifo_width; + bool rclk_en; + u32 trigger_address; + u32 wr_delay; + struct cqspi_flash_pdata f_pdata[CQSPI_MAX_CHIPSELECT]; +}; + +struct cqspi_driver_platdata { + u32 hwcaps_mask; + u8 quirks; +}; + +/* Operation timeout value */ +#define CQSPI_TIMEOUT_MS 500 +#define CQSPI_READ_TIMEOUT_MS 10 + +/* Instruction type */ +#define CQSPI_INST_TYPE_SINGLE 0 +#define CQSPI_INST_TYPE_DUAL 1 +#define CQSPI_INST_TYPE_QUAD 2 +#define CQSPI_INST_TYPE_OCTAL 3 + +#define CQSPI_DUMMY_CLKS_PER_BYTE 8 +#define CQSPI_DUMMY_BYTES_MAX 4 +#define CQSPI_DUMMY_CLKS_MAX 31 + +#define CQSPI_STIG_DATA_LEN_MAX 8 + +/* Register map */ +#define CQSPI_REG_CONFIG 0x00 +#define CQSPI_REG_CONFIG_ENABLE_MASK BIT(0) +#define CQSPI_REG_CONFIG_ENB_DIR_ACC_CTRL BIT(7) +#define CQSPI_REG_CONFIG_DECODE_MASK BIT(9) +#define CQSPI_REG_CONFIG_CHIPSELECT_LSB 10 +#define CQSPI_REG_CONFIG_DMA_MASK BIT(15) +#define CQSPI_REG_CONFIG_BAUD_LSB 19 +#define CQSPI_REG_CONFIG_IDLE_LSB 31 +#define CQSPI_REG_CONFIG_CHIPSELECT_MASK 0xF +#define CQSPI_REG_CONFIG_BAUD_MASK 0xF + +#define CQSPI_REG_RD_INSTR 0x04 +#define CQSPI_REG_RD_INSTR_OPCODE_LSB 0 +#define CQSPI_REG_RD_INSTR_TYPE_INSTR_LSB 8 +#define CQSPI_REG_RD_INSTR_TYPE_ADDR_LSB 12 +#define CQSPI_REG_RD_INSTR_TYPE_DATA_LSB 16 +#define CQSPI_REG_RD_INSTR_MODE_EN_LSB 20 +#define CQSPI_REG_RD_INSTR_DUMMY_LSB 24 +#define CQSPI_REG_RD_INSTR_TYPE_INSTR_MASK 0x3 +#define CQSPI_REG_RD_INSTR_TYPE_ADDR_MASK 0x3 +#define CQSPI_REG_RD_INSTR_TYPE_DATA_MASK 0x3 +#define CQSPI_REG_RD_INSTR_DUMMY_MASK 0x1F + +#define CQSPI_REG_WR_INSTR 0x08 +#define CQSPI_REG_WR_INSTR_OPCODE_LSB 0 +#define CQSPI_REG_WR_INSTR_TYPE_ADDR_LSB 12 +#define CQSPI_REG_WR_INSTR_TYPE_DATA_LSB 16 + +#define CQSPI_REG_DELAY 0x0C +#define CQSPI_REG_DELAY_TSLCH_LSB 0 +#define CQSPI_REG_DELAY_TCHSH_LSB 8 +#define CQSPI_REG_DELAY_TSD2D_LSB 16 +#define CQSPI_REG_DELAY_TSHSL_LSB 24 +#define CQSPI_REG_DELAY_TSLCH_MASK 0xFF +#define CQSPI_REG_DELAY_TCHSH_MASK 0xFF +#define CQSPI_REG_DELAY_TSD2D_MASK 0xFF +#define CQSPI_REG_DELAY_TSHSL_MASK 0xFF + +#define CQSPI_REG_READCAPTURE 0x10 +#define CQSPI_REG_READCAPTURE_BYPASS_LSB 0 +#define CQSPI_REG_READCAPTURE_DELAY_LSB 1 +#define CQSPI_REG_READCAPTURE_DELAY_MASK 0xF + +#define CQSPI_REG_SIZE 0x14 +#define CQSPI_REG_SIZE_ADDRESS_LSB 0 +#define CQSPI_REG_SIZE_PAGE_LSB 4 +#define CQSPI_REG_SIZE_BLOCK_LSB 16 +#define CQSPI_REG_SIZE_ADDRESS_MASK 0xF +#define CQSPI_REG_SIZE_PAGE_MASK 0xFFF +#define CQSPI_REG_SIZE_BLOCK_MASK 0x3F + +#define CQSPI_REG_SRAMPARTITION 0x18 +#define CQSPI_REG_INDIRECTTRIGGER 0x1C + +#define CQSPI_REG_DMA 0x20 +#define CQSPI_REG_DMA_SINGLE_LSB 0 +#define CQSPI_REG_DMA_BURST_LSB 8 +#define CQSPI_REG_DMA_SINGLE_MASK 0xFF +#define CQSPI_REG_DMA_BURST_MASK 0xFF + +#define CQSPI_REG_REMAP 0x24 +#define CQSPI_REG_MODE_BIT 0x28 + +#define CQSPI_REG_SDRAMLEVEL 0x2C +#define CQSPI_REG_SDRAMLEVEL_RD_LSB 0 +#define CQSPI_REG_SDRAMLEVEL_WR_LSB 16 +#define CQSPI_REG_SDRAMLEVEL_RD_MASK 0xFFFF +#define CQSPI_REG_SDRAMLEVEL_WR_MASK 0xFFFF + +#define CQSPI_REG_IRQSTATUS 0x40 +#define CQSPI_REG_IRQMASK 0x44 + +#define CQSPI_REG_INDIRECTRD 0x60 +#define CQSPI_REG_INDIRECTRD_START_MASK BIT(0) +#define CQSPI_REG_INDIRECTRD_CANCEL_MASK BIT(1) +#define CQSPI_REG_INDIRECTRD_DONE_MASK BIT(5) + +#define CQSPI_REG_INDIRECTRDWATERMARK 0x64 +#define CQSPI_REG_INDIRECTRDSTARTADDR 0x68 +#define CQSPI_REG_INDIRECTRDBYTES 0x6C + +#define CQSPI_REG_CMDCTRL 0x90 +#define CQSPI_REG_CMDCTRL_EXECUTE_MASK BIT(0) +#define CQSPI_REG_CMDCTRL_INPROGRESS_MASK BIT(1) +#define CQSPI_REG_CMDCTRL_WR_BYTES_LSB 12 +#define CQSPI_REG_CMDCTRL_WR_EN_LSB 15 +#define CQSPI_REG_CMDCTRL_ADD_BYTES_LSB 16 +#define CQSPI_REG_CMDCTRL_ADDR_EN_LSB 19 +#define CQSPI_REG_CMDCTRL_RD_BYTES_LSB 20 +#define CQSPI_REG_CMDCTRL_RD_EN_LSB 23 +#define CQSPI_REG_CMDCTRL_OPCODE_LSB 24 +#define CQSPI_REG_CMDCTRL_WR_BYTES_MASK 0x7 +#define CQSPI_REG_CMDCTRL_ADD_BYTES_MASK 0x3 +#define CQSPI_REG_CMDCTRL_RD_BYTES_MASK 0x7 + +#define CQSPI_REG_INDIRECTWR 0x70 +#define CQSPI_REG_INDIRECTWR_START_MASK BIT(0) +#define CQSPI_REG_INDIRECTWR_CANCEL_MASK BIT(1) +#define CQSPI_REG_INDIRECTWR_DONE_MASK BIT(5) + +#define CQSPI_REG_INDIRECTWRWATERMARK 0x74 +#define CQSPI_REG_INDIRECTWRSTARTADDR 0x78 +#define CQSPI_REG_INDIRECTWRBYTES 0x7C + +#define CQSPI_REG_CMDADDRESS 0x94 +#define CQSPI_REG_CMDREADDATALOWER 0xA0 +#define CQSPI_REG_CMDREADDATAUPPER 0xA4 +#define CQSPI_REG_CMDWRITEDATALOWER 0xA8 +#define CQSPI_REG_CMDWRITEDATAUPPER 0xAC + +/* Interrupt status bits */ +#define CQSPI_REG_IRQ_MODE_ERR BIT(0) +#define CQSPI_REG_IRQ_UNDERFLOW BIT(1) +#define CQSPI_REG_IRQ_IND_COMP BIT(2) +#define CQSPI_REG_IRQ_IND_RD_REJECT BIT(3) +#define CQSPI_REG_IRQ_WR_PROTECTED_ERR BIT(4) +#define CQSPI_REG_IRQ_ILLEGAL_AHB_ERR BIT(5) +#define CQSPI_REG_IRQ_WATERMARK BIT(6) +#define CQSPI_REG_IRQ_IND_SRAM_FULL BIT(12) + +#define CQSPI_IRQ_MASK_RD (CQSPI_REG_IRQ_WATERMARK | \ + CQSPI_REG_IRQ_IND_SRAM_FULL | \ + CQSPI_REG_IRQ_IND_COMP) + +#define CQSPI_IRQ_MASK_WR (CQSPI_REG_IRQ_IND_COMP | \ + CQSPI_REG_IRQ_WATERMARK | \ + CQSPI_REG_IRQ_UNDERFLOW) + +#define CQSPI_IRQ_STATUS_MASK 0x1FFFF + +static int cqspi_wait_for_bit(void __iomem *reg, const u32 mask, bool clr) +{ + u32 val; + + return readl_relaxed_poll_timeout(reg, val, + (((clr ? ~val : val) & mask) == mask), + 10, CQSPI_TIMEOUT_MS * 1000); +} + +static bool cqspi_is_idle(struct cqspi_st *cqspi) +{ + u32 reg = readl(cqspi->iobase + CQSPI_REG_CONFIG); + + return reg & (1 << CQSPI_REG_CONFIG_IDLE_LSB); +} + +static u32 cqspi_get_rd_sram_level(struct cqspi_st *cqspi) +{ + u32 reg = readl(cqspi->iobase + CQSPI_REG_SDRAMLEVEL); + + reg >>= CQSPI_REG_SDRAMLEVEL_RD_LSB; + return reg & CQSPI_REG_SDRAMLEVEL_RD_MASK; +} + +static irqreturn_t cqspi_irq_handler(int this_irq, void *dev) +{ + struct cqspi_st *cqspi = dev; + unsigned int irq_status; + + /* Read interrupt status */ + irq_status = readl(cqspi->iobase + CQSPI_REG_IRQSTATUS); + + /* Clear interrupt */ + writel(irq_status, cqspi->iobase + CQSPI_REG_IRQSTATUS); + + irq_status &= CQSPI_IRQ_MASK_RD | CQSPI_IRQ_MASK_WR; + + if (irq_status) + complete(&cqspi->transfer_complete); + + return IRQ_HANDLED; +} + +static unsigned int cqspi_calc_rdreg(struct spi_nor *nor) +{ + struct cqspi_flash_pdata *f_pdata = nor->priv; + u32 rdreg = 0; + + rdreg |= f_pdata->inst_width << CQSPI_REG_RD_INSTR_TYPE_INSTR_LSB; + rdreg |= f_pdata->addr_width << CQSPI_REG_RD_INSTR_TYPE_ADDR_LSB; + rdreg |= f_pdata->data_width << CQSPI_REG_RD_INSTR_TYPE_DATA_LSB; + + return rdreg; +} + +static int cqspi_wait_idle(struct cqspi_st *cqspi) +{ + const unsigned int poll_idle_retry = 3; + unsigned int count = 0; + unsigned long timeout; + + timeout = jiffies + msecs_to_jiffies(CQSPI_TIMEOUT_MS); + while (1) { + /* + * Read few times in succession to ensure the controller + * is indeed idle, that is, the bit does not transition + * low again. + */ + if (cqspi_is_idle(cqspi)) + count++; + else + count = 0; + + if (count >= poll_idle_retry) + return 0; + + if (time_after(jiffies, timeout)) { + /* Timeout, in busy mode. */ + dev_err(&cqspi->pdev->dev, + "QSPI is still busy after %dms timeout.\n", + CQSPI_TIMEOUT_MS); + return -ETIMEDOUT; + } + + cpu_relax(); + } +} + +static int cqspi_exec_flash_cmd(struct cqspi_st *cqspi, unsigned int reg) +{ + void __iomem *reg_base = cqspi->iobase; + int ret; + + /* Write the CMDCTRL without start execution. */ + writel(reg, reg_base + CQSPI_REG_CMDCTRL); + /* Start execute */ + reg |= CQSPI_REG_CMDCTRL_EXECUTE_MASK; + writel(reg, reg_base + CQSPI_REG_CMDCTRL); + + /* Polling for completion. */ + ret = cqspi_wait_for_bit(reg_base + CQSPI_REG_CMDCTRL, + CQSPI_REG_CMDCTRL_INPROGRESS_MASK, 1); + if (ret) { + dev_err(&cqspi->pdev->dev, + "Flash command execution timed out.\n"); + return ret; + } + + /* Polling QSPI idle status. */ + return cqspi_wait_idle(cqspi); +} + +static int cqspi_command_read(struct spi_nor *nor, u8 opcode, + u8 *rxbuf, size_t n_rx) +{ + struct cqspi_flash_pdata *f_pdata = nor->priv; + struct cqspi_st *cqspi = f_pdata->cqspi; + void __iomem *reg_base = cqspi->iobase; + unsigned int rdreg; + unsigned int reg; + size_t read_len; + int status; + + if (!n_rx || n_rx > CQSPI_STIG_DATA_LEN_MAX || !rxbuf) { + dev_err(nor->dev, + "Invalid input argument, len %zu rxbuf 0x%p\n", + n_rx, rxbuf); + return -EINVAL; + } + + reg = opcode << CQSPI_REG_CMDCTRL_OPCODE_LSB; + + rdreg = cqspi_calc_rdreg(nor); + writel(rdreg, reg_base + CQSPI_REG_RD_INSTR); + + reg |= (0x1 << CQSPI_REG_CMDCTRL_RD_EN_LSB); + + /* 0 means 1 byte. */ + reg |= (((n_rx - 1) & CQSPI_REG_CMDCTRL_RD_BYTES_MASK) + << CQSPI_REG_CMDCTRL_RD_BYTES_LSB); + status = cqspi_exec_flash_cmd(cqspi, reg); + if (status) + return status; + + reg = readl(reg_base + CQSPI_REG_CMDREADDATALOWER); + + /* Put the read value into rx_buf */ + read_len = (n_rx > 4) ? 4 : n_rx; + memcpy(rxbuf, ®, read_len); + rxbuf += read_len; + + if (n_rx > 4) { + reg = readl(reg_base + CQSPI_REG_CMDREADDATAUPPER); + + read_len = n_rx - read_len; + memcpy(rxbuf, ®, read_len); + } + + return 0; +} + +static int cqspi_command_write(struct spi_nor *nor, const u8 opcode, + const u8 *txbuf, size_t n_tx) +{ + struct cqspi_flash_pdata *f_pdata = nor->priv; + struct cqspi_st *cqspi = f_pdata->cqspi; + void __iomem *reg_base = cqspi->iobase; + unsigned int reg; + unsigned int data; + size_t write_len; + int ret; + + if (n_tx > CQSPI_STIG_DATA_LEN_MAX || (n_tx && !txbuf)) { + dev_err(nor->dev, + "Invalid input argument, cmdlen %zu txbuf 0x%p\n", + n_tx, txbuf); + return -EINVAL; + } + + reg = opcode << CQSPI_REG_CMDCTRL_OPCODE_LSB; + if (n_tx) { + reg |= (0x1 << CQSPI_REG_CMDCTRL_WR_EN_LSB); + reg |= ((n_tx - 1) & CQSPI_REG_CMDCTRL_WR_BYTES_MASK) + << CQSPI_REG_CMDCTRL_WR_BYTES_LSB; + data = 0; + write_len = (n_tx > 4) ? 4 : n_tx; + memcpy(&data, txbuf, write_len); + txbuf += write_len; + writel(data, reg_base + CQSPI_REG_CMDWRITEDATALOWER); + + if (n_tx > 4) { + data = 0; + write_len = n_tx - 4; + memcpy(&data, txbuf, write_len); + writel(data, reg_base + CQSPI_REG_CMDWRITEDATAUPPER); + } + } + ret = cqspi_exec_flash_cmd(cqspi, reg); + return ret; +} + +static int cqspi_command_write_addr(struct spi_nor *nor, + const u8 opcode, const unsigned int addr) +{ + struct cqspi_flash_pdata *f_pdata = nor->priv; + struct cqspi_st *cqspi = f_pdata->cqspi; + void __iomem *reg_base = cqspi->iobase; + unsigned int reg; + + reg = opcode << CQSPI_REG_CMDCTRL_OPCODE_LSB; + reg |= (0x1 << CQSPI_REG_CMDCTRL_ADDR_EN_LSB); + reg |= ((nor->addr_width - 1) & CQSPI_REG_CMDCTRL_ADD_BYTES_MASK) + << CQSPI_REG_CMDCTRL_ADD_BYTES_LSB; + + writel(addr, reg_base + CQSPI_REG_CMDADDRESS); + + return cqspi_exec_flash_cmd(cqspi, reg); +} + +static int cqspi_read_setup(struct spi_nor *nor) +{ + struct cqspi_flash_pdata *f_pdata = nor->priv; + struct cqspi_st *cqspi = f_pdata->cqspi; + void __iomem *reg_base = cqspi->iobase; + unsigned int dummy_clk = 0; + unsigned int reg; + + reg = nor->read_opcode << CQSPI_REG_RD_INSTR_OPCODE_LSB; + reg |= cqspi_calc_rdreg(nor); + + /* Setup dummy clock cycles */ + dummy_clk = nor->read_dummy; + if (dummy_clk > CQSPI_DUMMY_CLKS_MAX) + dummy_clk = CQSPI_DUMMY_CLKS_MAX; + + if (dummy_clk / 8) { + reg |= (1 << CQSPI_REG_RD_INSTR_MODE_EN_LSB); + /* Set mode bits high to ensure chip doesn't enter XIP */ + writel(0xFF, reg_base + CQSPI_REG_MODE_BIT); + + /* Need to subtract the mode byte (8 clocks). */ + if (f_pdata->inst_width != CQSPI_INST_TYPE_QUAD) + dummy_clk -= 8; + + if (dummy_clk) + reg |= (dummy_clk & CQSPI_REG_RD_INSTR_DUMMY_MASK) + << CQSPI_REG_RD_INSTR_DUMMY_LSB; + } + + writel(reg, reg_base + CQSPI_REG_RD_INSTR); + + /* Set address width */ + reg = readl(reg_base + CQSPI_REG_SIZE); + reg &= ~CQSPI_REG_SIZE_ADDRESS_MASK; + reg |= (nor->addr_width - 1); + writel(reg, reg_base + CQSPI_REG_SIZE); + return 0; +} + +static int cqspi_indirect_read_execute(struct spi_nor *nor, u8 *rxbuf, + loff_t from_addr, const size_t n_rx) +{ + struct cqspi_flash_pdata *f_pdata = nor->priv; + struct cqspi_st *cqspi = f_pdata->cqspi; + void __iomem *reg_base = cqspi->iobase; + void __iomem *ahb_base = cqspi->ahb_base; + unsigned int remaining = n_rx; + unsigned int mod_bytes = n_rx % 4; + unsigned int bytes_to_read = 0; + u8 *rxbuf_end = rxbuf + n_rx; + int ret = 0; + + writel(from_addr, reg_base + CQSPI_REG_INDIRECTRDSTARTADDR); + writel(remaining, reg_base + CQSPI_REG_INDIRECTRDBYTES); + + /* Clear all interrupts. */ + writel(CQSPI_IRQ_STATUS_MASK, reg_base + CQSPI_REG_IRQSTATUS); + + writel(CQSPI_IRQ_MASK_RD, reg_base + CQSPI_REG_IRQMASK); + + reinit_completion(&cqspi->transfer_complete); + writel(CQSPI_REG_INDIRECTRD_START_MASK, + reg_base + CQSPI_REG_INDIRECTRD); + + while (remaining > 0) { + if (!wait_for_completion_timeout(&cqspi->transfer_complete, + msecs_to_jiffies(CQSPI_READ_TIMEOUT_MS))) + ret = -ETIMEDOUT; + + bytes_to_read = cqspi_get_rd_sram_level(cqspi); + + if (ret && bytes_to_read == 0) { + dev_err(nor->dev, "Indirect read timeout, no bytes\n"); + goto failrd; + } + + while (bytes_to_read != 0) { + unsigned int word_remain = round_down(remaining, 4); + + bytes_to_read *= cqspi->fifo_width; + bytes_to_read = bytes_to_read > remaining ? + remaining : bytes_to_read; + bytes_to_read = round_down(bytes_to_read, 4); + /* Read 4 byte word chunks then single bytes */ + if (bytes_to_read) { + ioread32_rep(ahb_base, rxbuf, + (bytes_to_read / 4)); + } else if (!word_remain && mod_bytes) { + unsigned int temp = ioread32(ahb_base); + + bytes_to_read = mod_bytes; + memcpy(rxbuf, &temp, min((unsigned int) + (rxbuf_end - rxbuf), + bytes_to_read)); + } + rxbuf += bytes_to_read; + remaining -= bytes_to_read; + bytes_to_read = cqspi_get_rd_sram_level(cqspi); + } + + if (remaining > 0) + reinit_completion(&cqspi->transfer_complete); + } + + /* Check indirect done status */ + ret = cqspi_wait_for_bit(reg_base + CQSPI_REG_INDIRECTRD, + CQSPI_REG_INDIRECTRD_DONE_MASK, 0); + if (ret) { + dev_err(nor->dev, + "Indirect read completion error (%i)\n", ret); + goto failrd; + } + + /* Disable interrupt */ + writel(0, reg_base + CQSPI_REG_IRQMASK); + + /* Clear indirect completion status */ + writel(CQSPI_REG_INDIRECTRD_DONE_MASK, reg_base + CQSPI_REG_INDIRECTRD); + + return 0; + +failrd: + /* Disable interrupt */ + writel(0, reg_base + CQSPI_REG_IRQMASK); + + /* Cancel the indirect read */ + writel(CQSPI_REG_INDIRECTWR_CANCEL_MASK, + reg_base + CQSPI_REG_INDIRECTRD); + return ret; +} + +static int cqspi_write_setup(struct spi_nor *nor) +{ + unsigned int reg; + struct cqspi_flash_pdata *f_pdata = nor->priv; + struct cqspi_st *cqspi = f_pdata->cqspi; + void __iomem *reg_base = cqspi->iobase; + + /* Set opcode. */ + reg = nor->program_opcode << CQSPI_REG_WR_INSTR_OPCODE_LSB; + writel(reg, reg_base + CQSPI_REG_WR_INSTR); + reg = cqspi_calc_rdreg(nor); + writel(reg, reg_base + CQSPI_REG_RD_INSTR); + + reg = readl(reg_base + CQSPI_REG_SIZE); + reg &= ~CQSPI_REG_SIZE_ADDRESS_MASK; + reg |= (nor->addr_width - 1); + writel(reg, reg_base + CQSPI_REG_SIZE); + return 0; +} + +static int cqspi_indirect_write_execute(struct spi_nor *nor, loff_t to_addr, + const u8 *txbuf, const size_t n_tx) +{ + const unsigned int page_size = nor->page_size; + struct cqspi_flash_pdata *f_pdata = nor->priv; + struct cqspi_st *cqspi = f_pdata->cqspi; + void __iomem *reg_base = cqspi->iobase; + unsigned int remaining = n_tx; + unsigned int write_bytes; + int ret; + + writel(to_addr, reg_base + CQSPI_REG_INDIRECTWRSTARTADDR); + writel(remaining, reg_base + CQSPI_REG_INDIRECTWRBYTES); + + /* Clear all interrupts. */ + writel(CQSPI_IRQ_STATUS_MASK, reg_base + CQSPI_REG_IRQSTATUS); + + writel(CQSPI_IRQ_MASK_WR, reg_base + CQSPI_REG_IRQMASK); + + reinit_completion(&cqspi->transfer_complete); + writel(CQSPI_REG_INDIRECTWR_START_MASK, + reg_base + CQSPI_REG_INDIRECTWR); + /* + * As per 66AK2G02 TRM SPRUHY8F section 11.15.5.3 Indirect Access + * Controller programming sequence, couple of cycles of + * QSPI_REF_CLK delay is required for the above bit to + * be internally synchronized by the QSPI module. Provide 5 + * cycles of delay. + */ + if (cqspi->wr_delay) + ndelay(cqspi->wr_delay); + + while (remaining > 0) { + size_t write_words, mod_bytes; + + write_bytes = remaining > page_size ? page_size : remaining; + write_words = write_bytes / 4; + mod_bytes = write_bytes % 4; + /* Write 4 bytes at a time then single bytes. */ + if (write_words) { + iowrite32_rep(cqspi->ahb_base, txbuf, write_words); + txbuf += (write_words * 4); + } + if (mod_bytes) { + unsigned int temp = 0xFFFFFFFF; + + memcpy(&temp, txbuf, mod_bytes); + iowrite32(temp, cqspi->ahb_base); + txbuf += mod_bytes; + } + + if (!wait_for_completion_timeout(&cqspi->transfer_complete, + msecs_to_jiffies(CQSPI_TIMEOUT_MS))) { + dev_err(nor->dev, "Indirect write timeout\n"); + ret = -ETIMEDOUT; + goto failwr; + } + + remaining -= write_bytes; + + if (remaining > 0) + reinit_completion(&cqspi->transfer_complete); + } + + /* Check indirect done status */ + ret = cqspi_wait_for_bit(reg_base + CQSPI_REG_INDIRECTWR, + CQSPI_REG_INDIRECTWR_DONE_MASK, 0); + if (ret) { + dev_err(nor->dev, + "Indirect write completion error (%i)\n", ret); + goto failwr; + } + + /* Disable interrupt. */ + writel(0, reg_base + CQSPI_REG_IRQMASK); + + /* Clear indirect completion status */ + writel(CQSPI_REG_INDIRECTWR_DONE_MASK, reg_base + CQSPI_REG_INDIRECTWR); + + cqspi_wait_idle(cqspi); + + return 0; + +failwr: + /* Disable interrupt. */ + writel(0, reg_base + CQSPI_REG_IRQMASK); + + /* Cancel the indirect write */ + writel(CQSPI_REG_INDIRECTWR_CANCEL_MASK, + reg_base + CQSPI_REG_INDIRECTWR); + return ret; +} + +static void cqspi_chipselect(struct spi_nor *nor) +{ + struct cqspi_flash_pdata *f_pdata = nor->priv; + struct cqspi_st *cqspi = f_pdata->cqspi; + void __iomem *reg_base = cqspi->iobase; + unsigned int chip_select = f_pdata->cs; + unsigned int reg; + + reg = readl(reg_base + CQSPI_REG_CONFIG); + if (cqspi->is_decoded_cs) { + reg |= CQSPI_REG_CONFIG_DECODE_MASK; + } else { + reg &= ~CQSPI_REG_CONFIG_DECODE_MASK; + + /* Convert CS if without decoder. + * CS0 to 4b'1110 + * CS1 to 4b'1101 + * CS2 to 4b'1011 + * CS3 to 4b'0111 + */ + chip_select = 0xF & ~(1 << chip_select); + } + + reg &= ~(CQSPI_REG_CONFIG_CHIPSELECT_MASK + << CQSPI_REG_CONFIG_CHIPSELECT_LSB); + reg |= (chip_select & CQSPI_REG_CONFIG_CHIPSELECT_MASK) + << CQSPI_REG_CONFIG_CHIPSELECT_LSB; + writel(reg, reg_base + CQSPI_REG_CONFIG); +} + +static void cqspi_configure_cs_and_sizes(struct spi_nor *nor) +{ + struct cqspi_flash_pdata *f_pdata = nor->priv; + struct cqspi_st *cqspi = f_pdata->cqspi; + void __iomem *iobase = cqspi->iobase; + unsigned int reg; + + /* configure page size and block size. */ + reg = readl(iobase + CQSPI_REG_SIZE); + reg &= ~(CQSPI_REG_SIZE_PAGE_MASK << CQSPI_REG_SIZE_PAGE_LSB); + reg &= ~(CQSPI_REG_SIZE_BLOCK_MASK << CQSPI_REG_SIZE_BLOCK_LSB); + reg &= ~CQSPI_REG_SIZE_ADDRESS_MASK; + reg |= (nor->page_size << CQSPI_REG_SIZE_PAGE_LSB); + reg |= (ilog2(nor->mtd.erasesize) << CQSPI_REG_SIZE_BLOCK_LSB); + reg |= (nor->addr_width - 1); + writel(reg, iobase + CQSPI_REG_SIZE); + + /* configure the chip select */ + cqspi_chipselect(nor); + + /* Store the new configuration of the controller */ + cqspi->current_page_size = nor->page_size; + cqspi->current_erase_size = nor->mtd.erasesize; + cqspi->current_addr_width = nor->addr_width; +} + +static unsigned int calculate_ticks_for_ns(const unsigned int ref_clk_hz, + const unsigned int ns_val) +{ + unsigned int ticks; + + ticks = ref_clk_hz / 1000; /* kHz */ + ticks = DIV_ROUND_UP(ticks * ns_val, 1000000); + + return ticks; +} + +static void cqspi_delay(struct spi_nor *nor) +{ + struct cqspi_flash_pdata *f_pdata = nor->priv; + struct cqspi_st *cqspi = f_pdata->cqspi; + void __iomem *iobase = cqspi->iobase; + const unsigned int ref_clk_hz = cqspi->master_ref_clk_hz; + unsigned int tshsl, tchsh, tslch, tsd2d; + unsigned int reg; + unsigned int tsclk; + + /* calculate the number of ref ticks for one sclk tick */ + tsclk = DIV_ROUND_UP(ref_clk_hz, cqspi->sclk); + + tshsl = calculate_ticks_for_ns(ref_clk_hz, f_pdata->tshsl_ns); + /* this particular value must be at least one sclk */ + if (tshsl < tsclk) + tshsl = tsclk; + + tchsh = calculate_ticks_for_ns(ref_clk_hz, f_pdata->tchsh_ns); + tslch = calculate_ticks_for_ns(ref_clk_hz, f_pdata->tslch_ns); + tsd2d = calculate_ticks_for_ns(ref_clk_hz, f_pdata->tsd2d_ns); + + reg = (tshsl & CQSPI_REG_DELAY_TSHSL_MASK) + << CQSPI_REG_DELAY_TSHSL_LSB; + reg |= (tchsh & CQSPI_REG_DELAY_TCHSH_MASK) + << CQSPI_REG_DELAY_TCHSH_LSB; + reg |= (tslch & CQSPI_REG_DELAY_TSLCH_MASK) + << CQSPI_REG_DELAY_TSLCH_LSB; + reg |= (tsd2d & CQSPI_REG_DELAY_TSD2D_MASK) + << CQSPI_REG_DELAY_TSD2D_LSB; + writel(reg, iobase + CQSPI_REG_DELAY); +} + +static void cqspi_config_baudrate_div(struct cqspi_st *cqspi) +{ + const unsigned int ref_clk_hz = cqspi->master_ref_clk_hz; + void __iomem *reg_base = cqspi->iobase; + u32 reg, div; + + /* Recalculate the baudrate divisor based on QSPI specification. */ + div = DIV_ROUND_UP(ref_clk_hz, 2 * cqspi->sclk) - 1; + + reg = readl(reg_base + CQSPI_REG_CONFIG); + reg &= ~(CQSPI_REG_CONFIG_BAUD_MASK << CQSPI_REG_CONFIG_BAUD_LSB); + reg |= (div & CQSPI_REG_CONFIG_BAUD_MASK) << CQSPI_REG_CONFIG_BAUD_LSB; + writel(reg, reg_base + CQSPI_REG_CONFIG); +} + +static void cqspi_readdata_capture(struct cqspi_st *cqspi, + const bool bypass, + const unsigned int delay) +{ + void __iomem *reg_base = cqspi->iobase; + unsigned int reg; + + reg = readl(reg_base + CQSPI_REG_READCAPTURE); + + if (bypass) + reg |= (1 << CQSPI_REG_READCAPTURE_BYPASS_LSB); + else + reg &= ~(1 << CQSPI_REG_READCAPTURE_BYPASS_LSB); + + reg &= ~(CQSPI_REG_READCAPTURE_DELAY_MASK + << CQSPI_REG_READCAPTURE_DELAY_LSB); + + reg |= (delay & CQSPI_REG_READCAPTURE_DELAY_MASK) + << CQSPI_REG_READCAPTURE_DELAY_LSB; + + writel(reg, reg_base + CQSPI_REG_READCAPTURE); +} + +static void cqspi_controller_enable(struct cqspi_st *cqspi, bool enable) +{ + void __iomem *reg_base = cqspi->iobase; + unsigned int reg; + + reg = readl(reg_base + CQSPI_REG_CONFIG); + + if (enable) + reg |= CQSPI_REG_CONFIG_ENABLE_MASK; + else + reg &= ~CQSPI_REG_CONFIG_ENABLE_MASK; + + writel(reg, reg_base + CQSPI_REG_CONFIG); +} + +static void cqspi_configure(struct spi_nor *nor) +{ + struct cqspi_flash_pdata *f_pdata = nor->priv; + struct cqspi_st *cqspi = f_pdata->cqspi; + const unsigned int sclk = f_pdata->clk_rate; + int switch_cs = (cqspi->current_cs != f_pdata->cs); + int switch_ck = (cqspi->sclk != sclk); + + if ((cqspi->current_page_size != nor->page_size) || + (cqspi->current_erase_size != nor->mtd.erasesize) || + (cqspi->current_addr_width != nor->addr_width)) + switch_cs = 1; + + if (switch_cs || switch_ck) + cqspi_controller_enable(cqspi, 0); + + /* Switch chip select. */ + if (switch_cs) { + cqspi->current_cs = f_pdata->cs; + cqspi_configure_cs_and_sizes(nor); + } + + /* Setup baudrate divisor and delays */ + if (switch_ck) { + cqspi->sclk = sclk; + cqspi_config_baudrate_div(cqspi); + cqspi_delay(nor); + cqspi_readdata_capture(cqspi, !cqspi->rclk_en, + f_pdata->read_delay); + } + + if (switch_cs || switch_ck) + cqspi_controller_enable(cqspi, 1); +} + +static int cqspi_set_protocol(struct spi_nor *nor, const int read) +{ + struct cqspi_flash_pdata *f_pdata = nor->priv; + + f_pdata->inst_width = CQSPI_INST_TYPE_SINGLE; + f_pdata->addr_width = CQSPI_INST_TYPE_SINGLE; + f_pdata->data_width = CQSPI_INST_TYPE_SINGLE; + + if (read) { + switch (nor->read_proto) { + case SNOR_PROTO_1_1_1: + f_pdata->data_width = CQSPI_INST_TYPE_SINGLE; + break; + case SNOR_PROTO_1_1_2: + f_pdata->data_width = CQSPI_INST_TYPE_DUAL; + break; + case SNOR_PROTO_1_1_4: + f_pdata->data_width = CQSPI_INST_TYPE_QUAD; + break; + case SNOR_PROTO_1_1_8: + f_pdata->data_width = CQSPI_INST_TYPE_OCTAL; + break; + default: + return -EINVAL; + } + } + + cqspi_configure(nor); + + return 0; +} + +static ssize_t cqspi_write(struct spi_nor *nor, loff_t to, + size_t len, const u_char *buf) +{ + struct cqspi_flash_pdata *f_pdata = nor->priv; + struct cqspi_st *cqspi = f_pdata->cqspi; + int ret; + + ret = cqspi_set_protocol(nor, 0); + if (ret) + return ret; + + ret = cqspi_write_setup(nor); + if (ret) + return ret; + + if (f_pdata->use_direct_mode) { + memcpy_toio(cqspi->ahb_base + to, buf, len); + ret = cqspi_wait_idle(cqspi); + } else { + ret = cqspi_indirect_write_execute(nor, to, buf, len); + } + if (ret) + return ret; + + return len; +} + +static void cqspi_rx_dma_callback(void *param) +{ + struct cqspi_st *cqspi = param; + + complete(&cqspi->rx_dma_complete); +} + +static int cqspi_direct_read_execute(struct spi_nor *nor, u_char *buf, + loff_t from, size_t len) +{ + struct cqspi_flash_pdata *f_pdata = nor->priv; + struct cqspi_st *cqspi = f_pdata->cqspi; + enum dma_ctrl_flags flags = DMA_CTRL_ACK | DMA_PREP_INTERRUPT; + dma_addr_t dma_src = (dma_addr_t)cqspi->mmap_phys_base + from; + int ret = 0; + struct dma_async_tx_descriptor *tx; + dma_cookie_t cookie; + dma_addr_t dma_dst; + + if (!cqspi->rx_chan || !virt_addr_valid(buf)) { + memcpy_fromio(buf, cqspi->ahb_base + from, len); + return 0; + } + + dma_dst = dma_map_single(nor->dev, buf, len, DMA_FROM_DEVICE); + if (dma_mapping_error(nor->dev, dma_dst)) { + dev_err(nor->dev, "dma mapping failed\n"); + return -ENOMEM; + } + tx = dmaengine_prep_dma_memcpy(cqspi->rx_chan, dma_dst, dma_src, + len, flags); + if (!tx) { + dev_err(nor->dev, "device_prep_dma_memcpy error\n"); + ret = -EIO; + goto err_unmap; + } + + tx->callback = cqspi_rx_dma_callback; + tx->callback_param = cqspi; + cookie = tx->tx_submit(tx); + reinit_completion(&cqspi->rx_dma_complete); + + ret = dma_submit_error(cookie); + if (ret) { + dev_err(nor->dev, "dma_submit_error %d\n", cookie); + ret = -EIO; + goto err_unmap; + } + + dma_async_issue_pending(cqspi->rx_chan); + if (!wait_for_completion_timeout(&cqspi->rx_dma_complete, + msecs_to_jiffies(len))) { + dmaengine_terminate_sync(cqspi->rx_chan); + dev_err(nor->dev, "DMA wait_for_completion_timeout\n"); + ret = -ETIMEDOUT; + goto err_unmap; + } + +err_unmap: + dma_unmap_single(nor->dev, dma_dst, len, DMA_FROM_DEVICE); + + return ret; +} + +static ssize_t cqspi_read(struct spi_nor *nor, loff_t from, + size_t len, u_char *buf) +{ + struct cqspi_flash_pdata *f_pdata = nor->priv; + int ret; + + ret = cqspi_set_protocol(nor, 1); + if (ret) + return ret; + + ret = cqspi_read_setup(nor); + if (ret) + return ret; + + if (f_pdata->use_direct_mode) + ret = cqspi_direct_read_execute(nor, buf, from, len); + else + ret = cqspi_indirect_read_execute(nor, buf, from, len); + if (ret) + return ret; + + return len; +} + +static int cqspi_erase(struct spi_nor *nor, loff_t offs) +{ + int ret; + + ret = cqspi_set_protocol(nor, 0); + if (ret) + return ret; + + /* Send write enable, then erase commands. */ + ret = nor->controller_ops->write_reg(nor, SPINOR_OP_WREN, NULL, 0); + if (ret) + return ret; + + /* Set up command buffer. */ + ret = cqspi_command_write_addr(nor, nor->erase_opcode, offs); + if (ret) + return ret; + + return 0; +} + +static int cqspi_prep(struct spi_nor *nor) +{ + struct cqspi_flash_pdata *f_pdata = nor->priv; + struct cqspi_st *cqspi = f_pdata->cqspi; + + mutex_lock(&cqspi->bus_mutex); + + return 0; +} + +static void cqspi_unprep(struct spi_nor *nor) +{ + struct cqspi_flash_pdata *f_pdata = nor->priv; + struct cqspi_st *cqspi = f_pdata->cqspi; + + mutex_unlock(&cqspi->bus_mutex); +} + +static int cqspi_read_reg(struct spi_nor *nor, u8 opcode, u8 *buf, size_t len) +{ + int ret; + + ret = cqspi_set_protocol(nor, 0); + if (!ret) + ret = cqspi_command_read(nor, opcode, buf, len); + + return ret; +} + +static int cqspi_write_reg(struct spi_nor *nor, u8 opcode, const u8 *buf, + size_t len) +{ + int ret; + + ret = cqspi_set_protocol(nor, 0); + if (!ret) + ret = cqspi_command_write(nor, opcode, buf, len); + + return ret; +} + +static int cqspi_of_get_flash_pdata(struct platform_device *pdev, + struct cqspi_flash_pdata *f_pdata, + struct device_node *np) +{ + if (of_property_read_u32(np, "cdns,read-delay", &f_pdata->read_delay)) { + dev_err(&pdev->dev, "couldn't determine read-delay\n"); + return -ENXIO; + } + + if (of_property_read_u32(np, "cdns,tshsl-ns", &f_pdata->tshsl_ns)) { + dev_err(&pdev->dev, "couldn't determine tshsl-ns\n"); + return -ENXIO; + } + + if (of_property_read_u32(np, "cdns,tsd2d-ns", &f_pdata->tsd2d_ns)) { + dev_err(&pdev->dev, "couldn't determine tsd2d-ns\n"); + return -ENXIO; + } + + if (of_property_read_u32(np, "cdns,tchsh-ns", &f_pdata->tchsh_ns)) { + dev_err(&pdev->dev, "couldn't determine tchsh-ns\n"); + return -ENXIO; + } + + if (of_property_read_u32(np, "cdns,tslch-ns", &f_pdata->tslch_ns)) { + dev_err(&pdev->dev, "couldn't determine tslch-ns\n"); + return -ENXIO; + } + + if (of_property_read_u32(np, "spi-max-frequency", &f_pdata->clk_rate)) { + dev_err(&pdev->dev, "couldn't determine spi-max-frequency\n"); + return -ENXIO; + } + + return 0; +} + +static int cqspi_of_get_pdata(struct platform_device *pdev) +{ + struct device_node *np = pdev->dev.of_node; + struct cqspi_st *cqspi = platform_get_drvdata(pdev); + + cqspi->is_decoded_cs = of_property_read_bool(np, "cdns,is-decoded-cs"); + + if (of_property_read_u32(np, "cdns,fifo-depth", &cqspi->fifo_depth)) { + dev_err(&pdev->dev, "couldn't determine fifo-depth\n"); + return -ENXIO; + } + + if (of_property_read_u32(np, "cdns,fifo-width", &cqspi->fifo_width)) { + dev_err(&pdev->dev, "couldn't determine fifo-width\n"); + return -ENXIO; + } + + if (of_property_read_u32(np, "cdns,trigger-address", + &cqspi->trigger_address)) { + dev_err(&pdev->dev, "couldn't determine trigger-address\n"); + return -ENXIO; + } + + cqspi->rclk_en = of_property_read_bool(np, "cdns,rclk-en"); + + return 0; +} + +static void cqspi_controller_init(struct cqspi_st *cqspi) +{ + u32 reg; + + cqspi_controller_enable(cqspi, 0); + + /* Configure the remap address register, no remap */ + writel(0, cqspi->iobase + CQSPI_REG_REMAP); + + /* Disable all interrupts. */ + writel(0, cqspi->iobase + CQSPI_REG_IRQMASK); + + /* Configure the SRAM split to 1:1 . */ + writel(cqspi->fifo_depth / 2, cqspi->iobase + CQSPI_REG_SRAMPARTITION); + + /* Load indirect trigger address. */ + writel(cqspi->trigger_address, + cqspi->iobase + CQSPI_REG_INDIRECTTRIGGER); + + /* Program read watermark -- 1/2 of the FIFO. */ + writel(cqspi->fifo_depth * cqspi->fifo_width / 2, + cqspi->iobase + CQSPI_REG_INDIRECTRDWATERMARK); + /* Program write watermark -- 1/8 of the FIFO. */ + writel(cqspi->fifo_depth * cqspi->fifo_width / 8, + cqspi->iobase + CQSPI_REG_INDIRECTWRWATERMARK); + + /* Enable Direct Access Controller */ + reg = readl(cqspi->iobase + CQSPI_REG_CONFIG); + reg |= CQSPI_REG_CONFIG_ENB_DIR_ACC_CTRL; + writel(reg, cqspi->iobase + CQSPI_REG_CONFIG); + + cqspi_controller_enable(cqspi, 1); +} + +static void cqspi_request_mmap_dma(struct cqspi_st *cqspi) +{ + dma_cap_mask_t mask; + + dma_cap_zero(mask); + dma_cap_set(DMA_MEMCPY, mask); + + cqspi->rx_chan = dma_request_chan_by_mask(&mask); + if (IS_ERR(cqspi->rx_chan)) { + dev_err(&cqspi->pdev->dev, "No Rx DMA available\n"); + cqspi->rx_chan = NULL; + } + init_completion(&cqspi->rx_dma_complete); +} + +static const struct spi_nor_controller_ops cqspi_controller_ops = { + .prepare = cqspi_prep, + .unprepare = cqspi_unprep, + .read_reg = cqspi_read_reg, + .write_reg = cqspi_write_reg, + .read = cqspi_read, + .write = cqspi_write, + .erase = cqspi_erase, +}; + +static int cqspi_setup_flash(struct cqspi_st *cqspi, struct device_node *np) +{ + struct platform_device *pdev = cqspi->pdev; + struct device *dev = &pdev->dev; + const struct cqspi_driver_platdata *ddata; + struct spi_nor_hwcaps hwcaps; + struct cqspi_flash_pdata *f_pdata; + struct spi_nor *nor; + struct mtd_info *mtd; + unsigned int cs; + int i, ret; + + ddata = of_device_get_match_data(dev); + if (!ddata) { + dev_err(dev, "Couldn't find driver data\n"); + return -EINVAL; + } + hwcaps.mask = ddata->hwcaps_mask; + + /* Get flash device data */ + for_each_available_child_of_node(dev->of_node, np) { + ret = of_property_read_u32(np, "reg", &cs); + if (ret) { + dev_err(dev, "Couldn't determine chip select.\n"); + goto err; + } + + if (cs >= CQSPI_MAX_CHIPSELECT) { + ret = -EINVAL; + dev_err(dev, "Chip select %d out of range.\n", cs); + goto err; + } + + f_pdata = &cqspi->f_pdata[cs]; + f_pdata->cqspi = cqspi; + f_pdata->cs = cs; + + ret = cqspi_of_get_flash_pdata(pdev, f_pdata, np); + if (ret) + goto err; + + nor = &f_pdata->nor; + mtd = &nor->mtd; + + mtd->priv = nor; + + nor->dev = dev; + spi_nor_set_flash_node(nor, np); + nor->priv = f_pdata; + nor->controller_ops = &cqspi_controller_ops; + + mtd->name = devm_kasprintf(dev, GFP_KERNEL, "%s.%d", + dev_name(dev), cs); + if (!mtd->name) { + ret = -ENOMEM; + goto err; + } + + ret = spi_nor_scan(nor, NULL, &hwcaps); + if (ret) + goto err; + + ret = mtd_device_register(mtd, NULL, 0); + if (ret) + goto err; + + f_pdata->registered = true; + + if (mtd->size <= cqspi->ahb_size) { + f_pdata->use_direct_mode = true; + dev_dbg(nor->dev, "using direct mode for %s\n", + mtd->name); + + if (!cqspi->rx_chan) + cqspi_request_mmap_dma(cqspi); + } + } + + return 0; + +err: + for (i = 0; i < CQSPI_MAX_CHIPSELECT; i++) + if (cqspi->f_pdata[i].registered) + mtd_device_unregister(&cqspi->f_pdata[i].nor.mtd); + return ret; +} + +static int cqspi_probe(struct platform_device *pdev) +{ + struct device_node *np = pdev->dev.of_node; + struct device *dev = &pdev->dev; + struct cqspi_st *cqspi; + struct resource *res; + struct resource *res_ahb; + struct reset_control *rstc, *rstc_ocp; + const struct cqspi_driver_platdata *ddata; + int ret; + int irq; + + cqspi = devm_kzalloc(dev, sizeof(*cqspi), GFP_KERNEL); + if (!cqspi) + return -ENOMEM; + + mutex_init(&cqspi->bus_mutex); + cqspi->pdev = pdev; + platform_set_drvdata(pdev, cqspi); + + /* Obtain configuration from OF. */ + ret = cqspi_of_get_pdata(pdev); + if (ret) { + dev_err(dev, "Cannot get mandatory OF data.\n"); + return -ENODEV; + } + + /* Obtain QSPI clock. */ + cqspi->clk = devm_clk_get(dev, NULL); + if (IS_ERR(cqspi->clk)) { + dev_err(dev, "Cannot claim QSPI clock.\n"); + return PTR_ERR(cqspi->clk); + } + + /* Obtain and remap controller address. */ + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); + cqspi->iobase = devm_ioremap_resource(dev, res); + if (IS_ERR(cqspi->iobase)) { + dev_err(dev, "Cannot remap controller address.\n"); + return PTR_ERR(cqspi->iobase); + } + + /* Obtain and remap AHB address. */ + res_ahb = platform_get_resource(pdev, IORESOURCE_MEM, 1); + cqspi->ahb_base = devm_ioremap_resource(dev, res_ahb); + if (IS_ERR(cqspi->ahb_base)) { + dev_err(dev, "Cannot remap AHB address.\n"); + return PTR_ERR(cqspi->ahb_base); + } + cqspi->mmap_phys_base = (dma_addr_t)res_ahb->start; + cqspi->ahb_size = resource_size(res_ahb); + + init_completion(&cqspi->transfer_complete); + + /* Obtain IRQ line. */ + irq = platform_get_irq(pdev, 0); + if (irq < 0) + return -ENXIO; + + pm_runtime_enable(dev); + ret = pm_runtime_get_sync(dev); + if (ret < 0) { + pm_runtime_put_noidle(dev); + return ret; + } + + ret = clk_prepare_enable(cqspi->clk); + if (ret) { + dev_err(dev, "Cannot enable QSPI clock.\n"); + goto probe_clk_failed; + } + + /* Obtain QSPI reset control */ + rstc = devm_reset_control_get_optional_exclusive(dev, "qspi"); + if (IS_ERR(rstc)) { + dev_err(dev, "Cannot get QSPI reset.\n"); + return PTR_ERR(rstc); + } + + rstc_ocp = devm_reset_control_get_optional_exclusive(dev, "qspi-ocp"); + if (IS_ERR(rstc_ocp)) { + dev_err(dev, "Cannot get QSPI OCP reset.\n"); + return PTR_ERR(rstc_ocp); + } + + reset_control_assert(rstc); + reset_control_deassert(rstc); + + reset_control_assert(rstc_ocp); + reset_control_deassert(rstc_ocp); + + cqspi->master_ref_clk_hz = clk_get_rate(cqspi->clk); + ddata = of_device_get_match_data(dev); + if (ddata && (ddata->quirks & CQSPI_NEEDS_WR_DELAY)) + cqspi->wr_delay = 5 * DIV_ROUND_UP(NSEC_PER_SEC, + cqspi->master_ref_clk_hz); + + ret = devm_request_irq(dev, irq, cqspi_irq_handler, 0, + pdev->name, cqspi); + if (ret) { + dev_err(dev, "Cannot request IRQ.\n"); + goto probe_irq_failed; + } + + cqspi_wait_idle(cqspi); + cqspi_controller_init(cqspi); + cqspi->current_cs = -1; + cqspi->sclk = 0; + + ret = cqspi_setup_flash(cqspi, np); + if (ret) { + dev_err(dev, "Cadence QSPI NOR probe failed %d\n", ret); + goto probe_setup_failed; + } + + return ret; +probe_setup_failed: + cqspi_controller_enable(cqspi, 0); +probe_irq_failed: + clk_disable_unprepare(cqspi->clk); +probe_clk_failed: + pm_runtime_put_sync(dev); + pm_runtime_disable(dev); + return ret; +} + +static int cqspi_remove(struct platform_device *pdev) +{ + struct cqspi_st *cqspi = platform_get_drvdata(pdev); + int i; + + for (i = 0; i < CQSPI_MAX_CHIPSELECT; i++) + if (cqspi->f_pdata[i].registered) + mtd_device_unregister(&cqspi->f_pdata[i].nor.mtd); + + cqspi_controller_enable(cqspi, 0); + + if (cqspi->rx_chan) + dma_release_channel(cqspi->rx_chan); + + clk_disable_unprepare(cqspi->clk); + + pm_runtime_put_sync(&pdev->dev); + pm_runtime_disable(&pdev->dev); + + return 0; +} + +#ifdef CONFIG_PM_SLEEP +static int cqspi_suspend(struct device *dev) +{ + struct cqspi_st *cqspi = dev_get_drvdata(dev); + + cqspi_controller_enable(cqspi, 0); + return 0; +} + +static int cqspi_resume(struct device *dev) +{ + struct cqspi_st *cqspi = dev_get_drvdata(dev); + + cqspi_controller_enable(cqspi, 1); + return 0; +} + +static const struct dev_pm_ops cqspi__dev_pm_ops = { + .suspend = cqspi_suspend, + .resume = cqspi_resume, +}; + +#define CQSPI_DEV_PM_OPS (&cqspi__dev_pm_ops) +#else +#define CQSPI_DEV_PM_OPS NULL +#endif + +static const struct cqspi_driver_platdata cdns_qspi = { + .hwcaps_mask = CQSPI_BASE_HWCAPS_MASK, +}; + +static const struct cqspi_driver_platdata k2g_qspi = { + .hwcaps_mask = CQSPI_BASE_HWCAPS_MASK, + .quirks = CQSPI_NEEDS_WR_DELAY, +}; + +static const struct cqspi_driver_platdata am654_ospi = { + .hwcaps_mask = CQSPI_BASE_HWCAPS_MASK | SNOR_HWCAPS_READ_1_1_8, + .quirks = CQSPI_NEEDS_WR_DELAY, +}; + +static const struct of_device_id cqspi_dt_ids[] = { + { + .compatible = "cdns,qspi-nor", + .data = &cdns_qspi, + }, + { + .compatible = "ti,k2g-qspi", + .data = &k2g_qspi, + }, + { + .compatible = "ti,am654-ospi", + .data = &am654_ospi, + }, + { /* end of table */ } +}; + +MODULE_DEVICE_TABLE(of, cqspi_dt_ids); + +static struct platform_driver cqspi_platform_driver = { + .probe = cqspi_probe, + .remove = cqspi_remove, + .driver = { + .name = CQSPI_NAME, + .pm = CQSPI_DEV_PM_OPS, + .of_match_table = cqspi_dt_ids, + }, +}; + +module_platform_driver(cqspi_platform_driver); + +MODULE_DESCRIPTION("Cadence QSPI Controller Driver"); +MODULE_LICENSE("GPL v2"); +MODULE_ALIAS("platform:" CQSPI_NAME); +MODULE_AUTHOR("Ley Foon Tan "); +MODULE_AUTHOR("Graham Moore "); only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/mtd/spi-nor/controllers/hisi-sfc.c +++ linux-oem-5.6-5.6.0/drivers/mtd/spi-nor/controllers/hisi-sfc.c @@ -0,0 +1,499 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +/* + * HiSilicon FMC SPI-NOR flash controller driver + * + * Copyright (c) 2015-2016 HiSilicon Technologies Co., Ltd. + */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* Hardware register offsets and field definitions */ +#define FMC_CFG 0x00 +#define FMC_CFG_OP_MODE_MASK BIT_MASK(0) +#define FMC_CFG_OP_MODE_BOOT 0 +#define FMC_CFG_OP_MODE_NORMAL 1 +#define FMC_CFG_FLASH_SEL(type) (((type) & 0x3) << 1) +#define FMC_CFG_FLASH_SEL_MASK 0x6 +#define FMC_ECC_TYPE(type) (((type) & 0x7) << 5) +#define FMC_ECC_TYPE_MASK GENMASK(7, 5) +#define SPI_NOR_ADDR_MODE_MASK BIT_MASK(10) +#define SPI_NOR_ADDR_MODE_3BYTES (0x0 << 10) +#define SPI_NOR_ADDR_MODE_4BYTES (0x1 << 10) +#define FMC_GLOBAL_CFG 0x04 +#define FMC_GLOBAL_CFG_WP_ENABLE BIT(6) +#define FMC_SPI_TIMING_CFG 0x08 +#define TIMING_CFG_TCSH(nr) (((nr) & 0xf) << 8) +#define TIMING_CFG_TCSS(nr) (((nr) & 0xf) << 4) +#define TIMING_CFG_TSHSL(nr) ((nr) & 0xf) +#define CS_HOLD_TIME 0x6 +#define CS_SETUP_TIME 0x6 +#define CS_DESELECT_TIME 0xf +#define FMC_INT 0x18 +#define FMC_INT_OP_DONE BIT(0) +#define FMC_INT_CLR 0x20 +#define FMC_CMD 0x24 +#define FMC_CMD_CMD1(cmd) ((cmd) & 0xff) +#define FMC_ADDRL 0x2c +#define FMC_OP_CFG 0x30 +#define OP_CFG_FM_CS(cs) ((cs) << 11) +#define OP_CFG_MEM_IF_TYPE(type) (((type) & 0x7) << 7) +#define OP_CFG_ADDR_NUM(addr) (((addr) & 0x7) << 4) +#define OP_CFG_DUMMY_NUM(dummy) ((dummy) & 0xf) +#define FMC_DATA_NUM 0x38 +#define FMC_DATA_NUM_CNT(cnt) ((cnt) & GENMASK(13, 0)) +#define FMC_OP 0x3c +#define FMC_OP_DUMMY_EN BIT(8) +#define FMC_OP_CMD1_EN BIT(7) +#define FMC_OP_ADDR_EN BIT(6) +#define FMC_OP_WRITE_DATA_EN BIT(5) +#define FMC_OP_READ_DATA_EN BIT(2) +#define FMC_OP_READ_STATUS_EN BIT(1) +#define FMC_OP_REG_OP_START BIT(0) +#define FMC_DMA_LEN 0x40 +#define FMC_DMA_LEN_SET(len) ((len) & GENMASK(27, 0)) +#define FMC_DMA_SADDR_D0 0x4c +#define HIFMC_DMA_MAX_LEN (4096) +#define HIFMC_DMA_MASK (HIFMC_DMA_MAX_LEN - 1) +#define FMC_OP_DMA 0x68 +#define OP_CTRL_RD_OPCODE(code) (((code) & 0xff) << 16) +#define OP_CTRL_WR_OPCODE(code) (((code) & 0xff) << 8) +#define OP_CTRL_RW_OP(op) ((op) << 1) +#define OP_CTRL_DMA_OP_READY BIT(0) +#define FMC_OP_READ 0x0 +#define FMC_OP_WRITE 0x1 +#define FMC_WAIT_TIMEOUT 1000000 + +enum hifmc_iftype { + IF_TYPE_STD, + IF_TYPE_DUAL, + IF_TYPE_DIO, + IF_TYPE_QUAD, + IF_TYPE_QIO, +}; + +struct hifmc_priv { + u32 chipselect; + u32 clkrate; + struct hifmc_host *host; +}; + +#define HIFMC_MAX_CHIP_NUM 2 +struct hifmc_host { + struct device *dev; + struct mutex lock; + + void __iomem *regbase; + void __iomem *iobase; + struct clk *clk; + void *buffer; + dma_addr_t dma_buffer; + + struct spi_nor *nor[HIFMC_MAX_CHIP_NUM]; + u32 num_chip; +}; + +static inline int hisi_spi_nor_wait_op_finish(struct hifmc_host *host) +{ + u32 reg; + + return readl_poll_timeout(host->regbase + FMC_INT, reg, + (reg & FMC_INT_OP_DONE), 0, FMC_WAIT_TIMEOUT); +} + +static int hisi_spi_nor_get_if_type(enum spi_nor_protocol proto) +{ + enum hifmc_iftype if_type; + + switch (proto) { + case SNOR_PROTO_1_1_2: + if_type = IF_TYPE_DUAL; + break; + case SNOR_PROTO_1_2_2: + if_type = IF_TYPE_DIO; + break; + case SNOR_PROTO_1_1_4: + if_type = IF_TYPE_QUAD; + break; + case SNOR_PROTO_1_4_4: + if_type = IF_TYPE_QIO; + break; + case SNOR_PROTO_1_1_1: + default: + if_type = IF_TYPE_STD; + break; + } + + return if_type; +} + +static void hisi_spi_nor_init(struct hifmc_host *host) +{ + u32 reg; + + reg = TIMING_CFG_TCSH(CS_HOLD_TIME) + | TIMING_CFG_TCSS(CS_SETUP_TIME) + | TIMING_CFG_TSHSL(CS_DESELECT_TIME); + writel(reg, host->regbase + FMC_SPI_TIMING_CFG); +} + +static int hisi_spi_nor_prep(struct spi_nor *nor) +{ + struct hifmc_priv *priv = nor->priv; + struct hifmc_host *host = priv->host; + int ret; + + mutex_lock(&host->lock); + + ret = clk_set_rate(host->clk, priv->clkrate); + if (ret) + goto out; + + ret = clk_prepare_enable(host->clk); + if (ret) + goto out; + + return 0; + +out: + mutex_unlock(&host->lock); + return ret; +} + +static void hisi_spi_nor_unprep(struct spi_nor *nor) +{ + struct hifmc_priv *priv = nor->priv; + struct hifmc_host *host = priv->host; + + clk_disable_unprepare(host->clk); + mutex_unlock(&host->lock); +} + +static int hisi_spi_nor_op_reg(struct spi_nor *nor, + u8 opcode, size_t len, u8 optype) +{ + struct hifmc_priv *priv = nor->priv; + struct hifmc_host *host = priv->host; + u32 reg; + + reg = FMC_CMD_CMD1(opcode); + writel(reg, host->regbase + FMC_CMD); + + reg = FMC_DATA_NUM_CNT(len); + writel(reg, host->regbase + FMC_DATA_NUM); + + reg = OP_CFG_FM_CS(priv->chipselect); + writel(reg, host->regbase + FMC_OP_CFG); + + writel(0xff, host->regbase + FMC_INT_CLR); + reg = FMC_OP_CMD1_EN | FMC_OP_REG_OP_START | optype; + writel(reg, host->regbase + FMC_OP); + + return hisi_spi_nor_wait_op_finish(host); +} + +static int hisi_spi_nor_read_reg(struct spi_nor *nor, u8 opcode, u8 *buf, + size_t len) +{ + struct hifmc_priv *priv = nor->priv; + struct hifmc_host *host = priv->host; + int ret; + + ret = hisi_spi_nor_op_reg(nor, opcode, len, FMC_OP_READ_DATA_EN); + if (ret) + return ret; + + memcpy_fromio(buf, host->iobase, len); + return 0; +} + +static int hisi_spi_nor_write_reg(struct spi_nor *nor, u8 opcode, + const u8 *buf, size_t len) +{ + struct hifmc_priv *priv = nor->priv; + struct hifmc_host *host = priv->host; + + if (len) + memcpy_toio(host->iobase, buf, len); + + return hisi_spi_nor_op_reg(nor, opcode, len, FMC_OP_WRITE_DATA_EN); +} + +static int hisi_spi_nor_dma_transfer(struct spi_nor *nor, loff_t start_off, + dma_addr_t dma_buf, size_t len, u8 op_type) +{ + struct hifmc_priv *priv = nor->priv; + struct hifmc_host *host = priv->host; + u8 if_type = 0; + u32 reg; + + reg = readl(host->regbase + FMC_CFG); + reg &= ~(FMC_CFG_OP_MODE_MASK | SPI_NOR_ADDR_MODE_MASK); + reg |= FMC_CFG_OP_MODE_NORMAL; + reg |= (nor->addr_width == 4) ? SPI_NOR_ADDR_MODE_4BYTES + : SPI_NOR_ADDR_MODE_3BYTES; + writel(reg, host->regbase + FMC_CFG); + + writel(start_off, host->regbase + FMC_ADDRL); + writel(dma_buf, host->regbase + FMC_DMA_SADDR_D0); + writel(FMC_DMA_LEN_SET(len), host->regbase + FMC_DMA_LEN); + + reg = OP_CFG_FM_CS(priv->chipselect); + if (op_type == FMC_OP_READ) + if_type = hisi_spi_nor_get_if_type(nor->read_proto); + else + if_type = hisi_spi_nor_get_if_type(nor->write_proto); + reg |= OP_CFG_MEM_IF_TYPE(if_type); + if (op_type == FMC_OP_READ) + reg |= OP_CFG_DUMMY_NUM(nor->read_dummy >> 3); + writel(reg, host->regbase + FMC_OP_CFG); + + writel(0xff, host->regbase + FMC_INT_CLR); + reg = OP_CTRL_RW_OP(op_type) | OP_CTRL_DMA_OP_READY; + reg |= (op_type == FMC_OP_READ) + ? OP_CTRL_RD_OPCODE(nor->read_opcode) + : OP_CTRL_WR_OPCODE(nor->program_opcode); + writel(reg, host->regbase + FMC_OP_DMA); + + return hisi_spi_nor_wait_op_finish(host); +} + +static ssize_t hisi_spi_nor_read(struct spi_nor *nor, loff_t from, size_t len, + u_char *read_buf) +{ + struct hifmc_priv *priv = nor->priv; + struct hifmc_host *host = priv->host; + size_t offset; + int ret; + + for (offset = 0; offset < len; offset += HIFMC_DMA_MAX_LEN) { + size_t trans = min_t(size_t, HIFMC_DMA_MAX_LEN, len - offset); + + ret = hisi_spi_nor_dma_transfer(nor, + from + offset, host->dma_buffer, trans, FMC_OP_READ); + if (ret) { + dev_warn(nor->dev, "DMA read timeout\n"); + return ret; + } + memcpy(read_buf + offset, host->buffer, trans); + } + + return len; +} + +static ssize_t hisi_spi_nor_write(struct spi_nor *nor, loff_t to, + size_t len, const u_char *write_buf) +{ + struct hifmc_priv *priv = nor->priv; + struct hifmc_host *host = priv->host; + size_t offset; + int ret; + + for (offset = 0; offset < len; offset += HIFMC_DMA_MAX_LEN) { + size_t trans = min_t(size_t, HIFMC_DMA_MAX_LEN, len - offset); + + memcpy(host->buffer, write_buf + offset, trans); + ret = hisi_spi_nor_dma_transfer(nor, + to + offset, host->dma_buffer, trans, FMC_OP_WRITE); + if (ret) { + dev_warn(nor->dev, "DMA write timeout\n"); + return ret; + } + } + + return len; +} + +static const struct spi_nor_controller_ops hisi_controller_ops = { + .prepare = hisi_spi_nor_prep, + .unprepare = hisi_spi_nor_unprep, + .read_reg = hisi_spi_nor_read_reg, + .write_reg = hisi_spi_nor_write_reg, + .read = hisi_spi_nor_read, + .write = hisi_spi_nor_write, +}; + +/** + * Get spi flash device information and register it as a mtd device. + */ +static int hisi_spi_nor_register(struct device_node *np, + struct hifmc_host *host) +{ + const struct spi_nor_hwcaps hwcaps = { + .mask = SNOR_HWCAPS_READ | + SNOR_HWCAPS_READ_FAST | + SNOR_HWCAPS_READ_1_1_2 | + SNOR_HWCAPS_READ_1_1_4 | + SNOR_HWCAPS_PP, + }; + struct device *dev = host->dev; + struct spi_nor *nor; + struct hifmc_priv *priv; + struct mtd_info *mtd; + int ret; + + nor = devm_kzalloc(dev, sizeof(*nor), GFP_KERNEL); + if (!nor) + return -ENOMEM; + + nor->dev = dev; + spi_nor_set_flash_node(nor, np); + + priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL); + if (!priv) + return -ENOMEM; + + ret = of_property_read_u32(np, "reg", &priv->chipselect); + if (ret) { + dev_err(dev, "There's no reg property for %pOF\n", + np); + return ret; + } + + ret = of_property_read_u32(np, "spi-max-frequency", + &priv->clkrate); + if (ret) { + dev_err(dev, "There's no spi-max-frequency property for %pOF\n", + np); + return ret; + } + priv->host = host; + nor->priv = priv; + nor->controller_ops = &hisi_controller_ops; + + ret = spi_nor_scan(nor, NULL, &hwcaps); + if (ret) + return ret; + + mtd = &nor->mtd; + mtd->name = np->name; + ret = mtd_device_register(mtd, NULL, 0); + if (ret) + return ret; + + host->nor[host->num_chip] = nor; + host->num_chip++; + return 0; +} + +static void hisi_spi_nor_unregister_all(struct hifmc_host *host) +{ + int i; + + for (i = 0; i < host->num_chip; i++) + mtd_device_unregister(&host->nor[i]->mtd); +} + +static int hisi_spi_nor_register_all(struct hifmc_host *host) +{ + struct device *dev = host->dev; + struct device_node *np; + int ret; + + for_each_available_child_of_node(dev->of_node, np) { + ret = hisi_spi_nor_register(np, host); + if (ret) + goto fail; + + if (host->num_chip == HIFMC_MAX_CHIP_NUM) { + dev_warn(dev, "Flash device number exceeds the maximum chipselect number\n"); + of_node_put(np); + break; + } + } + + return 0; + +fail: + hisi_spi_nor_unregister_all(host); + return ret; +} + +static int hisi_spi_nor_probe(struct platform_device *pdev) +{ + struct device *dev = &pdev->dev; + struct resource *res; + struct hifmc_host *host; + int ret; + + host = devm_kzalloc(dev, sizeof(*host), GFP_KERNEL); + if (!host) + return -ENOMEM; + + platform_set_drvdata(pdev, host); + host->dev = dev; + + res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "control"); + host->regbase = devm_ioremap_resource(dev, res); + if (IS_ERR(host->regbase)) + return PTR_ERR(host->regbase); + + res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "memory"); + host->iobase = devm_ioremap_resource(dev, res); + if (IS_ERR(host->iobase)) + return PTR_ERR(host->iobase); + + host->clk = devm_clk_get(dev, NULL); + if (IS_ERR(host->clk)) + return PTR_ERR(host->clk); + + ret = dma_set_mask_and_coherent(dev, DMA_BIT_MASK(32)); + if (ret) { + dev_warn(dev, "Unable to set dma mask\n"); + return ret; + } + + host->buffer = dmam_alloc_coherent(dev, HIFMC_DMA_MAX_LEN, + &host->dma_buffer, GFP_KERNEL); + if (!host->buffer) + return -ENOMEM; + + ret = clk_prepare_enable(host->clk); + if (ret) + return ret; + + mutex_init(&host->lock); + hisi_spi_nor_init(host); + ret = hisi_spi_nor_register_all(host); + if (ret) + mutex_destroy(&host->lock); + + clk_disable_unprepare(host->clk); + return ret; +} + +static int hisi_spi_nor_remove(struct platform_device *pdev) +{ + struct hifmc_host *host = platform_get_drvdata(pdev); + + hisi_spi_nor_unregister_all(host); + mutex_destroy(&host->lock); + clk_disable_unprepare(host->clk); + return 0; +} + +static const struct of_device_id hisi_spi_nor_dt_ids[] = { + { .compatible = "hisilicon,fmc-spi-nor"}, + { /* sentinel */ } +}; +MODULE_DEVICE_TABLE(of, hisi_spi_nor_dt_ids); + +static struct platform_driver hisi_spi_nor_driver = { + .driver = { + .name = "hisi-sfc", + .of_match_table = hisi_spi_nor_dt_ids, + }, + .probe = hisi_spi_nor_probe, + .remove = hisi_spi_nor_remove, +}; +module_platform_driver(hisi_spi_nor_driver); + +MODULE_LICENSE("GPL v2"); +MODULE_DESCRIPTION("HiSilicon SPI Nor Flash Controller Driver"); only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/mtd/spi-nor/controllers/intel-spi-pci.c +++ linux-oem-5.6-5.6.0/drivers/mtd/spi-nor/controllers/intel-spi-pci.c @@ -0,0 +1,95 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * Intel PCH/PCU SPI flash PCI driver. + * + * Copyright (C) 2016, Intel Corporation + * Author: Mika Westerberg + */ + +#include +#include +#include +#include + +#include "intel-spi.h" + +#define BCR 0xdc +#define BCR_WPD BIT(0) + +static const struct intel_spi_boardinfo bxt_info = { + .type = INTEL_SPI_BXT, +}; + +static const struct intel_spi_boardinfo cnl_info = { + .type = INTEL_SPI_CNL, +}; + +static int intel_spi_pci_probe(struct pci_dev *pdev, + const struct pci_device_id *id) +{ + struct intel_spi_boardinfo *info; + struct intel_spi *ispi; + u32 bcr; + int ret; + + ret = pcim_enable_device(pdev); + if (ret) + return ret; + + info = devm_kmemdup(&pdev->dev, (void *)id->driver_data, sizeof(*info), + GFP_KERNEL); + if (!info) + return -ENOMEM; + + /* Try to make the chip read/write */ + pci_read_config_dword(pdev, BCR, &bcr); + if (!(bcr & BCR_WPD)) { + bcr |= BCR_WPD; + pci_write_config_dword(pdev, BCR, bcr); + pci_read_config_dword(pdev, BCR, &bcr); + } + info->writeable = !!(bcr & BCR_WPD); + + ispi = intel_spi_probe(&pdev->dev, &pdev->resource[0], info); + if (IS_ERR(ispi)) + return PTR_ERR(ispi); + + pci_set_drvdata(pdev, ispi); + return 0; +} + +static void intel_spi_pci_remove(struct pci_dev *pdev) +{ + intel_spi_remove(pci_get_drvdata(pdev)); +} + +static const struct pci_device_id intel_spi_pci_ids[] = { + { PCI_VDEVICE(INTEL, 0x02a4), (unsigned long)&bxt_info }, + { PCI_VDEVICE(INTEL, 0x06a4), (unsigned long)&bxt_info }, + { PCI_VDEVICE(INTEL, 0x18e0), (unsigned long)&bxt_info }, + { PCI_VDEVICE(INTEL, 0x19e0), (unsigned long)&bxt_info }, + { PCI_VDEVICE(INTEL, 0x34a4), (unsigned long)&bxt_info }, + { PCI_VDEVICE(INTEL, 0x43a4), (unsigned long)&cnl_info }, + { PCI_VDEVICE(INTEL, 0x4b24), (unsigned long)&bxt_info }, + { PCI_VDEVICE(INTEL, 0x4da4), (unsigned long)&bxt_info }, + { PCI_VDEVICE(INTEL, 0xa0a4), (unsigned long)&bxt_info }, + { PCI_VDEVICE(INTEL, 0xa1a4), (unsigned long)&bxt_info }, + { PCI_VDEVICE(INTEL, 0xa224), (unsigned long)&bxt_info }, + { PCI_VDEVICE(INTEL, 0xa324), (unsigned long)&cnl_info }, + { PCI_VDEVICE(INTEL, 0xa3a4), (unsigned long)&bxt_info }, + { }, +}; +MODULE_DEVICE_TABLE(pci, intel_spi_pci_ids); + +static struct pci_driver intel_spi_pci_driver = { + .name = "intel-spi", + .id_table = intel_spi_pci_ids, + .probe = intel_spi_pci_probe, + .remove = intel_spi_pci_remove, +}; + +module_pci_driver(intel_spi_pci_driver); + +MODULE_DESCRIPTION("Intel PCH/PCU SPI flash PCI driver"); +MODULE_AUTHOR("Mika Westerberg "); +MODULE_LICENSE("GPL v2"); only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/mtd/spi-nor/controllers/intel-spi-platform.c +++ linux-oem-5.6-5.6.0/drivers/mtd/spi-nor/controllers/intel-spi-platform.c @@ -0,0 +1,54 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * Intel PCH/PCU SPI flash platform driver. + * + * Copyright (C) 2016, Intel Corporation + * Author: Mika Westerberg + */ + +#include +#include +#include + +#include "intel-spi.h" + +static int intel_spi_platform_probe(struct platform_device *pdev) +{ + struct intel_spi_boardinfo *info; + struct intel_spi *ispi; + struct resource *mem; + + info = dev_get_platdata(&pdev->dev); + if (!info) + return -EINVAL; + + mem = platform_get_resource(pdev, IORESOURCE_MEM, 0); + ispi = intel_spi_probe(&pdev->dev, mem, info); + if (IS_ERR(ispi)) + return PTR_ERR(ispi); + + platform_set_drvdata(pdev, ispi); + return 0; +} + +static int intel_spi_platform_remove(struct platform_device *pdev) +{ + struct intel_spi *ispi = platform_get_drvdata(pdev); + + return intel_spi_remove(ispi); +} + +static struct platform_driver intel_spi_platform_driver = { + .probe = intel_spi_platform_probe, + .remove = intel_spi_platform_remove, + .driver = { + .name = "intel-spi", + }, +}; + +module_platform_driver(intel_spi_platform_driver); + +MODULE_DESCRIPTION("Intel PCH/PCU SPI flash platform driver"); +MODULE_AUTHOR("Mika Westerberg "); +MODULE_LICENSE("GPL v2"); +MODULE_ALIAS("platform:intel-spi"); only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/mtd/spi-nor/controllers/intel-spi.c +++ linux-oem-5.6-5.6.0/drivers/mtd/spi-nor/controllers/intel-spi.c @@ -0,0 +1,960 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * Intel PCH/PCU SPI flash driver. + * + * Copyright (C) 2016, Intel Corporation + * Author: Mika Westerberg + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "intel-spi.h" + +/* Offsets are from @ispi->base */ +#define BFPREG 0x00 + +#define HSFSTS_CTL 0x04 +#define HSFSTS_CTL_FSMIE BIT(31) +#define HSFSTS_CTL_FDBC_SHIFT 24 +#define HSFSTS_CTL_FDBC_MASK (0x3f << HSFSTS_CTL_FDBC_SHIFT) + +#define HSFSTS_CTL_FCYCLE_SHIFT 17 +#define HSFSTS_CTL_FCYCLE_MASK (0x0f << HSFSTS_CTL_FCYCLE_SHIFT) +/* HW sequencer opcodes */ +#define HSFSTS_CTL_FCYCLE_READ (0x00 << HSFSTS_CTL_FCYCLE_SHIFT) +#define HSFSTS_CTL_FCYCLE_WRITE (0x02 << HSFSTS_CTL_FCYCLE_SHIFT) +#define HSFSTS_CTL_FCYCLE_ERASE (0x03 << HSFSTS_CTL_FCYCLE_SHIFT) +#define HSFSTS_CTL_FCYCLE_ERASE_64K (0x04 << HSFSTS_CTL_FCYCLE_SHIFT) +#define HSFSTS_CTL_FCYCLE_RDID (0x06 << HSFSTS_CTL_FCYCLE_SHIFT) +#define HSFSTS_CTL_FCYCLE_WRSR (0x07 << HSFSTS_CTL_FCYCLE_SHIFT) +#define HSFSTS_CTL_FCYCLE_RDSR (0x08 << HSFSTS_CTL_FCYCLE_SHIFT) + +#define HSFSTS_CTL_FGO BIT(16) +#define HSFSTS_CTL_FLOCKDN BIT(15) +#define HSFSTS_CTL_FDV BIT(14) +#define HSFSTS_CTL_SCIP BIT(5) +#define HSFSTS_CTL_AEL BIT(2) +#define HSFSTS_CTL_FCERR BIT(1) +#define HSFSTS_CTL_FDONE BIT(0) + +#define FADDR 0x08 +#define DLOCK 0x0c +#define FDATA(n) (0x10 + ((n) * 4)) + +#define FRACC 0x50 + +#define FREG(n) (0x54 + ((n) * 4)) +#define FREG_BASE_MASK 0x3fff +#define FREG_LIMIT_SHIFT 16 +#define FREG_LIMIT_MASK (0x03fff << FREG_LIMIT_SHIFT) + +/* Offset is from @ispi->pregs */ +#define PR(n) ((n) * 4) +#define PR_WPE BIT(31) +#define PR_LIMIT_SHIFT 16 +#define PR_LIMIT_MASK (0x3fff << PR_LIMIT_SHIFT) +#define PR_RPE BIT(15) +#define PR_BASE_MASK 0x3fff + +/* Offsets are from @ispi->sregs */ +#define SSFSTS_CTL 0x00 +#define SSFSTS_CTL_FSMIE BIT(23) +#define SSFSTS_CTL_DS BIT(22) +#define SSFSTS_CTL_DBC_SHIFT 16 +#define SSFSTS_CTL_SPOP BIT(11) +#define SSFSTS_CTL_ACS BIT(10) +#define SSFSTS_CTL_SCGO BIT(9) +#define SSFSTS_CTL_COP_SHIFT 12 +#define SSFSTS_CTL_FRS BIT(7) +#define SSFSTS_CTL_DOFRS BIT(6) +#define SSFSTS_CTL_AEL BIT(4) +#define SSFSTS_CTL_FCERR BIT(3) +#define SSFSTS_CTL_FDONE BIT(2) +#define SSFSTS_CTL_SCIP BIT(0) + +#define PREOP_OPTYPE 0x04 +#define OPMENU0 0x08 +#define OPMENU1 0x0c + +#define OPTYPE_READ_NO_ADDR 0 +#define OPTYPE_WRITE_NO_ADDR 1 +#define OPTYPE_READ_WITH_ADDR 2 +#define OPTYPE_WRITE_WITH_ADDR 3 + +/* CPU specifics */ +#define BYT_PR 0x74 +#define BYT_SSFSTS_CTL 0x90 +#define BYT_BCR 0xfc +#define BYT_BCR_WPD BIT(0) +#define BYT_FREG_NUM 5 +#define BYT_PR_NUM 5 + +#define LPT_PR 0x74 +#define LPT_SSFSTS_CTL 0x90 +#define LPT_FREG_NUM 5 +#define LPT_PR_NUM 5 + +#define BXT_PR 0x84 +#define BXT_SSFSTS_CTL 0xa0 +#define BXT_FREG_NUM 12 +#define BXT_PR_NUM 6 + +#define CNL_PR 0x84 +#define CNL_FREG_NUM 6 +#define CNL_PR_NUM 5 + +#define LVSCC 0xc4 +#define UVSCC 0xc8 +#define ERASE_OPCODE_SHIFT 8 +#define ERASE_OPCODE_MASK (0xff << ERASE_OPCODE_SHIFT) +#define ERASE_64K_OPCODE_SHIFT 16 +#define ERASE_64K_OPCODE_MASK (0xff << ERASE_OPCODE_SHIFT) + +#define INTEL_SPI_TIMEOUT 5000 /* ms */ +#define INTEL_SPI_FIFO_SZ 64 + +/** + * struct intel_spi - Driver private data + * @dev: Device pointer + * @info: Pointer to board specific info + * @nor: SPI NOR layer structure + * @base: Beginning of MMIO space + * @pregs: Start of protection registers + * @sregs: Start of software sequencer registers + * @nregions: Maximum number of regions + * @pr_num: Maximum number of protected range registers + * @writeable: Is the chip writeable + * @locked: Is SPI setting locked + * @swseq_reg: Use SW sequencer in register reads/writes + * @swseq_erase: Use SW sequencer in erase operation + * @erase_64k: 64k erase supported + * @atomic_preopcode: Holds preopcode when atomic sequence is requested + * @opcodes: Opcodes which are supported. This are programmed by BIOS + * before it locks down the controller. + */ +struct intel_spi { + struct device *dev; + const struct intel_spi_boardinfo *info; + struct spi_nor nor; + void __iomem *base; + void __iomem *pregs; + void __iomem *sregs; + size_t nregions; + size_t pr_num; + bool writeable; + bool locked; + bool swseq_reg; + bool swseq_erase; + bool erase_64k; + u8 atomic_preopcode; + u8 opcodes[8]; +}; + +static bool writeable; +module_param(writeable, bool, 0); +MODULE_PARM_DESC(writeable, "Enable write access to SPI flash chip (default=0)"); + +static void intel_spi_dump_regs(struct intel_spi *ispi) +{ + u32 value; + int i; + + dev_dbg(ispi->dev, "BFPREG=0x%08x\n", readl(ispi->base + BFPREG)); + + value = readl(ispi->base + HSFSTS_CTL); + dev_dbg(ispi->dev, "HSFSTS_CTL=0x%08x\n", value); + if (value & HSFSTS_CTL_FLOCKDN) + dev_dbg(ispi->dev, "-> Locked\n"); + + dev_dbg(ispi->dev, "FADDR=0x%08x\n", readl(ispi->base + FADDR)); + dev_dbg(ispi->dev, "DLOCK=0x%08x\n", readl(ispi->base + DLOCK)); + + for (i = 0; i < 16; i++) + dev_dbg(ispi->dev, "FDATA(%d)=0x%08x\n", + i, readl(ispi->base + FDATA(i))); + + dev_dbg(ispi->dev, "FRACC=0x%08x\n", readl(ispi->base + FRACC)); + + for (i = 0; i < ispi->nregions; i++) + dev_dbg(ispi->dev, "FREG(%d)=0x%08x\n", i, + readl(ispi->base + FREG(i))); + for (i = 0; i < ispi->pr_num; i++) + dev_dbg(ispi->dev, "PR(%d)=0x%08x\n", i, + readl(ispi->pregs + PR(i))); + + if (ispi->sregs) { + value = readl(ispi->sregs + SSFSTS_CTL); + dev_dbg(ispi->dev, "SSFSTS_CTL=0x%08x\n", value); + dev_dbg(ispi->dev, "PREOP_OPTYPE=0x%08x\n", + readl(ispi->sregs + PREOP_OPTYPE)); + dev_dbg(ispi->dev, "OPMENU0=0x%08x\n", + readl(ispi->sregs + OPMENU0)); + dev_dbg(ispi->dev, "OPMENU1=0x%08x\n", + readl(ispi->sregs + OPMENU1)); + } + + if (ispi->info->type == INTEL_SPI_BYT) + dev_dbg(ispi->dev, "BCR=0x%08x\n", readl(ispi->base + BYT_BCR)); + + dev_dbg(ispi->dev, "LVSCC=0x%08x\n", readl(ispi->base + LVSCC)); + dev_dbg(ispi->dev, "UVSCC=0x%08x\n", readl(ispi->base + UVSCC)); + + dev_dbg(ispi->dev, "Protected regions:\n"); + for (i = 0; i < ispi->pr_num; i++) { + u32 base, limit; + + value = readl(ispi->pregs + PR(i)); + if (!(value & (PR_WPE | PR_RPE))) + continue; + + limit = (value & PR_LIMIT_MASK) >> PR_LIMIT_SHIFT; + base = value & PR_BASE_MASK; + + dev_dbg(ispi->dev, " %02d base: 0x%08x limit: 0x%08x [%c%c]\n", + i, base << 12, (limit << 12) | 0xfff, + value & PR_WPE ? 'W' : '.', + value & PR_RPE ? 'R' : '.'); + } + + dev_dbg(ispi->dev, "Flash regions:\n"); + for (i = 0; i < ispi->nregions; i++) { + u32 region, base, limit; + + region = readl(ispi->base + FREG(i)); + base = region & FREG_BASE_MASK; + limit = (region & FREG_LIMIT_MASK) >> FREG_LIMIT_SHIFT; + + if (base >= limit || (i > 0 && limit == 0)) + dev_dbg(ispi->dev, " %02d disabled\n", i); + else + dev_dbg(ispi->dev, " %02d base: 0x%08x limit: 0x%08x\n", + i, base << 12, (limit << 12) | 0xfff); + } + + dev_dbg(ispi->dev, "Using %cW sequencer for register access\n", + ispi->swseq_reg ? 'S' : 'H'); + dev_dbg(ispi->dev, "Using %cW sequencer for erase operation\n", + ispi->swseq_erase ? 'S' : 'H'); +} + +/* Reads max INTEL_SPI_FIFO_SZ bytes from the device fifo */ +static int intel_spi_read_block(struct intel_spi *ispi, void *buf, size_t size) +{ + size_t bytes; + int i = 0; + + if (size > INTEL_SPI_FIFO_SZ) + return -EINVAL; + + while (size > 0) { + bytes = min_t(size_t, size, 4); + memcpy_fromio(buf, ispi->base + FDATA(i), bytes); + size -= bytes; + buf += bytes; + i++; + } + + return 0; +} + +/* Writes max INTEL_SPI_FIFO_SZ bytes to the device fifo */ +static int intel_spi_write_block(struct intel_spi *ispi, const void *buf, + size_t size) +{ + size_t bytes; + int i = 0; + + if (size > INTEL_SPI_FIFO_SZ) + return -EINVAL; + + while (size > 0) { + bytes = min_t(size_t, size, 4); + memcpy_toio(ispi->base + FDATA(i), buf, bytes); + size -= bytes; + buf += bytes; + i++; + } + + return 0; +} + +static int intel_spi_wait_hw_busy(struct intel_spi *ispi) +{ + u32 val; + + return readl_poll_timeout(ispi->base + HSFSTS_CTL, val, + !(val & HSFSTS_CTL_SCIP), 40, + INTEL_SPI_TIMEOUT * 1000); +} + +static int intel_spi_wait_sw_busy(struct intel_spi *ispi) +{ + u32 val; + + return readl_poll_timeout(ispi->sregs + SSFSTS_CTL, val, + !(val & SSFSTS_CTL_SCIP), 40, + INTEL_SPI_TIMEOUT * 1000); +} + +static int intel_spi_init(struct intel_spi *ispi) +{ + u32 opmenu0, opmenu1, lvscc, uvscc, val; + int i; + + switch (ispi->info->type) { + case INTEL_SPI_BYT: + ispi->sregs = ispi->base + BYT_SSFSTS_CTL; + ispi->pregs = ispi->base + BYT_PR; + ispi->nregions = BYT_FREG_NUM; + ispi->pr_num = BYT_PR_NUM; + ispi->swseq_reg = true; + + if (writeable) { + /* Disable write protection */ + val = readl(ispi->base + BYT_BCR); + if (!(val & BYT_BCR_WPD)) { + val |= BYT_BCR_WPD; + writel(val, ispi->base + BYT_BCR); + val = readl(ispi->base + BYT_BCR); + } + + ispi->writeable = !!(val & BYT_BCR_WPD); + } + + break; + + case INTEL_SPI_LPT: + ispi->sregs = ispi->base + LPT_SSFSTS_CTL; + ispi->pregs = ispi->base + LPT_PR; + ispi->nregions = LPT_FREG_NUM; + ispi->pr_num = LPT_PR_NUM; + ispi->swseq_reg = true; + break; + + case INTEL_SPI_BXT: + ispi->sregs = ispi->base + BXT_SSFSTS_CTL; + ispi->pregs = ispi->base + BXT_PR; + ispi->nregions = BXT_FREG_NUM; + ispi->pr_num = BXT_PR_NUM; + ispi->erase_64k = true; + break; + + case INTEL_SPI_CNL: + ispi->sregs = NULL; + ispi->pregs = ispi->base + CNL_PR; + ispi->nregions = CNL_FREG_NUM; + ispi->pr_num = CNL_PR_NUM; + break; + + default: + return -EINVAL; + } + + /* Disable #SMI generation from HW sequencer */ + val = readl(ispi->base + HSFSTS_CTL); + val &= ~HSFSTS_CTL_FSMIE; + writel(val, ispi->base + HSFSTS_CTL); + + /* + * Determine whether erase operation should use HW or SW sequencer. + * + * The HW sequencer has a predefined list of opcodes, with only the + * erase opcode being programmable in LVSCC and UVSCC registers. + * If these registers don't contain a valid erase opcode, erase + * cannot be done using HW sequencer. + */ + lvscc = readl(ispi->base + LVSCC); + uvscc = readl(ispi->base + UVSCC); + if (!(lvscc & ERASE_OPCODE_MASK) || !(uvscc & ERASE_OPCODE_MASK)) + ispi->swseq_erase = true; + /* SPI controller on Intel BXT supports 64K erase opcode */ + if (ispi->info->type == INTEL_SPI_BXT && !ispi->swseq_erase) + if (!(lvscc & ERASE_64K_OPCODE_MASK) || + !(uvscc & ERASE_64K_OPCODE_MASK)) + ispi->erase_64k = false; + + if (ispi->sregs == NULL && (ispi->swseq_reg || ispi->swseq_erase)) { + dev_err(ispi->dev, "software sequencer not supported, but required\n"); + return -EINVAL; + } + + /* + * Some controllers can only do basic operations using hardware + * sequencer. All other operations are supposed to be carried out + * using software sequencer. + */ + if (ispi->swseq_reg) { + /* Disable #SMI generation from SW sequencer */ + val = readl(ispi->sregs + SSFSTS_CTL); + val &= ~SSFSTS_CTL_FSMIE; + writel(val, ispi->sregs + SSFSTS_CTL); + } + + /* Check controller's lock status */ + val = readl(ispi->base + HSFSTS_CTL); + ispi->locked = !!(val & HSFSTS_CTL_FLOCKDN); + + if (ispi->locked && ispi->sregs) { + /* + * BIOS programs allowed opcodes and then locks down the + * register. So read back what opcodes it decided to support. + * That's the set we are going to support as well. + */ + opmenu0 = readl(ispi->sregs + OPMENU0); + opmenu1 = readl(ispi->sregs + OPMENU1); + + if (opmenu0 && opmenu1) { + for (i = 0; i < ARRAY_SIZE(ispi->opcodes) / 2; i++) { + ispi->opcodes[i] = opmenu0 >> i * 8; + ispi->opcodes[i + 4] = opmenu1 >> i * 8; + } + } + } + + intel_spi_dump_regs(ispi); + + return 0; +} + +static int intel_spi_opcode_index(struct intel_spi *ispi, u8 opcode, int optype) +{ + int i; + int preop; + + if (ispi->locked) { + for (i = 0; i < ARRAY_SIZE(ispi->opcodes); i++) + if (ispi->opcodes[i] == opcode) + return i; + + return -EINVAL; + } + + /* The lock is off, so just use index 0 */ + writel(opcode, ispi->sregs + OPMENU0); + preop = readw(ispi->sregs + PREOP_OPTYPE); + writel(optype << 16 | preop, ispi->sregs + PREOP_OPTYPE); + + return 0; +} + +static int intel_spi_hw_cycle(struct intel_spi *ispi, u8 opcode, size_t len) +{ + u32 val, status; + int ret; + + val = readl(ispi->base + HSFSTS_CTL); + val &= ~(HSFSTS_CTL_FCYCLE_MASK | HSFSTS_CTL_FDBC_MASK); + + switch (opcode) { + case SPINOR_OP_RDID: + val |= HSFSTS_CTL_FCYCLE_RDID; + break; + case SPINOR_OP_WRSR: + val |= HSFSTS_CTL_FCYCLE_WRSR; + break; + case SPINOR_OP_RDSR: + val |= HSFSTS_CTL_FCYCLE_RDSR; + break; + default: + return -EINVAL; + } + + if (len > INTEL_SPI_FIFO_SZ) + return -EINVAL; + + val |= (len - 1) << HSFSTS_CTL_FDBC_SHIFT; + val |= HSFSTS_CTL_FCERR | HSFSTS_CTL_FDONE; + val |= HSFSTS_CTL_FGO; + writel(val, ispi->base + HSFSTS_CTL); + + ret = intel_spi_wait_hw_busy(ispi); + if (ret) + return ret; + + status = readl(ispi->base + HSFSTS_CTL); + if (status & HSFSTS_CTL_FCERR) + return -EIO; + else if (status & HSFSTS_CTL_AEL) + return -EACCES; + + return 0; +} + +static int intel_spi_sw_cycle(struct intel_spi *ispi, u8 opcode, size_t len, + int optype) +{ + u32 val = 0, status; + u8 atomic_preopcode; + int ret; + + ret = intel_spi_opcode_index(ispi, opcode, optype); + if (ret < 0) + return ret; + + if (len > INTEL_SPI_FIFO_SZ) + return -EINVAL; + + /* + * Always clear it after each SW sequencer operation regardless + * of whether it is successful or not. + */ + atomic_preopcode = ispi->atomic_preopcode; + ispi->atomic_preopcode = 0; + + /* Only mark 'Data Cycle' bit when there is data to be transferred */ + if (len > 0) + val = ((len - 1) << SSFSTS_CTL_DBC_SHIFT) | SSFSTS_CTL_DS; + val |= ret << SSFSTS_CTL_COP_SHIFT; + val |= SSFSTS_CTL_FCERR | SSFSTS_CTL_FDONE; + val |= SSFSTS_CTL_SCGO; + if (atomic_preopcode) { + u16 preop; + + switch (optype) { + case OPTYPE_WRITE_NO_ADDR: + case OPTYPE_WRITE_WITH_ADDR: + /* Pick matching preopcode for the atomic sequence */ + preop = readw(ispi->sregs + PREOP_OPTYPE); + if ((preop & 0xff) == atomic_preopcode) + ; /* Do nothing */ + else if ((preop >> 8) == atomic_preopcode) + val |= SSFSTS_CTL_SPOP; + else + return -EINVAL; + + /* Enable atomic sequence */ + val |= SSFSTS_CTL_ACS; + break; + + default: + return -EINVAL; + } + + } + writel(val, ispi->sregs + SSFSTS_CTL); + + ret = intel_spi_wait_sw_busy(ispi); + if (ret) + return ret; + + status = readl(ispi->sregs + SSFSTS_CTL); + if (status & SSFSTS_CTL_FCERR) + return -EIO; + else if (status & SSFSTS_CTL_AEL) + return -EACCES; + + return 0; +} + +static int intel_spi_read_reg(struct spi_nor *nor, u8 opcode, u8 *buf, + size_t len) +{ + struct intel_spi *ispi = nor->priv; + int ret; + + /* Address of the first chip */ + writel(0, ispi->base + FADDR); + + if (ispi->swseq_reg) + ret = intel_spi_sw_cycle(ispi, opcode, len, + OPTYPE_READ_NO_ADDR); + else + ret = intel_spi_hw_cycle(ispi, opcode, len); + + if (ret) + return ret; + + return intel_spi_read_block(ispi, buf, len); +} + +static int intel_spi_write_reg(struct spi_nor *nor, u8 opcode, const u8 *buf, + size_t len) +{ + struct intel_spi *ispi = nor->priv; + int ret; + + /* + * This is handled with atomic operation and preop code in Intel + * controller so we only verify that it is available. If the + * controller is not locked, program the opcode to the PREOP + * register for later use. + * + * When hardware sequencer is used there is no need to program + * any opcodes (it handles them automatically as part of a command). + */ + if (opcode == SPINOR_OP_WREN) { + u16 preop; + + if (!ispi->swseq_reg) + return 0; + + preop = readw(ispi->sregs + PREOP_OPTYPE); + if ((preop & 0xff) != opcode && (preop >> 8) != opcode) { + if (ispi->locked) + return -EINVAL; + writel(opcode, ispi->sregs + PREOP_OPTYPE); + } + + /* + * This enables atomic sequence on next SW sycle. Will + * be cleared after next operation. + */ + ispi->atomic_preopcode = opcode; + return 0; + } + + writel(0, ispi->base + FADDR); + + /* Write the value beforehand */ + ret = intel_spi_write_block(ispi, buf, len); + if (ret) + return ret; + + if (ispi->swseq_reg) + return intel_spi_sw_cycle(ispi, opcode, len, + OPTYPE_WRITE_NO_ADDR); + return intel_spi_hw_cycle(ispi, opcode, len); +} + +static ssize_t intel_spi_read(struct spi_nor *nor, loff_t from, size_t len, + u_char *read_buf) +{ + struct intel_spi *ispi = nor->priv; + size_t block_size, retlen = 0; + u32 val, status; + ssize_t ret; + + /* + * Atomic sequence is not expected with HW sequencer reads. Make + * sure it is cleared regardless. + */ + if (WARN_ON_ONCE(ispi->atomic_preopcode)) + ispi->atomic_preopcode = 0; + + switch (nor->read_opcode) { + case SPINOR_OP_READ: + case SPINOR_OP_READ_FAST: + case SPINOR_OP_READ_4B: + case SPINOR_OP_READ_FAST_4B: + break; + default: + return -EINVAL; + } + + while (len > 0) { + block_size = min_t(size_t, len, INTEL_SPI_FIFO_SZ); + + /* Read cannot cross 4K boundary */ + block_size = min_t(loff_t, from + block_size, + round_up(from + 1, SZ_4K)) - from; + + writel(from, ispi->base + FADDR); + + val = readl(ispi->base + HSFSTS_CTL); + val &= ~(HSFSTS_CTL_FDBC_MASK | HSFSTS_CTL_FCYCLE_MASK); + val |= HSFSTS_CTL_AEL | HSFSTS_CTL_FCERR | HSFSTS_CTL_FDONE; + val |= (block_size - 1) << HSFSTS_CTL_FDBC_SHIFT; + val |= HSFSTS_CTL_FCYCLE_READ; + val |= HSFSTS_CTL_FGO; + writel(val, ispi->base + HSFSTS_CTL); + + ret = intel_spi_wait_hw_busy(ispi); + if (ret) + return ret; + + status = readl(ispi->base + HSFSTS_CTL); + if (status & HSFSTS_CTL_FCERR) + ret = -EIO; + else if (status & HSFSTS_CTL_AEL) + ret = -EACCES; + + if (ret < 0) { + dev_err(ispi->dev, "read error: %llx: %#x\n", from, + status); + return ret; + } + + ret = intel_spi_read_block(ispi, read_buf, block_size); + if (ret) + return ret; + + len -= block_size; + from += block_size; + retlen += block_size; + read_buf += block_size; + } + + return retlen; +} + +static ssize_t intel_spi_write(struct spi_nor *nor, loff_t to, size_t len, + const u_char *write_buf) +{ + struct intel_spi *ispi = nor->priv; + size_t block_size, retlen = 0; + u32 val, status; + ssize_t ret; + + /* Not needed with HW sequencer write, make sure it is cleared */ + ispi->atomic_preopcode = 0; + + while (len > 0) { + block_size = min_t(size_t, len, INTEL_SPI_FIFO_SZ); + + /* Write cannot cross 4K boundary */ + block_size = min_t(loff_t, to + block_size, + round_up(to + 1, SZ_4K)) - to; + + writel(to, ispi->base + FADDR); + + val = readl(ispi->base + HSFSTS_CTL); + val &= ~(HSFSTS_CTL_FDBC_MASK | HSFSTS_CTL_FCYCLE_MASK); + val |= HSFSTS_CTL_AEL | HSFSTS_CTL_FCERR | HSFSTS_CTL_FDONE; + val |= (block_size - 1) << HSFSTS_CTL_FDBC_SHIFT; + val |= HSFSTS_CTL_FCYCLE_WRITE; + + ret = intel_spi_write_block(ispi, write_buf, block_size); + if (ret) { + dev_err(ispi->dev, "failed to write block\n"); + return ret; + } + + /* Start the write now */ + val |= HSFSTS_CTL_FGO; + writel(val, ispi->base + HSFSTS_CTL); + + ret = intel_spi_wait_hw_busy(ispi); + if (ret) { + dev_err(ispi->dev, "timeout\n"); + return ret; + } + + status = readl(ispi->base + HSFSTS_CTL); + if (status & HSFSTS_CTL_FCERR) + ret = -EIO; + else if (status & HSFSTS_CTL_AEL) + ret = -EACCES; + + if (ret < 0) { + dev_err(ispi->dev, "write error: %llx: %#x\n", to, + status); + return ret; + } + + len -= block_size; + to += block_size; + retlen += block_size; + write_buf += block_size; + } + + return retlen; +} + +static int intel_spi_erase(struct spi_nor *nor, loff_t offs) +{ + size_t erase_size, len = nor->mtd.erasesize; + struct intel_spi *ispi = nor->priv; + u32 val, status, cmd; + int ret; + + /* If the hardware can do 64k erase use that when possible */ + if (len >= SZ_64K && ispi->erase_64k) { + cmd = HSFSTS_CTL_FCYCLE_ERASE_64K; + erase_size = SZ_64K; + } else { + cmd = HSFSTS_CTL_FCYCLE_ERASE; + erase_size = SZ_4K; + } + + if (ispi->swseq_erase) { + while (len > 0) { + writel(offs, ispi->base + FADDR); + + ret = intel_spi_sw_cycle(ispi, nor->erase_opcode, + 0, OPTYPE_WRITE_WITH_ADDR); + if (ret) + return ret; + + offs += erase_size; + len -= erase_size; + } + + return 0; + } + + /* Not needed with HW sequencer erase, make sure it is cleared */ + ispi->atomic_preopcode = 0; + + while (len > 0) { + writel(offs, ispi->base + FADDR); + + val = readl(ispi->base + HSFSTS_CTL); + val &= ~(HSFSTS_CTL_FDBC_MASK | HSFSTS_CTL_FCYCLE_MASK); + val |= HSFSTS_CTL_AEL | HSFSTS_CTL_FCERR | HSFSTS_CTL_FDONE; + val |= cmd; + val |= HSFSTS_CTL_FGO; + writel(val, ispi->base + HSFSTS_CTL); + + ret = intel_spi_wait_hw_busy(ispi); + if (ret) + return ret; + + status = readl(ispi->base + HSFSTS_CTL); + if (status & HSFSTS_CTL_FCERR) + return -EIO; + else if (status & HSFSTS_CTL_AEL) + return -EACCES; + + offs += erase_size; + len -= erase_size; + } + + return 0; +} + +static bool intel_spi_is_protected(const struct intel_spi *ispi, + unsigned int base, unsigned int limit) +{ + int i; + + for (i = 0; i < ispi->pr_num; i++) { + u32 pr_base, pr_limit, pr_value; + + pr_value = readl(ispi->pregs + PR(i)); + if (!(pr_value & (PR_WPE | PR_RPE))) + continue; + + pr_limit = (pr_value & PR_LIMIT_MASK) >> PR_LIMIT_SHIFT; + pr_base = pr_value & PR_BASE_MASK; + + if (pr_base >= base && pr_limit <= limit) + return true; + } + + return false; +} + +/* + * There will be a single partition holding all enabled flash regions. We + * call this "BIOS". + */ +static void intel_spi_fill_partition(struct intel_spi *ispi, + struct mtd_partition *part) +{ + u64 end; + int i; + + memset(part, 0, sizeof(*part)); + + /* Start from the mandatory descriptor region */ + part->size = 4096; + part->name = "BIOS"; + + /* + * Now try to find where this partition ends based on the flash + * region registers. + */ + for (i = 1; i < ispi->nregions; i++) { + u32 region, base, limit; + + region = readl(ispi->base + FREG(i)); + base = region & FREG_BASE_MASK; + limit = (region & FREG_LIMIT_MASK) >> FREG_LIMIT_SHIFT; + + if (base >= limit || limit == 0) + continue; + + /* + * If any of the regions have protection bits set, make the + * whole partition read-only to be on the safe side. + */ + if (intel_spi_is_protected(ispi, base, limit)) + ispi->writeable = false; + + end = (limit << 12) + 4096; + if (end > part->size) + part->size = end; + } +} + +static const struct spi_nor_controller_ops intel_spi_controller_ops = { + .read_reg = intel_spi_read_reg, + .write_reg = intel_spi_write_reg, + .read = intel_spi_read, + .write = intel_spi_write, + .erase = intel_spi_erase, +}; + +struct intel_spi *intel_spi_probe(struct device *dev, + struct resource *mem, const struct intel_spi_boardinfo *info) +{ + const struct spi_nor_hwcaps hwcaps = { + .mask = SNOR_HWCAPS_READ | + SNOR_HWCAPS_READ_FAST | + SNOR_HWCAPS_PP, + }; + struct mtd_partition part; + struct intel_spi *ispi; + int ret; + + if (!info || !mem) + return ERR_PTR(-EINVAL); + + ispi = devm_kzalloc(dev, sizeof(*ispi), GFP_KERNEL); + if (!ispi) + return ERR_PTR(-ENOMEM); + + ispi->base = devm_ioremap_resource(dev, mem); + if (IS_ERR(ispi->base)) + return ERR_CAST(ispi->base); + + ispi->dev = dev; + ispi->info = info; + ispi->writeable = info->writeable; + + ret = intel_spi_init(ispi); + if (ret) + return ERR_PTR(ret); + + ispi->nor.dev = ispi->dev; + ispi->nor.priv = ispi; + ispi->nor.controller_ops = &intel_spi_controller_ops; + + ret = spi_nor_scan(&ispi->nor, NULL, &hwcaps); + if (ret) { + dev_info(dev, "failed to locate the chip\n"); + return ERR_PTR(ret); + } + + intel_spi_fill_partition(ispi, &part); + + /* Prevent writes if not explicitly enabled */ + if (!ispi->writeable || !writeable) + ispi->nor.mtd.flags &= ~MTD_WRITEABLE; + + ret = mtd_device_register(&ispi->nor.mtd, &part, 1); + if (ret) + return ERR_PTR(ret); + + return ispi; +} +EXPORT_SYMBOL_GPL(intel_spi_probe); + +int intel_spi_remove(struct intel_spi *ispi) +{ + return mtd_device_unregister(&ispi->nor.mtd); +} +EXPORT_SYMBOL_GPL(intel_spi_remove); + +MODULE_DESCRIPTION("Intel PCH/PCU SPI flash core driver"); +MODULE_AUTHOR("Mika Westerberg "); +MODULE_LICENSE("GPL v2"); only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/mtd/spi-nor/controllers/intel-spi.h +++ linux-oem-5.6-5.6.0/drivers/mtd/spi-nor/controllers/intel-spi.h @@ -0,0 +1,21 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +/* + * Intel PCH/PCU SPI flash driver. + * + * Copyright (C) 2016, Intel Corporation + * Author: Mika Westerberg + */ + +#ifndef INTEL_SPI_H +#define INTEL_SPI_H + +#include + +struct intel_spi; +struct resource; + +struct intel_spi *intel_spi_probe(struct device *dev, + struct resource *mem, const struct intel_spi_boardinfo *info); +int intel_spi_remove(struct intel_spi *ispi); + +#endif /* INTEL_SPI_H */ only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/mtd/spi-nor/controllers/mtk-quadspi.c +++ linux-oem-5.6-5.6.0/drivers/mtd/spi-nor/controllers/mtk-quadspi.c @@ -0,0 +1,565 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * Copyright (c) 2015 MediaTek Inc. + * Author: Bayi Cheng + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define MTK_NOR_CMD_REG 0x00 +#define MTK_NOR_CNT_REG 0x04 +#define MTK_NOR_RDSR_REG 0x08 +#define MTK_NOR_RDATA_REG 0x0c +#define MTK_NOR_RADR0_REG 0x10 +#define MTK_NOR_RADR1_REG 0x14 +#define MTK_NOR_RADR2_REG 0x18 +#define MTK_NOR_WDATA_REG 0x1c +#define MTK_NOR_PRGDATA0_REG 0x20 +#define MTK_NOR_PRGDATA1_REG 0x24 +#define MTK_NOR_PRGDATA2_REG 0x28 +#define MTK_NOR_PRGDATA3_REG 0x2c +#define MTK_NOR_PRGDATA4_REG 0x30 +#define MTK_NOR_PRGDATA5_REG 0x34 +#define MTK_NOR_SHREG0_REG 0x38 +#define MTK_NOR_SHREG1_REG 0x3c +#define MTK_NOR_SHREG2_REG 0x40 +#define MTK_NOR_SHREG3_REG 0x44 +#define MTK_NOR_SHREG4_REG 0x48 +#define MTK_NOR_SHREG5_REG 0x4c +#define MTK_NOR_SHREG6_REG 0x50 +#define MTK_NOR_SHREG7_REG 0x54 +#define MTK_NOR_SHREG8_REG 0x58 +#define MTK_NOR_SHREG9_REG 0x5c +#define MTK_NOR_CFG1_REG 0x60 +#define MTK_NOR_CFG2_REG 0x64 +#define MTK_NOR_CFG3_REG 0x68 +#define MTK_NOR_STATUS0_REG 0x70 +#define MTK_NOR_STATUS1_REG 0x74 +#define MTK_NOR_STATUS2_REG 0x78 +#define MTK_NOR_STATUS3_REG 0x7c +#define MTK_NOR_FLHCFG_REG 0x84 +#define MTK_NOR_TIME_REG 0x94 +#define MTK_NOR_PP_DATA_REG 0x98 +#define MTK_NOR_PREBUF_STUS_REG 0x9c +#define MTK_NOR_DELSEL0_REG 0xa0 +#define MTK_NOR_DELSEL1_REG 0xa4 +#define MTK_NOR_INTRSTUS_REG 0xa8 +#define MTK_NOR_INTREN_REG 0xac +#define MTK_NOR_CHKSUM_CTL_REG 0xb8 +#define MTK_NOR_CHKSUM_REG 0xbc +#define MTK_NOR_CMD2_REG 0xc0 +#define MTK_NOR_WRPROT_REG 0xc4 +#define MTK_NOR_RADR3_REG 0xc8 +#define MTK_NOR_DUAL_REG 0xcc +#define MTK_NOR_DELSEL2_REG 0xd0 +#define MTK_NOR_DELSEL3_REG 0xd4 +#define MTK_NOR_DELSEL4_REG 0xd8 + +/* commands for mtk nor controller */ +#define MTK_NOR_READ_CMD 0x0 +#define MTK_NOR_RDSR_CMD 0x2 +#define MTK_NOR_PRG_CMD 0x4 +#define MTK_NOR_WR_CMD 0x10 +#define MTK_NOR_PIO_WR_CMD 0x90 +#define MTK_NOR_WRSR_CMD 0x20 +#define MTK_NOR_PIO_READ_CMD 0x81 +#define MTK_NOR_WR_BUF_ENABLE 0x1 +#define MTK_NOR_WR_BUF_DISABLE 0x0 +#define MTK_NOR_ENABLE_SF_CMD 0x30 +#define MTK_NOR_DUAD_ADDR_EN 0x8 +#define MTK_NOR_QUAD_READ_EN 0x4 +#define MTK_NOR_DUAL_ADDR_EN 0x2 +#define MTK_NOR_DUAL_READ_EN 0x1 +#define MTK_NOR_DUAL_DISABLE 0x0 +#define MTK_NOR_FAST_READ 0x1 + +#define SFLASH_WRBUF_SIZE 128 + +/* Can shift up to 48 bits (6 bytes) of TX/RX */ +#define MTK_NOR_MAX_RX_TX_SHIFT 6 +/* can shift up to 56 bits (7 bytes) transfer by MTK_NOR_PRG_CMD */ +#define MTK_NOR_MAX_SHIFT 7 +/* nor controller 4-byte address mode enable bit */ +#define MTK_NOR_4B_ADDR_EN BIT(4) + +/* Helpers for accessing the program data / shift data registers */ +#define MTK_NOR_PRG_REG(n) (MTK_NOR_PRGDATA0_REG + 4 * (n)) +#define MTK_NOR_SHREG(n) (MTK_NOR_SHREG0_REG + 4 * (n)) + +struct mtk_nor { + struct spi_nor nor; + struct device *dev; + void __iomem *base; /* nor flash base address */ + struct clk *spi_clk; + struct clk *nor_clk; +}; + +static void mtk_nor_set_read_mode(struct mtk_nor *mtk_nor) +{ + struct spi_nor *nor = &mtk_nor->nor; + + switch (nor->read_proto) { + case SNOR_PROTO_1_1_1: + writeb(nor->read_opcode, mtk_nor->base + + MTK_NOR_PRGDATA3_REG); + writeb(MTK_NOR_FAST_READ, mtk_nor->base + + MTK_NOR_CFG1_REG); + break; + case SNOR_PROTO_1_1_2: + writeb(nor->read_opcode, mtk_nor->base + + MTK_NOR_PRGDATA3_REG); + writeb(MTK_NOR_DUAL_READ_EN, mtk_nor->base + + MTK_NOR_DUAL_REG); + break; + case SNOR_PROTO_1_1_4: + writeb(nor->read_opcode, mtk_nor->base + + MTK_NOR_PRGDATA4_REG); + writeb(MTK_NOR_QUAD_READ_EN, mtk_nor->base + + MTK_NOR_DUAL_REG); + break; + default: + writeb(MTK_NOR_DUAL_DISABLE, mtk_nor->base + + MTK_NOR_DUAL_REG); + break; + } +} + +static int mtk_nor_execute_cmd(struct mtk_nor *mtk_nor, u8 cmdval) +{ + int reg; + u8 val = cmdval & 0x1f; + + writeb(cmdval, mtk_nor->base + MTK_NOR_CMD_REG); + return readl_poll_timeout(mtk_nor->base + MTK_NOR_CMD_REG, reg, + !(reg & val), 100, 10000); +} + +static int mtk_nor_do_tx_rx(struct mtk_nor *mtk_nor, u8 op, + const u8 *tx, size_t txlen, u8 *rx, size_t rxlen) +{ + size_t len = 1 + txlen + rxlen; + int i, ret, idx; + + if (len > MTK_NOR_MAX_SHIFT) + return -EINVAL; + + writeb(len * 8, mtk_nor->base + MTK_NOR_CNT_REG); + + /* start at PRGDATA5, go down to PRGDATA0 */ + idx = MTK_NOR_MAX_RX_TX_SHIFT - 1; + + /* opcode */ + writeb(op, mtk_nor->base + MTK_NOR_PRG_REG(idx)); + idx--; + + /* program TX data */ + for (i = 0; i < txlen; i++, idx--) + writeb(tx[i], mtk_nor->base + MTK_NOR_PRG_REG(idx)); + + /* clear out rest of TX registers */ + while (idx >= 0) { + writeb(0, mtk_nor->base + MTK_NOR_PRG_REG(idx)); + idx--; + } + + ret = mtk_nor_execute_cmd(mtk_nor, MTK_NOR_PRG_CMD); + if (ret) + return ret; + + /* restart at first RX byte */ + idx = rxlen - 1; + + /* read out RX data */ + for (i = 0; i < rxlen; i++, idx--) + rx[i] = readb(mtk_nor->base + MTK_NOR_SHREG(idx)); + + return 0; +} + +/* Do a WRSR (Write Status Register) command */ +static int mtk_nor_wr_sr(struct mtk_nor *mtk_nor, const u8 sr) +{ + writeb(sr, mtk_nor->base + MTK_NOR_PRGDATA5_REG); + writeb(8, mtk_nor->base + MTK_NOR_CNT_REG); + return mtk_nor_execute_cmd(mtk_nor, MTK_NOR_WRSR_CMD); +} + +static int mtk_nor_write_buffer_enable(struct mtk_nor *mtk_nor) +{ + u8 reg; + + /* the bit0 of MTK_NOR_CFG2_REG is pre-fetch buffer + * 0: pre-fetch buffer use for read + * 1: pre-fetch buffer use for page program + */ + writel(MTK_NOR_WR_BUF_ENABLE, mtk_nor->base + MTK_NOR_CFG2_REG); + return readb_poll_timeout(mtk_nor->base + MTK_NOR_CFG2_REG, reg, + 0x01 == (reg & 0x01), 100, 10000); +} + +static int mtk_nor_write_buffer_disable(struct mtk_nor *mtk_nor) +{ + u8 reg; + + writel(MTK_NOR_WR_BUF_DISABLE, mtk_nor->base + MTK_NOR_CFG2_REG); + return readb_poll_timeout(mtk_nor->base + MTK_NOR_CFG2_REG, reg, + MTK_NOR_WR_BUF_DISABLE == (reg & 0x1), 100, + 10000); +} + +static void mtk_nor_set_addr_width(struct mtk_nor *mtk_nor) +{ + u8 val; + struct spi_nor *nor = &mtk_nor->nor; + + val = readb(mtk_nor->base + MTK_NOR_DUAL_REG); + + switch (nor->addr_width) { + case 3: + val &= ~MTK_NOR_4B_ADDR_EN; + break; + case 4: + val |= MTK_NOR_4B_ADDR_EN; + break; + default: + dev_warn(mtk_nor->dev, "Unexpected address width %u.\n", + nor->addr_width); + break; + } + + writeb(val, mtk_nor->base + MTK_NOR_DUAL_REG); +} + +static void mtk_nor_set_addr(struct mtk_nor *mtk_nor, u32 addr) +{ + int i; + + mtk_nor_set_addr_width(mtk_nor); + + for (i = 0; i < 3; i++) { + writeb(addr & 0xff, mtk_nor->base + MTK_NOR_RADR0_REG + i * 4); + addr >>= 8; + } + /* Last register is non-contiguous */ + writeb(addr & 0xff, mtk_nor->base + MTK_NOR_RADR3_REG); +} + +static ssize_t mtk_nor_read(struct spi_nor *nor, loff_t from, size_t length, + u_char *buffer) +{ + int i, ret; + int addr = (int)from; + u8 *buf = (u8 *)buffer; + struct mtk_nor *mtk_nor = nor->priv; + + /* set mode for fast read mode ,dual mode or quad mode */ + mtk_nor_set_read_mode(mtk_nor); + mtk_nor_set_addr(mtk_nor, addr); + + for (i = 0; i < length; i++) { + ret = mtk_nor_execute_cmd(mtk_nor, MTK_NOR_PIO_READ_CMD); + if (ret < 0) + return ret; + buf[i] = readb(mtk_nor->base + MTK_NOR_RDATA_REG); + } + return length; +} + +static int mtk_nor_write_single_byte(struct mtk_nor *mtk_nor, + int addr, int length, u8 *data) +{ + int i, ret; + + mtk_nor_set_addr(mtk_nor, addr); + + for (i = 0; i < length; i++) { + writeb(*data++, mtk_nor->base + MTK_NOR_WDATA_REG); + ret = mtk_nor_execute_cmd(mtk_nor, MTK_NOR_PIO_WR_CMD); + if (ret < 0) + return ret; + } + return 0; +} + +static int mtk_nor_write_buffer(struct mtk_nor *mtk_nor, int addr, + const u8 *buf) +{ + int i, bufidx, data; + + mtk_nor_set_addr(mtk_nor, addr); + + bufidx = 0; + for (i = 0; i < SFLASH_WRBUF_SIZE; i += 4) { + data = buf[bufidx + 3]<<24 | buf[bufidx + 2]<<16 | + buf[bufidx + 1]<<8 | buf[bufidx]; + bufidx += 4; + writel(data, mtk_nor->base + MTK_NOR_PP_DATA_REG); + } + return mtk_nor_execute_cmd(mtk_nor, MTK_NOR_WR_CMD); +} + +static ssize_t mtk_nor_write(struct spi_nor *nor, loff_t to, size_t len, + const u_char *buf) +{ + int ret; + struct mtk_nor *mtk_nor = nor->priv; + size_t i; + + ret = mtk_nor_write_buffer_enable(mtk_nor); + if (ret < 0) { + dev_warn(mtk_nor->dev, "write buffer enable failed!\n"); + return ret; + } + + for (i = 0; i + SFLASH_WRBUF_SIZE <= len; i += SFLASH_WRBUF_SIZE) { + ret = mtk_nor_write_buffer(mtk_nor, to, buf); + if (ret < 0) { + dev_err(mtk_nor->dev, "write buffer failed!\n"); + return ret; + } + to += SFLASH_WRBUF_SIZE; + buf += SFLASH_WRBUF_SIZE; + } + ret = mtk_nor_write_buffer_disable(mtk_nor); + if (ret < 0) { + dev_warn(mtk_nor->dev, "write buffer disable failed!\n"); + return ret; + } + + if (i < len) { + ret = mtk_nor_write_single_byte(mtk_nor, to, + (int)(len - i), (u8 *)buf); + if (ret < 0) { + dev_err(mtk_nor->dev, "write single byte failed!\n"); + return ret; + } + } + + return len; +} + +static int mtk_nor_read_reg(struct spi_nor *nor, u8 opcode, u8 *buf, size_t len) +{ + int ret; + struct mtk_nor *mtk_nor = nor->priv; + + switch (opcode) { + case SPINOR_OP_RDSR: + ret = mtk_nor_execute_cmd(mtk_nor, MTK_NOR_RDSR_CMD); + if (ret < 0) + return ret; + if (len == 1) + *buf = readb(mtk_nor->base + MTK_NOR_RDSR_REG); + else + dev_err(mtk_nor->dev, "len should be 1 for read status!\n"); + break; + default: + ret = mtk_nor_do_tx_rx(mtk_nor, opcode, NULL, 0, buf, len); + break; + } + return ret; +} + +static int mtk_nor_write_reg(struct spi_nor *nor, u8 opcode, const u8 *buf, + size_t len) +{ + int ret; + struct mtk_nor *mtk_nor = nor->priv; + + switch (opcode) { + case SPINOR_OP_WRSR: + /* We only handle 1 byte */ + ret = mtk_nor_wr_sr(mtk_nor, *buf); + break; + default: + ret = mtk_nor_do_tx_rx(mtk_nor, opcode, buf, len, NULL, 0); + if (ret) + dev_warn(mtk_nor->dev, "write reg failure!\n"); + break; + } + return ret; +} + +static void mtk_nor_disable_clk(struct mtk_nor *mtk_nor) +{ + clk_disable_unprepare(mtk_nor->spi_clk); + clk_disable_unprepare(mtk_nor->nor_clk); +} + +static int mtk_nor_enable_clk(struct mtk_nor *mtk_nor) +{ + int ret; + + ret = clk_prepare_enable(mtk_nor->spi_clk); + if (ret) + return ret; + + ret = clk_prepare_enable(mtk_nor->nor_clk); + if (ret) { + clk_disable_unprepare(mtk_nor->spi_clk); + return ret; + } + + return 0; +} + +static const struct spi_nor_controller_ops mtk_controller_ops = { + .read_reg = mtk_nor_read_reg, + .write_reg = mtk_nor_write_reg, + .read = mtk_nor_read, + .write = mtk_nor_write, +}; + +static int mtk_nor_init(struct mtk_nor *mtk_nor, + struct device_node *flash_node) +{ + const struct spi_nor_hwcaps hwcaps = { + .mask = SNOR_HWCAPS_READ | + SNOR_HWCAPS_READ_FAST | + SNOR_HWCAPS_READ_1_1_2 | + SNOR_HWCAPS_PP, + }; + int ret; + struct spi_nor *nor; + + /* initialize controller to accept commands */ + writel(MTK_NOR_ENABLE_SF_CMD, mtk_nor->base + MTK_NOR_WRPROT_REG); + + nor = &mtk_nor->nor; + nor->dev = mtk_nor->dev; + nor->priv = mtk_nor; + spi_nor_set_flash_node(nor, flash_node); + nor->controller_ops = &mtk_controller_ops; + + nor->mtd.name = "mtk_nor"; + /* initialized with NULL */ + ret = spi_nor_scan(nor, NULL, &hwcaps); + if (ret) + return ret; + + return mtd_device_register(&nor->mtd, NULL, 0); +} + +static int mtk_nor_drv_probe(struct platform_device *pdev) +{ + struct device_node *flash_np; + struct resource *res; + int ret; + struct mtk_nor *mtk_nor; + + if (!pdev->dev.of_node) { + dev_err(&pdev->dev, "No DT found\n"); + return -EINVAL; + } + + mtk_nor = devm_kzalloc(&pdev->dev, sizeof(*mtk_nor), GFP_KERNEL); + if (!mtk_nor) + return -ENOMEM; + platform_set_drvdata(pdev, mtk_nor); + + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); + mtk_nor->base = devm_ioremap_resource(&pdev->dev, res); + if (IS_ERR(mtk_nor->base)) + return PTR_ERR(mtk_nor->base); + + mtk_nor->spi_clk = devm_clk_get(&pdev->dev, "spi"); + if (IS_ERR(mtk_nor->spi_clk)) + return PTR_ERR(mtk_nor->spi_clk); + + mtk_nor->nor_clk = devm_clk_get(&pdev->dev, "sf"); + if (IS_ERR(mtk_nor->nor_clk)) + return PTR_ERR(mtk_nor->nor_clk); + + mtk_nor->dev = &pdev->dev; + + ret = mtk_nor_enable_clk(mtk_nor); + if (ret) + return ret; + + /* only support one attached flash */ + flash_np = of_get_next_available_child(pdev->dev.of_node, NULL); + if (!flash_np) { + dev_err(&pdev->dev, "no SPI flash device to configure\n"); + ret = -ENODEV; + goto nor_free; + } + ret = mtk_nor_init(mtk_nor, flash_np); + +nor_free: + if (ret) + mtk_nor_disable_clk(mtk_nor); + + return ret; +} + +static int mtk_nor_drv_remove(struct platform_device *pdev) +{ + struct mtk_nor *mtk_nor = platform_get_drvdata(pdev); + + mtk_nor_disable_clk(mtk_nor); + + return 0; +} + +#ifdef CONFIG_PM_SLEEP +static int mtk_nor_suspend(struct device *dev) +{ + struct mtk_nor *mtk_nor = dev_get_drvdata(dev); + + mtk_nor_disable_clk(mtk_nor); + + return 0; +} + +static int mtk_nor_resume(struct device *dev) +{ + struct mtk_nor *mtk_nor = dev_get_drvdata(dev); + + return mtk_nor_enable_clk(mtk_nor); +} + +static const struct dev_pm_ops mtk_nor_dev_pm_ops = { + .suspend = mtk_nor_suspend, + .resume = mtk_nor_resume, +}; + +#define MTK_NOR_DEV_PM_OPS (&mtk_nor_dev_pm_ops) +#else +#define MTK_NOR_DEV_PM_OPS NULL +#endif + +static const struct of_device_id mtk_nor_of_ids[] = { + { .compatible = "mediatek,mt8173-nor"}, + { /* sentinel */ } +}; +MODULE_DEVICE_TABLE(of, mtk_nor_of_ids); + +static struct platform_driver mtk_nor_driver = { + .probe = mtk_nor_drv_probe, + .remove = mtk_nor_drv_remove, + .driver = { + .name = "mtk-nor", + .pm = MTK_NOR_DEV_PM_OPS, + .of_match_table = mtk_nor_of_ids, + }, +}; + +module_platform_driver(mtk_nor_driver); +MODULE_LICENSE("GPL v2"); +MODULE_DESCRIPTION("MediaTek SPI NOR Flash Driver"); only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/mtd/spi-nor/controllers/nxp-spifi.c +++ linux-oem-5.6-5.6.0/drivers/mtd/spi-nor/controllers/nxp-spifi.c @@ -0,0 +1,486 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * SPI-NOR driver for NXP SPI Flash Interface (SPIFI) + * + * Copyright (C) 2015 Joachim Eastwood + * + * Based on Freescale QuadSPI driver: + * Copyright (C) 2013 Freescale Semiconductor, Inc. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* NXP SPIFI registers, bits and macros */ +#define SPIFI_CTRL 0x000 +#define SPIFI_CTRL_TIMEOUT(timeout) (timeout) +#define SPIFI_CTRL_CSHIGH(cshigh) ((cshigh) << 16) +#define SPIFI_CTRL_MODE3 BIT(23) +#define SPIFI_CTRL_DUAL BIT(28) +#define SPIFI_CTRL_FBCLK BIT(30) +#define SPIFI_CMD 0x004 +#define SPIFI_CMD_DATALEN(dlen) ((dlen) & 0x3fff) +#define SPIFI_CMD_DOUT BIT(15) +#define SPIFI_CMD_INTLEN(ilen) ((ilen) << 16) +#define SPIFI_CMD_FIELDFORM(field) ((field) << 19) +#define SPIFI_CMD_FIELDFORM_ALL_SERIAL SPIFI_CMD_FIELDFORM(0x0) +#define SPIFI_CMD_FIELDFORM_QUAD_DUAL_DATA SPIFI_CMD_FIELDFORM(0x1) +#define SPIFI_CMD_FRAMEFORM(frame) ((frame) << 21) +#define SPIFI_CMD_FRAMEFORM_OPCODE_ONLY SPIFI_CMD_FRAMEFORM(0x1) +#define SPIFI_CMD_OPCODE(op) ((op) << 24) +#define SPIFI_ADDR 0x008 +#define SPIFI_IDATA 0x00c +#define SPIFI_CLIMIT 0x010 +#define SPIFI_DATA 0x014 +#define SPIFI_MCMD 0x018 +#define SPIFI_STAT 0x01c +#define SPIFI_STAT_MCINIT BIT(0) +#define SPIFI_STAT_CMD BIT(1) +#define SPIFI_STAT_RESET BIT(4) + +#define SPI_NOR_MAX_ID_LEN 6 + +struct nxp_spifi { + struct device *dev; + struct clk *clk_spifi; + struct clk *clk_reg; + void __iomem *io_base; + void __iomem *flash_base; + struct spi_nor nor; + bool memory_mode; + u32 mcmd; +}; + +static int nxp_spifi_wait_for_cmd(struct nxp_spifi *spifi) +{ + u8 stat; + int ret; + + ret = readb_poll_timeout(spifi->io_base + SPIFI_STAT, stat, + !(stat & SPIFI_STAT_CMD), 10, 30); + if (ret) + dev_warn(spifi->dev, "command timed out\n"); + + return ret; +} + +static int nxp_spifi_reset(struct nxp_spifi *spifi) +{ + u8 stat; + int ret; + + writel(SPIFI_STAT_RESET, spifi->io_base + SPIFI_STAT); + ret = readb_poll_timeout(spifi->io_base + SPIFI_STAT, stat, + !(stat & SPIFI_STAT_RESET), 10, 30); + if (ret) + dev_warn(spifi->dev, "state reset timed out\n"); + + return ret; +} + +static int nxp_spifi_set_memory_mode_off(struct nxp_spifi *spifi) +{ + int ret; + + if (!spifi->memory_mode) + return 0; + + ret = nxp_spifi_reset(spifi); + if (ret) + dev_err(spifi->dev, "unable to enter command mode\n"); + else + spifi->memory_mode = false; + + return ret; +} + +static int nxp_spifi_set_memory_mode_on(struct nxp_spifi *spifi) +{ + u8 stat; + int ret; + + if (spifi->memory_mode) + return 0; + + writel(spifi->mcmd, spifi->io_base + SPIFI_MCMD); + ret = readb_poll_timeout(spifi->io_base + SPIFI_STAT, stat, + stat & SPIFI_STAT_MCINIT, 10, 30); + if (ret) + dev_err(spifi->dev, "unable to enter memory mode\n"); + else + spifi->memory_mode = true; + + return ret; +} + +static int nxp_spifi_read_reg(struct spi_nor *nor, u8 opcode, u8 *buf, + size_t len) +{ + struct nxp_spifi *spifi = nor->priv; + u32 cmd; + int ret; + + ret = nxp_spifi_set_memory_mode_off(spifi); + if (ret) + return ret; + + cmd = SPIFI_CMD_DATALEN(len) | + SPIFI_CMD_OPCODE(opcode) | + SPIFI_CMD_FIELDFORM_ALL_SERIAL | + SPIFI_CMD_FRAMEFORM_OPCODE_ONLY; + writel(cmd, spifi->io_base + SPIFI_CMD); + + while (len--) + *buf++ = readb(spifi->io_base + SPIFI_DATA); + + return nxp_spifi_wait_for_cmd(spifi); +} + +static int nxp_spifi_write_reg(struct spi_nor *nor, u8 opcode, const u8 *buf, + size_t len) +{ + struct nxp_spifi *spifi = nor->priv; + u32 cmd; + int ret; + + ret = nxp_spifi_set_memory_mode_off(spifi); + if (ret) + return ret; + + cmd = SPIFI_CMD_DOUT | + SPIFI_CMD_DATALEN(len) | + SPIFI_CMD_OPCODE(opcode) | + SPIFI_CMD_FIELDFORM_ALL_SERIAL | + SPIFI_CMD_FRAMEFORM_OPCODE_ONLY; + writel(cmd, spifi->io_base + SPIFI_CMD); + + while (len--) + writeb(*buf++, spifi->io_base + SPIFI_DATA); + + return nxp_spifi_wait_for_cmd(spifi); +} + +static ssize_t nxp_spifi_read(struct spi_nor *nor, loff_t from, size_t len, + u_char *buf) +{ + struct nxp_spifi *spifi = nor->priv; + int ret; + + ret = nxp_spifi_set_memory_mode_on(spifi); + if (ret) + return ret; + + memcpy_fromio(buf, spifi->flash_base + from, len); + + return len; +} + +static ssize_t nxp_spifi_write(struct spi_nor *nor, loff_t to, size_t len, + const u_char *buf) +{ + struct nxp_spifi *spifi = nor->priv; + u32 cmd; + int ret; + size_t i; + + ret = nxp_spifi_set_memory_mode_off(spifi); + if (ret) + return ret; + + writel(to, spifi->io_base + SPIFI_ADDR); + + cmd = SPIFI_CMD_DOUT | + SPIFI_CMD_DATALEN(len) | + SPIFI_CMD_FIELDFORM_ALL_SERIAL | + SPIFI_CMD_OPCODE(nor->program_opcode) | + SPIFI_CMD_FRAMEFORM(spifi->nor.addr_width + 1); + writel(cmd, spifi->io_base + SPIFI_CMD); + + for (i = 0; i < len; i++) + writeb(buf[i], spifi->io_base + SPIFI_DATA); + + ret = nxp_spifi_wait_for_cmd(spifi); + if (ret) + return ret; + + return len; +} + +static int nxp_spifi_erase(struct spi_nor *nor, loff_t offs) +{ + struct nxp_spifi *spifi = nor->priv; + u32 cmd; + int ret; + + ret = nxp_spifi_set_memory_mode_off(spifi); + if (ret) + return ret; + + writel(offs, spifi->io_base + SPIFI_ADDR); + + cmd = SPIFI_CMD_FIELDFORM_ALL_SERIAL | + SPIFI_CMD_OPCODE(nor->erase_opcode) | + SPIFI_CMD_FRAMEFORM(spifi->nor.addr_width + 1); + writel(cmd, spifi->io_base + SPIFI_CMD); + + return nxp_spifi_wait_for_cmd(spifi); +} + +static int nxp_spifi_setup_memory_cmd(struct nxp_spifi *spifi) +{ + switch (spifi->nor.read_proto) { + case SNOR_PROTO_1_1_1: + spifi->mcmd = SPIFI_CMD_FIELDFORM_ALL_SERIAL; + break; + case SNOR_PROTO_1_1_2: + case SNOR_PROTO_1_1_4: + spifi->mcmd = SPIFI_CMD_FIELDFORM_QUAD_DUAL_DATA; + break; + default: + dev_err(spifi->dev, "unsupported SPI read mode\n"); + return -EINVAL; + } + + /* Memory mode supports address length between 1 and 4 */ + if (spifi->nor.addr_width < 1 || spifi->nor.addr_width > 4) + return -EINVAL; + + spifi->mcmd |= SPIFI_CMD_OPCODE(spifi->nor.read_opcode) | + SPIFI_CMD_INTLEN(spifi->nor.read_dummy / 8) | + SPIFI_CMD_FRAMEFORM(spifi->nor.addr_width + 1); + + return 0; +} + +static void nxp_spifi_dummy_id_read(struct spi_nor *nor) +{ + u8 id[SPI_NOR_MAX_ID_LEN]; + nor->controller_ops->read_reg(nor, SPINOR_OP_RDID, id, + SPI_NOR_MAX_ID_LEN); +} + +static const struct spi_nor_controller_ops nxp_spifi_controller_ops = { + .read_reg = nxp_spifi_read_reg, + .write_reg = nxp_spifi_write_reg, + .read = nxp_spifi_read, + .write = nxp_spifi_write, + .erase = nxp_spifi_erase, +}; + +static int nxp_spifi_setup_flash(struct nxp_spifi *spifi, + struct device_node *np) +{ + struct spi_nor_hwcaps hwcaps = { + .mask = SNOR_HWCAPS_READ | + SNOR_HWCAPS_READ_FAST | + SNOR_HWCAPS_PP, + }; + u32 ctrl, property; + u16 mode = 0; + int ret; + + if (!of_property_read_u32(np, "spi-rx-bus-width", &property)) { + switch (property) { + case 1: + break; + case 2: + mode |= SPI_RX_DUAL; + break; + case 4: + mode |= SPI_RX_QUAD; + break; + default: + dev_err(spifi->dev, "unsupported rx-bus-width\n"); + return -EINVAL; + } + } + + if (of_find_property(np, "spi-cpha", NULL)) + mode |= SPI_CPHA; + + if (of_find_property(np, "spi-cpol", NULL)) + mode |= SPI_CPOL; + + /* Setup control register defaults */ + ctrl = SPIFI_CTRL_TIMEOUT(1000) | + SPIFI_CTRL_CSHIGH(15) | + SPIFI_CTRL_FBCLK; + + if (mode & SPI_RX_DUAL) { + ctrl |= SPIFI_CTRL_DUAL; + hwcaps.mask |= SNOR_HWCAPS_READ_1_1_2; + } else if (mode & SPI_RX_QUAD) { + ctrl &= ~SPIFI_CTRL_DUAL; + hwcaps.mask |= SNOR_HWCAPS_READ_1_1_4; + } else { + ctrl |= SPIFI_CTRL_DUAL; + } + + switch (mode & (SPI_CPHA | SPI_CPOL)) { + case SPI_MODE_0: + ctrl &= ~SPIFI_CTRL_MODE3; + break; + case SPI_MODE_3: + ctrl |= SPIFI_CTRL_MODE3; + break; + default: + dev_err(spifi->dev, "only mode 0 and 3 supported\n"); + return -EINVAL; + } + + writel(ctrl, spifi->io_base + SPIFI_CTRL); + + spifi->nor.dev = spifi->dev; + spi_nor_set_flash_node(&spifi->nor, np); + spifi->nor.priv = spifi; + spifi->nor.controller_ops = &nxp_spifi_controller_ops; + + /* + * The first read on a hard reset isn't reliable so do a + * dummy read of the id before calling spi_nor_scan(). + * The reason for this problem is unknown. + * + * The official NXP spifilib uses more or less the same + * workaround that is applied here by reading the device + * id multiple times. + */ + nxp_spifi_dummy_id_read(&spifi->nor); + + ret = spi_nor_scan(&spifi->nor, NULL, &hwcaps); + if (ret) { + dev_err(spifi->dev, "device scan failed\n"); + return ret; + } + + ret = nxp_spifi_setup_memory_cmd(spifi); + if (ret) { + dev_err(spifi->dev, "memory command setup failed\n"); + return ret; + } + + ret = mtd_device_register(&spifi->nor.mtd, NULL, 0); + if (ret) { + dev_err(spifi->dev, "mtd device parse failed\n"); + return ret; + } + + return 0; +} + +static int nxp_spifi_probe(struct platform_device *pdev) +{ + struct device_node *flash_np; + struct nxp_spifi *spifi; + struct resource *res; + int ret; + + spifi = devm_kzalloc(&pdev->dev, sizeof(*spifi), GFP_KERNEL); + if (!spifi) + return -ENOMEM; + + res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "spifi"); + spifi->io_base = devm_ioremap_resource(&pdev->dev, res); + if (IS_ERR(spifi->io_base)) + return PTR_ERR(spifi->io_base); + + res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "flash"); + spifi->flash_base = devm_ioremap_resource(&pdev->dev, res); + if (IS_ERR(spifi->flash_base)) + return PTR_ERR(spifi->flash_base); + + spifi->clk_spifi = devm_clk_get(&pdev->dev, "spifi"); + if (IS_ERR(spifi->clk_spifi)) { + dev_err(&pdev->dev, "spifi clock not found\n"); + return PTR_ERR(spifi->clk_spifi); + } + + spifi->clk_reg = devm_clk_get(&pdev->dev, "reg"); + if (IS_ERR(spifi->clk_reg)) { + dev_err(&pdev->dev, "reg clock not found\n"); + return PTR_ERR(spifi->clk_reg); + } + + ret = clk_prepare_enable(spifi->clk_reg); + if (ret) { + dev_err(&pdev->dev, "unable to enable reg clock\n"); + return ret; + } + + ret = clk_prepare_enable(spifi->clk_spifi); + if (ret) { + dev_err(&pdev->dev, "unable to enable spifi clock\n"); + goto dis_clk_reg; + } + + spifi->dev = &pdev->dev; + platform_set_drvdata(pdev, spifi); + + /* Initialize and reset device */ + nxp_spifi_reset(spifi); + writel(0, spifi->io_base + SPIFI_IDATA); + writel(0, spifi->io_base + SPIFI_MCMD); + nxp_spifi_reset(spifi); + + flash_np = of_get_next_available_child(pdev->dev.of_node, NULL); + if (!flash_np) { + dev_err(&pdev->dev, "no SPI flash device to configure\n"); + ret = -ENODEV; + goto dis_clks; + } + + ret = nxp_spifi_setup_flash(spifi, flash_np); + of_node_put(flash_np); + if (ret) { + dev_err(&pdev->dev, "unable to setup flash chip\n"); + goto dis_clks; + } + + return 0; + +dis_clks: + clk_disable_unprepare(spifi->clk_spifi); +dis_clk_reg: + clk_disable_unprepare(spifi->clk_reg); + return ret; +} + +static int nxp_spifi_remove(struct platform_device *pdev) +{ + struct nxp_spifi *spifi = platform_get_drvdata(pdev); + + mtd_device_unregister(&spifi->nor.mtd); + clk_disable_unprepare(spifi->clk_spifi); + clk_disable_unprepare(spifi->clk_reg); + + return 0; +} + +static const struct of_device_id nxp_spifi_match[] = { + {.compatible = "nxp,lpc1773-spifi"}, + { /* sentinel */ } +}; +MODULE_DEVICE_TABLE(of, nxp_spifi_match); + +static struct platform_driver nxp_spifi_driver = { + .probe = nxp_spifi_probe, + .remove = nxp_spifi_remove, + .driver = { + .name = "nxp-spifi", + .of_match_table = nxp_spifi_match, + }, +}; +module_platform_driver(nxp_spifi_driver); + +MODULE_DESCRIPTION("NXP SPI Flash Interface driver"); +MODULE_AUTHOR("Joachim Eastwood "); +MODULE_LICENSE("GPL v2"); only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/mtd/spi-nor/core.c +++ linux-oem-5.6-5.6.0/drivers/mtd/spi-nor/core.c @@ -0,0 +1,5434 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Based on m25p80.c, by Mike Lavender (mike@steroidmicros.com), with + * influence from lart.c (Abraham Van Der Merwe) and mtd_dataflash.c + * + * Copyright (C) 2005, Intec Automation Inc. + * Copyright (C) 2014, Freescale Semiconductor, Inc. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +/* Define max times to check status register before we give up. */ + +/* + * For everything but full-chip erase; probably could be much smaller, but kept + * around for safety for now + */ +#define DEFAULT_READY_WAIT_JIFFIES (40UL * HZ) + +/* + * For full-chip erase, calibrated to a 2MB flash (M25P16); should be scaled up + * for larger flash + */ +#define CHIP_ERASE_2MB_READY_WAIT_JIFFIES (40UL * HZ) + +#define SPI_NOR_MAX_ID_LEN 6 +#define SPI_NOR_MAX_ADDR_WIDTH 4 + +struct sfdp_parameter_header { + u8 id_lsb; + u8 minor; + u8 major; + u8 length; /* in double words */ + u8 parameter_table_pointer[3]; /* byte address */ + u8 id_msb; +}; + +#define SFDP_PARAM_HEADER_ID(p) (((p)->id_msb << 8) | (p)->id_lsb) +#define SFDP_PARAM_HEADER_PTP(p) \ + (((p)->parameter_table_pointer[2] << 16) | \ + ((p)->parameter_table_pointer[1] << 8) | \ + ((p)->parameter_table_pointer[0] << 0)) + +#define SFDP_BFPT_ID 0xff00 /* Basic Flash Parameter Table */ +#define SFDP_SECTOR_MAP_ID 0xff81 /* Sector Map Table */ +#define SFDP_4BAIT_ID 0xff84 /* 4-byte Address Instruction Table */ + +#define SFDP_SIGNATURE 0x50444653U +#define SFDP_JESD216_MAJOR 1 +#define SFDP_JESD216_MINOR 0 +#define SFDP_JESD216A_MINOR 5 +#define SFDP_JESD216B_MINOR 6 + +struct sfdp_header { + u32 signature; /* Ox50444653U <=> "SFDP" */ + u8 minor; + u8 major; + u8 nph; /* 0-base number of parameter headers */ + u8 unused; + + /* Basic Flash Parameter Table. */ + struct sfdp_parameter_header bfpt_header; +}; + +/* Basic Flash Parameter Table */ + +/* + * JESD216 rev B defines a Basic Flash Parameter Table of 16 DWORDs. + * They are indexed from 1 but C arrays are indexed from 0. + */ +#define BFPT_DWORD(i) ((i) - 1) +#define BFPT_DWORD_MAX 16 + +/* The first version of JESD216 defined only 9 DWORDs. */ +#define BFPT_DWORD_MAX_JESD216 9 + +/* 1st DWORD. */ +#define BFPT_DWORD1_FAST_READ_1_1_2 BIT(16) +#define BFPT_DWORD1_ADDRESS_BYTES_MASK GENMASK(18, 17) +#define BFPT_DWORD1_ADDRESS_BYTES_3_ONLY (0x0UL << 17) +#define BFPT_DWORD1_ADDRESS_BYTES_3_OR_4 (0x1UL << 17) +#define BFPT_DWORD1_ADDRESS_BYTES_4_ONLY (0x2UL << 17) +#define BFPT_DWORD1_DTR BIT(19) +#define BFPT_DWORD1_FAST_READ_1_2_2 BIT(20) +#define BFPT_DWORD1_FAST_READ_1_4_4 BIT(21) +#define BFPT_DWORD1_FAST_READ_1_1_4 BIT(22) + +/* 5th DWORD. */ +#define BFPT_DWORD5_FAST_READ_2_2_2 BIT(0) +#define BFPT_DWORD5_FAST_READ_4_4_4 BIT(4) + +/* 11th DWORD. */ +#define BFPT_DWORD11_PAGE_SIZE_SHIFT 4 +#define BFPT_DWORD11_PAGE_SIZE_MASK GENMASK(7, 4) + +/* 15th DWORD. */ + +/* + * (from JESD216 rev B) + * Quad Enable Requirements (QER): + * - 000b: Device does not have a QE bit. Device detects 1-1-4 and 1-4-4 + * reads based on instruction. DQ3/HOLD# functions are hold during + * instruction phase. + * - 001b: QE is bit 1 of status register 2. It is set via Write Status with + * two data bytes where bit 1 of the second byte is one. + * [...] + * Writing only one byte to the status register has the side-effect of + * clearing status register 2, including the QE bit. The 100b code is + * used if writing one byte to the status register does not modify + * status register 2. + * - 010b: QE is bit 6 of status register 1. It is set via Write Status with + * one data byte where bit 6 is one. + * [...] + * - 011b: QE is bit 7 of status register 2. It is set via Write status + * register 2 instruction 3Eh with one data byte where bit 7 is one. + * [...] + * The status register 2 is read using instruction 3Fh. + * - 100b: QE is bit 1 of status register 2. It is set via Write Status with + * two data bytes where bit 1 of the second byte is one. + * [...] + * In contrast to the 001b code, writing one byte to the status + * register does not modify status register 2. + * - 101b: QE is bit 1 of status register 2. Status register 1 is read using + * Read Status instruction 05h. Status register2 is read using + * instruction 35h. QE is set via Write Status instruction 01h with + * two data bytes where bit 1 of the second byte is one. + * [...] + */ +#define BFPT_DWORD15_QER_MASK GENMASK(22, 20) +#define BFPT_DWORD15_QER_NONE (0x0UL << 20) /* Micron */ +#define BFPT_DWORD15_QER_SR2_BIT1_BUGGY (0x1UL << 20) +#define BFPT_DWORD15_QER_SR1_BIT6 (0x2UL << 20) /* Macronix */ +#define BFPT_DWORD15_QER_SR2_BIT7 (0x3UL << 20) +#define BFPT_DWORD15_QER_SR2_BIT1_NO_RD (0x4UL << 20) +#define BFPT_DWORD15_QER_SR2_BIT1 (0x5UL << 20) /* Spansion */ + +struct sfdp_bfpt { + u32 dwords[BFPT_DWORD_MAX]; +}; + +/** + * struct spi_nor_fixups - SPI NOR fixup hooks + * @default_init: called after default flash parameters init. Used to tweak + * flash parameters when information provided by the flash_info + * table is incomplete or wrong. + * @post_bfpt: called after the BFPT table has been parsed + * @post_sfdp: called after SFDP has been parsed (is also called for SPI NORs + * that do not support RDSFDP). Typically used to tweak various + * parameters that could not be extracted by other means (i.e. + * when information provided by the SFDP/flash_info tables are + * incomplete or wrong). + * + * Those hooks can be used to tweak the SPI NOR configuration when the SFDP + * table is broken or not available. + */ +struct spi_nor_fixups { + void (*default_init)(struct spi_nor *nor); + int (*post_bfpt)(struct spi_nor *nor, + const struct sfdp_parameter_header *bfpt_header, + const struct sfdp_bfpt *bfpt, + struct spi_nor_flash_parameter *params); + void (*post_sfdp)(struct spi_nor *nor); +}; + +struct flash_info { + char *name; + + /* + * This array stores the ID bytes. + * The first three bytes are the JEDIC ID. + * JEDEC ID zero means "no ID" (mostly older chips). + */ + u8 id[SPI_NOR_MAX_ID_LEN]; + u8 id_len; + + /* The size listed here is what works with SPINOR_OP_SE, which isn't + * necessarily called a "sector" by the vendor. + */ + unsigned sector_size; + u16 n_sectors; + + u16 page_size; + u16 addr_width; + + u32 flags; +#define SECT_4K BIT(0) /* SPINOR_OP_BE_4K works uniformly */ +#define SPI_NOR_NO_ERASE BIT(1) /* No erase command needed */ +#define SST_WRITE BIT(2) /* use SST byte programming */ +#define SPI_NOR_NO_FR BIT(3) /* Can't do fastread */ +#define SECT_4K_PMC BIT(4) /* SPINOR_OP_BE_4K_PMC works uniformly */ +#define SPI_NOR_DUAL_READ BIT(5) /* Flash supports Dual Read */ +#define SPI_NOR_QUAD_READ BIT(6) /* Flash supports Quad Read */ +#define USE_FSR BIT(7) /* use flag status register */ +#define SPI_NOR_HAS_LOCK BIT(8) /* Flash supports lock/unlock via SR */ +#define SPI_NOR_HAS_TB BIT(9) /* + * Flash SR has Top/Bottom (TB) protect + * bit. Must be used with + * SPI_NOR_HAS_LOCK. + */ +#define SPI_NOR_XSR_RDY BIT(10) /* + * S3AN flashes have specific opcode to + * read the status register. + * Flags SPI_NOR_XSR_RDY and SPI_S3AN + * use the same bit as one implies the + * other, but we will get rid of + * SPI_S3AN soon. + */ +#define SPI_S3AN BIT(10) /* + * Xilinx Spartan 3AN In-System Flash + * (MFR cannot be used for probing + * because it has the same value as + * ATMEL flashes) + */ +#define SPI_NOR_4B_OPCODES BIT(11) /* + * Use dedicated 4byte address op codes + * to support memory size above 128Mib. + */ +#define NO_CHIP_ERASE BIT(12) /* Chip does not support chip erase */ +#define SPI_NOR_SKIP_SFDP BIT(13) /* Skip parsing of SFDP tables */ +#define USE_CLSR BIT(14) /* use CLSR command */ +#define SPI_NOR_OCTAL_READ BIT(15) /* Flash supports Octal Read */ +#define SPI_NOR_TB_SR_BIT6 BIT(16) /* + * Top/Bottom (TB) is bit 6 of + * status register. Must be used with + * SPI_NOR_HAS_TB. + */ + + /* Part specific fixup hooks. */ + const struct spi_nor_fixups *fixups; +}; + +#define JEDEC_MFR(info) ((info)->id[0]) + +/** + * spi_nor_spimem_xfer_data() - helper function to read/write data to + * flash's memory region + * @nor: pointer to 'struct spi_nor' + * @op: pointer to 'struct spi_mem_op' template for transfer + * + * Return: number of bytes transferred on success, -errno otherwise + */ +static ssize_t spi_nor_spimem_xfer_data(struct spi_nor *nor, + struct spi_mem_op *op) +{ + bool usebouncebuf = false; + void *rdbuf = NULL; + const void *buf; + int ret; + + if (op->data.dir == SPI_MEM_DATA_IN) + buf = op->data.buf.in; + else + buf = op->data.buf.out; + + if (object_is_on_stack(buf) || !virt_addr_valid(buf)) + usebouncebuf = true; + + if (usebouncebuf) { + if (op->data.nbytes > nor->bouncebuf_size) + op->data.nbytes = nor->bouncebuf_size; + + if (op->data.dir == SPI_MEM_DATA_IN) { + rdbuf = op->data.buf.in; + op->data.buf.in = nor->bouncebuf; + } else { + op->data.buf.out = nor->bouncebuf; + memcpy(nor->bouncebuf, buf, + op->data.nbytes); + } + } + + ret = spi_mem_adjust_op_size(nor->spimem, op); + if (ret) + return ret; + + ret = spi_mem_exec_op(nor->spimem, op); + if (ret) + return ret; + + if (usebouncebuf && op->data.dir == SPI_MEM_DATA_IN) + memcpy(rdbuf, nor->bouncebuf, op->data.nbytes); + + return op->data.nbytes; +} + +/** + * spi_nor_spimem_read_data() - read data from flash's memory region via + * spi-mem + * @nor: pointer to 'struct spi_nor' + * @from: offset to read from + * @len: number of bytes to read + * @buf: pointer to dst buffer + * + * Return: number of bytes read successfully, -errno otherwise + */ +static ssize_t spi_nor_spimem_read_data(struct spi_nor *nor, loff_t from, + size_t len, u8 *buf) +{ + struct spi_mem_op op = + SPI_MEM_OP(SPI_MEM_OP_CMD(nor->read_opcode, 1), + SPI_MEM_OP_ADDR(nor->addr_width, from, 1), + SPI_MEM_OP_DUMMY(nor->read_dummy, 1), + SPI_MEM_OP_DATA_IN(len, buf, 1)); + + /* get transfer protocols. */ + op.cmd.buswidth = spi_nor_get_protocol_inst_nbits(nor->read_proto); + op.addr.buswidth = spi_nor_get_protocol_addr_nbits(nor->read_proto); + op.dummy.buswidth = op.addr.buswidth; + op.data.buswidth = spi_nor_get_protocol_data_nbits(nor->read_proto); + + /* convert the dummy cycles to the number of bytes */ + op.dummy.nbytes = (nor->read_dummy * op.dummy.buswidth) / 8; + + return spi_nor_spimem_xfer_data(nor, &op); +} + +/** + * spi_nor_read_data() - read data from flash memory + * @nor: pointer to 'struct spi_nor' + * @from: offset to read from + * @len: number of bytes to read + * @buf: pointer to dst buffer + * + * Return: number of bytes read successfully, -errno otherwise + */ +static ssize_t spi_nor_read_data(struct spi_nor *nor, loff_t from, size_t len, + u8 *buf) +{ + if (nor->spimem) + return spi_nor_spimem_read_data(nor, from, len, buf); + + return nor->controller_ops->read(nor, from, len, buf); +} + +/** + * spi_nor_spimem_write_data() - write data to flash memory via + * spi-mem + * @nor: pointer to 'struct spi_nor' + * @to: offset to write to + * @len: number of bytes to write + * @buf: pointer to src buffer + * + * Return: number of bytes written successfully, -errno otherwise + */ +static ssize_t spi_nor_spimem_write_data(struct spi_nor *nor, loff_t to, + size_t len, const u8 *buf) +{ + struct spi_mem_op op = + SPI_MEM_OP(SPI_MEM_OP_CMD(nor->program_opcode, 1), + SPI_MEM_OP_ADDR(nor->addr_width, to, 1), + SPI_MEM_OP_NO_DUMMY, + SPI_MEM_OP_DATA_OUT(len, buf, 1)); + + op.cmd.buswidth = spi_nor_get_protocol_inst_nbits(nor->write_proto); + op.addr.buswidth = spi_nor_get_protocol_addr_nbits(nor->write_proto); + op.data.buswidth = spi_nor_get_protocol_data_nbits(nor->write_proto); + + if (nor->program_opcode == SPINOR_OP_AAI_WP && nor->sst_write_second) + op.addr.nbytes = 0; + + return spi_nor_spimem_xfer_data(nor, &op); +} + +/** + * spi_nor_write_data() - write data to flash memory + * @nor: pointer to 'struct spi_nor' + * @to: offset to write to + * @len: number of bytes to write + * @buf: pointer to src buffer + * + * Return: number of bytes written successfully, -errno otherwise + */ +static ssize_t spi_nor_write_data(struct spi_nor *nor, loff_t to, size_t len, + const u8 *buf) +{ + if (nor->spimem) + return spi_nor_spimem_write_data(nor, to, len, buf); + + return nor->controller_ops->write(nor, to, len, buf); +} + +/** + * spi_nor_write_enable() - Set write enable latch with Write Enable command. + * @nor: pointer to 'struct spi_nor'. + * + * Return: 0 on success, -errno otherwise. + */ +static int spi_nor_write_enable(struct spi_nor *nor) +{ + int ret; + + if (nor->spimem) { + struct spi_mem_op op = + SPI_MEM_OP(SPI_MEM_OP_CMD(SPINOR_OP_WREN, 1), + SPI_MEM_OP_NO_ADDR, + SPI_MEM_OP_NO_DUMMY, + SPI_MEM_OP_NO_DATA); + + ret = spi_mem_exec_op(nor->spimem, &op); + } else { + ret = nor->controller_ops->write_reg(nor, SPINOR_OP_WREN, + NULL, 0); + } + + if (ret) + dev_dbg(nor->dev, "error %d on Write Enable\n", ret); + + return ret; +} + +/** + * spi_nor_write_disable() - Send Write Disable instruction to the chip. + * @nor: pointer to 'struct spi_nor'. + * + * Return: 0 on success, -errno otherwise. + */ +static int spi_nor_write_disable(struct spi_nor *nor) +{ + int ret; + + if (nor->spimem) { + struct spi_mem_op op = + SPI_MEM_OP(SPI_MEM_OP_CMD(SPINOR_OP_WRDI, 1), + SPI_MEM_OP_NO_ADDR, + SPI_MEM_OP_NO_DUMMY, + SPI_MEM_OP_NO_DATA); + + ret = spi_mem_exec_op(nor->spimem, &op); + } else { + ret = nor->controller_ops->write_reg(nor, SPINOR_OP_WRDI, + NULL, 0); + } + + if (ret) + dev_dbg(nor->dev, "error %d on Write Disable\n", ret); + + return ret; +} + +/** + * spi_nor_read_sr() - Read the Status Register. + * @nor: pointer to 'struct spi_nor'. + * @sr: pointer to a DMA-able buffer where the value of the + * Status Register will be written. + * + * Return: 0 on success, -errno otherwise. + */ +static int spi_nor_read_sr(struct spi_nor *nor, u8 *sr) +{ + int ret; + + if (nor->spimem) { + struct spi_mem_op op = + SPI_MEM_OP(SPI_MEM_OP_CMD(SPINOR_OP_RDSR, 1), + SPI_MEM_OP_NO_ADDR, + SPI_MEM_OP_NO_DUMMY, + SPI_MEM_OP_DATA_IN(1, sr, 1)); + + ret = spi_mem_exec_op(nor->spimem, &op); + } else { + ret = nor->controller_ops->read_reg(nor, SPINOR_OP_RDSR, + sr, 1); + } + + if (ret) + dev_dbg(nor->dev, "error %d reading SR\n", ret); + + return ret; +} + +/** + * spi_nor_read_fsr() - Read the Flag Status Register. + * @nor: pointer to 'struct spi_nor' + * @fsr: pointer to a DMA-able buffer where the value of the + * Flag Status Register will be written. + * + * Return: 0 on success, -errno otherwise. + */ +static int spi_nor_read_fsr(struct spi_nor *nor, u8 *fsr) +{ + int ret; + + if (nor->spimem) { + struct spi_mem_op op = + SPI_MEM_OP(SPI_MEM_OP_CMD(SPINOR_OP_RDFSR, 1), + SPI_MEM_OP_NO_ADDR, + SPI_MEM_OP_NO_DUMMY, + SPI_MEM_OP_DATA_IN(1, fsr, 1)); + + ret = spi_mem_exec_op(nor->spimem, &op); + } else { + ret = nor->controller_ops->read_reg(nor, SPINOR_OP_RDFSR, + fsr, 1); + } + + if (ret) + dev_dbg(nor->dev, "error %d reading FSR\n", ret); + + return ret; +} + +/** + * spi_nor_read_cr() - Read the Configuration Register using the + * SPINOR_OP_RDCR (35h) command. + * @nor: pointer to 'struct spi_nor' + * @cr: pointer to a DMA-able buffer where the value of the + * Configuration Register will be written. + * + * Return: 0 on success, -errno otherwise. + */ +static int spi_nor_read_cr(struct spi_nor *nor, u8 *cr) +{ + int ret; + + if (nor->spimem) { + struct spi_mem_op op = + SPI_MEM_OP(SPI_MEM_OP_CMD(SPINOR_OP_RDCR, 1), + SPI_MEM_OP_NO_ADDR, + SPI_MEM_OP_NO_DUMMY, + SPI_MEM_OP_DATA_IN(1, cr, 1)); + + ret = spi_mem_exec_op(nor->spimem, &op); + } else { + ret = nor->controller_ops->read_reg(nor, SPINOR_OP_RDCR, cr, 1); + } + + if (ret) + dev_dbg(nor->dev, "error %d reading CR\n", ret); + + return ret; +} + +/** + * macronix_set_4byte() - Set 4-byte address mode for Macronix flashes. + * @nor: pointer to 'struct spi_nor'. + * @enable: true to enter the 4-byte address mode, false to exit the 4-byte + * address mode. + * + * Return: 0 on success, -errno otherwise. + */ +static int macronix_set_4byte(struct spi_nor *nor, bool enable) +{ + int ret; + + if (nor->spimem) { + struct spi_mem_op op = + SPI_MEM_OP(SPI_MEM_OP_CMD(enable ? + SPINOR_OP_EN4B : + SPINOR_OP_EX4B, + 1), + SPI_MEM_OP_NO_ADDR, + SPI_MEM_OP_NO_DUMMY, + SPI_MEM_OP_NO_DATA); + + ret = spi_mem_exec_op(nor->spimem, &op); + } else { + ret = nor->controller_ops->write_reg(nor, + enable ? SPINOR_OP_EN4B : + SPINOR_OP_EX4B, + NULL, 0); + } + + if (ret) + dev_dbg(nor->dev, "error %d setting 4-byte mode\n", ret); + + return ret; +} + +/** + * st_micron_set_4byte() - Set 4-byte address mode for ST and Micron flashes. + * @nor: pointer to 'struct spi_nor'. + * @enable: true to enter the 4-byte address mode, false to exit the 4-byte + * address mode. + * + * Return: 0 on success, -errno otherwise. + */ +static int st_micron_set_4byte(struct spi_nor *nor, bool enable) +{ + int ret; + + ret = spi_nor_write_enable(nor); + if (ret) + return ret; + + ret = macronix_set_4byte(nor, enable); + if (ret) + return ret; + + return spi_nor_write_disable(nor); +} + +/** + * spansion_set_4byte() - Set 4-byte address mode for Spansion flashes. + * @nor: pointer to 'struct spi_nor'. + * @enable: true to enter the 4-byte address mode, false to exit the 4-byte + * address mode. + * + * Return: 0 on success, -errno otherwise. + */ +static int spansion_set_4byte(struct spi_nor *nor, bool enable) +{ + int ret; + + nor->bouncebuf[0] = enable << 7; + + if (nor->spimem) { + struct spi_mem_op op = + SPI_MEM_OP(SPI_MEM_OP_CMD(SPINOR_OP_BRWR, 1), + SPI_MEM_OP_NO_ADDR, + SPI_MEM_OP_NO_DUMMY, + SPI_MEM_OP_DATA_OUT(1, nor->bouncebuf, 1)); + + ret = spi_mem_exec_op(nor->spimem, &op); + } else { + ret = nor->controller_ops->write_reg(nor, SPINOR_OP_BRWR, + nor->bouncebuf, 1); + } + + if (ret) + dev_dbg(nor->dev, "error %d setting 4-byte mode\n", ret); + + return ret; +} + +/** + * spi_nor_write_ear() - Write Extended Address Register. + * @nor: pointer to 'struct spi_nor'. + * @ear: value to write to the Extended Address Register. + * + * Return: 0 on success, -errno otherwise. + */ +static int spi_nor_write_ear(struct spi_nor *nor, u8 ear) +{ + int ret; + + nor->bouncebuf[0] = ear; + + if (nor->spimem) { + struct spi_mem_op op = + SPI_MEM_OP(SPI_MEM_OP_CMD(SPINOR_OP_WREAR, 1), + SPI_MEM_OP_NO_ADDR, + SPI_MEM_OP_NO_DUMMY, + SPI_MEM_OP_DATA_OUT(1, nor->bouncebuf, 1)); + + ret = spi_mem_exec_op(nor->spimem, &op); + } else { + ret = nor->controller_ops->write_reg(nor, SPINOR_OP_WREAR, + nor->bouncebuf, 1); + } + + if (ret) + dev_dbg(nor->dev, "error %d writing EAR\n", ret); + + return ret; +} + +/** + * winbond_set_4byte() - Set 4-byte address mode for Winbond flashes. + * @nor: pointer to 'struct spi_nor'. + * @enable: true to enter the 4-byte address mode, false to exit the 4-byte + * address mode. + * + * Return: 0 on success, -errno otherwise. + */ +static int winbond_set_4byte(struct spi_nor *nor, bool enable) +{ + int ret; + + ret = macronix_set_4byte(nor, enable); + if (ret || enable) + return ret; + + /* + * On Winbond W25Q256FV, leaving 4byte mode causes the Extended Address + * Register to be set to 1, so all 3-byte-address reads come from the + * second 16M. We must clear the register to enable normal behavior. + */ + ret = spi_nor_write_enable(nor); + if (ret) + return ret; + + ret = spi_nor_write_ear(nor, 0); + if (ret) + return ret; + + return spi_nor_write_disable(nor); +} + +/** + * spi_nor_xread_sr() - Read the Status Register on S3AN flashes. + * @nor: pointer to 'struct spi_nor'. + * @sr: pointer to a DMA-able buffer where the value of the + * Status Register will be written. + * + * Return: 0 on success, -errno otherwise. + */ +static int spi_nor_xread_sr(struct spi_nor *nor, u8 *sr) +{ + int ret; + + if (nor->spimem) { + struct spi_mem_op op = + SPI_MEM_OP(SPI_MEM_OP_CMD(SPINOR_OP_XRDSR, 1), + SPI_MEM_OP_NO_ADDR, + SPI_MEM_OP_NO_DUMMY, + SPI_MEM_OP_DATA_IN(1, sr, 1)); + + ret = spi_mem_exec_op(nor->spimem, &op); + } else { + ret = nor->controller_ops->read_reg(nor, SPINOR_OP_XRDSR, + sr, 1); + } + + if (ret) + dev_dbg(nor->dev, "error %d reading XRDSR\n", ret); + + return ret; +} + +/** + * s3an_sr_ready() - Query the Status Register of the S3AN flash to see if the + * flash is ready for new commands. + * @nor: pointer to 'struct spi_nor'. + * + * Return: 0 on success, -errno otherwise. + */ +static int s3an_sr_ready(struct spi_nor *nor) +{ + int ret; + + ret = spi_nor_xread_sr(nor, nor->bouncebuf); + if (ret) + return ret; + + return !!(nor->bouncebuf[0] & XSR_RDY); +} + +/** + * spi_nor_clear_sr() - Clear the Status Register. + * @nor: pointer to 'struct spi_nor'. + */ +static void spi_nor_clear_sr(struct spi_nor *nor) +{ + int ret; + + if (nor->spimem) { + struct spi_mem_op op = + SPI_MEM_OP(SPI_MEM_OP_CMD(SPINOR_OP_CLSR, 1), + SPI_MEM_OP_NO_ADDR, + SPI_MEM_OP_NO_DUMMY, + SPI_MEM_OP_NO_DATA); + + ret = spi_mem_exec_op(nor->spimem, &op); + } else { + ret = nor->controller_ops->write_reg(nor, SPINOR_OP_CLSR, + NULL, 0); + } + + if (ret) + dev_dbg(nor->dev, "error %d clearing SR\n", ret); +} + +/** + * spi_nor_sr_ready() - Query the Status Register to see if the flash is ready + * for new commands. + * @nor: pointer to 'struct spi_nor'. + * + * Return: 0 on success, -errno otherwise. + */ +static int spi_nor_sr_ready(struct spi_nor *nor) +{ + int ret = spi_nor_read_sr(nor, nor->bouncebuf); + + if (ret) + return ret; + + if (nor->flags & SNOR_F_USE_CLSR && + nor->bouncebuf[0] & (SR_E_ERR | SR_P_ERR)) { + if (nor->bouncebuf[0] & SR_E_ERR) + dev_err(nor->dev, "Erase Error occurred\n"); + else + dev_err(nor->dev, "Programming Error occurred\n"); + + spi_nor_clear_sr(nor); + return -EIO; + } + + return !(nor->bouncebuf[0] & SR_WIP); +} + +/** + * spi_nor_clear_fsr() - Clear the Flag Status Register. + * @nor: pointer to 'struct spi_nor'. + */ +static void spi_nor_clear_fsr(struct spi_nor *nor) +{ + int ret; + + if (nor->spimem) { + struct spi_mem_op op = + SPI_MEM_OP(SPI_MEM_OP_CMD(SPINOR_OP_CLFSR, 1), + SPI_MEM_OP_NO_ADDR, + SPI_MEM_OP_NO_DUMMY, + SPI_MEM_OP_NO_DATA); + + ret = spi_mem_exec_op(nor->spimem, &op); + } else { + ret = nor->controller_ops->write_reg(nor, SPINOR_OP_CLFSR, + NULL, 0); + } + + if (ret) + dev_dbg(nor->dev, "error %d clearing FSR\n", ret); +} + +/** + * spi_nor_fsr_ready() - Query the Flag Status Register to see if the flash is + * ready for new commands. + * @nor: pointer to 'struct spi_nor'. + * + * Return: 0 on success, -errno otherwise. + */ +static int spi_nor_fsr_ready(struct spi_nor *nor) +{ + int ret = spi_nor_read_fsr(nor, nor->bouncebuf); + + if (ret) + return ret; + + if (nor->bouncebuf[0] & (FSR_E_ERR | FSR_P_ERR)) { + if (nor->bouncebuf[0] & FSR_E_ERR) + dev_err(nor->dev, "Erase operation failed.\n"); + else + dev_err(nor->dev, "Program operation failed.\n"); + + if (nor->bouncebuf[0] & FSR_PT_ERR) + dev_err(nor->dev, + "Attempted to modify a protected sector.\n"); + + spi_nor_clear_fsr(nor); + return -EIO; + } + + return nor->bouncebuf[0] & FSR_READY; +} + +/** + * spi_nor_ready() - Query the flash to see if it is ready for new commands. + * @nor: pointer to 'struct spi_nor'. + * + * Return: 0 on success, -errno otherwise. + */ +static int spi_nor_ready(struct spi_nor *nor) +{ + int sr, fsr; + + if (nor->flags & SNOR_F_READY_XSR_RDY) + sr = s3an_sr_ready(nor); + else + sr = spi_nor_sr_ready(nor); + if (sr < 0) + return sr; + fsr = nor->flags & SNOR_F_USE_FSR ? spi_nor_fsr_ready(nor) : 1; + if (fsr < 0) + return fsr; + return sr && fsr; +} + +/** + * spi_nor_wait_till_ready_with_timeout() - Service routine to read the + * Status Register until ready, or timeout occurs. + * @nor: pointer to "struct spi_nor". + * @timeout_jiffies: jiffies to wait until timeout. + * + * Return: 0 on success, -errno otherwise. + */ +static int spi_nor_wait_till_ready_with_timeout(struct spi_nor *nor, + unsigned long timeout_jiffies) +{ + unsigned long deadline; + int timeout = 0, ret; + + deadline = jiffies + timeout_jiffies; + + while (!timeout) { + if (time_after_eq(jiffies, deadline)) + timeout = 1; + + ret = spi_nor_ready(nor); + if (ret < 0) + return ret; + if (ret) + return 0; + + cond_resched(); + } + + dev_dbg(nor->dev, "flash operation timed out\n"); + + return -ETIMEDOUT; +} + +/** + * spi_nor_wait_till_ready() - Wait for a predefined amount of time for the + * flash to be ready, or timeout occurs. + * @nor: pointer to "struct spi_nor". + * + * Return: 0 on success, -errno otherwise. + */ +static int spi_nor_wait_till_ready(struct spi_nor *nor) +{ + return spi_nor_wait_till_ready_with_timeout(nor, + DEFAULT_READY_WAIT_JIFFIES); +} + +/** + * spi_nor_write_sr() - Write the Status Register. + * @nor: pointer to 'struct spi_nor'. + * @sr: pointer to DMA-able buffer to write to the Status Register. + * @len: number of bytes to write to the Status Register. + * + * Return: 0 on success, -errno otherwise. + */ +static int spi_nor_write_sr(struct spi_nor *nor, const u8 *sr, size_t len) +{ + int ret; + + ret = spi_nor_write_enable(nor); + if (ret) + return ret; + + if (nor->spimem) { + struct spi_mem_op op = + SPI_MEM_OP(SPI_MEM_OP_CMD(SPINOR_OP_WRSR, 1), + SPI_MEM_OP_NO_ADDR, + SPI_MEM_OP_NO_DUMMY, + SPI_MEM_OP_DATA_OUT(len, sr, 1)); + + ret = spi_mem_exec_op(nor->spimem, &op); + } else { + ret = nor->controller_ops->write_reg(nor, SPINOR_OP_WRSR, + sr, len); + } + + if (ret) { + dev_dbg(nor->dev, "error %d writing SR\n", ret); + return ret; + } + + return spi_nor_wait_till_ready(nor); +} + +/** + * spi_nor_write_sr1_and_check() - Write one byte to the Status Register 1 and + * ensure that the byte written match the received value. + * @nor: pointer to a 'struct spi_nor'. + * @sr1: byte value to be written to the Status Register. + * + * Return: 0 on success, -errno otherwise. + */ +static int spi_nor_write_sr1_and_check(struct spi_nor *nor, u8 sr1) +{ + int ret; + + nor->bouncebuf[0] = sr1; + + ret = spi_nor_write_sr(nor, nor->bouncebuf, 1); + if (ret) + return ret; + + ret = spi_nor_read_sr(nor, nor->bouncebuf); + if (ret) + return ret; + + if (nor->bouncebuf[0] != sr1) { + dev_dbg(nor->dev, "SR1: read back test failed\n"); + return -EIO; + } + + return 0; +} + +/** + * spi_nor_write_16bit_sr_and_check() - Write the Status Register 1 and the + * Status Register 2 in one shot. Ensure that the byte written in the Status + * Register 1 match the received value, and that the 16-bit Write did not + * affect what was already in the Status Register 2. + * @nor: pointer to a 'struct spi_nor'. + * @sr1: byte value to be written to the Status Register 1. + * + * Return: 0 on success, -errno otherwise. + */ +static int spi_nor_write_16bit_sr_and_check(struct spi_nor *nor, u8 sr1) +{ + int ret; + u8 *sr_cr = nor->bouncebuf; + u8 cr_written; + + /* Make sure we don't overwrite the contents of Status Register 2. */ + if (!(nor->flags & SNOR_F_NO_READ_CR)) { + ret = spi_nor_read_cr(nor, &sr_cr[1]); + if (ret) + return ret; + } else if (nor->params.quad_enable) { + /* + * If the Status Register 2 Read command (35h) is not + * supported, we should at least be sure we don't + * change the value of the SR2 Quad Enable bit. + * + * We can safely assume that when the Quad Enable method is + * set, the value of the QE bit is one, as a consequence of the + * nor->params.quad_enable() call. + * + * We can safely assume that the Quad Enable bit is present in + * the Status Register 2 at BIT(1). According to the JESD216 + * revB standard, BFPT DWORDS[15], bits 22:20, the 16-bit + * Write Status (01h) command is available just for the cases + * in which the QE bit is described in SR2 at BIT(1). + */ + sr_cr[1] = SR2_QUAD_EN_BIT1; + } else { + sr_cr[1] = 0; + } + + sr_cr[0] = sr1; + + ret = spi_nor_write_sr(nor, sr_cr, 2); + if (ret) + return ret; + + if (nor->flags & SNOR_F_NO_READ_CR) + return 0; + + cr_written = sr_cr[1]; + + ret = spi_nor_read_cr(nor, &sr_cr[1]); + if (ret) + return ret; + + if (cr_written != sr_cr[1]) { + dev_dbg(nor->dev, "CR: read back test failed\n"); + return -EIO; + } + + return 0; +} + +/** + * spi_nor_write_16bit_cr_and_check() - Write the Status Register 1 and the + * Configuration Register in one shot. Ensure that the byte written in the + * Configuration Register match the received value, and that the 16-bit Write + * did not affect what was already in the Status Register 1. + * @nor: pointer to a 'struct spi_nor'. + * @cr: byte value to be written to the Configuration Register. + * + * Return: 0 on success, -errno otherwise. + */ +static int spi_nor_write_16bit_cr_and_check(struct spi_nor *nor, u8 cr) +{ + int ret; + u8 *sr_cr = nor->bouncebuf; + u8 sr_written; + + /* Keep the current value of the Status Register 1. */ + ret = spi_nor_read_sr(nor, sr_cr); + if (ret) + return ret; + + sr_cr[1] = cr; + + ret = spi_nor_write_sr(nor, sr_cr, 2); + if (ret) + return ret; + + sr_written = sr_cr[0]; + + ret = spi_nor_read_sr(nor, sr_cr); + if (ret) + return ret; + + if (sr_written != sr_cr[0]) { + dev_dbg(nor->dev, "SR: Read back test failed\n"); + return -EIO; + } + + if (nor->flags & SNOR_F_NO_READ_CR) + return 0; + + ret = spi_nor_read_cr(nor, &sr_cr[1]); + if (ret) + return ret; + + if (cr != sr_cr[1]) { + dev_dbg(nor->dev, "CR: read back test failed\n"); + return -EIO; + } + + return 0; +} + +/** + * spi_nor_write_sr_and_check() - Write the Status Register 1 and ensure that + * the byte written match the received value without affecting other bits in the + * Status Register 1 and 2. + * @nor: pointer to a 'struct spi_nor'. + * @sr1: byte value to be written to the Status Register. + * + * Return: 0 on success, -errno otherwise. + */ +static int spi_nor_write_sr_and_check(struct spi_nor *nor, u8 sr1) +{ + if (nor->flags & SNOR_F_HAS_16BIT_SR) + return spi_nor_write_16bit_sr_and_check(nor, sr1); + + return spi_nor_write_sr1_and_check(nor, sr1); +} + +/** + * spi_nor_write_sr2() - Write the Status Register 2 using the + * SPINOR_OP_WRSR2 (3eh) command. + * @nor: pointer to 'struct spi_nor'. + * @sr2: pointer to DMA-able buffer to write to the Status Register 2. + * + * Return: 0 on success, -errno otherwise. + */ +static int spi_nor_write_sr2(struct spi_nor *nor, const u8 *sr2) +{ + int ret; + + ret = spi_nor_write_enable(nor); + if (ret) + return ret; + + if (nor->spimem) { + struct spi_mem_op op = + SPI_MEM_OP(SPI_MEM_OP_CMD(SPINOR_OP_WRSR2, 1), + SPI_MEM_OP_NO_ADDR, + SPI_MEM_OP_NO_DUMMY, + SPI_MEM_OP_DATA_OUT(1, sr2, 1)); + + ret = spi_mem_exec_op(nor->spimem, &op); + } else { + ret = nor->controller_ops->write_reg(nor, SPINOR_OP_WRSR2, + sr2, 1); + } + + if (ret) { + dev_dbg(nor->dev, "error %d writing SR2\n", ret); + return ret; + } + + return spi_nor_wait_till_ready(nor); +} + +/** + * spi_nor_read_sr2() - Read the Status Register 2 using the + * SPINOR_OP_RDSR2 (3fh) command. + * @nor: pointer to 'struct spi_nor'. + * @sr2: pointer to DMA-able buffer where the value of the + * Status Register 2 will be written. + * + * Return: 0 on success, -errno otherwise. + */ +static int spi_nor_read_sr2(struct spi_nor *nor, u8 *sr2) +{ + int ret; + + if (nor->spimem) { + struct spi_mem_op op = + SPI_MEM_OP(SPI_MEM_OP_CMD(SPINOR_OP_RDSR2, 1), + SPI_MEM_OP_NO_ADDR, + SPI_MEM_OP_NO_DUMMY, + SPI_MEM_OP_DATA_IN(1, sr2, 1)); + + ret = spi_mem_exec_op(nor->spimem, &op); + } else { + ret = nor->controller_ops->read_reg(nor, SPINOR_OP_RDSR2, + sr2, 1); + } + + if (ret) + dev_dbg(nor->dev, "error %d reading SR2\n", ret); + + return ret; +} + +/** + * spi_nor_erase_chip() - Erase the entire flash memory. + * @nor: pointer to 'struct spi_nor'. + * + * Return: 0 on success, -errno otherwise. + */ +static int spi_nor_erase_chip(struct spi_nor *nor) +{ + int ret; + + dev_dbg(nor->dev, " %lldKiB\n", (long long)(nor->mtd.size >> 10)); + + if (nor->spimem) { + struct spi_mem_op op = + SPI_MEM_OP(SPI_MEM_OP_CMD(SPINOR_OP_CHIP_ERASE, 1), + SPI_MEM_OP_NO_ADDR, + SPI_MEM_OP_NO_DUMMY, + SPI_MEM_OP_NO_DATA); + + ret = spi_mem_exec_op(nor->spimem, &op); + } else { + ret = nor->controller_ops->write_reg(nor, SPINOR_OP_CHIP_ERASE, + NULL, 0); + } + + if (ret) + dev_dbg(nor->dev, "error %d erasing chip\n", ret); + + return ret; +} + +static struct spi_nor *mtd_to_spi_nor(struct mtd_info *mtd) +{ + return mtd->priv; +} + +static u8 spi_nor_convert_opcode(u8 opcode, const u8 table[][2], size_t size) +{ + size_t i; + + for (i = 0; i < size; i++) + if (table[i][0] == opcode) + return table[i][1]; + + /* No conversion found, keep input op code. */ + return opcode; +} + +static u8 spi_nor_convert_3to4_read(u8 opcode) +{ + static const u8 spi_nor_3to4_read[][2] = { + { SPINOR_OP_READ, SPINOR_OP_READ_4B }, + { SPINOR_OP_READ_FAST, SPINOR_OP_READ_FAST_4B }, + { SPINOR_OP_READ_1_1_2, SPINOR_OP_READ_1_1_2_4B }, + { SPINOR_OP_READ_1_2_2, SPINOR_OP_READ_1_2_2_4B }, + { SPINOR_OP_READ_1_1_4, SPINOR_OP_READ_1_1_4_4B }, + { SPINOR_OP_READ_1_4_4, SPINOR_OP_READ_1_4_4_4B }, + { SPINOR_OP_READ_1_1_8, SPINOR_OP_READ_1_1_8_4B }, + { SPINOR_OP_READ_1_8_8, SPINOR_OP_READ_1_8_8_4B }, + + { SPINOR_OP_READ_1_1_1_DTR, SPINOR_OP_READ_1_1_1_DTR_4B }, + { SPINOR_OP_READ_1_2_2_DTR, SPINOR_OP_READ_1_2_2_DTR_4B }, + { SPINOR_OP_READ_1_4_4_DTR, SPINOR_OP_READ_1_4_4_DTR_4B }, + }; + + return spi_nor_convert_opcode(opcode, spi_nor_3to4_read, + ARRAY_SIZE(spi_nor_3to4_read)); +} + +static u8 spi_nor_convert_3to4_program(u8 opcode) +{ + static const u8 spi_nor_3to4_program[][2] = { + { SPINOR_OP_PP, SPINOR_OP_PP_4B }, + { SPINOR_OP_PP_1_1_4, SPINOR_OP_PP_1_1_4_4B }, + { SPINOR_OP_PP_1_4_4, SPINOR_OP_PP_1_4_4_4B }, + { SPINOR_OP_PP_1_1_8, SPINOR_OP_PP_1_1_8_4B }, + { SPINOR_OP_PP_1_8_8, SPINOR_OP_PP_1_8_8_4B }, + }; + + return spi_nor_convert_opcode(opcode, spi_nor_3to4_program, + ARRAY_SIZE(spi_nor_3to4_program)); +} + +static u8 spi_nor_convert_3to4_erase(u8 opcode) +{ + static const u8 spi_nor_3to4_erase[][2] = { + { SPINOR_OP_BE_4K, SPINOR_OP_BE_4K_4B }, + { SPINOR_OP_BE_32K, SPINOR_OP_BE_32K_4B }, + { SPINOR_OP_SE, SPINOR_OP_SE_4B }, + }; + + return spi_nor_convert_opcode(opcode, spi_nor_3to4_erase, + ARRAY_SIZE(spi_nor_3to4_erase)); +} + +static void spi_nor_set_4byte_opcodes(struct spi_nor *nor) +{ + nor->read_opcode = spi_nor_convert_3to4_read(nor->read_opcode); + nor->program_opcode = spi_nor_convert_3to4_program(nor->program_opcode); + nor->erase_opcode = spi_nor_convert_3to4_erase(nor->erase_opcode); + + if (!spi_nor_has_uniform_erase(nor)) { + struct spi_nor_erase_map *map = &nor->params.erase_map; + struct spi_nor_erase_type *erase; + int i; + + for (i = 0; i < SNOR_ERASE_TYPE_MAX; i++) { + erase = &map->erase_type[i]; + erase->opcode = + spi_nor_convert_3to4_erase(erase->opcode); + } + } +} + +static int spi_nor_lock_and_prep(struct spi_nor *nor) +{ + int ret = 0; + + mutex_lock(&nor->lock); + + if (nor->controller_ops && nor->controller_ops->prepare) { + ret = nor->controller_ops->prepare(nor); + if (ret) { + mutex_unlock(&nor->lock); + return ret; + } + } + return ret; +} + +static void spi_nor_unlock_and_unprep(struct spi_nor *nor) +{ + if (nor->controller_ops && nor->controller_ops->unprepare) + nor->controller_ops->unprepare(nor); + mutex_unlock(&nor->lock); +} + +/* + * This code converts an address to the Default Address Mode, that has non + * power of two page sizes. We must support this mode because it is the default + * mode supported by Xilinx tools, it can access the whole flash area and + * changing over to the Power-of-two mode is irreversible and corrupts the + * original data. + * Addr can safely be unsigned int, the biggest S3AN device is smaller than + * 4 MiB. + */ +static u32 s3an_convert_addr(struct spi_nor *nor, u32 addr) +{ + u32 offset, page; + + offset = addr % nor->page_size; + page = addr / nor->page_size; + page <<= (nor->page_size > 512) ? 10 : 9; + + return page | offset; +} + +static u32 spi_nor_convert_addr(struct spi_nor *nor, loff_t addr) +{ + if (!nor->params.convert_addr) + return addr; + + return nor->params.convert_addr(nor, addr); +} + +/* + * Initiate the erasure of a single sector + */ +static int spi_nor_erase_sector(struct spi_nor *nor, u32 addr) +{ + int i; + + addr = spi_nor_convert_addr(nor, addr); + + if (nor->spimem) { + struct spi_mem_op op = + SPI_MEM_OP(SPI_MEM_OP_CMD(nor->erase_opcode, 1), + SPI_MEM_OP_ADDR(nor->addr_width, addr, 1), + SPI_MEM_OP_NO_DUMMY, + SPI_MEM_OP_NO_DATA); + + return spi_mem_exec_op(nor->spimem, &op); + } else if (nor->controller_ops->erase) { + return nor->controller_ops->erase(nor, addr); + } + + /* + * Default implementation, if driver doesn't have a specialized HW + * control + */ + for (i = nor->addr_width - 1; i >= 0; i--) { + nor->bouncebuf[i] = addr & 0xff; + addr >>= 8; + } + + return nor->controller_ops->write_reg(nor, nor->erase_opcode, + nor->bouncebuf, nor->addr_width); +} + +/** + * spi_nor_div_by_erase_size() - calculate remainder and update new dividend + * @erase: pointer to a structure that describes a SPI NOR erase type + * @dividend: dividend value + * @remainder: pointer to u32 remainder (will be updated) + * + * Return: the result of the division + */ +static u64 spi_nor_div_by_erase_size(const struct spi_nor_erase_type *erase, + u64 dividend, u32 *remainder) +{ + /* JEDEC JESD216B Standard imposes erase sizes to be power of 2. */ + *remainder = (u32)dividend & erase->size_mask; + return dividend >> erase->size_shift; +} + +/** + * spi_nor_find_best_erase_type() - find the best erase type for the given + * offset in the serial flash memory and the + * number of bytes to erase. The region in + * which the address fits is expected to be + * provided. + * @map: the erase map of the SPI NOR + * @region: pointer to a structure that describes a SPI NOR erase region + * @addr: offset in the serial flash memory + * @len: number of bytes to erase + * + * Return: a pointer to the best fitted erase type, NULL otherwise. + */ +static const struct spi_nor_erase_type * +spi_nor_find_best_erase_type(const struct spi_nor_erase_map *map, + const struct spi_nor_erase_region *region, + u64 addr, u32 len) +{ + const struct spi_nor_erase_type *erase; + u32 rem; + int i; + u8 erase_mask = region->offset & SNOR_ERASE_TYPE_MASK; + + /* + * Erase types are ordered by size, with the smallest erase type at + * index 0. + */ + for (i = SNOR_ERASE_TYPE_MAX - 1; i >= 0; i--) { + /* Does the erase region support the tested erase type? */ + if (!(erase_mask & BIT(i))) + continue; + + erase = &map->erase_type[i]; + + /* Don't erase more than what the user has asked for. */ + if (erase->size > len) + continue; + + /* Alignment is not mandatory for overlaid regions */ + if (region->offset & SNOR_OVERLAID_REGION) + return erase; + + spi_nor_div_by_erase_size(erase, addr, &rem); + if (rem) + continue; + else + return erase; + } + + return NULL; +} + +/** + * spi_nor_region_next() - get the next spi nor region + * @region: pointer to a structure that describes a SPI NOR erase region + * + * Return: the next spi nor region or NULL if last region. + */ +static struct spi_nor_erase_region * +spi_nor_region_next(struct spi_nor_erase_region *region) +{ + if (spi_nor_region_is_last(region)) + return NULL; + region++; + return region; +} + +/** + * spi_nor_find_erase_region() - find the region of the serial flash memory in + * which the offset fits + * @map: the erase map of the SPI NOR + * @addr: offset in the serial flash memory + * + * Return: a pointer to the spi_nor_erase_region struct, ERR_PTR(-errno) + * otherwise. + */ +static struct spi_nor_erase_region * +spi_nor_find_erase_region(const struct spi_nor_erase_map *map, u64 addr) +{ + struct spi_nor_erase_region *region = map->regions; + u64 region_start = region->offset & ~SNOR_ERASE_FLAGS_MASK; + u64 region_end = region_start + region->size; + + while (addr < region_start || addr >= region_end) { + region = spi_nor_region_next(region); + if (!region) + return ERR_PTR(-EINVAL); + + region_start = region->offset & ~SNOR_ERASE_FLAGS_MASK; + region_end = region_start + region->size; + } + + return region; +} + +/** + * spi_nor_init_erase_cmd() - initialize an erase command + * @region: pointer to a structure that describes a SPI NOR erase region + * @erase: pointer to a structure that describes a SPI NOR erase type + * + * Return: the pointer to the allocated erase command, ERR_PTR(-errno) + * otherwise. + */ +static struct spi_nor_erase_command * +spi_nor_init_erase_cmd(const struct spi_nor_erase_region *region, + const struct spi_nor_erase_type *erase) +{ + struct spi_nor_erase_command *cmd; + + cmd = kmalloc(sizeof(*cmd), GFP_KERNEL); + if (!cmd) + return ERR_PTR(-ENOMEM); + + INIT_LIST_HEAD(&cmd->list); + cmd->opcode = erase->opcode; + cmd->count = 1; + + if (region->offset & SNOR_OVERLAID_REGION) + cmd->size = region->size; + else + cmd->size = erase->size; + + return cmd; +} + +/** + * spi_nor_destroy_erase_cmd_list() - destroy erase command list + * @erase_list: list of erase commands + */ +static void spi_nor_destroy_erase_cmd_list(struct list_head *erase_list) +{ + struct spi_nor_erase_command *cmd, *next; + + list_for_each_entry_safe(cmd, next, erase_list, list) { + list_del(&cmd->list); + kfree(cmd); + } +} + +/** + * spi_nor_init_erase_cmd_list() - initialize erase command list + * @nor: pointer to a 'struct spi_nor' + * @erase_list: list of erase commands to be executed once we validate that the + * erase can be performed + * @addr: offset in the serial flash memory + * @len: number of bytes to erase + * + * Builds the list of best fitted erase commands and verifies if the erase can + * be performed. + * + * Return: 0 on success, -errno otherwise. + */ +static int spi_nor_init_erase_cmd_list(struct spi_nor *nor, + struct list_head *erase_list, + u64 addr, u32 len) +{ + const struct spi_nor_erase_map *map = &nor->params.erase_map; + const struct spi_nor_erase_type *erase, *prev_erase = NULL; + struct spi_nor_erase_region *region; + struct spi_nor_erase_command *cmd = NULL; + u64 region_end; + int ret = -EINVAL; + + region = spi_nor_find_erase_region(map, addr); + if (IS_ERR(region)) + return PTR_ERR(region); + + region_end = spi_nor_region_end(region); + + while (len) { + erase = spi_nor_find_best_erase_type(map, region, addr, len); + if (!erase) + goto destroy_erase_cmd_list; + + if (prev_erase != erase || + region->offset & SNOR_OVERLAID_REGION) { + cmd = spi_nor_init_erase_cmd(region, erase); + if (IS_ERR(cmd)) { + ret = PTR_ERR(cmd); + goto destroy_erase_cmd_list; + } + + list_add_tail(&cmd->list, erase_list); + } else { + cmd->count++; + } + + addr += cmd->size; + len -= cmd->size; + + if (len && addr >= region_end) { + region = spi_nor_region_next(region); + if (!region) + goto destroy_erase_cmd_list; + region_end = spi_nor_region_end(region); + } + + prev_erase = erase; + } + + return 0; + +destroy_erase_cmd_list: + spi_nor_destroy_erase_cmd_list(erase_list); + return ret; +} + +/** + * spi_nor_erase_multi_sectors() - perform a non-uniform erase + * @nor: pointer to a 'struct spi_nor' + * @addr: offset in the serial flash memory + * @len: number of bytes to erase + * + * Build a list of best fitted erase commands and execute it once we validate + * that the erase can be performed. + * + * Return: 0 on success, -errno otherwise. + */ +static int spi_nor_erase_multi_sectors(struct spi_nor *nor, u64 addr, u32 len) +{ + LIST_HEAD(erase_list); + struct spi_nor_erase_command *cmd, *next; + int ret; + + ret = spi_nor_init_erase_cmd_list(nor, &erase_list, addr, len); + if (ret) + return ret; + + list_for_each_entry_safe(cmd, next, &erase_list, list) { + nor->erase_opcode = cmd->opcode; + while (cmd->count) { + ret = spi_nor_write_enable(nor); + if (ret) + goto destroy_erase_cmd_list; + + ret = spi_nor_erase_sector(nor, addr); + if (ret) + goto destroy_erase_cmd_list; + + addr += cmd->size; + cmd->count--; + + ret = spi_nor_wait_till_ready(nor); + if (ret) + goto destroy_erase_cmd_list; + } + list_del(&cmd->list); + kfree(cmd); + } + + return 0; + +destroy_erase_cmd_list: + spi_nor_destroy_erase_cmd_list(&erase_list); + return ret; +} + +/* + * Erase an address range on the nor chip. The address range may extend + * one or more erase sectors. Return an error is there is a problem erasing. + */ +static int spi_nor_erase(struct mtd_info *mtd, struct erase_info *instr) +{ + struct spi_nor *nor = mtd_to_spi_nor(mtd); + u32 addr, len; + uint32_t rem; + int ret; + + dev_dbg(nor->dev, "at 0x%llx, len %lld\n", (long long)instr->addr, + (long long)instr->len); + + if (spi_nor_has_uniform_erase(nor)) { + div_u64_rem(instr->len, mtd->erasesize, &rem); + if (rem) + return -EINVAL; + } + + addr = instr->addr; + len = instr->len; + + ret = spi_nor_lock_and_prep(nor); + if (ret) + return ret; + + /* whole-chip erase? */ + if (len == mtd->size && !(nor->flags & SNOR_F_NO_OP_CHIP_ERASE)) { + unsigned long timeout; + + ret = spi_nor_write_enable(nor); + if (ret) + goto erase_err; + + ret = spi_nor_erase_chip(nor); + if (ret) + goto erase_err; + + /* + * Scale the timeout linearly with the size of the flash, with + * a minimum calibrated to an old 2MB flash. We could try to + * pull these from CFI/SFDP, but these values should be good + * enough for now. + */ + timeout = max(CHIP_ERASE_2MB_READY_WAIT_JIFFIES, + CHIP_ERASE_2MB_READY_WAIT_JIFFIES * + (unsigned long)(mtd->size / SZ_2M)); + ret = spi_nor_wait_till_ready_with_timeout(nor, timeout); + if (ret) + goto erase_err; + + /* REVISIT in some cases we could speed up erasing large regions + * by using SPINOR_OP_SE instead of SPINOR_OP_BE_4K. We may have set up + * to use "small sector erase", but that's not always optimal. + */ + + /* "sector"-at-a-time erase */ + } else if (spi_nor_has_uniform_erase(nor)) { + while (len) { + ret = spi_nor_write_enable(nor); + if (ret) + goto erase_err; + + ret = spi_nor_erase_sector(nor, addr); + if (ret) + goto erase_err; + + addr += mtd->erasesize; + len -= mtd->erasesize; + + ret = spi_nor_wait_till_ready(nor); + if (ret) + goto erase_err; + } + + /* erase multiple sectors */ + } else { + ret = spi_nor_erase_multi_sectors(nor, addr, len); + if (ret) + goto erase_err; + } + + ret = spi_nor_write_disable(nor); + +erase_err: + spi_nor_unlock_and_unprep(nor); + + return ret; +} + +static void stm_get_locked_range(struct spi_nor *nor, u8 sr, loff_t *ofs, + uint64_t *len) +{ + struct mtd_info *mtd = &nor->mtd; + u8 mask = SR_BP2 | SR_BP1 | SR_BP0; + u8 tb_mask = SR_TB_BIT5; + int shift = ffs(mask) - 1; + int pow; + + if (nor->flags & SNOR_F_HAS_SR_TB_BIT6) + tb_mask = SR_TB_BIT6; + + if (!(sr & mask)) { + /* No protection */ + *ofs = 0; + *len = 0; + } else { + pow = ((sr & mask) ^ mask) >> shift; + *len = mtd->size >> pow; + if (nor->flags & SNOR_F_HAS_SR_TB && sr & tb_mask) + *ofs = 0; + else + *ofs = mtd->size - *len; + } +} + +/* + * Return 1 if the entire region is locked (if @locked is true) or unlocked (if + * @locked is false); 0 otherwise + */ +static int stm_check_lock_status_sr(struct spi_nor *nor, loff_t ofs, uint64_t len, + u8 sr, bool locked) +{ + loff_t lock_offs; + uint64_t lock_len; + + if (!len) + return 1; + + stm_get_locked_range(nor, sr, &lock_offs, &lock_len); + + if (locked) + /* Requested range is a sub-range of locked range */ + return (ofs + len <= lock_offs + lock_len) && (ofs >= lock_offs); + else + /* Requested range does not overlap with locked range */ + return (ofs >= lock_offs + lock_len) || (ofs + len <= lock_offs); +} + +static int stm_is_locked_sr(struct spi_nor *nor, loff_t ofs, uint64_t len, + u8 sr) +{ + return stm_check_lock_status_sr(nor, ofs, len, sr, true); +} + +static int stm_is_unlocked_sr(struct spi_nor *nor, loff_t ofs, uint64_t len, + u8 sr) +{ + return stm_check_lock_status_sr(nor, ofs, len, sr, false); +} + +/* + * Lock a region of the flash. Compatible with ST Micro and similar flash. + * Supports the block protection bits BP{0,1,2} in the status register + * (SR). Does not support these features found in newer SR bitfields: + * - SEC: sector/block protect - only handle SEC=0 (block protect) + * - CMP: complement protect - only support CMP=0 (range is not complemented) + * + * Support for the following is provided conditionally for some flash: + * - TB: top/bottom protect + * + * Sample table portion for 8MB flash (Winbond w25q64fw): + * + * SEC | TB | BP2 | BP1 | BP0 | Prot Length | Protected Portion + * -------------------------------------------------------------------------- + * X | X | 0 | 0 | 0 | NONE | NONE + * 0 | 0 | 0 | 0 | 1 | 128 KB | Upper 1/64 + * 0 | 0 | 0 | 1 | 0 | 256 KB | Upper 1/32 + * 0 | 0 | 0 | 1 | 1 | 512 KB | Upper 1/16 + * 0 | 0 | 1 | 0 | 0 | 1 MB | Upper 1/8 + * 0 | 0 | 1 | 0 | 1 | 2 MB | Upper 1/4 + * 0 | 0 | 1 | 1 | 0 | 4 MB | Upper 1/2 + * X | X | 1 | 1 | 1 | 8 MB | ALL + * ------|-------|-------|-------|-------|---------------|------------------- + * 0 | 1 | 0 | 0 | 1 | 128 KB | Lower 1/64 + * 0 | 1 | 0 | 1 | 0 | 256 KB | Lower 1/32 + * 0 | 1 | 0 | 1 | 1 | 512 KB | Lower 1/16 + * 0 | 1 | 1 | 0 | 0 | 1 MB | Lower 1/8 + * 0 | 1 | 1 | 0 | 1 | 2 MB | Lower 1/4 + * 0 | 1 | 1 | 1 | 0 | 4 MB | Lower 1/2 + * + * Returns negative on errors, 0 on success. + */ +static int stm_lock(struct spi_nor *nor, loff_t ofs, uint64_t len) +{ + struct mtd_info *mtd = &nor->mtd; + int ret, status_old, status_new; + u8 mask = SR_BP2 | SR_BP1 | SR_BP0; + u8 tb_mask = SR_TB_BIT5; + u8 shift = ffs(mask) - 1, pow, val; + loff_t lock_len; + bool can_be_top = true, can_be_bottom = nor->flags & SNOR_F_HAS_SR_TB; + bool use_top; + + ret = spi_nor_read_sr(nor, nor->bouncebuf); + if (ret) + return ret; + + status_old = nor->bouncebuf[0]; + + /* If nothing in our range is unlocked, we don't need to do anything */ + if (stm_is_locked_sr(nor, ofs, len, status_old)) + return 0; + + /* If anything below us is unlocked, we can't use 'bottom' protection */ + if (!stm_is_locked_sr(nor, 0, ofs, status_old)) + can_be_bottom = false; + + /* If anything above us is unlocked, we can't use 'top' protection */ + if (!stm_is_locked_sr(nor, ofs + len, mtd->size - (ofs + len), + status_old)) + can_be_top = false; + + if (!can_be_bottom && !can_be_top) + return -EINVAL; + + /* Prefer top, if both are valid */ + use_top = can_be_top; + + /* lock_len: length of region that should end up locked */ + if (use_top) + lock_len = mtd->size - ofs; + else + lock_len = ofs + len; + + if (nor->flags & SNOR_F_HAS_SR_TB_BIT6) + tb_mask = SR_TB_BIT6; + + /* + * Need smallest pow such that: + * + * 1 / (2^pow) <= (len / size) + * + * so (assuming power-of-2 size) we do: + * + * pow = ceil(log2(size / len)) = log2(size) - floor(log2(len)) + */ + pow = ilog2(mtd->size) - ilog2(lock_len); + val = mask - (pow << shift); + if (val & ~mask) + return -EINVAL; + /* Don't "lock" with no region! */ + if (!(val & mask)) + return -EINVAL; + + status_new = (status_old & ~mask & ~tb_mask) | val; + + /* Disallow further writes if WP pin is asserted */ + status_new |= SR_SRWD; + + if (!use_top) + status_new |= tb_mask; + + /* Don't bother if they're the same */ + if (status_new == status_old) + return 0; + + /* Only modify protection if it will not unlock other areas */ + if ((status_new & mask) < (status_old & mask)) + return -EINVAL; + + return spi_nor_write_sr_and_check(nor, status_new); +} + +/* + * Unlock a region of the flash. See stm_lock() for more info + * + * Returns negative on errors, 0 on success. + */ +static int stm_unlock(struct spi_nor *nor, loff_t ofs, uint64_t len) +{ + struct mtd_info *mtd = &nor->mtd; + int ret, status_old, status_new; + u8 mask = SR_BP2 | SR_BP1 | SR_BP0; + u8 tb_mask = SR_TB_BIT5; + u8 shift = ffs(mask) - 1, pow, val; + loff_t lock_len; + bool can_be_top = true, can_be_bottom = nor->flags & SNOR_F_HAS_SR_TB; + bool use_top; + + ret = spi_nor_read_sr(nor, nor->bouncebuf); + if (ret) + return ret; + + status_old = nor->bouncebuf[0]; + + /* If nothing in our range is locked, we don't need to do anything */ + if (stm_is_unlocked_sr(nor, ofs, len, status_old)) + return 0; + + /* If anything below us is locked, we can't use 'top' protection */ + if (!stm_is_unlocked_sr(nor, 0, ofs, status_old)) + can_be_top = false; + + /* If anything above us is locked, we can't use 'bottom' protection */ + if (!stm_is_unlocked_sr(nor, ofs + len, mtd->size - (ofs + len), + status_old)) + can_be_bottom = false; + + if (!can_be_bottom && !can_be_top) + return -EINVAL; + + /* Prefer top, if both are valid */ + use_top = can_be_top; + + /* lock_len: length of region that should remain locked */ + if (use_top) + lock_len = mtd->size - (ofs + len); + else + lock_len = ofs; + + if (nor->flags & SNOR_F_HAS_SR_TB_BIT6) + tb_mask = SR_TB_BIT6; + /* + * Need largest pow such that: + * + * 1 / (2^pow) >= (len / size) + * + * so (assuming power-of-2 size) we do: + * + * pow = floor(log2(size / len)) = log2(size) - ceil(log2(len)) + */ + pow = ilog2(mtd->size) - order_base_2(lock_len); + if (lock_len == 0) { + val = 0; /* fully unlocked */ + } else { + val = mask - (pow << shift); + /* Some power-of-two sizes are not supported */ + if (val & ~mask) + return -EINVAL; + } + + status_new = (status_old & ~mask & ~tb_mask) | val; + + /* Don't protect status register if we're fully unlocked */ + if (lock_len == 0) + status_new &= ~SR_SRWD; + + if (!use_top) + status_new |= tb_mask; + + /* Don't bother if they're the same */ + if (status_new == status_old) + return 0; + + /* Only modify protection if it will not lock other areas */ + if ((status_new & mask) > (status_old & mask)) + return -EINVAL; + + return spi_nor_write_sr_and_check(nor, status_new); +} + +/* + * Check if a region of the flash is (completely) locked. See stm_lock() for + * more info. + * + * Returns 1 if entire region is locked, 0 if any portion is unlocked, and + * negative on errors. + */ +static int stm_is_locked(struct spi_nor *nor, loff_t ofs, uint64_t len) +{ + int ret; + + ret = spi_nor_read_sr(nor, nor->bouncebuf); + if (ret) + return ret; + + return stm_is_locked_sr(nor, ofs, len, nor->bouncebuf[0]); +} + +static const struct spi_nor_locking_ops stm_locking_ops = { + .lock = stm_lock, + .unlock = stm_unlock, + .is_locked = stm_is_locked, +}; + +static int spi_nor_lock(struct mtd_info *mtd, loff_t ofs, uint64_t len) +{ + struct spi_nor *nor = mtd_to_spi_nor(mtd); + int ret; + + ret = spi_nor_lock_and_prep(nor); + if (ret) + return ret; + + ret = nor->params.locking_ops->lock(nor, ofs, len); + + spi_nor_unlock_and_unprep(nor); + return ret; +} + +static int spi_nor_unlock(struct mtd_info *mtd, loff_t ofs, uint64_t len) +{ + struct spi_nor *nor = mtd_to_spi_nor(mtd); + int ret; + + ret = spi_nor_lock_and_prep(nor); + if (ret) + return ret; + + ret = nor->params.locking_ops->unlock(nor, ofs, len); + + spi_nor_unlock_and_unprep(nor); + return ret; +} + +static int spi_nor_is_locked(struct mtd_info *mtd, loff_t ofs, uint64_t len) +{ + struct spi_nor *nor = mtd_to_spi_nor(mtd); + int ret; + + ret = spi_nor_lock_and_prep(nor); + if (ret) + return ret; + + ret = nor->params.locking_ops->is_locked(nor, ofs, len); + + spi_nor_unlock_and_unprep(nor); + return ret; +} + +/** + * spi_nor_sr1_bit6_quad_enable() - Set the Quad Enable BIT(6) in the Status + * Register 1. + * @nor: pointer to a 'struct spi_nor' + * + * Bit 6 of the Status Register 1 is the QE bit for Macronix like QSPI memories. + * + * Return: 0 on success, -errno otherwise. + */ +static int spi_nor_sr1_bit6_quad_enable(struct spi_nor *nor) +{ + int ret; + + ret = spi_nor_read_sr(nor, nor->bouncebuf); + if (ret) + return ret; + + if (nor->bouncebuf[0] & SR1_QUAD_EN_BIT6) + return 0; + + nor->bouncebuf[0] |= SR1_QUAD_EN_BIT6; + + return spi_nor_write_sr1_and_check(nor, nor->bouncebuf[0]); +} + +/** + * spi_nor_sr2_bit1_quad_enable() - set the Quad Enable BIT(1) in the Status + * Register 2. + * @nor: pointer to a 'struct spi_nor'. + * + * Bit 1 of the Status Register 2 is the QE bit for Spansion like QSPI memories. + * + * Return: 0 on success, -errno otherwise. + */ +static int spi_nor_sr2_bit1_quad_enable(struct spi_nor *nor) +{ + int ret; + + if (nor->flags & SNOR_F_NO_READ_CR) + return spi_nor_write_16bit_cr_and_check(nor, SR2_QUAD_EN_BIT1); + + ret = spi_nor_read_cr(nor, nor->bouncebuf); + if (ret) + return ret; + + if (nor->bouncebuf[0] & SR2_QUAD_EN_BIT1) + return 0; + + nor->bouncebuf[0] |= SR2_QUAD_EN_BIT1; + + return spi_nor_write_16bit_cr_and_check(nor, nor->bouncebuf[0]); +} + +/** + * spi_nor_sr2_bit7_quad_enable() - set QE bit in Status Register 2. + * @nor: pointer to a 'struct spi_nor' + * + * Set the Quad Enable (QE) bit in the Status Register 2. + * + * This is one of the procedures to set the QE bit described in the SFDP + * (JESD216 rev B) specification but no manufacturer using this procedure has + * been identified yet, hence the name of the function. + * + * Return: 0 on success, -errno otherwise. + */ +static int spi_nor_sr2_bit7_quad_enable(struct spi_nor *nor) +{ + u8 *sr2 = nor->bouncebuf; + int ret; + u8 sr2_written; + + /* Check current Quad Enable bit value. */ + ret = spi_nor_read_sr2(nor, sr2); + if (ret) + return ret; + if (*sr2 & SR2_QUAD_EN_BIT7) + return 0; + + /* Update the Quad Enable bit. */ + *sr2 |= SR2_QUAD_EN_BIT7; + + ret = spi_nor_write_sr2(nor, sr2); + if (ret) + return ret; + + sr2_written = *sr2; + + /* Read back and check it. */ + ret = spi_nor_read_sr2(nor, sr2); + if (ret) + return ret; + + if (*sr2 != sr2_written) { + dev_dbg(nor->dev, "SR2: Read back test failed\n"); + return -EIO; + } + + return 0; +} + +/* Used when the "_ext_id" is two bytes at most */ +#define INFO(_jedec_id, _ext_id, _sector_size, _n_sectors, _flags) \ + .id = { \ + ((_jedec_id) >> 16) & 0xff, \ + ((_jedec_id) >> 8) & 0xff, \ + (_jedec_id) & 0xff, \ + ((_ext_id) >> 8) & 0xff, \ + (_ext_id) & 0xff, \ + }, \ + .id_len = (!(_jedec_id) ? 0 : (3 + ((_ext_id) ? 2 : 0))), \ + .sector_size = (_sector_size), \ + .n_sectors = (_n_sectors), \ + .page_size = 256, \ + .flags = (_flags), + +#define INFO6(_jedec_id, _ext_id, _sector_size, _n_sectors, _flags) \ + .id = { \ + ((_jedec_id) >> 16) & 0xff, \ + ((_jedec_id) >> 8) & 0xff, \ + (_jedec_id) & 0xff, \ + ((_ext_id) >> 16) & 0xff, \ + ((_ext_id) >> 8) & 0xff, \ + (_ext_id) & 0xff, \ + }, \ + .id_len = 6, \ + .sector_size = (_sector_size), \ + .n_sectors = (_n_sectors), \ + .page_size = 256, \ + .flags = (_flags), + +#define CAT25_INFO(_sector_size, _n_sectors, _page_size, _addr_width, _flags) \ + .sector_size = (_sector_size), \ + .n_sectors = (_n_sectors), \ + .page_size = (_page_size), \ + .addr_width = (_addr_width), \ + .flags = (_flags), + +#define S3AN_INFO(_jedec_id, _n_sectors, _page_size) \ + .id = { \ + ((_jedec_id) >> 16) & 0xff, \ + ((_jedec_id) >> 8) & 0xff, \ + (_jedec_id) & 0xff \ + }, \ + .id_len = 3, \ + .sector_size = (8*_page_size), \ + .n_sectors = (_n_sectors), \ + .page_size = _page_size, \ + .addr_width = 3, \ + .flags = SPI_NOR_NO_FR | SPI_S3AN, + +static int +is25lp256_post_bfpt_fixups(struct spi_nor *nor, + const struct sfdp_parameter_header *bfpt_header, + const struct sfdp_bfpt *bfpt, + struct spi_nor_flash_parameter *params) +{ + /* + * IS25LP256 supports 4B opcodes, but the BFPT advertises a + * BFPT_DWORD1_ADDRESS_BYTES_3_ONLY address width. + * Overwrite the address width advertised by the BFPT. + */ + if ((bfpt->dwords[BFPT_DWORD(1)] & BFPT_DWORD1_ADDRESS_BYTES_MASK) == + BFPT_DWORD1_ADDRESS_BYTES_3_ONLY) + nor->addr_width = 4; + + return 0; +} + +static struct spi_nor_fixups is25lp256_fixups = { + .post_bfpt = is25lp256_post_bfpt_fixups, +}; + +static int +mx25l25635_post_bfpt_fixups(struct spi_nor *nor, + const struct sfdp_parameter_header *bfpt_header, + const struct sfdp_bfpt *bfpt, + struct spi_nor_flash_parameter *params) +{ + /* + * MX25L25635F supports 4B opcodes but MX25L25635E does not. + * Unfortunately, Macronix has re-used the same JEDEC ID for both + * variants which prevents us from defining a new entry in the parts + * table. + * We need a way to differentiate MX25L25635E and MX25L25635F, and it + * seems that the F version advertises support for Fast Read 4-4-4 in + * its BFPT table. + */ + if (bfpt->dwords[BFPT_DWORD(5)] & BFPT_DWORD5_FAST_READ_4_4_4) + nor->flags |= SNOR_F_4B_OPCODES; + + return 0; +} + +static struct spi_nor_fixups mx25l25635_fixups = { + .post_bfpt = mx25l25635_post_bfpt_fixups, +}; + +static void gd25q256_default_init(struct spi_nor *nor) +{ + /* + * Some manufacturer like GigaDevice may use different + * bit to set QE on different memories, so the MFR can't + * indicate the quad_enable method for this case, we need + * to set it in the default_init fixup hook. + */ + nor->params.quad_enable = spi_nor_sr1_bit6_quad_enable; +} + +static struct spi_nor_fixups gd25q256_fixups = { + .default_init = gd25q256_default_init, +}; + +/* NOTE: double check command sets and memory organization when you add + * more nor chips. This current list focusses on newer chips, which + * have been converging on command sets which including JEDEC ID. + * + * All newly added entries should describe *hardware* and should use SECT_4K + * (or SECT_4K_PMC) if hardware supports erasing 4 KiB sectors. For usage + * scenarios excluding small sectors there is config option that can be + * disabled: CONFIG_MTD_SPI_NOR_USE_4K_SECTORS. + * For historical (and compatibility) reasons (before we got above config) some + * old entries may be missing 4K flag. + */ +static const struct flash_info spi_nor_ids[] = { + /* Atmel -- some are (confusingly) marketed as "DataFlash" */ + { "at25fs010", INFO(0x1f6601, 0, 32 * 1024, 4, SECT_4K) }, + { "at25fs040", INFO(0x1f6604, 0, 64 * 1024, 8, SECT_4K) }, + + { "at25df041a", INFO(0x1f4401, 0, 64 * 1024, 8, SECT_4K) }, + { "at25df321", INFO(0x1f4700, 0, 64 * 1024, 64, SECT_4K) }, + { "at25df321a", INFO(0x1f4701, 0, 64 * 1024, 64, SECT_4K) }, + { "at25df641", INFO(0x1f4800, 0, 64 * 1024, 128, SECT_4K) }, + + { "at25sl321", INFO(0x1f4216, 0, 64 * 1024, 64, + SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) }, + + { "at26f004", INFO(0x1f0400, 0, 64 * 1024, 8, SECT_4K) }, + { "at26df081a", INFO(0x1f4501, 0, 64 * 1024, 16, SECT_4K) }, + { "at26df161a", INFO(0x1f4601, 0, 64 * 1024, 32, SECT_4K) }, + { "at26df321", INFO(0x1f4700, 0, 64 * 1024, 64, SECT_4K) }, + + { "at45db081d", INFO(0x1f2500, 0, 64 * 1024, 16, SECT_4K) }, + + /* EON -- en25xxx */ + { "en25f32", INFO(0x1c3116, 0, 64 * 1024, 64, SECT_4K) }, + { "en25p32", INFO(0x1c2016, 0, 64 * 1024, 64, 0) }, + { "en25q32b", INFO(0x1c3016, 0, 64 * 1024, 64, 0) }, + { "en25p64", INFO(0x1c2017, 0, 64 * 1024, 128, 0) }, + { "en25q64", INFO(0x1c3017, 0, 64 * 1024, 128, SECT_4K) }, + { "en25q80a", INFO(0x1c3014, 0, 64 * 1024, 16, + SECT_4K | SPI_NOR_DUAL_READ) }, + { "en25qh16", INFO(0x1c7015, 0, 64 * 1024, 32, + SECT_4K | SPI_NOR_DUAL_READ) }, + { "en25qh32", INFO(0x1c7016, 0, 64 * 1024, 64, 0) }, + { "en25qh64", INFO(0x1c7017, 0, 64 * 1024, 128, + SECT_4K | SPI_NOR_DUAL_READ) }, + { "en25qh128", INFO(0x1c7018, 0, 64 * 1024, 256, 0) }, + { "en25qh256", INFO(0x1c7019, 0, 64 * 1024, 512, 0) }, + { "en25s64", INFO(0x1c3817, 0, 64 * 1024, 128, SECT_4K) }, + + /* ESMT */ + { "f25l32pa", INFO(0x8c2016, 0, 64 * 1024, 64, SECT_4K | SPI_NOR_HAS_LOCK) }, + { "f25l32qa", INFO(0x8c4116, 0, 64 * 1024, 64, SECT_4K | SPI_NOR_HAS_LOCK) }, + { "f25l64qa", INFO(0x8c4117, 0, 64 * 1024, 128, SECT_4K | SPI_NOR_HAS_LOCK) }, + + /* Everspin */ + { "mr25h128", CAT25_INFO( 16 * 1024, 1, 256, 2, SPI_NOR_NO_ERASE | SPI_NOR_NO_FR) }, + { "mr25h256", CAT25_INFO( 32 * 1024, 1, 256, 2, SPI_NOR_NO_ERASE | SPI_NOR_NO_FR) }, + { "mr25h10", CAT25_INFO(128 * 1024, 1, 256, 3, SPI_NOR_NO_ERASE | SPI_NOR_NO_FR) }, + { "mr25h40", CAT25_INFO(512 * 1024, 1, 256, 3, SPI_NOR_NO_ERASE | SPI_NOR_NO_FR) }, + + /* Fujitsu */ + { "mb85rs1mt", INFO(0x047f27, 0, 128 * 1024, 1, SPI_NOR_NO_ERASE) }, + + /* GigaDevice */ + { + "gd25q16", INFO(0xc84015, 0, 64 * 1024, 32, + SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ | + SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB) + }, + { + "gd25q32", INFO(0xc84016, 0, 64 * 1024, 64, + SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ | + SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB) + }, + { + "gd25lq32", INFO(0xc86016, 0, 64 * 1024, 64, + SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ | + SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB) + }, + { + "gd25q64", INFO(0xc84017, 0, 64 * 1024, 128, + SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ | + SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB) + }, + { + "gd25lq64c", INFO(0xc86017, 0, 64 * 1024, 128, + SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ | + SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB) + }, + { + "gd25lq128d", INFO(0xc86018, 0, 64 * 1024, 256, + SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ | + SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB) + }, + { + "gd25q128", INFO(0xc84018, 0, 64 * 1024, 256, + SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ | + SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB) + }, + { + "gd25q256", INFO(0xc84019, 0, 64 * 1024, 512, + SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ | + SPI_NOR_4B_OPCODES | SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB | + SPI_NOR_TB_SR_BIT6) + .fixups = &gd25q256_fixups, + }, + + /* Intel/Numonyx -- xxxs33b */ + { "160s33b", INFO(0x898911, 0, 64 * 1024, 32, 0) }, + { "320s33b", INFO(0x898912, 0, 64 * 1024, 64, 0) }, + { "640s33b", INFO(0x898913, 0, 64 * 1024, 128, 0) }, + + /* ISSI */ + { "is25cd512", INFO(0x7f9d20, 0, 32 * 1024, 2, SECT_4K) }, + { "is25lq040b", INFO(0x9d4013, 0, 64 * 1024, 8, + SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) }, + { "is25lp016d", INFO(0x9d6015, 0, 64 * 1024, 32, + SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) }, + { "is25lp080d", INFO(0x9d6014, 0, 64 * 1024, 16, + SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) }, + { "is25lp032", INFO(0x9d6016, 0, 64 * 1024, 64, + SECT_4K | SPI_NOR_DUAL_READ) }, + { "is25lp064", INFO(0x9d6017, 0, 64 * 1024, 128, + SECT_4K | SPI_NOR_DUAL_READ) }, + { "is25lp128", INFO(0x9d6018, 0, 64 * 1024, 256, + SECT_4K | SPI_NOR_DUAL_READ) }, + { "is25lp256", INFO(0x9d6019, 0, 64 * 1024, 512, + SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ | + SPI_NOR_4B_OPCODES) + .fixups = &is25lp256_fixups }, + { "is25wp032", INFO(0x9d7016, 0, 64 * 1024, 64, + SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) }, + { "is25wp064", INFO(0x9d7017, 0, 64 * 1024, 128, + SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) }, + { "is25wp128", INFO(0x9d7018, 0, 64 * 1024, 256, + SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) }, + { "is25wp256", INFO(0x9d7019, 0, 64 * 1024, 512, + SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ | + SPI_NOR_4B_OPCODES) + .fixups = &is25lp256_fixups }, + + /* Macronix */ + { "mx25l512e", INFO(0xc22010, 0, 64 * 1024, 1, SECT_4K) }, + { "mx25l2005a", INFO(0xc22012, 0, 64 * 1024, 4, SECT_4K) }, + { "mx25l4005a", INFO(0xc22013, 0, 64 * 1024, 8, SECT_4K) }, + { "mx25l8005", INFO(0xc22014, 0, 64 * 1024, 16, 0) }, + { "mx25l1606e", INFO(0xc22015, 0, 64 * 1024, 32, SECT_4K) }, + { "mx25l3205d", INFO(0xc22016, 0, 64 * 1024, 64, SECT_4K) }, + { "mx25l3255e", INFO(0xc29e16, 0, 64 * 1024, 64, SECT_4K) }, + { "mx25l6405d", INFO(0xc22017, 0, 64 * 1024, 128, SECT_4K) }, + { "mx25u2033e", INFO(0xc22532, 0, 64 * 1024, 4, SECT_4K) }, + { "mx25u3235f", INFO(0xc22536, 0, 64 * 1024, 64, + SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) }, + { "mx25u4035", INFO(0xc22533, 0, 64 * 1024, 8, SECT_4K) }, + { "mx25u8035", INFO(0xc22534, 0, 64 * 1024, 16, SECT_4K) }, + { "mx25u6435f", INFO(0xc22537, 0, 64 * 1024, 128, SECT_4K) }, + { "mx25l12805d", INFO(0xc22018, 0, 64 * 1024, 256, 0) }, + { "mx25l12855e", INFO(0xc22618, 0, 64 * 1024, 256, 0) }, + { "mx25r3235f", INFO(0xc22816, 0, 64 * 1024, 64, + SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) }, + { "mx25u12835f", INFO(0xc22538, 0, 64 * 1024, 256, + SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) }, + { "mx25l25635e", INFO(0xc22019, 0, 64 * 1024, 512, + SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) + .fixups = &mx25l25635_fixups }, + { "mx25u25635f", INFO(0xc22539, 0, 64 * 1024, 512, SECT_4K | SPI_NOR_4B_OPCODES) }, + { "mx25v8035f", INFO(0xc22314, 0, 64 * 1024, 16, + SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) }, + { "mx25l25655e", INFO(0xc22619, 0, 64 * 1024, 512, 0) }, + { "mx66l51235l", INFO(0xc2201a, 0, 64 * 1024, 1024, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ | SPI_NOR_4B_OPCODES) }, + { "mx66u51235f", INFO(0xc2253a, 0, 64 * 1024, 1024, SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ | SPI_NOR_4B_OPCODES) }, + { "mx66l1g45g", INFO(0xc2201b, 0, 64 * 1024, 2048, SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) }, + { "mx66l1g55g", INFO(0xc2261b, 0, 64 * 1024, 2048, SPI_NOR_QUAD_READ) }, + + /* Micron <--> ST Micro */ + { "n25q016a", INFO(0x20bb15, 0, 64 * 1024, 32, SECT_4K | SPI_NOR_QUAD_READ) }, + { "n25q032", INFO(0x20ba16, 0, 64 * 1024, 64, SPI_NOR_QUAD_READ) }, + { "n25q032a", INFO(0x20bb16, 0, 64 * 1024, 64, SPI_NOR_QUAD_READ) }, + { "n25q064", INFO(0x20ba17, 0, 64 * 1024, 128, SECT_4K | SPI_NOR_QUAD_READ) }, + { "n25q064a", INFO(0x20bb17, 0, 64 * 1024, 128, SECT_4K | SPI_NOR_QUAD_READ) }, + { "n25q128a11", INFO(0x20bb18, 0, 64 * 1024, 256, SECT_4K | + USE_FSR | SPI_NOR_QUAD_READ) }, + { "n25q128a13", INFO(0x20ba18, 0, 64 * 1024, 256, SECT_4K | + USE_FSR | SPI_NOR_QUAD_READ) }, + { "mt25ql256a", INFO6(0x20ba19, 0x104400, 64 * 1024, 512, + SECT_4K | USE_FSR | SPI_NOR_DUAL_READ | + SPI_NOR_QUAD_READ | SPI_NOR_4B_OPCODES) }, + { "n25q256a", INFO(0x20ba19, 0, 64 * 1024, 512, SECT_4K | + USE_FSR | SPI_NOR_DUAL_READ | + SPI_NOR_QUAD_READ) }, + { "mt25qu256a", INFO6(0x20bb19, 0x104400, 64 * 1024, 512, + SECT_4K | USE_FSR | SPI_NOR_DUAL_READ | + SPI_NOR_QUAD_READ | SPI_NOR_4B_OPCODES) }, + { "n25q256ax1", INFO(0x20bb19, 0, 64 * 1024, 512, SECT_4K | + USE_FSR | SPI_NOR_QUAD_READ) }, + { "mt25ql512a", INFO6(0x20ba20, 0x104400, 64 * 1024, 1024, + SECT_4K | USE_FSR | SPI_NOR_DUAL_READ | + SPI_NOR_QUAD_READ | SPI_NOR_4B_OPCODES) }, + { "n25q512ax3", INFO(0x20ba20, 0, 64 * 1024, 1024, SECT_4K | USE_FSR | SPI_NOR_QUAD_READ) }, + { "mt25qu512a", INFO6(0x20bb20, 0x104400, 64 * 1024, 1024, + SECT_4K | USE_FSR | SPI_NOR_DUAL_READ | + SPI_NOR_QUAD_READ | SPI_NOR_4B_OPCODES) }, + { "n25q512a", INFO(0x20bb20, 0, 64 * 1024, 1024, SECT_4K | + USE_FSR | SPI_NOR_QUAD_READ) }, + { "n25q00", INFO(0x20ba21, 0, 64 * 1024, 2048, SECT_4K | USE_FSR | SPI_NOR_QUAD_READ | NO_CHIP_ERASE) }, + { "n25q00a", INFO(0x20bb21, 0, 64 * 1024, 2048, SECT_4K | USE_FSR | SPI_NOR_QUAD_READ | NO_CHIP_ERASE) }, + { "mt25ql02g", INFO(0x20ba22, 0, 64 * 1024, 4096, + SECT_4K | USE_FSR | SPI_NOR_QUAD_READ | + NO_CHIP_ERASE) }, + { "mt25qu02g", INFO(0x20bb22, 0, 64 * 1024, 4096, SECT_4K | USE_FSR | SPI_NOR_QUAD_READ | NO_CHIP_ERASE) }, + + /* Micron */ + { + "mt35xu512aba", INFO(0x2c5b1a, 0, 128 * 1024, 512, + SECT_4K | USE_FSR | SPI_NOR_OCTAL_READ | + SPI_NOR_4B_OPCODES) + }, + { "mt35xu02g", INFO(0x2c5b1c, 0, 128 * 1024, 2048, + SECT_4K | USE_FSR | SPI_NOR_OCTAL_READ | + SPI_NOR_4B_OPCODES) }, + + /* PMC */ + { "pm25lv512", INFO(0, 0, 32 * 1024, 2, SECT_4K_PMC) }, + { "pm25lv010", INFO(0, 0, 32 * 1024, 4, SECT_4K_PMC) }, + { "pm25lq032", INFO(0x7f9d46, 0, 64 * 1024, 64, SECT_4K) }, + + /* Spansion/Cypress -- single (large) sector size only, at least + * for the chips listed here (without boot sectors). + */ + { "s25sl032p", INFO(0x010215, 0x4d00, 64 * 1024, 64, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) }, + { "s25sl064p", INFO(0x010216, 0x4d00, 64 * 1024, 128, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) }, + { "s25fl128s0", INFO6(0x012018, 0x4d0080, 256 * 1024, 64, + SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ | USE_CLSR) }, + { "s25fl128s1", INFO6(0x012018, 0x4d0180, 64 * 1024, 256, + SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ | USE_CLSR) }, + { "s25fl256s0", INFO(0x010219, 0x4d00, 256 * 1024, 128, USE_CLSR) }, + { "s25fl256s1", INFO(0x010219, 0x4d01, 64 * 1024, 512, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ | USE_CLSR) }, + { "s25fl512s", INFO6(0x010220, 0x4d0080, 256 * 1024, 256, + SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ | + SPI_NOR_HAS_LOCK | USE_CLSR) }, + { "s25fs512s", INFO6(0x010220, 0x4d0081, 256 * 1024, 256, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ | USE_CLSR) }, + { "s70fl01gs", INFO(0x010221, 0x4d00, 256 * 1024, 256, 0) }, + { "s25sl12800", INFO(0x012018, 0x0300, 256 * 1024, 64, 0) }, + { "s25sl12801", INFO(0x012018, 0x0301, 64 * 1024, 256, 0) }, + { "s25fl129p0", INFO(0x012018, 0x4d00, 256 * 1024, 64, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ | USE_CLSR) }, + { "s25fl129p1", INFO(0x012018, 0x4d01, 64 * 1024, 256, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ | USE_CLSR) }, + { "s25sl004a", INFO(0x010212, 0, 64 * 1024, 8, 0) }, + { "s25sl008a", INFO(0x010213, 0, 64 * 1024, 16, 0) }, + { "s25sl016a", INFO(0x010214, 0, 64 * 1024, 32, 0) }, + { "s25sl032a", INFO(0x010215, 0, 64 * 1024, 64, 0) }, + { "s25sl064a", INFO(0x010216, 0, 64 * 1024, 128, 0) }, + { "s25fl004k", INFO(0xef4013, 0, 64 * 1024, 8, SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) }, + { "s25fl008k", INFO(0xef4014, 0, 64 * 1024, 16, SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) }, + { "s25fl016k", INFO(0xef4015, 0, 64 * 1024, 32, SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) }, + { "s25fl064k", INFO(0xef4017, 0, 64 * 1024, 128, SECT_4K) }, + { "s25fl116k", INFO(0x014015, 0, 64 * 1024, 32, SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) }, + { "s25fl132k", INFO(0x014016, 0, 64 * 1024, 64, SECT_4K) }, + { "s25fl164k", INFO(0x014017, 0, 64 * 1024, 128, SECT_4K) }, + { "s25fl204k", INFO(0x014013, 0, 64 * 1024, 8, SECT_4K | SPI_NOR_DUAL_READ) }, + { "s25fl208k", INFO(0x014014, 0, 64 * 1024, 16, SECT_4K | SPI_NOR_DUAL_READ) }, + { "s25fl064l", INFO(0x016017, 0, 64 * 1024, 128, SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ | SPI_NOR_4B_OPCODES) }, + { "s25fl128l", INFO(0x016018, 0, 64 * 1024, 256, SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ | SPI_NOR_4B_OPCODES) }, + { "s25fl256l", INFO(0x016019, 0, 64 * 1024, 512, SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ | SPI_NOR_4B_OPCODES) }, + + /* SST -- large erase sizes are "overlays", "sectors" are 4K */ + { "sst25vf040b", INFO(0xbf258d, 0, 64 * 1024, 8, SECT_4K | SST_WRITE) }, + { "sst25vf080b", INFO(0xbf258e, 0, 64 * 1024, 16, SECT_4K | SST_WRITE) }, + { "sst25vf016b", INFO(0xbf2541, 0, 64 * 1024, 32, SECT_4K | SST_WRITE) }, + { "sst25vf032b", INFO(0xbf254a, 0, 64 * 1024, 64, SECT_4K | SST_WRITE) }, + { "sst25vf064c", INFO(0xbf254b, 0, 64 * 1024, 128, SECT_4K) }, + { "sst25wf512", INFO(0xbf2501, 0, 64 * 1024, 1, SECT_4K | SST_WRITE) }, + { "sst25wf010", INFO(0xbf2502, 0, 64 * 1024, 2, SECT_4K | SST_WRITE) }, + { "sst25wf020", INFO(0xbf2503, 0, 64 * 1024, 4, SECT_4K | SST_WRITE) }, + { "sst25wf020a", INFO(0x621612, 0, 64 * 1024, 4, SECT_4K) }, + { "sst25wf040b", INFO(0x621613, 0, 64 * 1024, 8, SECT_4K) }, + { "sst25wf040", INFO(0xbf2504, 0, 64 * 1024, 8, SECT_4K | SST_WRITE) }, + { "sst25wf080", INFO(0xbf2505, 0, 64 * 1024, 16, SECT_4K | SST_WRITE) }, + { "sst26wf016b", INFO(0xbf2651, 0, 64 * 1024, 32, SECT_4K | + SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) }, + { "sst26vf016b", INFO(0xbf2641, 0, 64 * 1024, 32, SECT_4K | + SPI_NOR_DUAL_READ) }, + { "sst26vf064b", INFO(0xbf2643, 0, 64 * 1024, 128, SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) }, + + /* ST Microelectronics -- newer production may have feature updates */ + { "m25p05", INFO(0x202010, 0, 32 * 1024, 2, 0) }, + { "m25p10", INFO(0x202011, 0, 32 * 1024, 4, 0) }, + { "m25p20", INFO(0x202012, 0, 64 * 1024, 4, 0) }, + { "m25p40", INFO(0x202013, 0, 64 * 1024, 8, 0) }, + { "m25p80", INFO(0x202014, 0, 64 * 1024, 16, 0) }, + { "m25p16", INFO(0x202015, 0, 64 * 1024, 32, 0) }, + { "m25p32", INFO(0x202016, 0, 64 * 1024, 64, 0) }, + { "m25p64", INFO(0x202017, 0, 64 * 1024, 128, 0) }, + { "m25p128", INFO(0x202018, 0, 256 * 1024, 64, 0) }, + + { "m25p05-nonjedec", INFO(0, 0, 32 * 1024, 2, 0) }, + { "m25p10-nonjedec", INFO(0, 0, 32 * 1024, 4, 0) }, + { "m25p20-nonjedec", INFO(0, 0, 64 * 1024, 4, 0) }, + { "m25p40-nonjedec", INFO(0, 0, 64 * 1024, 8, 0) }, + { "m25p80-nonjedec", INFO(0, 0, 64 * 1024, 16, 0) }, + { "m25p16-nonjedec", INFO(0, 0, 64 * 1024, 32, 0) }, + { "m25p32-nonjedec", INFO(0, 0, 64 * 1024, 64, 0) }, + { "m25p64-nonjedec", INFO(0, 0, 64 * 1024, 128, 0) }, + { "m25p128-nonjedec", INFO(0, 0, 256 * 1024, 64, 0) }, + + { "m45pe10", INFO(0x204011, 0, 64 * 1024, 2, 0) }, + { "m45pe80", INFO(0x204014, 0, 64 * 1024, 16, 0) }, + { "m45pe16", INFO(0x204015, 0, 64 * 1024, 32, 0) }, + + { "m25pe20", INFO(0x208012, 0, 64 * 1024, 4, 0) }, + { "m25pe80", INFO(0x208014, 0, 64 * 1024, 16, 0) }, + { "m25pe16", INFO(0x208015, 0, 64 * 1024, 32, SECT_4K) }, + + { "m25px16", INFO(0x207115, 0, 64 * 1024, 32, SECT_4K) }, + { "m25px32", INFO(0x207116, 0, 64 * 1024, 64, SECT_4K) }, + { "m25px32-s0", INFO(0x207316, 0, 64 * 1024, 64, SECT_4K) }, + { "m25px32-s1", INFO(0x206316, 0, 64 * 1024, 64, SECT_4K) }, + { "m25px64", INFO(0x207117, 0, 64 * 1024, 128, 0) }, + { "m25px80", INFO(0x207114, 0, 64 * 1024, 16, 0) }, + + /* Winbond -- w25x "blocks" are 64K, "sectors" are 4KiB */ + { "w25x05", INFO(0xef3010, 0, 64 * 1024, 1, SECT_4K) }, + { "w25x10", INFO(0xef3011, 0, 64 * 1024, 2, SECT_4K) }, + { "w25x20", INFO(0xef3012, 0, 64 * 1024, 4, SECT_4K) }, + { "w25x40", INFO(0xef3013, 0, 64 * 1024, 8, SECT_4K) }, + { "w25x80", INFO(0xef3014, 0, 64 * 1024, 16, SECT_4K) }, + { "w25x16", INFO(0xef3015, 0, 64 * 1024, 32, SECT_4K) }, + { + "w25q16dw", INFO(0xef6015, 0, 64 * 1024, 32, + SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ | + SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB) + }, + { "w25x32", INFO(0xef3016, 0, 64 * 1024, 64, SECT_4K) }, + { + "w25q16jv-im/jm", INFO(0xef7015, 0, 64 * 1024, 32, + SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ | + SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB) + }, + { "w25q20cl", INFO(0xef4012, 0, 64 * 1024, 4, SECT_4K) }, + { "w25q20bw", INFO(0xef5012, 0, 64 * 1024, 4, SECT_4K) }, + { "w25q20ew", INFO(0xef6012, 0, 64 * 1024, 4, SECT_4K) }, + { "w25q32", INFO(0xef4016, 0, 64 * 1024, 64, SECT_4K) }, + { + "w25q32dw", INFO(0xef6016, 0, 64 * 1024, 64, + SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ | + SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB) + }, + { + "w25q32jv", INFO(0xef7016, 0, 64 * 1024, 64, + SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ | + SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB) + }, + { + "w25q32jwm", INFO(0xef8016, 0, 64 * 1024, 64, + SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ | + SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB) + }, + { "w25x64", INFO(0xef3017, 0, 64 * 1024, 128, SECT_4K) }, + { "w25q64", INFO(0xef4017, 0, 64 * 1024, 128, SECT_4K) }, + { + "w25q64dw", INFO(0xef6017, 0, 64 * 1024, 128, + SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ | + SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB) + }, + { + "w25q128fw", INFO(0xef6018, 0, 64 * 1024, 256, + SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ | + SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB) + }, + { + "w25q128jv", INFO(0xef7018, 0, 64 * 1024, 256, + SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ | + SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB) + }, + { "w25q80", INFO(0xef5014, 0, 64 * 1024, 16, SECT_4K) }, + { "w25q80bl", INFO(0xef4014, 0, 64 * 1024, 16, SECT_4K) }, + { "w25q128", INFO(0xef4018, 0, 64 * 1024, 256, SECT_4K) }, + { "w25q256", INFO(0xef4019, 0, 64 * 1024, 512, + SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ | + SPI_NOR_4B_OPCODES) }, + { "w25q256jvm", INFO(0xef7019, 0, 64 * 1024, 512, + SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) }, + { "w25q256jw", INFO(0xef6019, 0, 64 * 1024, 512, + SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) }, + { "w25m512jv", INFO(0xef7119, 0, 64 * 1024, 1024, + SECT_4K | SPI_NOR_QUAD_READ | SPI_NOR_DUAL_READ) }, + + /* Catalyst / On Semiconductor -- non-JEDEC */ + { "cat25c11", CAT25_INFO( 16, 8, 16, 1, SPI_NOR_NO_ERASE | SPI_NOR_NO_FR) }, + { "cat25c03", CAT25_INFO( 32, 8, 16, 2, SPI_NOR_NO_ERASE | SPI_NOR_NO_FR) }, + { "cat25c09", CAT25_INFO( 128, 8, 32, 2, SPI_NOR_NO_ERASE | SPI_NOR_NO_FR) }, + { "cat25c17", CAT25_INFO( 256, 8, 32, 2, SPI_NOR_NO_ERASE | SPI_NOR_NO_FR) }, + { "cat25128", CAT25_INFO(2048, 8, 64, 2, SPI_NOR_NO_ERASE | SPI_NOR_NO_FR) }, + + /* Xilinx S3AN Internal Flash */ + { "3S50AN", S3AN_INFO(0x1f2200, 64, 264) }, + { "3S200AN", S3AN_INFO(0x1f2400, 256, 264) }, + { "3S400AN", S3AN_INFO(0x1f2400, 256, 264) }, + { "3S700AN", S3AN_INFO(0x1f2500, 512, 264) }, + { "3S1400AN", S3AN_INFO(0x1f2600, 512, 528) }, + + /* XMC (Wuhan Xinxin Semiconductor Manufacturing Corp.) */ + { "XM25QH64A", INFO(0x207017, 0, 64 * 1024, 128, SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) }, + { "XM25QH128A", INFO(0x207018, 0, 64 * 1024, 256, SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) }, + { }, +}; + +static const struct flash_info *spi_nor_read_id(struct spi_nor *nor) +{ + int tmp; + u8 *id = nor->bouncebuf; + const struct flash_info *info; + + if (nor->spimem) { + struct spi_mem_op op = + SPI_MEM_OP(SPI_MEM_OP_CMD(SPINOR_OP_RDID, 1), + SPI_MEM_OP_NO_ADDR, + SPI_MEM_OP_NO_DUMMY, + SPI_MEM_OP_DATA_IN(SPI_NOR_MAX_ID_LEN, id, 1)); + + tmp = spi_mem_exec_op(nor->spimem, &op); + } else { + tmp = nor->controller_ops->read_reg(nor, SPINOR_OP_RDID, id, + SPI_NOR_MAX_ID_LEN); + } + if (tmp) { + dev_dbg(nor->dev, "error %d reading JEDEC ID\n", tmp); + return ERR_PTR(tmp); + } + + for (tmp = 0; tmp < ARRAY_SIZE(spi_nor_ids) - 1; tmp++) { + info = &spi_nor_ids[tmp]; + if (info->id_len) { + if (!memcmp(info->id, id, info->id_len)) + return &spi_nor_ids[tmp]; + } + } + dev_err(nor->dev, "unrecognized JEDEC id bytes: %*ph\n", + SPI_NOR_MAX_ID_LEN, id); + return ERR_PTR(-ENODEV); +} + +static int spi_nor_read(struct mtd_info *mtd, loff_t from, size_t len, + size_t *retlen, u_char *buf) +{ + struct spi_nor *nor = mtd_to_spi_nor(mtd); + ssize_t ret; + + dev_dbg(nor->dev, "from 0x%08x, len %zd\n", (u32)from, len); + + ret = spi_nor_lock_and_prep(nor); + if (ret) + return ret; + + while (len) { + loff_t addr = from; + + addr = spi_nor_convert_addr(nor, addr); + + ret = spi_nor_read_data(nor, addr, len, buf); + if (ret == 0) { + /* We shouldn't see 0-length reads */ + ret = -EIO; + goto read_err; + } + if (ret < 0) + goto read_err; + + WARN_ON(ret > len); + *retlen += ret; + buf += ret; + from += ret; + len -= ret; + } + ret = 0; + +read_err: + spi_nor_unlock_and_unprep(nor); + return ret; +} + +static int sst_write(struct mtd_info *mtd, loff_t to, size_t len, + size_t *retlen, const u_char *buf) +{ + struct spi_nor *nor = mtd_to_spi_nor(mtd); + size_t actual = 0; + int ret; + + dev_dbg(nor->dev, "to 0x%08x, len %zd\n", (u32)to, len); + + ret = spi_nor_lock_and_prep(nor); + if (ret) + return ret; + + ret = spi_nor_write_enable(nor); + if (ret) + goto out; + + nor->sst_write_second = false; + + /* Start write from odd address. */ + if (to % 2) { + nor->program_opcode = SPINOR_OP_BP; + + /* write one byte. */ + ret = spi_nor_write_data(nor, to, 1, buf); + if (ret < 0) + goto out; + WARN(ret != 1, "While writing 1 byte written %i bytes\n", ret); + ret = spi_nor_wait_till_ready(nor); + if (ret) + goto out; + + to++; + actual++; + } + + /* Write out most of the data here. */ + for (; actual < len - 1; actual += 2) { + nor->program_opcode = SPINOR_OP_AAI_WP; + + /* write two bytes. */ + ret = spi_nor_write_data(nor, to, 2, buf + actual); + if (ret < 0) + goto out; + WARN(ret != 2, "While writing 2 bytes written %i bytes\n", ret); + ret = spi_nor_wait_till_ready(nor); + if (ret) + goto out; + to += 2; + nor->sst_write_second = true; + } + nor->sst_write_second = false; + + ret = spi_nor_write_disable(nor); + if (ret) + goto out; + + ret = spi_nor_wait_till_ready(nor); + if (ret) + goto out; + + /* Write out trailing byte if it exists. */ + if (actual != len) { + ret = spi_nor_write_enable(nor); + if (ret) + goto out; + + nor->program_opcode = SPINOR_OP_BP; + ret = spi_nor_write_data(nor, to, 1, buf + actual); + if (ret < 0) + goto out; + WARN(ret != 1, "While writing 1 byte written %i bytes\n", ret); + ret = spi_nor_wait_till_ready(nor); + if (ret) + goto out; + + actual += 1; + + ret = spi_nor_write_disable(nor); + } +out: + *retlen += actual; + spi_nor_unlock_and_unprep(nor); + return ret; +} + +/* + * Write an address range to the nor chip. Data must be written in + * FLASH_PAGESIZE chunks. The address range may be any size provided + * it is within the physical boundaries. + */ +static int spi_nor_write(struct mtd_info *mtd, loff_t to, size_t len, + size_t *retlen, const u_char *buf) +{ + struct spi_nor *nor = mtd_to_spi_nor(mtd); + size_t page_offset, page_remain, i; + ssize_t ret; + + dev_dbg(nor->dev, "to 0x%08x, len %zd\n", (u32)to, len); + + ret = spi_nor_lock_and_prep(nor); + if (ret) + return ret; + + for (i = 0; i < len; ) { + ssize_t written; + loff_t addr = to + i; + + /* + * If page_size is a power of two, the offset can be quickly + * calculated with an AND operation. On the other cases we + * need to do a modulus operation (more expensive). + * Power of two numbers have only one bit set and we can use + * the instruction hweight32 to detect if we need to do a + * modulus (do_div()) or not. + */ + if (hweight32(nor->page_size) == 1) { + page_offset = addr & (nor->page_size - 1); + } else { + uint64_t aux = addr; + + page_offset = do_div(aux, nor->page_size); + } + /* the size of data remaining on the first page */ + page_remain = min_t(size_t, + nor->page_size - page_offset, len - i); + + addr = spi_nor_convert_addr(nor, addr); + + ret = spi_nor_write_enable(nor); + if (ret) + goto write_err; + + ret = spi_nor_write_data(nor, addr, page_remain, buf + i); + if (ret < 0) + goto write_err; + written = ret; + + ret = spi_nor_wait_till_ready(nor); + if (ret) + goto write_err; + *retlen += written; + i += written; + } + +write_err: + spi_nor_unlock_and_unprep(nor); + return ret; +} + +static int spi_nor_check(struct spi_nor *nor) +{ + if (!nor->dev || + (!nor->spimem && !nor->controller_ops) || + (!nor->spimem && nor->controller_ops && + (!nor->controller_ops->read || + !nor->controller_ops->write || + !nor->controller_ops->read_reg || + !nor->controller_ops->write_reg))) { + pr_err("spi-nor: please fill all the necessary fields!\n"); + return -EINVAL; + } + + if (nor->spimem && nor->controller_ops) { + dev_err(nor->dev, "nor->spimem and nor->controller_ops are mutually exclusive, please set just one of them.\n"); + return -EINVAL; + } + + return 0; +} + +static int s3an_nor_setup(struct spi_nor *nor, + const struct spi_nor_hwcaps *hwcaps) +{ + int ret; + + ret = spi_nor_xread_sr(nor, nor->bouncebuf); + if (ret) + return ret; + + nor->erase_opcode = SPINOR_OP_XSE; + nor->program_opcode = SPINOR_OP_XPP; + nor->read_opcode = SPINOR_OP_READ; + nor->flags |= SNOR_F_NO_OP_CHIP_ERASE; + + /* + * This flashes have a page size of 264 or 528 bytes (known as + * Default addressing mode). It can be changed to a more standard + * Power of two mode where the page size is 256/512. This comes + * with a price: there is 3% less of space, the data is corrupted + * and the page size cannot be changed back to default addressing + * mode. + * + * The current addressing mode can be read from the XRDSR register + * and should not be changed, because is a destructive operation. + */ + if (nor->bouncebuf[0] & XSR_PAGESIZE) { + /* Flash in Power of 2 mode */ + nor->page_size = (nor->page_size == 264) ? 256 : 512; + nor->mtd.writebufsize = nor->page_size; + nor->mtd.size = 8 * nor->page_size * nor->info->n_sectors; + nor->mtd.erasesize = 8 * nor->page_size; + } else { + /* Flash in Default addressing mode */ + nor->params.convert_addr = s3an_convert_addr; + nor->mtd.erasesize = nor->info->sector_size; + } + + return 0; +} + +static void +spi_nor_set_read_settings(struct spi_nor_read_command *read, + u8 num_mode_clocks, + u8 num_wait_states, + u8 opcode, + enum spi_nor_protocol proto) +{ + read->num_mode_clocks = num_mode_clocks; + read->num_wait_states = num_wait_states; + read->opcode = opcode; + read->proto = proto; +} + +static void +spi_nor_set_pp_settings(struct spi_nor_pp_command *pp, + u8 opcode, + enum spi_nor_protocol proto) +{ + pp->opcode = opcode; + pp->proto = proto; +} + +static int spi_nor_hwcaps2cmd(u32 hwcaps, const int table[][2], size_t size) +{ + size_t i; + + for (i = 0; i < size; i++) + if (table[i][0] == (int)hwcaps) + return table[i][1]; + + return -EINVAL; +} + +static int spi_nor_hwcaps_read2cmd(u32 hwcaps) +{ + static const int hwcaps_read2cmd[][2] = { + { SNOR_HWCAPS_READ, SNOR_CMD_READ }, + { SNOR_HWCAPS_READ_FAST, SNOR_CMD_READ_FAST }, + { SNOR_HWCAPS_READ_1_1_1_DTR, SNOR_CMD_READ_1_1_1_DTR }, + { SNOR_HWCAPS_READ_1_1_2, SNOR_CMD_READ_1_1_2 }, + { SNOR_HWCAPS_READ_1_2_2, SNOR_CMD_READ_1_2_2 }, + { SNOR_HWCAPS_READ_2_2_2, SNOR_CMD_READ_2_2_2 }, + { SNOR_HWCAPS_READ_1_2_2_DTR, SNOR_CMD_READ_1_2_2_DTR }, + { SNOR_HWCAPS_READ_1_1_4, SNOR_CMD_READ_1_1_4 }, + { SNOR_HWCAPS_READ_1_4_4, SNOR_CMD_READ_1_4_4 }, + { SNOR_HWCAPS_READ_4_4_4, SNOR_CMD_READ_4_4_4 }, + { SNOR_HWCAPS_READ_1_4_4_DTR, SNOR_CMD_READ_1_4_4_DTR }, + { SNOR_HWCAPS_READ_1_1_8, SNOR_CMD_READ_1_1_8 }, + { SNOR_HWCAPS_READ_1_8_8, SNOR_CMD_READ_1_8_8 }, + { SNOR_HWCAPS_READ_8_8_8, SNOR_CMD_READ_8_8_8 }, + { SNOR_HWCAPS_READ_1_8_8_DTR, SNOR_CMD_READ_1_8_8_DTR }, + }; + + return spi_nor_hwcaps2cmd(hwcaps, hwcaps_read2cmd, + ARRAY_SIZE(hwcaps_read2cmd)); +} + +static int spi_nor_hwcaps_pp2cmd(u32 hwcaps) +{ + static const int hwcaps_pp2cmd[][2] = { + { SNOR_HWCAPS_PP, SNOR_CMD_PP }, + { SNOR_HWCAPS_PP_1_1_4, SNOR_CMD_PP_1_1_4 }, + { SNOR_HWCAPS_PP_1_4_4, SNOR_CMD_PP_1_4_4 }, + { SNOR_HWCAPS_PP_4_4_4, SNOR_CMD_PP_4_4_4 }, + { SNOR_HWCAPS_PP_1_1_8, SNOR_CMD_PP_1_1_8 }, + { SNOR_HWCAPS_PP_1_8_8, SNOR_CMD_PP_1_8_8 }, + { SNOR_HWCAPS_PP_8_8_8, SNOR_CMD_PP_8_8_8 }, + }; + + return spi_nor_hwcaps2cmd(hwcaps, hwcaps_pp2cmd, + ARRAY_SIZE(hwcaps_pp2cmd)); +} + +/* + * Serial Flash Discoverable Parameters (SFDP) parsing. + */ + +/** + * spi_nor_read_raw() - raw read of serial flash memory. read_opcode, + * addr_width and read_dummy members of the struct spi_nor + * should be previously + * set. + * @nor: pointer to a 'struct spi_nor' + * @addr: offset in the serial flash memory + * @len: number of bytes to read + * @buf: buffer where the data is copied into (dma-safe memory) + * + * Return: 0 on success, -errno otherwise. + */ +static int spi_nor_read_raw(struct spi_nor *nor, u32 addr, size_t len, u8 *buf) +{ + ssize_t ret; + + while (len) { + ret = spi_nor_read_data(nor, addr, len, buf); + if (ret < 0) + return ret; + if (!ret || ret > len) + return -EIO; + + buf += ret; + addr += ret; + len -= ret; + } + return 0; +} + +/** + * spi_nor_read_sfdp() - read Serial Flash Discoverable Parameters. + * @nor: pointer to a 'struct spi_nor' + * @addr: offset in the SFDP area to start reading data from + * @len: number of bytes to read + * @buf: buffer where the SFDP data are copied into (dma-safe memory) + * + * Whatever the actual numbers of bytes for address and dummy cycles are + * for (Fast) Read commands, the Read SFDP (5Ah) instruction is always + * followed by a 3-byte address and 8 dummy clock cycles. + * + * Return: 0 on success, -errno otherwise. + */ +static int spi_nor_read_sfdp(struct spi_nor *nor, u32 addr, + size_t len, void *buf) +{ + u8 addr_width, read_opcode, read_dummy; + int ret; + + read_opcode = nor->read_opcode; + addr_width = nor->addr_width; + read_dummy = nor->read_dummy; + + nor->read_opcode = SPINOR_OP_RDSFDP; + nor->addr_width = 3; + nor->read_dummy = 8; + + ret = spi_nor_read_raw(nor, addr, len, buf); + + nor->read_opcode = read_opcode; + nor->addr_width = addr_width; + nor->read_dummy = read_dummy; + + return ret; +} + +/** + * spi_nor_spimem_check_op - check if the operation is supported + * by controller + *@nor: pointer to a 'struct spi_nor' + *@op: pointer to op template to be checked + * + * Returns 0 if operation is supported, -ENOTSUPP otherwise. + */ +static int spi_nor_spimem_check_op(struct spi_nor *nor, + struct spi_mem_op *op) +{ + /* + * First test with 4 address bytes. The opcode itself might + * be a 3B addressing opcode but we don't care, because + * SPI controller implementation should not check the opcode, + * but just the sequence. + */ + op->addr.nbytes = 4; + if (!spi_mem_supports_op(nor->spimem, op)) { + if (nor->mtd.size > SZ_16M) + return -ENOTSUPP; + + /* If flash size <= 16MB, 3 address bytes are sufficient */ + op->addr.nbytes = 3; + if (!spi_mem_supports_op(nor->spimem, op)) + return -ENOTSUPP; + } + + return 0; +} + +/** + * spi_nor_spimem_check_readop - check if the read op is supported + * by controller + *@nor: pointer to a 'struct spi_nor' + *@read: pointer to op template to be checked + * + * Returns 0 if operation is supported, -ENOTSUPP otherwise. + */ +static int spi_nor_spimem_check_readop(struct spi_nor *nor, + const struct spi_nor_read_command *read) +{ + struct spi_mem_op op = SPI_MEM_OP(SPI_MEM_OP_CMD(read->opcode, 1), + SPI_MEM_OP_ADDR(3, 0, 1), + SPI_MEM_OP_DUMMY(0, 1), + SPI_MEM_OP_DATA_IN(0, NULL, 1)); + + op.cmd.buswidth = spi_nor_get_protocol_inst_nbits(read->proto); + op.addr.buswidth = spi_nor_get_protocol_addr_nbits(read->proto); + op.data.buswidth = spi_nor_get_protocol_data_nbits(read->proto); + op.dummy.buswidth = op.addr.buswidth; + op.dummy.nbytes = (read->num_mode_clocks + read->num_wait_states) * + op.dummy.buswidth / 8; + + return spi_nor_spimem_check_op(nor, &op); +} + +/** + * spi_nor_spimem_check_pp - check if the page program op is supported + * by controller + *@nor: pointer to a 'struct spi_nor' + *@pp: pointer to op template to be checked + * + * Returns 0 if operation is supported, -ENOTSUPP otherwise. + */ +static int spi_nor_spimem_check_pp(struct spi_nor *nor, + const struct spi_nor_pp_command *pp) +{ + struct spi_mem_op op = SPI_MEM_OP(SPI_MEM_OP_CMD(pp->opcode, 1), + SPI_MEM_OP_ADDR(3, 0, 1), + SPI_MEM_OP_NO_DUMMY, + SPI_MEM_OP_DATA_OUT(0, NULL, 1)); + + op.cmd.buswidth = spi_nor_get_protocol_inst_nbits(pp->proto); + op.addr.buswidth = spi_nor_get_protocol_addr_nbits(pp->proto); + op.data.buswidth = spi_nor_get_protocol_data_nbits(pp->proto); + + return spi_nor_spimem_check_op(nor, &op); +} + +/** + * spi_nor_spimem_adjust_hwcaps - Find optimal Read/Write protocol + * based on SPI controller capabilities + * @nor: pointer to a 'struct spi_nor' + * @hwcaps: pointer to resulting capabilities after adjusting + * according to controller and flash's capability + */ +static void +spi_nor_spimem_adjust_hwcaps(struct spi_nor *nor, u32 *hwcaps) +{ + struct spi_nor_flash_parameter *params = &nor->params; + unsigned int cap; + + /* DTR modes are not supported yet, mask them all. */ + *hwcaps &= ~SNOR_HWCAPS_DTR; + + /* X-X-X modes are not supported yet, mask them all. */ + *hwcaps &= ~SNOR_HWCAPS_X_X_X; + + for (cap = 0; cap < sizeof(*hwcaps) * BITS_PER_BYTE; cap++) { + int rdidx, ppidx; + + if (!(*hwcaps & BIT(cap))) + continue; + + rdidx = spi_nor_hwcaps_read2cmd(BIT(cap)); + if (rdidx >= 0 && + spi_nor_spimem_check_readop(nor, ¶ms->reads[rdidx])) + *hwcaps &= ~BIT(cap); + + ppidx = spi_nor_hwcaps_pp2cmd(BIT(cap)); + if (ppidx < 0) + continue; + + if (spi_nor_spimem_check_pp(nor, + ¶ms->page_programs[ppidx])) + *hwcaps &= ~BIT(cap); + } +} + +/** + * spi_nor_read_sfdp_dma_unsafe() - read Serial Flash Discoverable Parameters. + * @nor: pointer to a 'struct spi_nor' + * @addr: offset in the SFDP area to start reading data from + * @len: number of bytes to read + * @buf: buffer where the SFDP data are copied into + * + * Wrap spi_nor_read_sfdp() using a kmalloc'ed bounce buffer as @buf is now not + * guaranteed to be dma-safe. + * + * Return: -ENOMEM if kmalloc() fails, the return code of spi_nor_read_sfdp() + * otherwise. + */ +static int spi_nor_read_sfdp_dma_unsafe(struct spi_nor *nor, u32 addr, + size_t len, void *buf) +{ + void *dma_safe_buf; + int ret; + + dma_safe_buf = kmalloc(len, GFP_KERNEL); + if (!dma_safe_buf) + return -ENOMEM; + + ret = spi_nor_read_sfdp(nor, addr, len, dma_safe_buf); + memcpy(buf, dma_safe_buf, len); + kfree(dma_safe_buf); + + return ret; +} + +/* Fast Read settings. */ + +static void +spi_nor_set_read_settings_from_bfpt(struct spi_nor_read_command *read, + u16 half, + enum spi_nor_protocol proto) +{ + read->num_mode_clocks = (half >> 5) & 0x07; + read->num_wait_states = (half >> 0) & 0x1f; + read->opcode = (half >> 8) & 0xff; + read->proto = proto; +} + +struct sfdp_bfpt_read { + /* The Fast Read x-y-z hardware capability in params->hwcaps.mask. */ + u32 hwcaps; + + /* + * The bit in BFPT DWORD tells us + * whether the Fast Read x-y-z command is supported. + */ + u32 supported_dword; + u32 supported_bit; + + /* + * The half-word at offset in BFPT DWORD + * encodes the op code, the number of mode clocks and the number of wait + * states to be used by Fast Read x-y-z command. + */ + u32 settings_dword; + u32 settings_shift; + + /* The SPI protocol for this Fast Read x-y-z command. */ + enum spi_nor_protocol proto; +}; + +static const struct sfdp_bfpt_read sfdp_bfpt_reads[] = { + /* Fast Read 1-1-2 */ + { + SNOR_HWCAPS_READ_1_1_2, + BFPT_DWORD(1), BIT(16), /* Supported bit */ + BFPT_DWORD(4), 0, /* Settings */ + SNOR_PROTO_1_1_2, + }, + + /* Fast Read 1-2-2 */ + { + SNOR_HWCAPS_READ_1_2_2, + BFPT_DWORD(1), BIT(20), /* Supported bit */ + BFPT_DWORD(4), 16, /* Settings */ + SNOR_PROTO_1_2_2, + }, + + /* Fast Read 2-2-2 */ + { + SNOR_HWCAPS_READ_2_2_2, + BFPT_DWORD(5), BIT(0), /* Supported bit */ + BFPT_DWORD(6), 16, /* Settings */ + SNOR_PROTO_2_2_2, + }, + + /* Fast Read 1-1-4 */ + { + SNOR_HWCAPS_READ_1_1_4, + BFPT_DWORD(1), BIT(22), /* Supported bit */ + BFPT_DWORD(3), 16, /* Settings */ + SNOR_PROTO_1_1_4, + }, + + /* Fast Read 1-4-4 */ + { + SNOR_HWCAPS_READ_1_4_4, + BFPT_DWORD(1), BIT(21), /* Supported bit */ + BFPT_DWORD(3), 0, /* Settings */ + SNOR_PROTO_1_4_4, + }, + + /* Fast Read 4-4-4 */ + { + SNOR_HWCAPS_READ_4_4_4, + BFPT_DWORD(5), BIT(4), /* Supported bit */ + BFPT_DWORD(7), 16, /* Settings */ + SNOR_PROTO_4_4_4, + }, +}; + +struct sfdp_bfpt_erase { + /* + * The half-word at offset in DWORD encodes the + * op code and erase sector size to be used by Sector Erase commands. + */ + u32 dword; + u32 shift; +}; + +static const struct sfdp_bfpt_erase sfdp_bfpt_erases[] = { + /* Erase Type 1 in DWORD8 bits[15:0] */ + {BFPT_DWORD(8), 0}, + + /* Erase Type 2 in DWORD8 bits[31:16] */ + {BFPT_DWORD(8), 16}, + + /* Erase Type 3 in DWORD9 bits[15:0] */ + {BFPT_DWORD(9), 0}, + + /* Erase Type 4 in DWORD9 bits[31:16] */ + {BFPT_DWORD(9), 16}, +}; + +/** + * spi_nor_set_erase_type() - set a SPI NOR erase type + * @erase: pointer to a structure that describes a SPI NOR erase type + * @size: the size of the sector/block erased by the erase type + * @opcode: the SPI command op code to erase the sector/block + */ +static void spi_nor_set_erase_type(struct spi_nor_erase_type *erase, + u32 size, u8 opcode) +{ + erase->size = size; + erase->opcode = opcode; + /* JEDEC JESD216B Standard imposes erase sizes to be power of 2. */ + erase->size_shift = ffs(erase->size) - 1; + erase->size_mask = (1 << erase->size_shift) - 1; +} + +/** + * spi_nor_set_erase_settings_from_bfpt() - set erase type settings from BFPT + * @erase: pointer to a structure that describes a SPI NOR erase type + * @size: the size of the sector/block erased by the erase type + * @opcode: the SPI command op code to erase the sector/block + * @i: erase type index as sorted in the Basic Flash Parameter Table + * + * The supported Erase Types will be sorted at init in ascending order, with + * the smallest Erase Type size being the first member in the erase_type array + * of the spi_nor_erase_map structure. Save the Erase Type index as sorted in + * the Basic Flash Parameter Table since it will be used later on to + * synchronize with the supported Erase Types defined in SFDP optional tables. + */ +static void +spi_nor_set_erase_settings_from_bfpt(struct spi_nor_erase_type *erase, + u32 size, u8 opcode, u8 i) +{ + erase->idx = i; + spi_nor_set_erase_type(erase, size, opcode); +} + +/** + * spi_nor_map_cmp_erase_type() - compare the map's erase types by size + * @l: member in the left half of the map's erase_type array + * @r: member in the right half of the map's erase_type array + * + * Comparison function used in the sort() call to sort in ascending order the + * map's erase types, the smallest erase type size being the first member in the + * sorted erase_type array. + * + * Return: the result of @l->size - @r->size + */ +static int spi_nor_map_cmp_erase_type(const void *l, const void *r) +{ + const struct spi_nor_erase_type *left = l, *right = r; + + return left->size - right->size; +} + +/** + * spi_nor_sort_erase_mask() - sort erase mask + * @map: the erase map of the SPI NOR + * @erase_mask: the erase type mask to be sorted + * + * Replicate the sort done for the map's erase types in BFPT: sort the erase + * mask in ascending order with the smallest erase type size starting from + * BIT(0) in the sorted erase mask. + * + * Return: sorted erase mask. + */ +static u8 spi_nor_sort_erase_mask(struct spi_nor_erase_map *map, u8 erase_mask) +{ + struct spi_nor_erase_type *erase_type = map->erase_type; + int i; + u8 sorted_erase_mask = 0; + + if (!erase_mask) + return 0; + + /* Replicate the sort done for the map's erase types. */ + for (i = 0; i < SNOR_ERASE_TYPE_MAX; i++) + if (erase_type[i].size && erase_mask & BIT(erase_type[i].idx)) + sorted_erase_mask |= BIT(i); + + return sorted_erase_mask; +} + +/** + * spi_nor_regions_sort_erase_types() - sort erase types in each region + * @map: the erase map of the SPI NOR + * + * Function assumes that the erase types defined in the erase map are already + * sorted in ascending order, with the smallest erase type size being the first + * member in the erase_type array. It replicates the sort done for the map's + * erase types. Each region's erase bitmask will indicate which erase types are + * supported from the sorted erase types defined in the erase map. + * Sort the all region's erase type at init in order to speed up the process of + * finding the best erase command at runtime. + */ +static void spi_nor_regions_sort_erase_types(struct spi_nor_erase_map *map) +{ + struct spi_nor_erase_region *region = map->regions; + u8 region_erase_mask, sorted_erase_mask; + + while (region) { + region_erase_mask = region->offset & SNOR_ERASE_TYPE_MASK; + + sorted_erase_mask = spi_nor_sort_erase_mask(map, + region_erase_mask); + + /* Overwrite erase mask. */ + region->offset = (region->offset & ~SNOR_ERASE_TYPE_MASK) | + sorted_erase_mask; + + region = spi_nor_region_next(region); + } +} + +/** + * spi_nor_init_uniform_erase_map() - Initialize uniform erase map + * @map: the erase map of the SPI NOR + * @erase_mask: bitmask encoding erase types that can erase the entire + * flash memory + * @flash_size: the spi nor flash memory size + */ +static void spi_nor_init_uniform_erase_map(struct spi_nor_erase_map *map, + u8 erase_mask, u64 flash_size) +{ + /* Offset 0 with erase_mask and SNOR_LAST_REGION bit set */ + map->uniform_region.offset = (erase_mask & SNOR_ERASE_TYPE_MASK) | + SNOR_LAST_REGION; + map->uniform_region.size = flash_size; + map->regions = &map->uniform_region; + map->uniform_erase_type = erase_mask; +} + +static int +spi_nor_post_bfpt_fixups(struct spi_nor *nor, + const struct sfdp_parameter_header *bfpt_header, + const struct sfdp_bfpt *bfpt, + struct spi_nor_flash_parameter *params) +{ + if (nor->info->fixups && nor->info->fixups->post_bfpt) + return nor->info->fixups->post_bfpt(nor, bfpt_header, bfpt, + params); + + return 0; +} + +/** + * spi_nor_parse_bfpt() - read and parse the Basic Flash Parameter Table. + * @nor: pointer to a 'struct spi_nor' + * @bfpt_header: pointer to the 'struct sfdp_parameter_header' describing + * the Basic Flash Parameter Table length and version + * @params: pointer to the 'struct spi_nor_flash_parameter' to be + * filled + * + * The Basic Flash Parameter Table is the main and only mandatory table as + * defined by the SFDP (JESD216) specification. + * It provides us with the total size (memory density) of the data array and + * the number of address bytes for Fast Read, Page Program and Sector Erase + * commands. + * For Fast READ commands, it also gives the number of mode clock cycles and + * wait states (regrouped in the number of dummy clock cycles) for each + * supported instruction op code. + * For Page Program, the page size is now available since JESD216 rev A, however + * the supported instruction op codes are still not provided. + * For Sector Erase commands, this table stores the supported instruction op + * codes and the associated sector sizes. + * Finally, the Quad Enable Requirements (QER) are also available since JESD216 + * rev A. The QER bits encode the manufacturer dependent procedure to be + * executed to set the Quad Enable (QE) bit in some internal register of the + * Quad SPI memory. Indeed the QE bit, when it exists, must be set before + * sending any Quad SPI command to the memory. Actually, setting the QE bit + * tells the memory to reassign its WP# and HOLD#/RESET# pins to functions IO2 + * and IO3 hence enabling 4 (Quad) I/O lines. + * + * Return: 0 on success, -errno otherwise. + */ +static int spi_nor_parse_bfpt(struct spi_nor *nor, + const struct sfdp_parameter_header *bfpt_header, + struct spi_nor_flash_parameter *params) +{ + struct spi_nor_erase_map *map = ¶ms->erase_map; + struct spi_nor_erase_type *erase_type = map->erase_type; + struct sfdp_bfpt bfpt; + size_t len; + int i, cmd, err; + u32 addr; + u16 half; + u8 erase_mask; + + /* JESD216 Basic Flash Parameter Table length is at least 9 DWORDs. */ + if (bfpt_header->length < BFPT_DWORD_MAX_JESD216) + return -EINVAL; + + /* Read the Basic Flash Parameter Table. */ + len = min_t(size_t, sizeof(bfpt), + bfpt_header->length * sizeof(u32)); + addr = SFDP_PARAM_HEADER_PTP(bfpt_header); + memset(&bfpt, 0, sizeof(bfpt)); + err = spi_nor_read_sfdp_dma_unsafe(nor, addr, len, &bfpt); + if (err < 0) + return err; + + /* Fix endianness of the BFPT DWORDs. */ + for (i = 0; i < BFPT_DWORD_MAX; i++) + bfpt.dwords[i] = le32_to_cpu(bfpt.dwords[i]); + + /* Number of address bytes. */ + switch (bfpt.dwords[BFPT_DWORD(1)] & BFPT_DWORD1_ADDRESS_BYTES_MASK) { + case BFPT_DWORD1_ADDRESS_BYTES_3_ONLY: + nor->addr_width = 3; + break; + + case BFPT_DWORD1_ADDRESS_BYTES_4_ONLY: + nor->addr_width = 4; + break; + + default: + break; + } + + /* Flash Memory Density (in bits). */ + params->size = bfpt.dwords[BFPT_DWORD(2)]; + if (params->size & BIT(31)) { + params->size &= ~BIT(31); + + /* + * Prevent overflows on params->size. Anyway, a NOR of 2^64 + * bits is unlikely to exist so this error probably means + * the BFPT we are reading is corrupted/wrong. + */ + if (params->size > 63) + return -EINVAL; + + params->size = 1ULL << params->size; + } else { + params->size++; + } + params->size >>= 3; /* Convert to bytes. */ + + /* Fast Read settings. */ + for (i = 0; i < ARRAY_SIZE(sfdp_bfpt_reads); i++) { + const struct sfdp_bfpt_read *rd = &sfdp_bfpt_reads[i]; + struct spi_nor_read_command *read; + + if (!(bfpt.dwords[rd->supported_dword] & rd->supported_bit)) { + params->hwcaps.mask &= ~rd->hwcaps; + continue; + } + + params->hwcaps.mask |= rd->hwcaps; + cmd = spi_nor_hwcaps_read2cmd(rd->hwcaps); + read = ¶ms->reads[cmd]; + half = bfpt.dwords[rd->settings_dword] >> rd->settings_shift; + spi_nor_set_read_settings_from_bfpt(read, half, rd->proto); + } + + /* + * Sector Erase settings. Reinitialize the uniform erase map using the + * Erase Types defined in the bfpt table. + */ + erase_mask = 0; + memset(¶ms->erase_map, 0, sizeof(params->erase_map)); + for (i = 0; i < ARRAY_SIZE(sfdp_bfpt_erases); i++) { + const struct sfdp_bfpt_erase *er = &sfdp_bfpt_erases[i]; + u32 erasesize; + u8 opcode; + + half = bfpt.dwords[er->dword] >> er->shift; + erasesize = half & 0xff; + + /* erasesize == 0 means this Erase Type is not supported. */ + if (!erasesize) + continue; + + erasesize = 1U << erasesize; + opcode = (half >> 8) & 0xff; + erase_mask |= BIT(i); + spi_nor_set_erase_settings_from_bfpt(&erase_type[i], erasesize, + opcode, i); + } + spi_nor_init_uniform_erase_map(map, erase_mask, params->size); + /* + * Sort all the map's Erase Types in ascending order with the smallest + * erase size being the first member in the erase_type array. + */ + sort(erase_type, SNOR_ERASE_TYPE_MAX, sizeof(erase_type[0]), + spi_nor_map_cmp_erase_type, NULL); + /* + * Sort the erase types in the uniform region in order to update the + * uniform_erase_type bitmask. The bitmask will be used later on when + * selecting the uniform erase. + */ + spi_nor_regions_sort_erase_types(map); + map->uniform_erase_type = map->uniform_region.offset & + SNOR_ERASE_TYPE_MASK; + + /* Stop here if not JESD216 rev A or later. */ + if (bfpt_header->length < BFPT_DWORD_MAX) + return spi_nor_post_bfpt_fixups(nor, bfpt_header, &bfpt, + params); + + /* Page size: this field specifies 'N' so the page size = 2^N bytes. */ + params->page_size = bfpt.dwords[BFPT_DWORD(11)]; + params->page_size &= BFPT_DWORD11_PAGE_SIZE_MASK; + params->page_size >>= BFPT_DWORD11_PAGE_SIZE_SHIFT; + params->page_size = 1U << params->page_size; + + /* Quad Enable Requirements. */ + switch (bfpt.dwords[BFPT_DWORD(15)] & BFPT_DWORD15_QER_MASK) { + case BFPT_DWORD15_QER_NONE: + params->quad_enable = NULL; + break; + + case BFPT_DWORD15_QER_SR2_BIT1_BUGGY: + /* + * Writing only one byte to the Status Register has the + * side-effect of clearing Status Register 2. + */ + case BFPT_DWORD15_QER_SR2_BIT1_NO_RD: + /* + * Read Configuration Register (35h) instruction is not + * supported. + */ + nor->flags |= SNOR_F_HAS_16BIT_SR | SNOR_F_NO_READ_CR; + params->quad_enable = spi_nor_sr2_bit1_quad_enable; + break; + + case BFPT_DWORD15_QER_SR1_BIT6: + nor->flags &= ~SNOR_F_HAS_16BIT_SR; + params->quad_enable = spi_nor_sr1_bit6_quad_enable; + break; + + case BFPT_DWORD15_QER_SR2_BIT7: + nor->flags &= ~SNOR_F_HAS_16BIT_SR; + params->quad_enable = spi_nor_sr2_bit7_quad_enable; + break; + + case BFPT_DWORD15_QER_SR2_BIT1: + /* + * JESD216 rev B or later does not specify if writing only one + * byte to the Status Register clears or not the Status + * Register 2, so let's be cautious and keep the default + * assumption of a 16-bit Write Status (01h) command. + */ + nor->flags |= SNOR_F_HAS_16BIT_SR; + + params->quad_enable = spi_nor_sr2_bit1_quad_enable; + break; + + default: + return -EINVAL; + } + + return spi_nor_post_bfpt_fixups(nor, bfpt_header, &bfpt, params); +} + +#define SMPT_CMD_ADDRESS_LEN_MASK GENMASK(23, 22) +#define SMPT_CMD_ADDRESS_LEN_0 (0x0UL << 22) +#define SMPT_CMD_ADDRESS_LEN_3 (0x1UL << 22) +#define SMPT_CMD_ADDRESS_LEN_4 (0x2UL << 22) +#define SMPT_CMD_ADDRESS_LEN_USE_CURRENT (0x3UL << 22) + +#define SMPT_CMD_READ_DUMMY_MASK GENMASK(19, 16) +#define SMPT_CMD_READ_DUMMY_SHIFT 16 +#define SMPT_CMD_READ_DUMMY(_cmd) \ + (((_cmd) & SMPT_CMD_READ_DUMMY_MASK) >> SMPT_CMD_READ_DUMMY_SHIFT) +#define SMPT_CMD_READ_DUMMY_IS_VARIABLE 0xfUL + +#define SMPT_CMD_READ_DATA_MASK GENMASK(31, 24) +#define SMPT_CMD_READ_DATA_SHIFT 24 +#define SMPT_CMD_READ_DATA(_cmd) \ + (((_cmd) & SMPT_CMD_READ_DATA_MASK) >> SMPT_CMD_READ_DATA_SHIFT) + +#define SMPT_CMD_OPCODE_MASK GENMASK(15, 8) +#define SMPT_CMD_OPCODE_SHIFT 8 +#define SMPT_CMD_OPCODE(_cmd) \ + (((_cmd) & SMPT_CMD_OPCODE_MASK) >> SMPT_CMD_OPCODE_SHIFT) + +#define SMPT_MAP_REGION_COUNT_MASK GENMASK(23, 16) +#define SMPT_MAP_REGION_COUNT_SHIFT 16 +#define SMPT_MAP_REGION_COUNT(_header) \ + ((((_header) & SMPT_MAP_REGION_COUNT_MASK) >> \ + SMPT_MAP_REGION_COUNT_SHIFT) + 1) + +#define SMPT_MAP_ID_MASK GENMASK(15, 8) +#define SMPT_MAP_ID_SHIFT 8 +#define SMPT_MAP_ID(_header) \ + (((_header) & SMPT_MAP_ID_MASK) >> SMPT_MAP_ID_SHIFT) + +#define SMPT_MAP_REGION_SIZE_MASK GENMASK(31, 8) +#define SMPT_MAP_REGION_SIZE_SHIFT 8 +#define SMPT_MAP_REGION_SIZE(_region) \ + (((((_region) & SMPT_MAP_REGION_SIZE_MASK) >> \ + SMPT_MAP_REGION_SIZE_SHIFT) + 1) * 256) + +#define SMPT_MAP_REGION_ERASE_TYPE_MASK GENMASK(3, 0) +#define SMPT_MAP_REGION_ERASE_TYPE(_region) \ + ((_region) & SMPT_MAP_REGION_ERASE_TYPE_MASK) + +#define SMPT_DESC_TYPE_MAP BIT(1) +#define SMPT_DESC_END BIT(0) + +/** + * spi_nor_smpt_addr_width() - return the address width used in the + * configuration detection command. + * @nor: pointer to a 'struct spi_nor' + * @settings: configuration detection command descriptor, dword1 + */ +static u8 spi_nor_smpt_addr_width(const struct spi_nor *nor, const u32 settings) +{ + switch (settings & SMPT_CMD_ADDRESS_LEN_MASK) { + case SMPT_CMD_ADDRESS_LEN_0: + return 0; + case SMPT_CMD_ADDRESS_LEN_3: + return 3; + case SMPT_CMD_ADDRESS_LEN_4: + return 4; + case SMPT_CMD_ADDRESS_LEN_USE_CURRENT: + /* fall through */ + default: + return nor->addr_width; + } +} + +/** + * spi_nor_smpt_read_dummy() - return the configuration detection command read + * latency, in clock cycles. + * @nor: pointer to a 'struct spi_nor' + * @settings: configuration detection command descriptor, dword1 + * + * Return: the number of dummy cycles for an SMPT read + */ +static u8 spi_nor_smpt_read_dummy(const struct spi_nor *nor, const u32 settings) +{ + u8 read_dummy = SMPT_CMD_READ_DUMMY(settings); + + if (read_dummy == SMPT_CMD_READ_DUMMY_IS_VARIABLE) + return nor->read_dummy; + return read_dummy; +} + +/** + * spi_nor_get_map_in_use() - get the configuration map in use + * @nor: pointer to a 'struct spi_nor' + * @smpt: pointer to the sector map parameter table + * @smpt_len: sector map parameter table length + * + * Return: pointer to the map in use, ERR_PTR(-errno) otherwise. + */ +static const u32 *spi_nor_get_map_in_use(struct spi_nor *nor, const u32 *smpt, + u8 smpt_len) +{ + const u32 *ret; + u8 *buf; + u32 addr; + int err; + u8 i; + u8 addr_width, read_opcode, read_dummy; + u8 read_data_mask, map_id; + + /* Use a kmalloc'ed bounce buffer to guarantee it is DMA-able. */ + buf = kmalloc(sizeof(*buf), GFP_KERNEL); + if (!buf) + return ERR_PTR(-ENOMEM); + + addr_width = nor->addr_width; + read_dummy = nor->read_dummy; + read_opcode = nor->read_opcode; + + map_id = 0; + /* Determine if there are any optional Detection Command Descriptors */ + for (i = 0; i < smpt_len; i += 2) { + if (smpt[i] & SMPT_DESC_TYPE_MAP) + break; + + read_data_mask = SMPT_CMD_READ_DATA(smpt[i]); + nor->addr_width = spi_nor_smpt_addr_width(nor, smpt[i]); + nor->read_dummy = spi_nor_smpt_read_dummy(nor, smpt[i]); + nor->read_opcode = SMPT_CMD_OPCODE(smpt[i]); + addr = smpt[i + 1]; + + err = spi_nor_read_raw(nor, addr, 1, buf); + if (err) { + ret = ERR_PTR(err); + goto out; + } + + /* + * Build an index value that is used to select the Sector Map + * Configuration that is currently in use. + */ + map_id = map_id << 1 | !!(*buf & read_data_mask); + } + + /* + * If command descriptors are provided, they always precede map + * descriptors in the table. There is no need to start the iteration + * over smpt array all over again. + * + * Find the matching configuration map. + */ + ret = ERR_PTR(-EINVAL); + while (i < smpt_len) { + if (SMPT_MAP_ID(smpt[i]) == map_id) { + ret = smpt + i; + break; + } + + /* + * If there are no more configuration map descriptors and no + * configuration ID matched the configuration identifier, the + * sector address map is unknown. + */ + if (smpt[i] & SMPT_DESC_END) + break; + + /* increment the table index to the next map */ + i += SMPT_MAP_REGION_COUNT(smpt[i]) + 1; + } + + /* fall through */ +out: + kfree(buf); + nor->addr_width = addr_width; + nor->read_dummy = read_dummy; + nor->read_opcode = read_opcode; + return ret; +} + +/** + * spi_nor_region_check_overlay() - set overlay bit when the region is overlaid + * @region: pointer to a structure that describes a SPI NOR erase region + * @erase: pointer to a structure that describes a SPI NOR erase type + * @erase_type: erase type bitmask + */ +static void +spi_nor_region_check_overlay(struct spi_nor_erase_region *region, + const struct spi_nor_erase_type *erase, + const u8 erase_type) +{ + int i; + + for (i = 0; i < SNOR_ERASE_TYPE_MAX; i++) { + if (!(erase_type & BIT(i))) + continue; + if (region->size & erase[i].size_mask) { + spi_nor_region_mark_overlay(region); + return; + } + } +} + +/** + * spi_nor_init_non_uniform_erase_map() - initialize the non-uniform erase map + * @nor: pointer to a 'struct spi_nor' + * @params: pointer to a duplicate 'struct spi_nor_flash_parameter' that is + * used for storing SFDP parsed data + * @smpt: pointer to the sector map parameter table + * + * Return: 0 on success, -errno otherwise. + */ +static int +spi_nor_init_non_uniform_erase_map(struct spi_nor *nor, + struct spi_nor_flash_parameter *params, + const u32 *smpt) +{ + struct spi_nor_erase_map *map = ¶ms->erase_map; + struct spi_nor_erase_type *erase = map->erase_type; + struct spi_nor_erase_region *region; + u64 offset; + u32 region_count; + int i, j; + u8 uniform_erase_type, save_uniform_erase_type; + u8 erase_type, regions_erase_type; + + region_count = SMPT_MAP_REGION_COUNT(*smpt); + /* + * The regions will be freed when the driver detaches from the + * device. + */ + region = devm_kcalloc(nor->dev, region_count, sizeof(*region), + GFP_KERNEL); + if (!region) + return -ENOMEM; + map->regions = region; + + uniform_erase_type = 0xff; + regions_erase_type = 0; + offset = 0; + /* Populate regions. */ + for (i = 0; i < region_count; i++) { + j = i + 1; /* index for the region dword */ + region[i].size = SMPT_MAP_REGION_SIZE(smpt[j]); + erase_type = SMPT_MAP_REGION_ERASE_TYPE(smpt[j]); + region[i].offset = offset | erase_type; + + spi_nor_region_check_overlay(®ion[i], erase, erase_type); + + /* + * Save the erase types that are supported in all regions and + * can erase the entire flash memory. + */ + uniform_erase_type &= erase_type; + + /* + * regions_erase_type mask will indicate all the erase types + * supported in this configuration map. + */ + regions_erase_type |= erase_type; + + offset = (region[i].offset & ~SNOR_ERASE_FLAGS_MASK) + + region[i].size; + } + + save_uniform_erase_type = map->uniform_erase_type; + map->uniform_erase_type = spi_nor_sort_erase_mask(map, + uniform_erase_type); + + if (!regions_erase_type) { + /* + * Roll back to the previous uniform_erase_type mask, SMPT is + * broken. + */ + map->uniform_erase_type = save_uniform_erase_type; + return -EINVAL; + } + + /* + * BFPT advertises all the erase types supported by all the possible + * map configurations. Mask out the erase types that are not supported + * by the current map configuration. + */ + for (i = 0; i < SNOR_ERASE_TYPE_MAX; i++) + if (!(regions_erase_type & BIT(erase[i].idx))) + spi_nor_set_erase_type(&erase[i], 0, 0xFF); + + spi_nor_region_mark_end(®ion[i - 1]); + + return 0; +} + +/** + * spi_nor_parse_smpt() - parse Sector Map Parameter Table + * @nor: pointer to a 'struct spi_nor' + * @smpt_header: sector map parameter table header + * @params: pointer to a duplicate 'struct spi_nor_flash_parameter' + * that is used for storing SFDP parsed data + * + * This table is optional, but when available, we parse it to identify the + * location and size of sectors within the main data array of the flash memory + * device and to identify which Erase Types are supported by each sector. + * + * Return: 0 on success, -errno otherwise. + */ +static int spi_nor_parse_smpt(struct spi_nor *nor, + const struct sfdp_parameter_header *smpt_header, + struct spi_nor_flash_parameter *params) +{ + const u32 *sector_map; + u32 *smpt; + size_t len; + u32 addr; + int i, ret; + + /* Read the Sector Map Parameter Table. */ + len = smpt_header->length * sizeof(*smpt); + smpt = kmalloc(len, GFP_KERNEL); + if (!smpt) + return -ENOMEM; + + addr = SFDP_PARAM_HEADER_PTP(smpt_header); + ret = spi_nor_read_sfdp(nor, addr, len, smpt); + if (ret) + goto out; + + /* Fix endianness of the SMPT DWORDs. */ + for (i = 0; i < smpt_header->length; i++) + smpt[i] = le32_to_cpu(smpt[i]); + + sector_map = spi_nor_get_map_in_use(nor, smpt, smpt_header->length); + if (IS_ERR(sector_map)) { + ret = PTR_ERR(sector_map); + goto out; + } + + ret = spi_nor_init_non_uniform_erase_map(nor, params, sector_map); + if (ret) + goto out; + + spi_nor_regions_sort_erase_types(¶ms->erase_map); + /* fall through */ +out: + kfree(smpt); + return ret; +} + +#define SFDP_4BAIT_DWORD_MAX 2 + +struct sfdp_4bait { + /* The hardware capability. */ + u32 hwcaps; + + /* + * The bit in DWORD1 of the 4BAIT tells us whether + * the associated 4-byte address op code is supported. + */ + u32 supported_bit; +}; + +/** + * spi_nor_parse_4bait() - parse the 4-Byte Address Instruction Table + * @nor: pointer to a 'struct spi_nor'. + * @param_header: pointer to the 'struct sfdp_parameter_header' describing + * the 4-Byte Address Instruction Table length and version. + * @params: pointer to the 'struct spi_nor_flash_parameter' to be. + * + * Return: 0 on success, -errno otherwise. + */ +static int spi_nor_parse_4bait(struct spi_nor *nor, + const struct sfdp_parameter_header *param_header, + struct spi_nor_flash_parameter *params) +{ + static const struct sfdp_4bait reads[] = { + { SNOR_HWCAPS_READ, BIT(0) }, + { SNOR_HWCAPS_READ_FAST, BIT(1) }, + { SNOR_HWCAPS_READ_1_1_2, BIT(2) }, + { SNOR_HWCAPS_READ_1_2_2, BIT(3) }, + { SNOR_HWCAPS_READ_1_1_4, BIT(4) }, + { SNOR_HWCAPS_READ_1_4_4, BIT(5) }, + { SNOR_HWCAPS_READ_1_1_1_DTR, BIT(13) }, + { SNOR_HWCAPS_READ_1_2_2_DTR, BIT(14) }, + { SNOR_HWCAPS_READ_1_4_4_DTR, BIT(15) }, + }; + static const struct sfdp_4bait programs[] = { + { SNOR_HWCAPS_PP, BIT(6) }, + { SNOR_HWCAPS_PP_1_1_4, BIT(7) }, + { SNOR_HWCAPS_PP_1_4_4, BIT(8) }, + }; + static const struct sfdp_4bait erases[SNOR_ERASE_TYPE_MAX] = { + { 0u /* not used */, BIT(9) }, + { 0u /* not used */, BIT(10) }, + { 0u /* not used */, BIT(11) }, + { 0u /* not used */, BIT(12) }, + }; + struct spi_nor_pp_command *params_pp = params->page_programs; + struct spi_nor_erase_map *map = ¶ms->erase_map; + struct spi_nor_erase_type *erase_type = map->erase_type; + u32 *dwords; + size_t len; + u32 addr, discard_hwcaps, read_hwcaps, pp_hwcaps, erase_mask; + int i, ret; + + if (param_header->major != SFDP_JESD216_MAJOR || + param_header->length < SFDP_4BAIT_DWORD_MAX) + return -EINVAL; + + /* Read the 4-byte Address Instruction Table. */ + len = sizeof(*dwords) * SFDP_4BAIT_DWORD_MAX; + + /* Use a kmalloc'ed bounce buffer to guarantee it is DMA-able. */ + dwords = kmalloc(len, GFP_KERNEL); + if (!dwords) + return -ENOMEM; + + addr = SFDP_PARAM_HEADER_PTP(param_header); + ret = spi_nor_read_sfdp(nor, addr, len, dwords); + if (ret) + goto out; + + /* Fix endianness of the 4BAIT DWORDs. */ + for (i = 0; i < SFDP_4BAIT_DWORD_MAX; i++) + dwords[i] = le32_to_cpu(dwords[i]); + + /* + * Compute the subset of (Fast) Read commands for which the 4-byte + * version is supported. + */ + discard_hwcaps = 0; + read_hwcaps = 0; + for (i = 0; i < ARRAY_SIZE(reads); i++) { + const struct sfdp_4bait *read = &reads[i]; + + discard_hwcaps |= read->hwcaps; + if ((params->hwcaps.mask & read->hwcaps) && + (dwords[0] & read->supported_bit)) + read_hwcaps |= read->hwcaps; + } + + /* + * Compute the subset of Page Program commands for which the 4-byte + * version is supported. + */ + pp_hwcaps = 0; + for (i = 0; i < ARRAY_SIZE(programs); i++) { + const struct sfdp_4bait *program = &programs[i]; + + /* + * The 4 Byte Address Instruction (Optional) Table is the only + * SFDP table that indicates support for Page Program Commands. + * Bypass the params->hwcaps.mask and consider 4BAIT the biggest + * authority for specifying Page Program support. + */ + discard_hwcaps |= program->hwcaps; + if (dwords[0] & program->supported_bit) + pp_hwcaps |= program->hwcaps; + } + + /* + * Compute the subset of Sector Erase commands for which the 4-byte + * version is supported. + */ + erase_mask = 0; + for (i = 0; i < SNOR_ERASE_TYPE_MAX; i++) { + const struct sfdp_4bait *erase = &erases[i]; + + if (dwords[0] & erase->supported_bit) + erase_mask |= BIT(i); + } + + /* Replicate the sort done for the map's erase types in BFPT. */ + erase_mask = spi_nor_sort_erase_mask(map, erase_mask); + + /* + * We need at least one 4-byte op code per read, program and erase + * operation; the .read(), .write() and .erase() hooks share the + * nor->addr_width value. + */ + if (!read_hwcaps || !pp_hwcaps || !erase_mask) + goto out; + + /* + * Discard all operations from the 4-byte instruction set which are + * not supported by this memory. + */ + params->hwcaps.mask &= ~discard_hwcaps; + params->hwcaps.mask |= (read_hwcaps | pp_hwcaps); + + /* Use the 4-byte address instruction set. */ + for (i = 0; i < SNOR_CMD_READ_MAX; i++) { + struct spi_nor_read_command *read_cmd = ¶ms->reads[i]; + + read_cmd->opcode = spi_nor_convert_3to4_read(read_cmd->opcode); + } + + /* 4BAIT is the only SFDP table that indicates page program support. */ + if (pp_hwcaps & SNOR_HWCAPS_PP) + spi_nor_set_pp_settings(¶ms_pp[SNOR_CMD_PP], + SPINOR_OP_PP_4B, SNOR_PROTO_1_1_1); + if (pp_hwcaps & SNOR_HWCAPS_PP_1_1_4) + spi_nor_set_pp_settings(¶ms_pp[SNOR_CMD_PP_1_1_4], + SPINOR_OP_PP_1_1_4_4B, + SNOR_PROTO_1_1_4); + if (pp_hwcaps & SNOR_HWCAPS_PP_1_4_4) + spi_nor_set_pp_settings(¶ms_pp[SNOR_CMD_PP_1_4_4], + SPINOR_OP_PP_1_4_4_4B, + SNOR_PROTO_1_4_4); + + for (i = 0; i < SNOR_ERASE_TYPE_MAX; i++) { + if (erase_mask & BIT(i)) + erase_type[i].opcode = (dwords[1] >> + erase_type[i].idx * 8) & 0xFF; + else + spi_nor_set_erase_type(&erase_type[i], 0u, 0xFF); + } + + /* + * We set SNOR_F_HAS_4BAIT in order to skip spi_nor_set_4byte_opcodes() + * later because we already did the conversion to 4byte opcodes. Also, + * this latest function implements a legacy quirk for the erase size of + * Spansion memory. However this quirk is no longer needed with new + * SFDP compliant memories. + */ + nor->addr_width = 4; + nor->flags |= SNOR_F_4B_OPCODES | SNOR_F_HAS_4BAIT; + + /* fall through */ +out: + kfree(dwords); + return ret; +} + +/** + * spi_nor_parse_sfdp() - parse the Serial Flash Discoverable Parameters. + * @nor: pointer to a 'struct spi_nor' + * @params: pointer to the 'struct spi_nor_flash_parameter' to be + * filled + * + * The Serial Flash Discoverable Parameters are described by the JEDEC JESD216 + * specification. This is a standard which tends to supported by almost all + * (Q)SPI memory manufacturers. Those hard-coded tables allow us to learn at + * runtime the main parameters needed to perform basic SPI flash operations such + * as Fast Read, Page Program or Sector Erase commands. + * + * Return: 0 on success, -errno otherwise. + */ +static int spi_nor_parse_sfdp(struct spi_nor *nor, + struct spi_nor_flash_parameter *params) +{ + const struct sfdp_parameter_header *param_header, *bfpt_header; + struct sfdp_parameter_header *param_headers = NULL; + struct sfdp_header header; + struct device *dev = nor->dev; + size_t psize; + int i, err; + + /* Get the SFDP header. */ + err = spi_nor_read_sfdp_dma_unsafe(nor, 0, sizeof(header), &header); + if (err < 0) + return err; + + /* Check the SFDP header version. */ + if (le32_to_cpu(header.signature) != SFDP_SIGNATURE || + header.major != SFDP_JESD216_MAJOR) + return -EINVAL; + + /* + * Verify that the first and only mandatory parameter header is a + * Basic Flash Parameter Table header as specified in JESD216. + */ + bfpt_header = &header.bfpt_header; + if (SFDP_PARAM_HEADER_ID(bfpt_header) != SFDP_BFPT_ID || + bfpt_header->major != SFDP_JESD216_MAJOR) + return -EINVAL; + + /* + * Allocate memory then read all parameter headers with a single + * Read SFDP command. These parameter headers will actually be parsed + * twice: a first time to get the latest revision of the basic flash + * parameter table, then a second time to handle the supported optional + * tables. + * Hence we read the parameter headers once for all to reduce the + * processing time. Also we use kmalloc() instead of devm_kmalloc() + * because we don't need to keep these parameter headers: the allocated + * memory is always released with kfree() before exiting this function. + */ + if (header.nph) { + psize = header.nph * sizeof(*param_headers); + + param_headers = kmalloc(psize, GFP_KERNEL); + if (!param_headers) + return -ENOMEM; + + err = spi_nor_read_sfdp(nor, sizeof(header), + psize, param_headers); + if (err < 0) { + dev_dbg(dev, "failed to read SFDP parameter headers\n"); + goto exit; + } + } + + /* + * Check other parameter headers to get the latest revision of + * the basic flash parameter table. + */ + for (i = 0; i < header.nph; i++) { + param_header = ¶m_headers[i]; + + if (SFDP_PARAM_HEADER_ID(param_header) == SFDP_BFPT_ID && + param_header->major == SFDP_JESD216_MAJOR && + (param_header->minor > bfpt_header->minor || + (param_header->minor == bfpt_header->minor && + param_header->length > bfpt_header->length))) + bfpt_header = param_header; + } + + err = spi_nor_parse_bfpt(nor, bfpt_header, params); + if (err) + goto exit; + + /* Parse optional parameter tables. */ + for (i = 0; i < header.nph; i++) { + param_header = ¶m_headers[i]; + + switch (SFDP_PARAM_HEADER_ID(param_header)) { + case SFDP_SECTOR_MAP_ID: + err = spi_nor_parse_smpt(nor, param_header, params); + break; + + case SFDP_4BAIT_ID: + err = spi_nor_parse_4bait(nor, param_header, params); + break; + + default: + break; + } + + if (err) { + dev_warn(dev, "Failed to parse optional parameter table: %04x\n", + SFDP_PARAM_HEADER_ID(param_header)); + /* + * Let's not drop all information we extracted so far + * if optional table parsers fail. In case of failing, + * each optional parser is responsible to roll back to + * the previously known spi_nor data. + */ + err = 0; + } + } + +exit: + kfree(param_headers); + return err; +} + +static int spi_nor_select_read(struct spi_nor *nor, + u32 shared_hwcaps) +{ + int cmd, best_match = fls(shared_hwcaps & SNOR_HWCAPS_READ_MASK) - 1; + const struct spi_nor_read_command *read; + + if (best_match < 0) + return -EINVAL; + + cmd = spi_nor_hwcaps_read2cmd(BIT(best_match)); + if (cmd < 0) + return -EINVAL; + + read = &nor->params.reads[cmd]; + nor->read_opcode = read->opcode; + nor->read_proto = read->proto; + + /* + * In the spi-nor framework, we don't need to make the difference + * between mode clock cycles and wait state clock cycles. + * Indeed, the value of the mode clock cycles is used by a QSPI + * flash memory to know whether it should enter or leave its 0-4-4 + * (Continuous Read / XIP) mode. + * eXecution In Place is out of the scope of the mtd sub-system. + * Hence we choose to merge both mode and wait state clock cycles + * into the so called dummy clock cycles. + */ + nor->read_dummy = read->num_mode_clocks + read->num_wait_states; + return 0; +} + +static int spi_nor_select_pp(struct spi_nor *nor, + u32 shared_hwcaps) +{ + int cmd, best_match = fls(shared_hwcaps & SNOR_HWCAPS_PP_MASK) - 1; + const struct spi_nor_pp_command *pp; + + if (best_match < 0) + return -EINVAL; + + cmd = spi_nor_hwcaps_pp2cmd(BIT(best_match)); + if (cmd < 0) + return -EINVAL; + + pp = &nor->params.page_programs[cmd]; + nor->program_opcode = pp->opcode; + nor->write_proto = pp->proto; + return 0; +} + +/** + * spi_nor_select_uniform_erase() - select optimum uniform erase type + * @map: the erase map of the SPI NOR + * @wanted_size: the erase type size to search for. Contains the value of + * info->sector_size or of the "small sector" size in case + * CONFIG_MTD_SPI_NOR_USE_4K_SECTORS is defined. + * + * Once the optimum uniform sector erase command is found, disable all the + * other. + * + * Return: pointer to erase type on success, NULL otherwise. + */ +static const struct spi_nor_erase_type * +spi_nor_select_uniform_erase(struct spi_nor_erase_map *map, + const u32 wanted_size) +{ + const struct spi_nor_erase_type *tested_erase, *erase = NULL; + int i; + u8 uniform_erase_type = map->uniform_erase_type; + + for (i = SNOR_ERASE_TYPE_MAX - 1; i >= 0; i--) { + if (!(uniform_erase_type & BIT(i))) + continue; + + tested_erase = &map->erase_type[i]; + + /* + * If the current erase size is the one, stop here: + * we have found the right uniform Sector Erase command. + */ + if (tested_erase->size == wanted_size) { + erase = tested_erase; + break; + } + + /* + * Otherwise, the current erase size is still a valid canditate. + * Select the biggest valid candidate. + */ + if (!erase && tested_erase->size) + erase = tested_erase; + /* keep iterating to find the wanted_size */ + } + + if (!erase) + return NULL; + + /* Disable all other Sector Erase commands. */ + map->uniform_erase_type &= ~SNOR_ERASE_TYPE_MASK; + map->uniform_erase_type |= BIT(erase - map->erase_type); + return erase; +} + +static int spi_nor_select_erase(struct spi_nor *nor) +{ + struct spi_nor_erase_map *map = &nor->params.erase_map; + const struct spi_nor_erase_type *erase = NULL; + struct mtd_info *mtd = &nor->mtd; + u32 wanted_size = nor->info->sector_size; + int i; + + /* + * The previous implementation handling Sector Erase commands assumed + * that the SPI flash memory has an uniform layout then used only one + * of the supported erase sizes for all Sector Erase commands. + * So to be backward compatible, the new implementation also tries to + * manage the SPI flash memory as uniform with a single erase sector + * size, when possible. + */ +#ifdef CONFIG_MTD_SPI_NOR_USE_4K_SECTORS + /* prefer "small sector" erase if possible */ + wanted_size = 4096u; +#endif + + if (spi_nor_has_uniform_erase(nor)) { + erase = spi_nor_select_uniform_erase(map, wanted_size); + if (!erase) + return -EINVAL; + nor->erase_opcode = erase->opcode; + mtd->erasesize = erase->size; + return 0; + } + + /* + * For non-uniform SPI flash memory, set mtd->erasesize to the + * maximum erase sector size. No need to set nor->erase_opcode. + */ + for (i = SNOR_ERASE_TYPE_MAX - 1; i >= 0; i--) { + if (map->erase_type[i].size) { + erase = &map->erase_type[i]; + break; + } + } + + if (!erase) + return -EINVAL; + + mtd->erasesize = erase->size; + return 0; +} + +static int spi_nor_default_setup(struct spi_nor *nor, + const struct spi_nor_hwcaps *hwcaps) +{ + struct spi_nor_flash_parameter *params = &nor->params; + u32 ignored_mask, shared_mask; + int err; + + /* + * Keep only the hardware capabilities supported by both the SPI + * controller and the SPI flash memory. + */ + shared_mask = hwcaps->mask & params->hwcaps.mask; + + if (nor->spimem) { + /* + * When called from spi_nor_probe(), all caps are set and we + * need to discard some of them based on what the SPI + * controller actually supports (using spi_mem_supports_op()). + */ + spi_nor_spimem_adjust_hwcaps(nor, &shared_mask); + } else { + /* + * SPI n-n-n protocols are not supported when the SPI + * controller directly implements the spi_nor interface. + * Yet another reason to switch to spi-mem. + */ + ignored_mask = SNOR_HWCAPS_X_X_X; + if (shared_mask & ignored_mask) { + dev_dbg(nor->dev, + "SPI n-n-n protocols are not supported.\n"); + shared_mask &= ~ignored_mask; + } + } + + /* Select the (Fast) Read command. */ + err = spi_nor_select_read(nor, shared_mask); + if (err) { + dev_dbg(nor->dev, + "can't select read settings supported by both the SPI controller and memory.\n"); + return err; + } + + /* Select the Page Program command. */ + err = spi_nor_select_pp(nor, shared_mask); + if (err) { + dev_dbg(nor->dev, + "can't select write settings supported by both the SPI controller and memory.\n"); + return err; + } + + /* Select the Sector Erase command. */ + err = spi_nor_select_erase(nor); + if (err) { + dev_dbg(nor->dev, + "can't select erase settings supported by both the SPI controller and memory.\n"); + return err; + } + + return 0; +} + +static int spi_nor_setup(struct spi_nor *nor, + const struct spi_nor_hwcaps *hwcaps) +{ + if (!nor->params.setup) + return 0; + + return nor->params.setup(nor, hwcaps); +} + +static void atmel_set_default_init(struct spi_nor *nor) +{ + nor->flags |= SNOR_F_HAS_LOCK; +} + +static void intel_set_default_init(struct spi_nor *nor) +{ + nor->flags |= SNOR_F_HAS_LOCK; +} + +static void issi_set_default_init(struct spi_nor *nor) +{ + nor->params.quad_enable = spi_nor_sr1_bit6_quad_enable; +} + +static void macronix_set_default_init(struct spi_nor *nor) +{ + nor->params.quad_enable = spi_nor_sr1_bit6_quad_enable; + nor->params.set_4byte = macronix_set_4byte; +} + +static void sst_set_default_init(struct spi_nor *nor) +{ + nor->flags |= SNOR_F_HAS_LOCK; +} + +static void st_micron_set_default_init(struct spi_nor *nor) +{ + nor->flags |= SNOR_F_HAS_LOCK; + nor->flags &= ~SNOR_F_HAS_16BIT_SR; + nor->params.quad_enable = NULL; + nor->params.set_4byte = st_micron_set_4byte; +} + +static void winbond_set_default_init(struct spi_nor *nor) +{ + nor->params.set_4byte = winbond_set_4byte; +} + +/** + * spi_nor_manufacturer_init_params() - Initialize the flash's parameters and + * settings based on MFR register and ->default_init() hook. + * @nor: pointer to a 'struct spi-nor'. + */ +static void spi_nor_manufacturer_init_params(struct spi_nor *nor) +{ + /* Init flash parameters based on MFR */ + switch (JEDEC_MFR(nor->info)) { + case SNOR_MFR_ATMEL: + atmel_set_default_init(nor); + break; + + case SNOR_MFR_INTEL: + intel_set_default_init(nor); + break; + + case SNOR_MFR_ISSI: + issi_set_default_init(nor); + break; + + case SNOR_MFR_MACRONIX: + macronix_set_default_init(nor); + break; + + case SNOR_MFR_ST: + case SNOR_MFR_MICRON: + st_micron_set_default_init(nor); + break; + + case SNOR_MFR_SST: + sst_set_default_init(nor); + break; + + case SNOR_MFR_WINBOND: + winbond_set_default_init(nor); + break; + + default: + break; + } + + if (nor->info->fixups && nor->info->fixups->default_init) + nor->info->fixups->default_init(nor); +} + +/** + * spi_nor_sfdp_init_params() - Initialize the flash's parameters and settings + * based on JESD216 SFDP standard. + * @nor: pointer to a 'struct spi-nor'. + * + * The method has a roll-back mechanism: in case the SFDP parsing fails, the + * legacy flash parameters and settings will be restored. + */ +static void spi_nor_sfdp_init_params(struct spi_nor *nor) +{ + struct spi_nor_flash_parameter sfdp_params; + + memcpy(&sfdp_params, &nor->params, sizeof(sfdp_params)); + + if (spi_nor_parse_sfdp(nor, &sfdp_params)) { + nor->addr_width = 0; + nor->flags &= ~SNOR_F_4B_OPCODES; + } else { + memcpy(&nor->params, &sfdp_params, sizeof(nor->params)); + } +} + +/** + * spi_nor_info_init_params() - Initialize the flash's parameters and settings + * based on nor->info data. + * @nor: pointer to a 'struct spi-nor'. + */ +static void spi_nor_info_init_params(struct spi_nor *nor) +{ + struct spi_nor_flash_parameter *params = &nor->params; + struct spi_nor_erase_map *map = ¶ms->erase_map; + const struct flash_info *info = nor->info; + struct device_node *np = spi_nor_get_flash_node(nor); + u8 i, erase_mask; + + /* Initialize legacy flash parameters and settings. */ + params->quad_enable = spi_nor_sr2_bit1_quad_enable; + params->set_4byte = spansion_set_4byte; + params->setup = spi_nor_default_setup; + /* Default to 16-bit Write Status (01h) Command */ + nor->flags |= SNOR_F_HAS_16BIT_SR; + + /* Set SPI NOR sizes. */ + params->size = (u64)info->sector_size * info->n_sectors; + params->page_size = info->page_size; + + if (!(info->flags & SPI_NOR_NO_FR)) { + /* Default to Fast Read for DT and non-DT platform devices. */ + params->hwcaps.mask |= SNOR_HWCAPS_READ_FAST; + + /* Mask out Fast Read if not requested at DT instantiation. */ + if (np && !of_property_read_bool(np, "m25p,fast-read")) + params->hwcaps.mask &= ~SNOR_HWCAPS_READ_FAST; + } + + /* (Fast) Read settings. */ + params->hwcaps.mask |= SNOR_HWCAPS_READ; + spi_nor_set_read_settings(¶ms->reads[SNOR_CMD_READ], + 0, 0, SPINOR_OP_READ, + SNOR_PROTO_1_1_1); + + if (params->hwcaps.mask & SNOR_HWCAPS_READ_FAST) + spi_nor_set_read_settings(¶ms->reads[SNOR_CMD_READ_FAST], + 0, 8, SPINOR_OP_READ_FAST, + SNOR_PROTO_1_1_1); + + if (info->flags & SPI_NOR_DUAL_READ) { + params->hwcaps.mask |= SNOR_HWCAPS_READ_1_1_2; + spi_nor_set_read_settings(¶ms->reads[SNOR_CMD_READ_1_1_2], + 0, 8, SPINOR_OP_READ_1_1_2, + SNOR_PROTO_1_1_2); + } + + if (info->flags & SPI_NOR_QUAD_READ) { + params->hwcaps.mask |= SNOR_HWCAPS_READ_1_1_4; + spi_nor_set_read_settings(¶ms->reads[SNOR_CMD_READ_1_1_4], + 0, 8, SPINOR_OP_READ_1_1_4, + SNOR_PROTO_1_1_4); + } + + if (info->flags & SPI_NOR_OCTAL_READ) { + params->hwcaps.mask |= SNOR_HWCAPS_READ_1_1_8; + spi_nor_set_read_settings(¶ms->reads[SNOR_CMD_READ_1_1_8], + 0, 8, SPINOR_OP_READ_1_1_8, + SNOR_PROTO_1_1_8); + } + + /* Page Program settings. */ + params->hwcaps.mask |= SNOR_HWCAPS_PP; + spi_nor_set_pp_settings(¶ms->page_programs[SNOR_CMD_PP], + SPINOR_OP_PP, SNOR_PROTO_1_1_1); + + /* + * Sector Erase settings. Sort Erase Types in ascending order, with the + * smallest erase size starting at BIT(0). + */ + erase_mask = 0; + i = 0; + if (info->flags & SECT_4K_PMC) { + erase_mask |= BIT(i); + spi_nor_set_erase_type(&map->erase_type[i], 4096u, + SPINOR_OP_BE_4K_PMC); + i++; + } else if (info->flags & SECT_4K) { + erase_mask |= BIT(i); + spi_nor_set_erase_type(&map->erase_type[i], 4096u, + SPINOR_OP_BE_4K); + i++; + } + erase_mask |= BIT(i); + spi_nor_set_erase_type(&map->erase_type[i], info->sector_size, + SPINOR_OP_SE); + spi_nor_init_uniform_erase_map(map, erase_mask, params->size); +} + +static void spansion_post_sfdp_fixups(struct spi_nor *nor) +{ + if (nor->params.size <= SZ_16M) + return; + + nor->flags |= SNOR_F_4B_OPCODES; + /* No small sector erase for 4-byte command set */ + nor->erase_opcode = SPINOR_OP_SE; + nor->mtd.erasesize = nor->info->sector_size; +} + +static void s3an_post_sfdp_fixups(struct spi_nor *nor) +{ + nor->params.setup = s3an_nor_setup; +} + +/** + * spi_nor_post_sfdp_fixups() - Updates the flash's parameters and settings + * after SFDP has been parsed (is also called for SPI NORs that do not + * support RDSFDP). + * @nor: pointer to a 'struct spi_nor' + * + * Typically used to tweak various parameters that could not be extracted by + * other means (i.e. when information provided by the SFDP/flash_info tables + * are incomplete or wrong). + */ +static void spi_nor_post_sfdp_fixups(struct spi_nor *nor) +{ + switch (JEDEC_MFR(nor->info)) { + case SNOR_MFR_SPANSION: + spansion_post_sfdp_fixups(nor); + break; + + default: + break; + } + + if (nor->info->flags & SPI_S3AN) + s3an_post_sfdp_fixups(nor); + + if (nor->info->fixups && nor->info->fixups->post_sfdp) + nor->info->fixups->post_sfdp(nor); +} + +/** + * spi_nor_late_init_params() - Late initialization of default flash parameters. + * @nor: pointer to a 'struct spi_nor' + * + * Used to set default flash parameters and settings when the ->default_init() + * hook or the SFDP parser let voids. + */ +static void spi_nor_late_init_params(struct spi_nor *nor) +{ + /* + * NOR protection support. When locking_ops are not provided, we pick + * the default ones. + */ + if (nor->flags & SNOR_F_HAS_LOCK && !nor->params.locking_ops) + nor->params.locking_ops = &stm_locking_ops; +} + +/** + * spi_nor_init_params() - Initialize the flash's parameters and settings. + * @nor: pointer to a 'struct spi-nor'. + * + * The flash parameters and settings are initialized based on a sequence of + * calls that are ordered by priority: + * + * 1/ Default flash parameters initialization. The initializations are done + * based on nor->info data: + * spi_nor_info_init_params() + * + * which can be overwritten by: + * 2/ Manufacturer flash parameters initialization. The initializations are + * done based on MFR register, or when the decisions can not be done solely + * based on MFR, by using specific flash_info tweeks, ->default_init(): + * spi_nor_manufacturer_init_params() + * + * which can be overwritten by: + * 3/ SFDP flash parameters initialization. JESD216 SFDP is a standard and + * should be more accurate that the above. + * spi_nor_sfdp_init_params() + * + * Please note that there is a ->post_bfpt() fixup hook that can overwrite + * the flash parameters and settings immediately after parsing the Basic + * Flash Parameter Table. + * + * which can be overwritten by: + * 4/ Post SFDP flash parameters initialization. Used to tweak various + * parameters that could not be extracted by other means (i.e. when + * information provided by the SFDP/flash_info tables are incomplete or + * wrong). + * spi_nor_post_sfdp_fixups() + * + * 5/ Late default flash parameters initialization, used when the + * ->default_init() hook or the SFDP parser do not set specific params. + * spi_nor_late_init_params() + */ +static void spi_nor_init_params(struct spi_nor *nor) +{ + spi_nor_info_init_params(nor); + + spi_nor_manufacturer_init_params(nor); + + if ((nor->info->flags & (SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ)) && + !(nor->info->flags & SPI_NOR_SKIP_SFDP)) + spi_nor_sfdp_init_params(nor); + + spi_nor_post_sfdp_fixups(nor); + + spi_nor_late_init_params(nor); +} + +/** + * spi_nor_quad_enable() - enable Quad I/O if needed. + * @nor: pointer to a 'struct spi_nor' + * + * Return: 0 on success, -errno otherwise. + */ +static int spi_nor_quad_enable(struct spi_nor *nor) +{ + if (!nor->params.quad_enable) + return 0; + + if (!(spi_nor_get_protocol_width(nor->read_proto) == 4 || + spi_nor_get_protocol_width(nor->write_proto) == 4)) + return 0; + + return nor->params.quad_enable(nor); +} + +/** + * spi_nor_unlock_all() - Unlocks the entire flash memory array. + * @nor: pointer to a 'struct spi_nor'. + * + * Some SPI NOR flashes are write protected by default after a power-on reset + * cycle, in order to avoid inadvertent writes during power-up. Backward + * compatibility imposes to unlock the entire flash memory array at power-up + * by default. + */ +static int spi_nor_unlock_all(struct spi_nor *nor) +{ + if (nor->flags & SNOR_F_HAS_LOCK) + return spi_nor_unlock(&nor->mtd, 0, nor->params.size); + + return 0; +} + +static int spi_nor_init(struct spi_nor *nor) +{ + int err; + + err = spi_nor_quad_enable(nor); + if (err) { + dev_dbg(nor->dev, "quad mode not supported\n"); + return err; + } + + err = spi_nor_unlock_all(nor); + if (err) { + dev_dbg(nor->dev, "Failed to unlock the entire flash memory array\n"); + return err; + } + + if (nor->addr_width == 4 && !(nor->flags & SNOR_F_4B_OPCODES)) { + /* + * If the RESET# pin isn't hooked up properly, or the system + * otherwise doesn't perform a reset command in the boot + * sequence, it's impossible to 100% protect against unexpected + * reboots (e.g., crashes). Warn the user (or hopefully, system + * designer) that this is bad. + */ + WARN_ONCE(nor->flags & SNOR_F_BROKEN_RESET, + "enabling reset hack; may not recover from unexpected reboots\n"); + nor->params.set_4byte(nor, true); + } + + return 0; +} + +/* mtd resume handler */ +static void spi_nor_resume(struct mtd_info *mtd) +{ + struct spi_nor *nor = mtd_to_spi_nor(mtd); + struct device *dev = nor->dev; + int ret; + + /* re-initialize the nor chip */ + ret = spi_nor_init(nor); + if (ret) + dev_err(dev, "resume() failed\n"); +} + +void spi_nor_restore(struct spi_nor *nor) +{ + /* restore the addressing mode */ + if (nor->addr_width == 4 && !(nor->flags & SNOR_F_4B_OPCODES) && + nor->flags & SNOR_F_BROKEN_RESET) + nor->params.set_4byte(nor, false); +} +EXPORT_SYMBOL_GPL(spi_nor_restore); + +static const struct flash_info *spi_nor_match_id(const char *name) +{ + const struct flash_info *id = spi_nor_ids; + + while (id->name) { + if (!strcmp(name, id->name)) + return id; + id++; + } + return NULL; +} + +static int spi_nor_set_addr_width(struct spi_nor *nor) +{ + if (nor->addr_width) { + /* already configured from SFDP */ + } else if (nor->info->addr_width) { + nor->addr_width = nor->info->addr_width; + } else if (nor->mtd.size > 0x1000000) { + /* enable 4-byte addressing if the device exceeds 16MiB */ + nor->addr_width = 4; + } else { + nor->addr_width = 3; + } + + if (nor->addr_width > SPI_NOR_MAX_ADDR_WIDTH) { + dev_dbg(nor->dev, "address width is too large: %u\n", + nor->addr_width); + return -EINVAL; + } + + /* Set 4byte opcodes when possible. */ + if (nor->addr_width == 4 && nor->flags & SNOR_F_4B_OPCODES && + !(nor->flags & SNOR_F_HAS_4BAIT)) + spi_nor_set_4byte_opcodes(nor); + + return 0; +} + +static void spi_nor_debugfs_init(struct spi_nor *nor, + const struct flash_info *info) +{ + struct mtd_info *mtd = &nor->mtd; + + mtd->dbg.partname = info->name; + mtd->dbg.partid = devm_kasprintf(nor->dev, GFP_KERNEL, "spi-nor:%*phN", + info->id_len, info->id); +} + +static const struct flash_info *spi_nor_get_flash_info(struct spi_nor *nor, + const char *name) +{ + const struct flash_info *info = NULL; + + if (name) + info = spi_nor_match_id(name); + /* Try to auto-detect if chip name wasn't specified or not found */ + if (!info) + info = spi_nor_read_id(nor); + if (IS_ERR_OR_NULL(info)) + return ERR_PTR(-ENOENT); + + /* + * If caller has specified name of flash model that can normally be + * detected using JEDEC, let's verify it. + */ + if (name && info->id_len) { + const struct flash_info *jinfo; + + jinfo = spi_nor_read_id(nor); + if (IS_ERR(jinfo)) { + return jinfo; + } else if (jinfo != info) { + /* + * JEDEC knows better, so overwrite platform ID. We + * can't trust partitions any longer, but we'll let + * mtd apply them anyway, since some partitions may be + * marked read-only, and we don't want to lose that + * information, even if it's not 100% accurate. + */ + dev_warn(nor->dev, "found %s, expected %s\n", + jinfo->name, info->name); + info = jinfo; + } + } + + return info; +} + +int spi_nor_scan(struct spi_nor *nor, const char *name, + const struct spi_nor_hwcaps *hwcaps) +{ + const struct flash_info *info; + struct device *dev = nor->dev; + struct mtd_info *mtd = &nor->mtd; + struct device_node *np = spi_nor_get_flash_node(nor); + struct spi_nor_flash_parameter *params = &nor->params; + int ret; + int i; + + ret = spi_nor_check(nor); + if (ret) + return ret; + + /* Reset SPI protocol for all commands. */ + nor->reg_proto = SNOR_PROTO_1_1_1; + nor->read_proto = SNOR_PROTO_1_1_1; + nor->write_proto = SNOR_PROTO_1_1_1; + + /* + * We need the bounce buffer early to read/write registers when going + * through the spi-mem layer (buffers have to be DMA-able). + * For spi-mem drivers, we'll reallocate a new buffer if + * nor->page_size turns out to be greater than PAGE_SIZE (which + * shouldn't happen before long since NOR pages are usually less + * than 1KB) after spi_nor_scan() returns. + */ + nor->bouncebuf_size = PAGE_SIZE; + nor->bouncebuf = devm_kmalloc(dev, nor->bouncebuf_size, + GFP_KERNEL); + if (!nor->bouncebuf) + return -ENOMEM; + + info = spi_nor_get_flash_info(nor, name); + if (IS_ERR(info)) + return PTR_ERR(info); + + nor->info = info; + + spi_nor_debugfs_init(nor, info); + + mutex_init(&nor->lock); + + /* + * Make sure the XSR_RDY flag is set before calling + * spi_nor_wait_till_ready(). Xilinx S3AN share MFR + * with Atmel spi-nor + */ + if (info->flags & SPI_NOR_XSR_RDY) + nor->flags |= SNOR_F_READY_XSR_RDY; + + if (info->flags & SPI_NOR_HAS_LOCK) + nor->flags |= SNOR_F_HAS_LOCK; + + /* Init flash parameters based on flash_info struct and SFDP */ + spi_nor_init_params(nor); + + if (!mtd->name) + mtd->name = dev_name(dev); + mtd->priv = nor; + mtd->type = MTD_NORFLASH; + mtd->writesize = 1; + mtd->flags = MTD_CAP_NORFLASH; + mtd->size = params->size; + mtd->_erase = spi_nor_erase; + mtd->_read = spi_nor_read; + mtd->_resume = spi_nor_resume; + + if (nor->params.locking_ops) { + mtd->_lock = spi_nor_lock; + mtd->_unlock = spi_nor_unlock; + mtd->_is_locked = spi_nor_is_locked; + } + + /* sst nor chips use AAI word program */ + if (info->flags & SST_WRITE) + mtd->_write = sst_write; + else + mtd->_write = spi_nor_write; + + if (info->flags & USE_FSR) + nor->flags |= SNOR_F_USE_FSR; + if (info->flags & SPI_NOR_HAS_TB) { + nor->flags |= SNOR_F_HAS_SR_TB; + if (info->flags & SPI_NOR_TB_SR_BIT6) + nor->flags |= SNOR_F_HAS_SR_TB_BIT6; + } + + if (info->flags & NO_CHIP_ERASE) + nor->flags |= SNOR_F_NO_OP_CHIP_ERASE; + if (info->flags & USE_CLSR) + nor->flags |= SNOR_F_USE_CLSR; + + if (info->flags & SPI_NOR_NO_ERASE) + mtd->flags |= MTD_NO_ERASE; + + mtd->dev.parent = dev; + nor->page_size = params->page_size; + mtd->writebufsize = nor->page_size; + + if (of_property_read_bool(np, "broken-flash-reset")) + nor->flags |= SNOR_F_BROKEN_RESET; + + /* + * Configure the SPI memory: + * - select op codes for (Fast) Read, Page Program and Sector Erase. + * - set the number of dummy cycles (mode cycles + wait states). + * - set the SPI protocols for register and memory accesses. + */ + ret = spi_nor_setup(nor, hwcaps); + if (ret) + return ret; + + if (info->flags & SPI_NOR_4B_OPCODES) + nor->flags |= SNOR_F_4B_OPCODES; + + ret = spi_nor_set_addr_width(nor); + if (ret) + return ret; + + /* Send all the required SPI flash commands to initialize device */ + ret = spi_nor_init(nor); + if (ret) + return ret; + + dev_info(dev, "%s (%lld Kbytes)\n", info->name, + (long long)mtd->size >> 10); + + dev_dbg(dev, + "mtd .name = %s, .size = 0x%llx (%lldMiB), " + ".erasesize = 0x%.8x (%uKiB) .numeraseregions = %d\n", + mtd->name, (long long)mtd->size, (long long)(mtd->size >> 20), + mtd->erasesize, mtd->erasesize / 1024, mtd->numeraseregions); + + if (mtd->numeraseregions) + for (i = 0; i < mtd->numeraseregions; i++) + dev_dbg(dev, + "mtd.eraseregions[%d] = { .offset = 0x%llx, " + ".erasesize = 0x%.8x (%uKiB), " + ".numblocks = %d }\n", + i, (long long)mtd->eraseregions[i].offset, + mtd->eraseregions[i].erasesize, + mtd->eraseregions[i].erasesize / 1024, + mtd->eraseregions[i].numblocks); + return 0; +} +EXPORT_SYMBOL_GPL(spi_nor_scan); + +static int spi_nor_probe(struct spi_mem *spimem) +{ + struct spi_device *spi = spimem->spi; + struct flash_platform_data *data = dev_get_platdata(&spi->dev); + struct spi_nor *nor; + /* + * Enable all caps by default. The core will mask them after + * checking what's really supported using spi_mem_supports_op(). + */ + const struct spi_nor_hwcaps hwcaps = { .mask = SNOR_HWCAPS_ALL }; + char *flash_name; + int ret; + + nor = devm_kzalloc(&spi->dev, sizeof(*nor), GFP_KERNEL); + if (!nor) + return -ENOMEM; + + nor->spimem = spimem; + nor->dev = &spi->dev; + spi_nor_set_flash_node(nor, spi->dev.of_node); + + spi_mem_set_drvdata(spimem, nor); + + if (data && data->name) + nor->mtd.name = data->name; + + if (!nor->mtd.name) + nor->mtd.name = spi_mem_get_name(spimem); + + /* + * For some (historical?) reason many platforms provide two different + * names in flash_platform_data: "name" and "type". Quite often name is + * set to "m25p80" and then "type" provides a real chip name. + * If that's the case, respect "type" and ignore a "name". + */ + if (data && data->type) + flash_name = data->type; + else if (!strcmp(spi->modalias, "spi-nor")) + flash_name = NULL; /* auto-detect */ + else + flash_name = spi->modalias; + + ret = spi_nor_scan(nor, flash_name, &hwcaps); + if (ret) + return ret; + + /* + * None of the existing parts have > 512B pages, but let's play safe + * and add this logic so that if anyone ever adds support for such + * a NOR we don't end up with buffer overflows. + */ + if (nor->page_size > PAGE_SIZE) { + nor->bouncebuf_size = nor->page_size; + devm_kfree(nor->dev, nor->bouncebuf); + nor->bouncebuf = devm_kmalloc(nor->dev, + nor->bouncebuf_size, + GFP_KERNEL); + if (!nor->bouncebuf) + return -ENOMEM; + } + + return mtd_device_register(&nor->mtd, data ? data->parts : NULL, + data ? data->nr_parts : 0); +} + +static int spi_nor_remove(struct spi_mem *spimem) +{ + struct spi_nor *nor = spi_mem_get_drvdata(spimem); + + spi_nor_restore(nor); + + /* Clean up MTD stuff. */ + return mtd_device_unregister(&nor->mtd); +} + +static void spi_nor_shutdown(struct spi_mem *spimem) +{ + struct spi_nor *nor = spi_mem_get_drvdata(spimem); + + spi_nor_restore(nor); +} + +/* + * Do NOT add to this array without reading the following: + * + * Historically, many flash devices are bound to this driver by their name. But + * since most of these flash are compatible to some extent, and their + * differences can often be differentiated by the JEDEC read-ID command, we + * encourage new users to add support to the spi-nor library, and simply bind + * against a generic string here (e.g., "jedec,spi-nor"). + * + * Many flash names are kept here in this list (as well as in spi-nor.c) to + * keep them available as module aliases for existing platforms. + */ +static const struct spi_device_id spi_nor_dev_ids[] = { + /* + * Allow non-DT platform devices to bind to the "spi-nor" modalias, and + * hack around the fact that the SPI core does not provide uevent + * matching for .of_match_table + */ + {"spi-nor"}, + + /* + * Entries not used in DTs that should be safe to drop after replacing + * them with "spi-nor" in platform data. + */ + {"s25sl064a"}, {"w25x16"}, {"m25p10"}, {"m25px64"}, + + /* + * Entries that were used in DTs without "jedec,spi-nor" fallback and + * should be kept for backward compatibility. + */ + {"at25df321a"}, {"at25df641"}, {"at26df081a"}, + {"mx25l4005a"}, {"mx25l1606e"}, {"mx25l6405d"}, {"mx25l12805d"}, + {"mx25l25635e"},{"mx66l51235l"}, + {"n25q064"}, {"n25q128a11"}, {"n25q128a13"}, {"n25q512a"}, + {"s25fl256s1"}, {"s25fl512s"}, {"s25sl12801"}, {"s25fl008k"}, + {"s25fl064k"}, + {"sst25vf040b"},{"sst25vf016b"},{"sst25vf032b"},{"sst25wf040"}, + {"m25p40"}, {"m25p80"}, {"m25p16"}, {"m25p32"}, + {"m25p64"}, {"m25p128"}, + {"w25x80"}, {"w25x32"}, {"w25q32"}, {"w25q32dw"}, + {"w25q80bl"}, {"w25q128"}, {"w25q256"}, + + /* Flashes that can't be detected using JEDEC */ + {"m25p05-nonjedec"}, {"m25p10-nonjedec"}, {"m25p20-nonjedec"}, + {"m25p40-nonjedec"}, {"m25p80-nonjedec"}, {"m25p16-nonjedec"}, + {"m25p32-nonjedec"}, {"m25p64-nonjedec"}, {"m25p128-nonjedec"}, + + /* Everspin MRAMs (non-JEDEC) */ + { "mr25h128" }, /* 128 Kib, 40 MHz */ + { "mr25h256" }, /* 256 Kib, 40 MHz */ + { "mr25h10" }, /* 1 Mib, 40 MHz */ + { "mr25h40" }, /* 4 Mib, 40 MHz */ + + { }, +}; +MODULE_DEVICE_TABLE(spi, spi_nor_dev_ids); + +static const struct of_device_id spi_nor_of_table[] = { + /* + * Generic compatibility for SPI NOR that can be identified by the + * JEDEC READ ID opcode (0x9F). Use this, if possible. + */ + { .compatible = "jedec,spi-nor" }, + { /* sentinel */ }, +}; +MODULE_DEVICE_TABLE(of, spi_nor_of_table); + +/* + * REVISIT: many of these chips have deep power-down modes, which + * should clearly be entered on suspend() to minimize power use. + * And also when they're otherwise idle... + */ +static struct spi_mem_driver spi_nor_driver = { + .spidrv = { + .driver = { + .name = "spi-nor", + .of_match_table = spi_nor_of_table, + }, + .id_table = spi_nor_dev_ids, + }, + .probe = spi_nor_probe, + .remove = spi_nor_remove, + .shutdown = spi_nor_shutdown, +}; +module_spi_mem_driver(spi_nor_driver); + +MODULE_LICENSE("GPL v2"); +MODULE_AUTHOR("Huang Shijie "); +MODULE_AUTHOR("Mike Lavender"); +MODULE_DESCRIPTION("framework for SPI NOR"); only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/net/wireless/ath/ath10k/mac.c +++ linux-oem-5.6-5.6.0/drivers/net/wireless/ath/ath10k/mac.c @@ -2023,8 +2023,8 @@ if (!arvif->is_up) return; - if (!ieee80211_csa_is_complete(vif)) { - ieee80211_csa_update_counter(vif); + if (!ieee80211_beacon_cntdwn_is_complete(vif)) { + ieee80211_beacon_update_cntdwn(vif); ret = ath10k_mac_setup_bcn_tmpl(arvif); if (ret) only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/net/wireless/ath/ath10k/wmi.c +++ linux-oem-5.6-5.6.0/drivers/net/wireless/ath/ath10k/wmi.c @@ -3837,7 +3837,7 @@ * actual channel switch is done */ if (arvif->vif->csa_active && - ieee80211_csa_is_complete(arvif->vif)) { + ieee80211_beacon_cntdwn_is_complete(arvif->vif)) { ieee80211_csa_finish(arvif->vif); continue; } only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/net/wireless/ath/ath11k/Kconfig +++ linux-oem-5.6-5.6.0/drivers/net/wireless/ath/ath11k/Kconfig @@ -2,8 +2,7 @@ config ATH11K tristate "Qualcomm Technologies 802.11ax chipset support" depends on MAC80211 && HAS_DMA - depends on REMOTEPROC - depends on ARCH_QCOM || COMPILE_TEST + depends on CRYPTO_MICHAEL_MIC select ATH_COMMON select QCOM_QMI_HELPERS ---help--- @@ -12,6 +11,22 @@ If you choose to build a module, it'll be called ath11k. +config ATH11K_AHB + tristate "Atheros ath11k AHB support" + depends on ATH11K + depends on REMOTEPROC + help + This module adds support for AHB bus + +config ATH11K_PCI + tristate "Atheros ath11k PCI support" + depends on ATH11K && PCI + select MHI_BUS + select QRTR + select QRTR_MHI + help + This module adds support for PCIE bus + config ATH11K_DEBUG bool "QCA ath11k debugging" depends on ATH11K @@ -33,3 +48,12 @@ depends on ATH11K && EVENT_TRACING ---help--- Select this to use ath11k tracing infrastructure. + +config ATH11K_SPECTRAL + bool "QCA ath11k spectral scan support" + depends on ATH11K_DEBUGFS + depends on RELAY + help + Enable ath11k spectral scan support + + Say Y to enable access to the FFT/spectral data via debugfs. only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/net/wireless/ath/ath11k/Makefile +++ linux-oem-5.6-5.6.0/drivers/net/wireless/ath/ath11k/Makefile @@ -4,7 +4,6 @@ hal.o \ hal_tx.o \ hal_rx.o \ - ahb.o \ wmi.o \ mac.o \ reg.o \ @@ -15,11 +14,22 @@ dp_rx.o \ debug.o \ ce.o \ - peer.o + peer.o \ + dbring.o \ + hw.o \ + wow.o -ath11k-$(CONFIG_ATH11K_DEBUGFS) += debug_htt_stats.o debugfs_sta.o +ath11k-$(CONFIG_ATH11K_DEBUGFS) += debugfs.o debugfs_htt_stats.o debugfs_sta.o ath11k-$(CONFIG_NL80211_TESTMODE) += testmode.o ath11k-$(CONFIG_ATH11K_TRACING) += trace.o +ath11k-$(CONFIG_THERMAL) += thermal.o +ath11k-$(CONFIG_ATH11K_SPECTRAL) += spectral.o + +obj-$(CONFIG_ATH11K_AHB) += ath11k_ahb.o +ath11k_ahb-y += ahb.o + +obj-$(CONFIG_ATH11K_PCI) += ath11k_pci.o +ath11k_pci-y += mhi.o pci.o # for tracing framework to find trace.h CFLAGS_trace.o := -I$(src) only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/net/wireless/ath/ath11k/ahb.c +++ linux-oem-5.6-5.6.0/drivers/net/wireless/ath/ath11k/ahb.c @@ -10,6 +10,7 @@ #include #include "ahb.h" #include "debug.h" +#include "hif.h" #include static const struct of_device_id ath11k_ahb_of_match[] = { @@ -19,248 +20,19 @@ { .compatible = "qcom,ipq8074-wifi", .data = (void *)ATH11K_HW_IPQ8074, }, + { .compatible = "qcom,ipq6018-wifi", + .data = (void *)ATH11K_HW_IPQ6018_HW10, + }, { } }; MODULE_DEVICE_TABLE(of, ath11k_ahb_of_match); -/* Target firmware's Copy Engine configuration. */ -static const struct ce_pipe_config target_ce_config_wlan[] = { - /* CE0: host->target HTC control and raw streams */ - { - .pipenum = __cpu_to_le32(0), - .pipedir = __cpu_to_le32(PIPEDIR_OUT), - .nentries = __cpu_to_le32(32), - .nbytes_max = __cpu_to_le32(2048), - .flags = __cpu_to_le32(CE_ATTR_FLAGS), - .reserved = __cpu_to_le32(0), - }, - - /* CE1: target->host HTT + HTC control */ - { - .pipenum = __cpu_to_le32(1), - .pipedir = __cpu_to_le32(PIPEDIR_IN), - .nentries = __cpu_to_le32(32), - .nbytes_max = __cpu_to_le32(2048), - .flags = __cpu_to_le32(CE_ATTR_FLAGS), - .reserved = __cpu_to_le32(0), - }, - - /* CE2: target->host WMI */ - { - .pipenum = __cpu_to_le32(2), - .pipedir = __cpu_to_le32(PIPEDIR_IN), - .nentries = __cpu_to_le32(32), - .nbytes_max = __cpu_to_le32(2048), - .flags = __cpu_to_le32(CE_ATTR_FLAGS), - .reserved = __cpu_to_le32(0), - }, - - /* CE3: host->target WMI */ - { - .pipenum = __cpu_to_le32(3), - .pipedir = __cpu_to_le32(PIPEDIR_OUT), - .nentries = __cpu_to_le32(32), - .nbytes_max = __cpu_to_le32(2048), - .flags = __cpu_to_le32(CE_ATTR_FLAGS), - .reserved = __cpu_to_le32(0), - }, - - /* CE4: host->target HTT */ - { - .pipenum = __cpu_to_le32(4), - .pipedir = __cpu_to_le32(PIPEDIR_OUT), - .nentries = __cpu_to_le32(256), - .nbytes_max = __cpu_to_le32(256), - .flags = __cpu_to_le32(CE_ATTR_FLAGS | CE_ATTR_DIS_INTR), - .reserved = __cpu_to_le32(0), - }, - - /* CE5: target->host Pktlog */ - { - .pipenum = __cpu_to_le32(5), - .pipedir = __cpu_to_le32(PIPEDIR_IN), - .nentries = __cpu_to_le32(32), - .nbytes_max = __cpu_to_le32(2048), - .flags = __cpu_to_le32(0), - .reserved = __cpu_to_le32(0), - }, - - /* CE6: Reserved for target autonomous hif_memcpy */ - { - .pipenum = __cpu_to_le32(6), - .pipedir = __cpu_to_le32(PIPEDIR_INOUT), - .nentries = __cpu_to_le32(32), - .nbytes_max = __cpu_to_le32(65535), - .flags = __cpu_to_le32(CE_ATTR_FLAGS), - .reserved = __cpu_to_le32(0), - }, - - /* CE7 used only by Host */ - { - .pipenum = __cpu_to_le32(7), - .pipedir = __cpu_to_le32(PIPEDIR_OUT), - .nentries = __cpu_to_le32(32), - .nbytes_max = __cpu_to_le32(2048), - .flags = __cpu_to_le32(CE_ATTR_FLAGS), - .reserved = __cpu_to_le32(0), - }, - - /* CE8 target->host used only by IPA */ - { - .pipenum = __cpu_to_le32(8), - .pipedir = __cpu_to_le32(PIPEDIR_INOUT), - .nentries = __cpu_to_le32(32), - .nbytes_max = __cpu_to_le32(65535), - .flags = __cpu_to_le32(CE_ATTR_FLAGS), - .reserved = __cpu_to_le32(0), - }, - - /* CE9 host->target HTT */ - { - .pipenum = __cpu_to_le32(9), - .pipedir = __cpu_to_le32(PIPEDIR_OUT), - .nentries = __cpu_to_le32(32), - .nbytes_max = __cpu_to_le32(2048), - .flags = __cpu_to_le32(CE_ATTR_FLAGS), - .reserved = __cpu_to_le32(0), - }, - - /* CE10 target->host HTT */ - { - .pipenum = __cpu_to_le32(10), - .pipedir = __cpu_to_le32(PIPEDIR_INOUT_H2H), - .nentries = __cpu_to_le32(0), - .nbytes_max = __cpu_to_le32(0), - .flags = __cpu_to_le32(CE_ATTR_FLAGS), - .reserved = __cpu_to_le32(0), - }, - - /* CE11 Not used */ - { - .pipenum = __cpu_to_le32(0), - .pipedir = __cpu_to_le32(0), - .nentries = __cpu_to_le32(0), - .nbytes_max = __cpu_to_le32(0), - .flags = __cpu_to_le32(CE_ATTR_FLAGS), - .reserved = __cpu_to_le32(0), - }, -}; - -/* Map from service/endpoint to Copy Engine. - * This table is derived from the CE_PCI TABLE, above. - * It is passed to the Target at startup for use by firmware. - */ -static const struct service_to_pipe target_service_to_ce_map_wlan[] = { - { - .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_WMI_DATA_VO), - .pipedir = __cpu_to_le32(PIPEDIR_OUT), /* out = UL = host -> target */ - .pipenum = __cpu_to_le32(3), - }, - { - .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_WMI_DATA_VO), - .pipedir = __cpu_to_le32(PIPEDIR_IN), /* in = DL = target -> host */ - .pipenum = __cpu_to_le32(2), - }, - { - .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_WMI_DATA_BK), - .pipedir = __cpu_to_le32(PIPEDIR_OUT), /* out = UL = host -> target */ - .pipenum = __cpu_to_le32(3), - }, - { - .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_WMI_DATA_BK), - .pipedir = __cpu_to_le32(PIPEDIR_IN), /* in = DL = target -> host */ - .pipenum = __cpu_to_le32(2), - }, - { - .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_WMI_DATA_BE), - .pipedir = __cpu_to_le32(PIPEDIR_OUT), /* out = UL = host -> target */ - .pipenum = __cpu_to_le32(3), - }, - { - .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_WMI_DATA_BE), - .pipedir = __cpu_to_le32(PIPEDIR_IN), /* in = DL = target -> host */ - .pipenum = __cpu_to_le32(2), - }, - { - .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_WMI_DATA_VI), - .pipedir = __cpu_to_le32(PIPEDIR_OUT), /* out = UL = host -> target */ - .pipenum = __cpu_to_le32(3), - }, - { - .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_WMI_DATA_VI), - .pipedir = __cpu_to_le32(PIPEDIR_IN), /* in = DL = target -> host */ - .pipenum = __cpu_to_le32(2), - }, - { - .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_WMI_CONTROL), - .pipedir = __cpu_to_le32(PIPEDIR_OUT), /* out = UL = host -> target */ - .pipenum = __cpu_to_le32(3), - }, - { - .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_WMI_CONTROL), - .pipedir = __cpu_to_le32(PIPEDIR_IN), /* in = DL = target -> host */ - .pipenum = __cpu_to_le32(2), - }, - { - .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_WMI_CONTROL_MAC1), - .pipedir = __cpu_to_le32(PIPEDIR_OUT), /* out = UL = host -> target */ - .pipenum = __cpu_to_le32(7), - }, - { - .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_WMI_CONTROL_MAC1), - .pipedir = __cpu_to_le32(PIPEDIR_IN), /* in = DL = target -> host */ - .pipenum = __cpu_to_le32(2), - }, - { - .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_WMI_CONTROL_MAC2), - .pipedir = __cpu_to_le32(PIPEDIR_OUT), /* out = UL = host -> target */ - .pipenum = __cpu_to_le32(9), - }, - { - .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_WMI_CONTROL_MAC2), - .pipedir = __cpu_to_le32(PIPEDIR_IN), /* in = DL = target -> host */ - .pipenum = __cpu_to_le32(2), - }, - { - .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_RSVD_CTRL), - .pipedir = __cpu_to_le32(PIPEDIR_OUT), /* out = UL = host -> target */ - .pipenum = __cpu_to_le32(0), - }, - { - .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_RSVD_CTRL), - .pipedir = __cpu_to_le32(PIPEDIR_IN), /* in = DL = target -> host */ - .pipenum = __cpu_to_le32(1), - }, - { /* not used */ - .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_TEST_RAW_STREAMS), - .pipedir = __cpu_to_le32(PIPEDIR_OUT), /* out = UL = host -> target */ - .pipenum = __cpu_to_le32(0), - }, - { /* not used */ - .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_TEST_RAW_STREAMS), - .pipedir = __cpu_to_le32(PIPEDIR_IN), /* in = DL = target -> host */ - .pipenum = __cpu_to_le32(1), - }, - { - .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_HTT_DATA_MSG), - .pipedir = __cpu_to_le32(PIPEDIR_OUT), /* out = UL = host -> target */ - .pipenum = __cpu_to_le32(4), - }, - { - .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_HTT_DATA_MSG), - .pipedir = __cpu_to_le32(PIPEDIR_IN), /* in = DL = target -> host */ - .pipenum = __cpu_to_le32(1), - }, - { - .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_PKT_LOG), - .pipedir = __cpu_to_le32(PIPEDIR_IN), /* in = DL = target -> host */ - .pipenum = __cpu_to_le32(5), - }, - - /* (Additions here) */ - - { /* terminator entry */ } +static const struct ath11k_bus_params ath11k_ahb_bus_params = { + .mhi_support = false, + .m3_fw_support = false, + .fixed_bdf_addr = true, + .fixed_mem_region = true, }; #define ATH11K_IRQ_CE0_OFFSET 4 @@ -320,78 +92,6 @@ "tcl2host-status-ring", }; -#define ATH11K_TX_RING_MASK_0 0x1 -#define ATH11K_TX_RING_MASK_1 0x2 -#define ATH11K_TX_RING_MASK_2 0x4 - -#define ATH11K_RX_RING_MASK_0 0x1 -#define ATH11K_RX_RING_MASK_1 0x2 -#define ATH11K_RX_RING_MASK_2 0x4 -#define ATH11K_RX_RING_MASK_3 0x8 - -#define ATH11K_RX_ERR_RING_MASK_0 0x1 - -#define ATH11K_RX_WBM_REL_RING_MASK_0 0x1 - -#define ATH11K_REO_STATUS_RING_MASK_0 0x1 - -#define ATH11K_RXDMA2HOST_RING_MASK_0 0x1 -#define ATH11K_RXDMA2HOST_RING_MASK_1 0x2 -#define ATH11K_RXDMA2HOST_RING_MASK_2 0x4 - -#define ATH11K_HOST2RXDMA_RING_MASK_0 0x1 -#define ATH11K_HOST2RXDMA_RING_MASK_1 0x2 -#define ATH11K_HOST2RXDMA_RING_MASK_2 0x4 - -#define ATH11K_RX_MON_STATUS_RING_MASK_0 0x1 -#define ATH11K_RX_MON_STATUS_RING_MASK_1 0x2 -#define ATH11K_RX_MON_STATUS_RING_MASK_2 0x4 - -const u8 ath11k_tx_ring_mask[ATH11K_EXT_IRQ_GRP_NUM_MAX] = { - ATH11K_TX_RING_MASK_0, - ATH11K_TX_RING_MASK_1, - ATH11K_TX_RING_MASK_2, -}; - -const u8 rx_mon_status_ring_mask[ATH11K_EXT_IRQ_GRP_NUM_MAX] = { - 0, 0, 0, 0, - ATH11K_RX_MON_STATUS_RING_MASK_0, - ATH11K_RX_MON_STATUS_RING_MASK_1, - ATH11K_RX_MON_STATUS_RING_MASK_2, -}; - -const u8 ath11k_rx_ring_mask[ATH11K_EXT_IRQ_GRP_NUM_MAX] = { - 0, 0, 0, 0, 0, 0, 0, - ATH11K_RX_RING_MASK_0, - ATH11K_RX_RING_MASK_1, - ATH11K_RX_RING_MASK_2, - ATH11K_RX_RING_MASK_3, -}; - -const u8 ath11k_rx_err_ring_mask[ATH11K_EXT_IRQ_GRP_NUM_MAX] = { - ATH11K_RX_ERR_RING_MASK_0, -}; - -const u8 ath11k_rx_wbm_rel_ring_mask[ATH11K_EXT_IRQ_GRP_NUM_MAX] = { - ATH11K_RX_WBM_REL_RING_MASK_0, -}; - -const u8 ath11k_reo_status_ring_mask[ATH11K_EXT_IRQ_GRP_NUM_MAX] = { - ATH11K_REO_STATUS_RING_MASK_0, -}; - -const u8 ath11k_rxdma2host_ring_mask[ATH11K_EXT_IRQ_GRP_NUM_MAX] = { - ATH11K_RXDMA2HOST_RING_MASK_0, - ATH11K_RXDMA2HOST_RING_MASK_1, - ATH11K_RXDMA2HOST_RING_MASK_2, -}; - -const u8 ath11k_host2rxdma_ring_mask[ATH11K_EXT_IRQ_GRP_NUM_MAX] = { - ATH11K_HOST2RXDMA_RING_MASK_0, - ATH11K_HOST2RXDMA_RING_MASK_1, - ATH11K_HOST2RXDMA_RING_MASK_2, -}; - /* enum ext_irq_num - irq numbers that can be used by external modules * like datapath */ @@ -434,14 +134,24 @@ tcl2host_status_ring, }; +static inline u32 ath11k_ahb_read32(struct ath11k_base *ab, u32 offset) +{ + return ioread32(ab->mem + offset); +} + +static inline void ath11k_ahb_write32(struct ath11k_base *ab, u32 offset, u32 value) +{ + iowrite32(value, ab->mem + offset); +} + static void ath11k_ahb_kill_tasklets(struct ath11k_base *ab) { int i; - for (i = 0; i < CE_COUNT; i++) { + for (i = 0; i < ab->hw_params.ce_count; i++) { struct ath11k_ce_pipe *ce_pipe = &ab->ce.ce_pipe[i]; - if (ath11k_ce_get_attr_flags(i) & CE_ATTR_DIS_INTR) + if (ath11k_ce_get_attr_flags(ab, i) & CE_ATTR_DIS_INTR) continue; tasklet_kill(&ce_pipe->intr_tq); @@ -458,7 +168,6 @@ static void __ath11k_ahb_ext_irq_disable(struct ath11k_base *ab) { - struct sk_buff *skb; int i; for (i = 0; i < ATH11K_EXT_IRQ_GRP_NUM_MAX; i++) { @@ -468,9 +177,6 @@ napi_synchronize(&irq_grp->napi); napi_disable(&irq_grp->napi); - - while ((skb = __skb_dequeue(&irq_grp->pending_q))) - dev_kfree_skb_any(skb); } } @@ -502,7 +208,7 @@ { const struct ce_pipe_config *ce_config; - ce_config = &target_ce_config_wlan[ce_id]; + ce_config = &ab->hw_params.target_ce_config[ce_id]; if (__le32_to_cpu(ce_config->pipedir) & PIPEDIR_OUT) ath11k_ahb_setbit32(ab, ce_id, CE_HOST_IE_ADDRESS); @@ -517,7 +223,7 @@ { const struct ce_pipe_config *ce_config; - ce_config = &target_ce_config_wlan[ce_id]; + ce_config = &ab->hw_params.target_ce_config[ce_id]; if (__le32_to_cpu(ce_config->pipedir) & PIPEDIR_OUT) ath11k_ahb_clearbit32(ab, ce_id, CE_HOST_IE_ADDRESS); @@ -533,8 +239,8 @@ int i; int irq_idx; - for (i = 0; i < CE_COUNT; i++) { - if (ath11k_ce_get_attr_flags(i) & CE_ATTR_DIS_INTR) + for (i = 0; i < ab->hw_params.ce_count; i++) { + if (ath11k_ce_get_attr_flags(ab, i) & CE_ATTR_DIS_INTR) continue; irq_idx = ATH11K_IRQ_CE0_OFFSET + i; @@ -561,8 +267,8 @@ { int i; - for (i = 0; i < CE_COUNT; i++) { - if (ath11k_ce_get_attr_flags(i) & CE_ATTR_DIS_INTR) + for (i = 0; i < ab->hw_params.ce_count; i++) { + if (ath11k_ce_get_attr_flags(ab, i) & CE_ATTR_DIS_INTR) continue; ath11k_ahb_ce_irq_enable(ab, i); } @@ -572,14 +278,14 @@ { int i; - for (i = 0; i < CE_COUNT; i++) { - if (ath11k_ce_get_attr_flags(i) & CE_ATTR_DIS_INTR) + for (i = 0; i < ab->hw_params.ce_count; i++) { + if (ath11k_ce_get_attr_flags(ab, i) & CE_ATTR_DIS_INTR) continue; ath11k_ahb_ce_irq_disable(ab, i); } } -int ath11k_ahb_start(struct ath11k_base *ab) +static int ath11k_ahb_start(struct ath11k_base *ab) { ath11k_ahb_ce_irqs_enable(ab); ath11k_ce_rx_post_buf(ab); @@ -587,7 +293,7 @@ return 0; } -void ath11k_ahb_ext_irq_enable(struct ath11k_base *ab) +static void ath11k_ahb_ext_irq_enable(struct ath11k_base *ab) { int i; @@ -599,13 +305,13 @@ } } -void ath11k_ahb_ext_irq_disable(struct ath11k_base *ab) +static void ath11k_ahb_ext_irq_disable(struct ath11k_base *ab) { __ath11k_ahb_ext_irq_disable(ab); ath11k_ahb_sync_ext_irqs(ab); } -void ath11k_ahb_stop(struct ath11k_base *ab) +static void ath11k_ahb_stop(struct ath11k_base *ab) { if (!test_bit(ATH11K_FLAG_CRASH_FLUSH, &ab->dev_flags)) ath11k_ahb_ce_irqs_disable(ab); @@ -615,30 +321,34 @@ ath11k_ce_cleanup_pipes(ab); } -int ath11k_ahb_power_up(struct ath11k_base *ab) +static int ath11k_ahb_power_up(struct ath11k_base *ab) { + struct ath11k_ahb *ab_ahb = ath11k_ahb_priv(ab); int ret; - ret = rproc_boot(ab->tgt_rproc); + ret = rproc_boot(ab_ahb->tgt_rproc); if (ret) ath11k_err(ab, "failed to boot the remote processor Q6\n"); return ret; } -void ath11k_ahb_power_down(struct ath11k_base *ab) +static void ath11k_ahb_power_down(struct ath11k_base *ab) { - rproc_shutdown(ab->tgt_rproc); + struct ath11k_ahb *ab_ahb = ath11k_ahb_priv(ab); + + rproc_shutdown(ab_ahb->tgt_rproc); } static void ath11k_ahb_init_qmi_ce_config(struct ath11k_base *ab) { struct ath11k_qmi_ce_cfg *cfg = &ab->qmi.ce_cfg; - cfg->tgt_ce_len = ARRAY_SIZE(target_ce_config_wlan) - 1; - cfg->tgt_ce = target_ce_config_wlan; - cfg->svc_to_ce_map_len = ARRAY_SIZE(target_service_to_ce_map_wlan); - cfg->svc_to_ce_map = target_service_to_ce_map_wlan; + cfg->tgt_ce_len = ab->hw_params.target_ce_count; + cfg->tgt_ce = ab->hw_params.target_ce_config; + cfg->svc_to_ce_map_len = ab->hw_params.svc_to_ce_map_len; + cfg->svc_to_ce_map = ab->hw_params.svc_to_ce_map; + ab->qmi.service_ins_id = ATH11K_QMI_WLFW_SERVICE_INS_ID_V01_IPQ8074; } static void ath11k_ahb_free_ext_irq(struct ath11k_base *ab) @@ -658,8 +368,8 @@ int irq_idx; int i; - for (i = 0; i < CE_COUNT; i++) { - if (ath11k_ce_get_attr_flags(i) & CE_ATTR_DIS_INTR) + for (i = 0; i < ab->hw_params.ce_count; i++) { + if (ath11k_ce_get_attr_flags(ab, i) & CE_ATTR_DIS_INTR) continue; irq_idx = ATH11K_IRQ_CE0_OFFSET + i; free_irq(ab->irq_num[irq_idx], &ab->ce.ce_pipe[i]); @@ -668,9 +378,9 @@ ath11k_ahb_free_ext_irq(ab); } -static void ath11k_ahb_ce_tasklet(unsigned long data) +static void ath11k_ahb_ce_tasklet(struct tasklet_struct *t) { - struct ath11k_ce_pipe *ce_pipe = (struct ath11k_ce_pipe *)data; + struct ath11k_ce_pipe *ce_pipe = from_tasklet(ce_pipe, t, intr_tq); ath11k_ce_per_engine_service(ce_pipe->ab, ce_pipe->pipe_num); @@ -681,6 +391,9 @@ { struct ath11k_ce_pipe *ce_pipe = arg; + /* last interrupt received for this CE */ + ce_pipe->timestamp = jiffies; + ath11k_ahb_ce_irq_disable(ce_pipe->ab, ce_pipe->pipe_num); tasklet_schedule(&ce_pipe->intr_tq); @@ -712,6 +425,9 @@ { struct ath11k_ext_irq_grp *irq_grp = arg; + /* last interrupt received for this group */ + irq_grp->timestamp = jiffies; + ath11k_ahb_ext_grp_disable(irq_grp); napi_schedule(&irq_grp->napi); @@ -721,6 +437,7 @@ static int ath11k_ahb_ext_irq_config(struct ath11k_base *ab) { + struct ath11k_hw_params *hw = &ab->hw_params; int i, j; int irq; int ret; @@ -734,48 +451,47 @@ init_dummy_netdev(&irq_grp->napi_ndev); netif_napi_add(&irq_grp->napi_ndev, &irq_grp->napi, ath11k_ahb_ext_grp_napi_poll, NAPI_POLL_WEIGHT); - __skb_queue_head_init(&irq_grp->pending_q); for (j = 0; j < ATH11K_EXT_IRQ_NUM_MAX; j++) { - if (ath11k_tx_ring_mask[i] & BIT(j)) { + if (ab->hw_params.ring_mask->tx[i] & BIT(j)) { irq_grp->irqs[num_irq++] = wbm2host_tx_completions_ring1 - j; } - if (ath11k_rx_ring_mask[i] & BIT(j)) { + if (ab->hw_params.ring_mask->rx[i] & BIT(j)) { irq_grp->irqs[num_irq++] = reo2host_destination_ring1 - j; } - if (ath11k_rx_err_ring_mask[i] & BIT(j)) + if (ab->hw_params.ring_mask->rx_err[i] & BIT(j)) irq_grp->irqs[num_irq++] = reo2host_exception; - if (ath11k_rx_wbm_rel_ring_mask[i] & BIT(j)) + if (ab->hw_params.ring_mask->rx_wbm_rel[i] & BIT(j)) irq_grp->irqs[num_irq++] = wbm2host_rx_release; - if (ath11k_reo_status_ring_mask[i] & BIT(j)) + if (ab->hw_params.ring_mask->reo_status[i] & BIT(j)) irq_grp->irqs[num_irq++] = reo2host_status; - if (j < MAX_RADIOS) { - if (ath11k_rxdma2host_ring_mask[i] & BIT(j)) { + if (j < ab->hw_params.max_radios) { + if (ab->hw_params.ring_mask->rxdma2host[i] & BIT(j)) { irq_grp->irqs[num_irq++] = - rxdma2host_destination_ring_mac1 - - ath11k_core_get_hw_mac_id(ab, j); + rxdma2host_destination_ring_mac1 - + ath11k_hw_get_mac_from_pdev_id(hw, j); } - if (ath11k_host2rxdma_ring_mask[i] & BIT(j)) { + if (ab->hw_params.ring_mask->host2rxdma[i] & BIT(j)) { irq_grp->irqs[num_irq++] = - host2rxdma_host_buf_ring_mac1 - - ath11k_core_get_hw_mac_id(ab, j); + host2rxdma_host_buf_ring_mac1 - + ath11k_hw_get_mac_from_pdev_id(hw, j); } - if (rx_mon_status_ring_mask[i] & BIT(j)) { + if (ab->hw_params.ring_mask->rx_mon_status[i] & BIT(j)) { irq_grp->irqs[num_irq++] = ppdu_end_interrupts_mac1 - - ath11k_core_get_hw_mac_id(ab, j); + ath11k_hw_get_mac_from_pdev_id(hw, j); irq_grp->irqs[num_irq++] = rxdma2host_monitor_status_ring_mac1 - - ath11k_core_get_hw_mac_id(ab, j); + ath11k_hw_get_mac_from_pdev_id(hw, j); } } } @@ -787,7 +503,7 @@ irq = platform_get_irq_byname(ab->pdev, irq_name[irq_idx]); ab->irq_num[irq_idx] = irq; - irq_set_status_flags(irq, IRQ_NOAUTOEN); + irq_set_status_flags(irq, IRQ_NOAUTOEN | IRQ_DISABLE_UNLAZY); ret = request_irq(irq, ath11k_ahb_ext_interrupt_handler, IRQF_TRIGGER_RISING, irq_name[irq_idx], irq_grp); @@ -807,16 +523,15 @@ int ret; /* Configure CE irqs */ - for (i = 0; i < CE_COUNT; i++) { + for (i = 0; i < ab->hw_params.ce_count; i++) { struct ath11k_ce_pipe *ce_pipe = &ab->ce.ce_pipe[i]; - if (ath11k_ce_get_attr_flags(i) & CE_ATTR_DIS_INTR) + if (ath11k_ce_get_attr_flags(ab, i) & CE_ATTR_DIS_INTR) continue; irq_idx = ATH11K_IRQ_CE0_OFFSET + i; - tasklet_init(&ce_pipe->intr_tq, ath11k_ahb_ce_tasklet, - (unsigned long)ce_pipe); + tasklet_setup(&ce_pipe->intr_tq, ath11k_ahb_ce_tasklet); irq = platform_get_irq_byname(ab->pdev, irq_name[irq_idx]); ret = request_irq(irq, ath11k_ahb_ce_interrupt_handler, IRQF_TRIGGER_RISING, irq_name[irq_idx], @@ -833,15 +548,15 @@ return ret; } -int ath11k_ahb_map_service_to_pipe(struct ath11k_base *ab, u16 service_id, - u8 *ul_pipe, u8 *dl_pipe) +static int ath11k_ahb_map_service_to_pipe(struct ath11k_base *ab, u16 service_id, + u8 *ul_pipe, u8 *dl_pipe) { const struct service_to_pipe *entry; bool ul_set = false, dl_set = false; int i; - for (i = 0; i < ARRAY_SIZE(target_service_to_ce_map_wlan); i++) { - entry = &target_service_to_ce_map_wlan[i]; + for (i = 0; i < ab->hw_params.svc_to_ce_map_len; i++) { + entry = &ab->hw_params.svc_to_ce_map[i]; if (__le32_to_cpu(entry->service_id) != service_id) continue; @@ -876,6 +591,40 @@ return 0; } +static const struct ath11k_hif_ops ath11k_ahb_hif_ops = { + .start = ath11k_ahb_start, + .stop = ath11k_ahb_stop, + .read32 = ath11k_ahb_read32, + .write32 = ath11k_ahb_write32, + .irq_enable = ath11k_ahb_ext_irq_enable, + .irq_disable = ath11k_ahb_ext_irq_disable, + .map_service_to_pipe = ath11k_ahb_map_service_to_pipe, + .power_down = ath11k_ahb_power_down, + .power_up = ath11k_ahb_power_up, +}; + +static int ath11k_core_get_rproc(struct ath11k_base *ab) +{ + struct ath11k_ahb *ab_ahb = ath11k_ahb_priv(ab); + struct device *dev = ab->dev; + struct rproc *prproc; + phandle rproc_phandle; + + if (of_property_read_u32(dev->of_node, "qcom,rproc", &rproc_phandle)) { + ath11k_err(ab, "failed to get q6_rproc handle\n"); + return -ENOENT; + } + + prproc = rproc_get_by_phandle(rproc_phandle); + if (!prproc) { + ath11k_err(ab, "failed to get rproc\n"); + return -EINVAL; + } + ab_ahb->tgt_rproc = prproc; + + return 0; +} + static int ath11k_ahb_probe(struct platform_device *pdev) { struct ath11k_base *ab; @@ -890,13 +639,7 @@ return -EINVAL; } - mem_res = platform_get_resource(pdev, IORESOURCE_MEM, 0); - if (!mem_res) { - dev_err(&pdev->dev, "failed to get IO memory resource\n"); - return -ENXIO; - } - - mem = devm_ioremap_resource(&pdev->dev, mem_res); + mem = devm_platform_get_and_ioremap_resource(pdev, 0, &mem_res); if (IS_ERR(mem)) { dev_err(&pdev->dev, "ioremap error\n"); return PTR_ERR(mem); @@ -908,18 +651,25 @@ return ret; } - ab = ath11k_core_alloc(&pdev->dev); + ab = ath11k_core_alloc(&pdev->dev, sizeof(struct ath11k_ahb), + ATH11K_BUS_AHB, + &ath11k_ahb_bus_params); if (!ab) { dev_err(&pdev->dev, "failed to allocate ath11k base\n"); return -ENOMEM; } + ab->hif.ops = &ath11k_ahb_hif_ops; ab->pdev = pdev; ab->hw_rev = (enum ath11k_hw_rev)of_id->data; ab->mem = mem; ab->mem_len = resource_size(mem_res); platform_set_drvdata(pdev, ab); + ret = ath11k_core_pre_init(ab); + if (ret) + goto err_core_free; + ret = ath11k_hal_srng_init(ab); if (ret) goto err_core_free; @@ -932,9 +682,9 @@ ath11k_ahb_init_qmi_ce_config(ab); - ret = ath11k_ahb_config_irq(ab); + ret = ath11k_core_get_rproc(ab); if (ret) { - ath11k_err(ab, "failed to configure irq: %d\n", ret); + ath11k_err(ab, "failed to get rproc: %d\n", ret); goto err_ce_free; } @@ -944,6 +694,12 @@ goto err_ce_free; } + ret = ath11k_ahb_config_irq(ab); + if (ret) { + ath11k_err(ab, "failed to configure irq: %d\n", ret); + goto err_ce_free; + } + return 0; err_ce_free: @@ -962,12 +718,16 @@ static int ath11k_ahb_remove(struct platform_device *pdev) { struct ath11k_base *ab = platform_get_drvdata(pdev); + unsigned long left; reinit_completion(&ab->driver_recovery); - if (test_bit(ATH11K_FLAG_RECOVERY, &ab->dev_flags)) - wait_for_completion_timeout(&ab->driver_recovery, - ATH11K_AHB_RECOVERY_TIMEOUT); + if (test_bit(ATH11K_FLAG_RECOVERY, &ab->dev_flags)) { + left = wait_for_completion_timeout(&ab->driver_recovery, + ATH11K_AHB_RECOVERY_TIMEOUT); + if (!left) + ath11k_warn(ab, "failed to receive recovery response completion\n"); + } set_bit(ATH11K_FLAG_UNREGISTERING, &ab->dev_flags); cancel_work_sync(&ab->restart_work); @@ -992,12 +752,17 @@ .remove = ath11k_ahb_remove, }; -int ath11k_ahb_init(void) +static int ath11k_ahb_init(void) { return platform_driver_register(&ath11k_ahb_driver); } +module_init(ath11k_ahb_init); -void ath11k_ahb_exit(void) +static void ath11k_ahb_exit(void) { platform_driver_unregister(&ath11k_ahb_driver); } +module_exit(ath11k_ahb_exit); + +MODULE_DESCRIPTION("Driver support for Qualcomm Technologies 802.11ax WLAN AHB devices"); +MODULE_LICENSE("Dual BSD/GPL"); only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/net/wireless/ath/ath11k/ahb.h +++ linux-oem-5.6-5.6.0/drivers/net/wireless/ath/ath11k/ahb.h @@ -10,26 +10,12 @@ #define ATH11K_AHB_RECOVERY_TIMEOUT (3 * HZ) struct ath11k_base; -static inline u32 ath11k_ahb_read32(struct ath11k_base *ab, u32 offset) -{ - return ioread32(ab->mem + offset); -} +struct ath11k_ahb { + struct rproc *tgt_rproc; +}; -static inline void ath11k_ahb_write32(struct ath11k_base *ab, u32 offset, u32 value) +static inline struct ath11k_ahb *ath11k_ahb_priv(struct ath11k_base *ab) { - iowrite32(value, ab->mem + offset); + return (struct ath11k_ahb *)ab->drv_priv; } - -void ath11k_ahb_ext_irq_enable(struct ath11k_base *ab); -void ath11k_ahb_ext_irq_disable(struct ath11k_base *ab); -int ath11k_ahb_start(struct ath11k_base *ab); -void ath11k_ahb_stop(struct ath11k_base *ab); -int ath11k_ahb_power_up(struct ath11k_base *ab); -void ath11k_ahb_power_down(struct ath11k_base *ab); -int ath11k_ahb_map_service_to_pipe(struct ath11k_base *ab, u16 service_id, - u8 *ul_pipe, u8 *dl_pipe); - -int ath11k_ahb_init(void); -void ath11k_ahb_exit(void); - #endif only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/net/wireless/ath/ath11k/ce.c +++ linux-oem-5.6-5.6.0/drivers/net/wireless/ath/ath11k/ce.c @@ -5,8 +5,9 @@ #include "dp_rx.h" #include "debug.h" +#include "hif.h" -static const struct ce_attr host_ce_config_wlan[] = { +const struct ce_attr ath11k_host_ce_config_ipq8074[] = { /* CE0: host->target HTC control and raw streams */ { .flags = CE_ATTR_FLAGS, @@ -108,6 +109,104 @@ }, }; +const struct ce_attr ath11k_host_ce_config_qca6390[] = { + /* CE0: host->target HTC control and raw streams */ + { + .flags = CE_ATTR_FLAGS, + .src_nentries = 16, + .src_sz_max = 2048, + .dest_nentries = 0, + }, + + /* CE1: target->host HTT + HTC control */ + { + .flags = CE_ATTR_FLAGS, + .src_nentries = 0, + .src_sz_max = 2048, + .dest_nentries = 512, + .recv_cb = ath11k_htc_rx_completion_handler, + }, + + /* CE2: target->host WMI */ + { + .flags = CE_ATTR_FLAGS, + .src_nentries = 0, + .src_sz_max = 2048, + .dest_nentries = 512, + .recv_cb = ath11k_htc_rx_completion_handler, + }, + + /* CE3: host->target WMI (mac0) */ + { + .flags = CE_ATTR_FLAGS, + .src_nentries = 32, + .src_sz_max = 2048, + .dest_nentries = 0, + }, + + /* CE4: host->target HTT */ + { + .flags = CE_ATTR_FLAGS | CE_ATTR_DIS_INTR, + .src_nentries = 2048, + .src_sz_max = 256, + .dest_nentries = 0, + }, + + /* CE5: target->host pktlog */ + { + .flags = CE_ATTR_FLAGS, + .src_nentries = 0, + .src_sz_max = 2048, + .dest_nentries = 512, + .recv_cb = ath11k_dp_htt_htc_t2h_msg_handler, + }, + + /* CE6: target autonomous hif_memcpy */ + { + .flags = CE_ATTR_FLAGS | CE_ATTR_DIS_INTR, + .src_nentries = 0, + .src_sz_max = 0, + .dest_nentries = 0, + }, + + /* CE7: host->target WMI (mac1) */ + { + .flags = CE_ATTR_FLAGS, + .src_nentries = 32, + .src_sz_max = 2048, + .dest_nentries = 0, + }, + + /* CE8: target autonomous hif_memcpy */ + { + .flags = CE_ATTR_FLAGS, + .src_nentries = 0, + .src_sz_max = 0, + .dest_nentries = 0, + }, + +}; + +static bool ath11k_ce_need_shadow_fix(int ce_id) +{ + /* only ce4 needs shadow workaroud*/ + if (ce_id == 4) + return true; + return false; +} + +void ath11k_ce_stop_shadow_timers(struct ath11k_base *ab) +{ + int i; + + if (!ab->hw_params.supports_shadow_regs) + return; + + for (i = 0; i < ab->hw_params.ce_count; i++) + if (ath11k_ce_need_shadow_fix(i)) + ath11k_dp_shadow_stop_timer(ab, &ab->ce.hp_timer[i]); +} + static int ath11k_ce_rx_buf_enqueue_pipe(struct ath11k_ce_pipe *pipe, struct sk_buff *skb, dma_addr_t paddr) { @@ -352,6 +451,33 @@ } } +static void ath11k_ce_srng_msi_ring_params_setup(struct ath11k_base *ab, u32 ce_id, + struct hal_srng_params *ring_params) +{ + u32 msi_data_start; + u32 msi_data_count; + u32 msi_irq_start; + u32 addr_lo; + u32 addr_hi; + u32 vectors_32_capability; + int ret; + + ret = ath11k_get_user_msi_vector(ab, "CE", + &msi_data_count, &msi_data_start, + &msi_irq_start); + if (ret) + return; + vectors_32_capability = ab->hif.ops->is_32_vecs_support(ab); + + ath11k_get_msi_address(ab, &addr_lo, &addr_hi); + + ring_params->msi_addr = addr_lo; + ring_params->msi_addr |= (dma_addr_t)(((uint64_t)addr_hi) << 32); + ring_params->msi_data = vectors_32_capability ? + (ce_id % msi_data_count) + msi_data_start : msi_data_start; + ring_params->flags |= HAL_SRNG_FLAGS_MSI_INTR; +} + static int ath11k_ce_init_ring(struct ath11k_base *ab, struct ath11k_ce_ring *ce_ring, int ce_id, enum hal_ring_type type) @@ -363,21 +489,24 @@ params.ring_base_vaddr = ce_ring->base_addr_owner_space; params.num_entries = ce_ring->nentries; + if (!(CE_ATTR_DIS_INTR & ab->hw_params.host_ce_config[ce_id].flags)) + ath11k_ce_srng_msi_ring_params_setup(ab, ce_id, ¶ms); + switch (type) { case HAL_CE_SRC: - if (!(CE_ATTR_DIS_INTR & host_ce_config_wlan[ce_id].flags)) + if (!(CE_ATTR_DIS_INTR & ab->hw_params.host_ce_config[ce_id].flags)) params.intr_batch_cntr_thres_entries = 1; break; case HAL_CE_DST: - params.max_buffer_len = host_ce_config_wlan[ce_id].src_sz_max; - if (!(host_ce_config_wlan[ce_id].flags & CE_ATTR_DIS_INTR)) { + params.max_buffer_len = ab->hw_params.host_ce_config[ce_id].src_sz_max; + if (!(ab->hw_params.host_ce_config[ce_id].flags & CE_ATTR_DIS_INTR)) { params.intr_timer_thres_us = 1024; params.flags |= HAL_SRNG_FLAGS_LOW_THRESH_INTR_EN; params.low_threshold = ce_ring->nentries - 3; } break; case HAL_CE_DST_STATUS: - if (!(host_ce_config_wlan[ce_id].flags & CE_ATTR_DIS_INTR)) { + if (!(ab->hw_params.host_ce_config[ce_id].flags & CE_ATTR_DIS_INTR)) { params.intr_batch_cntr_thres_entries = 1; params.intr_timer_thres_us = 0x1000; } @@ -395,8 +524,15 @@ ret, ce_id); return ret; } + ce_ring->hal_ring_id = ret; + if (ab->hw_params.supports_shadow_regs && + ath11k_ce_need_shadow_fix(ce_id)) + ath11k_dp_shadow_init_timer(ab, &ab->ce.hp_timer[ce_id], + ATH11K_SHADOW_CTRL_TIMER_INTERVAL, + ce_ring->hal_ring_id); + return 0; } @@ -440,7 +576,7 @@ static int ath11k_ce_alloc_pipe(struct ath11k_base *ab, int ce_id) { struct ath11k_ce_pipe *pipe = &ab->ce.ce_pipe[ce_id]; - const struct ce_attr *attr = &host_ce_config_wlan[ce_id]; + const struct ce_attr *attr = &ab->hw_params.host_ce_config[ce_id]; struct ath11k_ce_ring *ring; int nentries; int desc_sz; @@ -494,6 +630,7 @@ if ((pipe->attr_flags & CE_ATTR_DIS_INTR) && pipe->send_cb) pipe->send_cb(pipe); } +EXPORT_SYMBOL(ath11k_ce_per_engine_service); int ath11k_ce_send(struct ath11k_base *ab, struct sk_buff *skb, u8 pipe_id, u16 transfer_id) @@ -568,6 +705,9 @@ ath11k_hal_srng_access_end(ab, srng); + if (ath11k_ce_need_shadow_fix(pipe_id)) + ath11k_dp_shadow_start_timer(ab, srng, &ab->ce.hp_timer[pipe_id]); + spin_unlock_bh(&srng->lock); spin_unlock_bh(&ab->ce.ce_lock); @@ -604,12 +744,57 @@ } } +static void ath11k_ce_shadow_config(struct ath11k_base *ab) +{ + int i; + + for (i = 0; i < ab->hw_params.ce_count; i++) { + if (ab->hw_params.host_ce_config[i].src_nentries) + ath11k_hal_srng_update_shadow_config(ab, + HAL_CE_SRC, i); + + if (ab->hw_params.host_ce_config[i].dest_nentries) { + ath11k_hal_srng_update_shadow_config(ab, + HAL_CE_DST, i); + + ath11k_hal_srng_update_shadow_config(ab, + HAL_CE_DST_STATUS, i); + } + } +} + +void ath11k_ce_get_shadow_config(struct ath11k_base *ab, + u32 **shadow_cfg, u32 *shadow_cfg_len) +{ + if (!ab->hw_params.supports_shadow_regs) + return; + + ath11k_hal_srng_get_shadow_config(ab, shadow_cfg, shadow_cfg_len); + + /* shadow is already configured */ + if (*shadow_cfg_len) + return; + + /* shadow isn't configured yet, configure now. + * non-CE srngs are configured firstly, then + * all CE srngs. + */ + ath11k_hal_srng_shadow_config(ab); + ath11k_ce_shadow_config(ab); + + /* get the shadow configuration */ + ath11k_hal_srng_get_shadow_config(ab, shadow_cfg, shadow_cfg_len); +} +EXPORT_SYMBOL(ath11k_ce_get_shadow_config); + void ath11k_ce_cleanup_pipes(struct ath11k_base *ab) { struct ath11k_ce_pipe *pipe; int pipe_num; - for (pipe_num = 0; pipe_num < CE_COUNT; pipe_num++) { + ath11k_ce_stop_shadow_timers(ab); + + for (pipe_num = 0; pipe_num < ab->hw_params.ce_count; pipe_num++) { pipe = &ab->ce.ce_pipe[pipe_num]; ath11k_ce_rx_pipe_cleanup(pipe); @@ -619,6 +804,7 @@ /* NOTE: Should we also clean up tx buffer in all pipes? */ } } +EXPORT_SYMBOL(ath11k_ce_cleanup_pipes); void ath11k_ce_rx_post_buf(struct ath11k_base *ab) { @@ -626,7 +812,7 @@ int i; int ret; - for (i = 0; i < CE_COUNT; i++) { + for (i = 0; i < ab->hw_params.ce_count; i++) { pipe = &ab->ce.ce_pipe[i]; ret = ath11k_ce_rx_post_pipe(pipe); if (ret) { @@ -642,6 +828,7 @@ } } } +EXPORT_SYMBOL(ath11k_ce_rx_post_buf); void ath11k_ce_rx_replenish_retry(struct timer_list *t) { @@ -656,7 +843,10 @@ int i; int ret; - for (i = 0; i < CE_COUNT; i++) { + ath11k_ce_get_shadow_config(ab, &ab->qmi.ce_cfg.shadow_reg_v2, + &ab->qmi.ce_cfg.shadow_reg_v2_len); + + for (i = 0; i < ab->hw_params.ce_count; i++) { pipe = &ab->ce.ce_pipe[i]; if (pipe->src_ring) { @@ -714,9 +904,12 @@ int desc_sz; int i; - for (i = 0; i < CE_COUNT; i++) { + for (i = 0; i < ab->hw_params.ce_count; i++) { pipe = &ab->ce.ce_pipe[i]; + if (ath11k_ce_need_shadow_fix(i)) + ath11k_dp_shadow_stop_timer(ab, &ab->ce.hp_timer[i]); + if (pipe->src_ring) { desc_sz = ath11k_hal_ce_get_desc_size(HAL_CE_DESC_SRC); dma_free_coherent(ab->dev, @@ -752,6 +945,7 @@ } } } +EXPORT_SYMBOL(ath11k_ce_free_pipes); int ath11k_ce_alloc_pipes(struct ath11k_base *ab) { @@ -762,8 +956,8 @@ spin_lock_init(&ab->ce.ce_lock); - for (i = 0; i < CE_COUNT; i++) { - attr = &host_ce_config_wlan[i]; + for (i = 0; i < ab->hw_params.ce_count; i++) { + attr = &ab->hw_params.host_ce_config[i]; pipe = &ab->ce.ce_pipe[i]; pipe->pipe_num = i; pipe->ab = ab; @@ -779,6 +973,7 @@ return 0; } +EXPORT_SYMBOL(ath11k_ce_alloc_pipes); /* For Big Endian Host, Copy Engine byte_swap is enabled * When Copy Engine does byte_swap, need to byte swap again for the @@ -799,10 +994,11 @@ } } -int ath11k_ce_get_attr_flags(int ce_id) +int ath11k_ce_get_attr_flags(struct ath11k_base *ab, int ce_id) { - if (ce_id >= CE_COUNT) + if (ce_id >= ab->hw_params.ce_count) return -EINVAL; - return host_ce_config_wlan[ce_id].flags; + return ab->hw_params.host_ce_config[ce_id].flags; } +EXPORT_SYMBOL(ath11k_ce_get_attr_flags); only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/net/wireless/ath/ath11k/ce.h +++ linux-oem-5.6-5.6.0/drivers/net/wireless/ath/ath11k/ce.h @@ -6,7 +6,7 @@ #ifndef ATH11K_CE_H #define ATH11K_CE_H -#define CE_COUNT 12 +#define CE_COUNT_MAX 12 /* Byte swap data words */ #define CE_ATTR_BYTE_SWAP_DATA 2 @@ -161,14 +161,19 @@ struct ath11k_ce_ring *src_ring; struct ath11k_ce_ring *dest_ring; struct ath11k_ce_ring *status_ring; + u64 timestamp; }; struct ath11k_ce { - struct ath11k_ce_pipe ce_pipe[CE_COUNT]; + struct ath11k_ce_pipe ce_pipe[CE_COUNT_MAX]; /* Protects rings of all ce pipes */ spinlock_t ce_lock; + struct ath11k_hp_update_timer hp_timer[CE_COUNT_MAX]; }; +extern const struct ce_attr ath11k_host_ce_config_ipq8074[]; +extern const struct ce_attr ath11k_host_ce_config_qca6390[]; + void ath11k_ce_cleanup_pipes(struct ath11k_base *ab); void ath11k_ce_rx_replenish_retry(struct timer_list *t); void ath11k_ce_per_engine_service(struct ath11k_base *ab, u16 ce_id); @@ -178,6 +183,13 @@ int ath11k_ce_init_pipes(struct ath11k_base *ab); int ath11k_ce_alloc_pipes(struct ath11k_base *ab); void ath11k_ce_free_pipes(struct ath11k_base *ab); -int ath11k_ce_get_attr_flags(int ce_id); +int ath11k_ce_get_attr_flags(struct ath11k_base *ab, int ce_id); void ath11k_ce_poll_send_completed(struct ath11k_base *ab, u8 pipe_id); +int ath11k_ce_map_service_to_pipe(struct ath11k_base *ab, u16 service_id, + u8 *ul_pipe, u8 *dl_pipe); +int ath11k_ce_attr_attach(struct ath11k_base *ab); +void ath11k_ce_get_shadow_config(struct ath11k_base *ab, + u32 **shadow_cfg, u32 *shadow_cfg_len); +void ath11k_ce_stop_shadow_timers(struct ath11k_base *ab); + #endif only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/net/wireless/ath/ath11k/core.c +++ linux-oem-5.6-5.6.0/drivers/net/wireless/ath/ath11k/core.c @@ -7,49 +7,147 @@ #include #include #include -#include "ahb.h" #include "core.h" #include "dp_tx.h" #include "dp_rx.h" #include "debug.h" +#include "hif.h" +#include "wow.h" unsigned int ath11k_debug_mask; +EXPORT_SYMBOL(ath11k_debug_mask); module_param_named(debug_mask, ath11k_debug_mask, uint, 0644); MODULE_PARM_DESC(debug_mask, "Debugging mask"); -static const struct ath11k_hw_params ath11k_hw_params = { - .name = "ipq8074", - .fw = { - .dir = IPQ8074_FW_DIR, - .board_size = IPQ8074_MAX_BOARD_DATA_SZ, - .cal_size = IPQ8074_MAX_CAL_DATA_SZ, +static unsigned int ath11k_crypto_mode; +module_param_named(crypto_mode, ath11k_crypto_mode, uint, 0644); +MODULE_PARM_DESC(crypto_mode, "crypto mode: 0-hardware, 1-software"); + +/* frame mode values are mapped as per enum ath11k_hw_txrx_mode */ +unsigned int ath11k_frame_mode = ATH11K_HW_TXRX_NATIVE_WIFI; +module_param_named(frame_mode, ath11k_frame_mode, uint, 0644); +MODULE_PARM_DESC(frame_mode, + "Datapath frame mode (0: raw, 1: native wifi (default), 2: ethernet)"); + +static const struct ath11k_hw_params ath11k_hw_params[] = { + { + .hw_rev = ATH11K_HW_IPQ8074, + .name = "ipq8074 hw2.0", + .fw = { + .dir = "IPQ8074/hw2.0", + .board_size = 256 * 1024, + .cal_size = 256 * 1024, + }, + .max_radios = 3, + .bdf_addr = 0x4B0C0000, + .hw_ops = &ipq8074_ops, + .ring_mask = &ath11k_hw_ring_mask_ipq8074, + .internal_sleep_clock = false, + .regs = &ipq8074_regs, + .host_ce_config = ath11k_host_ce_config_ipq8074, + .ce_count = 12, + .target_ce_config = ath11k_target_ce_config_wlan_ipq8074, + .target_ce_count = 11, + .svc_to_ce_map = ath11k_target_service_to_ce_map_wlan_ipq8074, + .svc_to_ce_map_len = 21, + .single_pdev_only = false, + .rxdma1_enable = true, + .num_rxmda_per_pdev = 1, + .rx_mac_buf_ring = false, + .vdev_start_delay = false, + .htt_peer_map_v2 = true, + .tcl_0_only = false, + .spectral_fft_sz = 2, + + .interface_modes = BIT(NL80211_IFTYPE_STATION) | + BIT(NL80211_IFTYPE_AP) | + BIT(NL80211_IFTYPE_MESH_POINT), + .supports_monitor = true, + .supports_shadow_regs = false, + .idle_ps = false, + .support_suspend = false, + }, + { + .hw_rev = ATH11K_HW_IPQ6018_HW10, + .name = "ipq6018 hw1.0", + .fw = { + .dir = "IPQ6018/hw1.0", + .board_size = 256 * 1024, + .cal_size = 256 * 1024, + }, + .max_radios = 2, + .bdf_addr = 0x4ABC0000, + .hw_ops = &ipq6018_ops, + .ring_mask = &ath11k_hw_ring_mask_ipq8074, + .internal_sleep_clock = false, + .regs = &ipq8074_regs, + .host_ce_config = ath11k_host_ce_config_ipq8074, + .ce_count = 12, + .target_ce_config = ath11k_target_ce_config_wlan_ipq8074, + .target_ce_count = 11, + .svc_to_ce_map = ath11k_target_service_to_ce_map_wlan_ipq6018, + .svc_to_ce_map_len = 19, + .single_pdev_only = false, + .rxdma1_enable = true, + .num_rxmda_per_pdev = 1, + .rx_mac_buf_ring = false, + .vdev_start_delay = false, + .htt_peer_map_v2 = true, + .tcl_0_only = false, + .spectral_fft_sz = 4, + + .interface_modes = BIT(NL80211_IFTYPE_STATION) | + BIT(NL80211_IFTYPE_AP) | + BIT(NL80211_IFTYPE_MESH_POINT), + .supports_monitor = true, + .supports_shadow_regs = false, + .idle_ps = false, + .support_suspend = false, + }, + { + .name = "qca6390 hw2.0", + .hw_rev = ATH11K_HW_QCA6390_HW20, + .fw = { + .dir = "QCA6390/hw2.0", + .board_size = 256 * 1024, + .cal_size = 256 * 1024, + }, + .max_radios = 3, + .bdf_addr = 0x4B0C0000, + .hw_ops = &qca6390_ops, + .ring_mask = &ath11k_hw_ring_mask_qca6390, + .internal_sleep_clock = true, + .regs = &qca6390_regs, + .host_ce_config = ath11k_host_ce_config_qca6390, + .ce_count = 9, + .target_ce_config = ath11k_target_ce_config_wlan_qca6390, + .target_ce_count = 9, + .svc_to_ce_map = ath11k_target_service_to_ce_map_wlan_qca6390, + .svc_to_ce_map_len = 14, + .single_pdev_only = true, + .rxdma1_enable = false, + .num_rxmda_per_pdev = 2, + .rx_mac_buf_ring = true, + .vdev_start_delay = true, + .htt_peer_map_v2 = false, + .tcl_0_only = true, + .spectral_fft_sz = 0, + + .interface_modes = BIT(NL80211_IFTYPE_STATION) | + BIT(NL80211_IFTYPE_AP), + .supports_monitor = false, + .supports_shadow_regs = true, + .idle_ps = true, + .support_suspend = true, }, }; -/* Map from pdev index to hw mac index */ -u8 ath11k_core_get_hw_mac_id(struct ath11k_base *ab, int pdev_idx) -{ - switch (pdev_idx) { - case 0: - return 0; - case 1: - return 2; - case 2: - return 1; - default: - ath11k_warn(ab, "Invalid pdev idx %d\n", pdev_idx); - return ATH11K_INVALID_HW_MAC_ID; - } -} - static int ath11k_core_create_board_name(struct ath11k_base *ab, char *name, size_t name_len) { - /* Note: bus is fixed to ahb. When other bus type supported, - * make it to dynamic. - */ scnprintf(name, name_len, - "bus=ahb,qmi-chip-id=%d,qmi-board-id=%d", + "bus=%s,qmi-chip-id=%d,qmi-board-id=%d", + ath11k_bus_str(ab->hif.bus), ab->qmi.target.chip_id, ab->qmi.target.board_id); @@ -58,29 +156,24 @@ return 0; } -static const struct firmware *ath11k_fetch_fw_file(struct ath11k_base *ab, - const char *dir, - const char *file) +const struct firmware *ath11k_core_firmware_request(struct ath11k_base *ab, + const char *file) { - char filename[100]; const struct firmware *fw; + char path[100]; int ret; if (file == NULL) return ERR_PTR(-ENOENT); - if (dir == NULL) - dir = "."; - - snprintf(filename, sizeof(filename), "%s/%s", dir, file); - ret = firmware_request_nowarn(&fw, filename, ab->dev); - ath11k_dbg(ab, ATH11K_DBG_BOOT, "boot fw request '%s': %d\n", - filename, ret); + ath11k_core_create_firmware_path(ab, file, path, sizeof(path)); + ret = firmware_request_nowarn(&fw, path, ab->dev); if (ret) return ERR_PTR(ret); - ath11k_warn(ab, "Downloading BDF: %s, size: %zu\n", - filename, fw->size); + + ath11k_dbg(ab, ATH11K_DBG_BOOT, "boot firmware request %s size %zu\n", + path, fw->size); return fw; } @@ -180,26 +273,30 @@ { size_t len, magic_len; const u8 *data; - char *filename = ATH11K_BOARD_API2_FILE; + char *filename, filepath[100]; size_t ie_len; struct ath11k_fw_ie *hdr; int ret, ie_id; + filename = ATH11K_BOARD_API2_FILE; + if (!bd->fw) - bd->fw = ath11k_fetch_fw_file(ab, - ab->hw_params.fw.dir, - filename); + bd->fw = ath11k_core_firmware_request(ab, filename); + if (IS_ERR(bd->fw)) return PTR_ERR(bd->fw); data = bd->fw->data; len = bd->fw->size; + ath11k_core_create_firmware_path(ab, filename, + filepath, sizeof(filepath)); + /* magic has extra null byte padded */ magic_len = strlen(ATH11K_BOARD_MAGIC) + 1; if (len < magic_len) { - ath11k_err(ab, "failed to find magic value in %s/%s, file too short: %zu\n", - ab->hw_params.fw.dir, filename, len); + ath11k_err(ab, "failed to find magic value in %s, file too short: %zu\n", + filepath, len); ret = -EINVAL; goto err; } @@ -213,8 +310,8 @@ /* magic is padded to 4 bytes */ magic_len = ALIGN(magic_len, 4); if (len < magic_len) { - ath11k_err(ab, "failed: %s/%s too small to contain board data, len: %zu\n", - ab->hw_params.fw.dir, filename, len); + ath11k_err(ab, "failed: %s too small to contain board data, len: %zu\n", + filepath, len); ret = -EINVAL; goto err; } @@ -262,8 +359,8 @@ out: if (!bd->data || !bd->len) { ath11k_err(ab, - "failed to fetch board data for %s from %s/%s\n", - boardname, ab->hw_params.fw.dir, filename); + "failed to fetch board data for %s from %s\n", + boardname, filepath); ret = -ENODATA; goto err; } @@ -278,9 +375,7 @@ static int ath11k_core_fetch_board_data_api_1(struct ath11k_base *ab, struct ath11k_board_data *bd) { - bd->fw = ath11k_fetch_fw_file(ab, - ab->hw_params.fw.dir, - ATH11K_DEFAULT_BOARD_FILE); + bd->fw = ath11k_core_firmware_request(ab, ATH11K_DEFAULT_BOARD_FILE); if (IS_ERR(bd->fw)) return PTR_ERR(bd->fw); @@ -324,7 +419,8 @@ { if (!test_bit(ATH11K_FLAG_CRASH_FLUSH, &ab->dev_flags)) ath11k_qmi_firmware_stop(ab); - ath11k_ahb_stop(ab); + + ath11k_hif_stop(ab); ath11k_wmi_detach(ab); ath11k_dp_pdev_reo_cleanup(ab); @@ -341,13 +437,13 @@ return ret; } - ret = ath11k_debug_soc_create(ab); + ret = ath11k_debugfs_soc_create(ab); if (ret) { ath11k_err(ab, "failed to create ath11k debugfs\n"); goto err_qmi_deinit; } - ret = ath11k_ahb_power_up(ab); + ret = ath11k_hif_power_up(ab); if (ret) { ath11k_err(ab, "failed to power up :%d\n", ret); goto err_debugfs_reg; @@ -356,7 +452,7 @@ return 0; err_debugfs_reg: - ath11k_debug_soc_destroy(ab); + ath11k_debugfs_soc_destroy(ab); err_qmi_deinit: ath11k_qmi_deinit_service(ab); return ret; @@ -364,7 +460,7 @@ static void ath11k_core_soc_destroy(struct ath11k_base *ab) { - ath11k_debug_soc_destroy(ab); + ath11k_debugfs_soc_destroy(ab); ath11k_dp_free(ab); ath11k_reg_free(ab); ath11k_qmi_deinit_service(ab); @@ -374,7 +470,7 @@ { int ret; - ret = ath11k_debug_pdev_create(ab); + ret = ath11k_debugfs_pdev_create(ab); if (ret) { ath11k_err(ab, "failed to create core pdev debugfs: %d\n", ret); return ret; @@ -392,23 +488,41 @@ goto err_mac_unregister; } + ret = ath11k_thermal_register(ab); + if (ret) { + ath11k_err(ab, "could not register thermal device: %d\n", + ret); + goto err_dp_pdev_free; + } + + ret = ath11k_spectral_init(ab); + if (ret) { + ath11k_err(ab, "failed to init spectral %d\n", ret); + goto err_thermal_unregister; + } + return 0; +err_thermal_unregister: + ath11k_thermal_unregister(ab); +err_dp_pdev_free: + ath11k_dp_pdev_free(ab); err_mac_unregister: ath11k_mac_unregister(ab); - err_pdev_debug: - ath11k_debug_pdev_destroy(ab); + ath11k_debugfs_pdev_destroy(ab); return ret; } static void ath11k_core_pdev_destroy(struct ath11k_base *ab) { + ath11k_spectral_deinit(ab); + ath11k_thermal_unregister(ab); ath11k_mac_unregister(ab); - ath11k_ahb_ext_irq_disable(ab); + ath11k_hif_irq_disable(ab); ath11k_dp_pdev_free(ab); - ath11k_debug_pdev_destroy(ab); + ath11k_debugfs_pdev_destroy(ab); } static int ath11k_core_start(struct ath11k_base *ab, @@ -434,7 +548,7 @@ goto err_wmi_detach; } - ret = ath11k_ahb_start(ab); + ret = ath11k_hif_start(ab); if (ret) { ath11k_err(ab, "failed to start HIF: %d\n", ret); goto err_wmi_detach; @@ -499,6 +613,15 @@ goto err_reo_cleanup; } + // put hardware to DBS mode + if (ab->hw_params.single_pdev_only) { + ret = ath11k_wmi_set_hw_mode(ab, 1); + if (ret) { + ath11k_err(ab, "failed to send dbs mode: %d\n", ret); + goto err_hif_stop; + } + } + ret = ath11k_dp_tx_htt_h2t_ver_req_msg(ab); if (ret) { ath11k_err(ab, "failed to send htt version request message: %d\n", @@ -513,7 +636,7 @@ err_mac_destroy: ath11k_mac_destroy(ab); err_hif_stop: - ath11k_ahb_stop(ab); + ath11k_hif_stop(ab); err_wmi_detach: ath11k_wmi_detach(ab); err_firmware_stop: @@ -538,6 +661,23 @@ return ret; } + switch (ath11k_crypto_mode) { + case ATH11K_CRYPT_MODE_SW: + set_bit(ATH11K_FLAG_HW_CRYPTO_DISABLED, &ab->dev_flags); + set_bit(ATH11K_FLAG_RAW_MODE, &ab->dev_flags); + break; + case ATH11K_CRYPT_MODE_HW: + clear_bit(ATH11K_FLAG_HW_CRYPTO_DISABLED, &ab->dev_flags); + clear_bit(ATH11K_FLAG_RAW_MODE, &ab->dev_flags); + break; + default: + ath11k_info(ab, "invalid crypto_mode: %d\n", ath11k_crypto_mode); + return -EINVAL; + } + + if (ath11k_frame_mode == ATH11K_HW_TXRX_RAW) + set_bit(ATH11K_FLAG_RAW_MODE, &ab->dev_flags); + mutex_lock(&ab->core_lock); ret = ath11k_core_start(ab, ATH11K_FIRMWARE_MODE_NORMAL); if (ret) { @@ -550,7 +690,7 @@ ath11k_err(ab, "failed to create pdev core: %d\n", ret); goto err_core_stop; } - ath11k_ahb_ext_irq_enable(ab); + ath11k_hif_irq_enable(ab); mutex_unlock(&ab->core_lock); return 0; @@ -569,9 +709,11 @@ int ret; mutex_lock(&ab->core_lock); - ath11k_ahb_ext_irq_disable(ab); + ath11k_thermal_unregister(ab); + ath11k_hif_irq_disable(ab); ath11k_dp_pdev_free(ab); - ath11k_ahb_stop(ab); + ath11k_spectral_deinit(ab); + ath11k_hif_stop(ab); ath11k_wmi_detach(ab); ath11k_dp_pdev_reo_cleanup(ab); mutex_unlock(&ab->core_lock); @@ -607,6 +749,7 @@ lockdep_assert_held(&ar->conf_mutex); ar->num_created_vdevs = 0; + ar->allocated_vdev_map = 0; ath11k_mac_scan_finish(ar); ath11k_mac_peer_cleanup_all(ar); @@ -641,9 +784,12 @@ complete(&ar->scan.started); complete(&ar->scan.completed); complete(&ar->peer_assoc_done); + complete(&ar->peer_delete_done); complete(&ar->install_key_done); complete(&ar->vdev_setup_done); + complete(&ar->vdev_delete_done); complete(&ar->bss_survey_done); + complete(&ar->thermal.wmi_sync); wake_up(&ar->dp.tx_empty_waitq); idr_for_each(&ar->txmgmt_idr, @@ -683,7 +829,7 @@ break; case ATH11K_STATE_RESTARTED: ar->state = ATH11K_STATE_WEDGED; - /* fall through */ + fallthrough; case ATH11K_STATE_WEDGED: ath11k_warn(ab, "device is wedged, will not restart radio %d\n", i); @@ -694,25 +840,47 @@ complete(&ab->driver_recovery); } -int ath11k_core_init(struct ath11k_base *ab) +static int ath11k_init_hw_params(struct ath11k_base *ab) { - struct device *dev = ab->dev; - struct rproc *prproc; - phandle rproc_phandle; - int ret; + const struct ath11k_hw_params *hw_params = NULL; + int i; + + for (i = 0; i < ARRAY_SIZE(ath11k_hw_params); i++) { + hw_params = &ath11k_hw_params[i]; - if (of_property_read_u32(dev->of_node, "qcom,rproc", &rproc_phandle)) { - ath11k_err(ab, "failed to get q6_rproc handle\n"); - return -ENOENT; + if (hw_params->hw_rev == ab->hw_rev) + break; } - prproc = rproc_get_by_phandle(rproc_phandle); - if (!prproc) { - ath11k_err(ab, "failed to get rproc\n"); + if (i == ARRAY_SIZE(ath11k_hw_params)) { + ath11k_err(ab, "Unsupported hardware version: 0x%x\n", ab->hw_rev); return -EINVAL; } - ab->tgt_rproc = prproc; - ab->hw_params = ath11k_hw_params; + + ab->hw_params = *hw_params; + + ath11k_dbg(ab, ATH11K_DBG_BOOT, "Hardware name %s\n", ab->hw_params.name); + + return 0; +} + +int ath11k_core_pre_init(struct ath11k_base *ab) +{ + int ret; + + ret = ath11k_init_hw_params(ab); + if (ret) { + ath11k_err(ab, "failed to get hw params: %d\n", ret); + return ret; + } + + return 0; +} +EXPORT_SYMBOL(ath11k_core_pre_init); + +int ath11k_core_init(struct ath11k_base *ab) +{ + int ret; ret = ath11k_core_soc_create(ab); if (ret) { @@ -722,6 +890,7 @@ return 0; } +EXPORT_SYMBOL(ath11k_core_init); void ath11k_core_deinit(struct ath11k_base *ab) { @@ -732,21 +901,25 @@ mutex_unlock(&ab->core_lock); - ath11k_ahb_power_down(ab); + ath11k_hif_power_down(ab); ath11k_mac_destroy(ab); ath11k_core_soc_destroy(ab); } +EXPORT_SYMBOL(ath11k_core_deinit); void ath11k_core_free(struct ath11k_base *ab) { kfree(ab); } +EXPORT_SYMBOL(ath11k_core_free); -struct ath11k_base *ath11k_core_alloc(struct device *dev) +struct ath11k_base *ath11k_core_alloc(struct device *dev, size_t priv_size, + enum ath11k_bus bus, + const struct ath11k_bus_params *bus_params) { struct ath11k_base *ab; - ab = kzalloc(sizeof(*ab), GFP_KERNEL); + ab = kzalloc(sizeof(*ab) + priv_size, GFP_KERNEL); if (!ab) return NULL; @@ -765,6 +938,8 @@ INIT_WORK(&ab->restart_work, ath11k_core_restart); timer_setup(&ab->rx_replenish_retry, ath11k_ce_rx_replenish_retry, 0); ab->dev = dev; + ab->bus_params = *bus_params; + ab->hif.bus = bus; return ab; @@ -772,24 +947,47 @@ kfree(ab); return NULL; } +EXPORT_SYMBOL(ath11k_core_alloc); -static int __init ath11k_init(void) +int ath11k_core_suspend(struct ath11k_base *ab) { - int ret; + struct ath11k *ar = ab->pdevs[0].ar; + int ret = 0; - ret = ath11k_ahb_init(); - if (ret) - printk(KERN_ERR "failed to register ath11k ahb driver: %d\n", - ret); - return ret; + if (ab->hw_params.support_suspend) { + msleep(500); + ath11k_purge_rx_pktlog(ar, true); + ret = ath11k_wow_enable(ar); + if (ret) + return ret; + + ath11k_purge_rx_pktlog(ar, false); + ath11k_ce_stop_shadow_timers(ab); + ath11k_dp_stop_shadow_timers(ab); + + ath11k_hif_irq_disable(ab); + ath11k_hif_ce_irq_disable(ab); + return ath11k_hif_suspend(ab); + } + return 0; } -module_init(ath11k_init); +EXPORT_SYMBOL(ath11k_core_suspend); -static void __exit ath11k_exit(void) +int ath11k_core_resume(struct ath11k_base *ab) { - ath11k_ahb_exit(); + struct ath11k *ar = ab->pdevs[0].ar; + + if (ab->hw_params.support_suspend) { + ath11k_hif_resume(ab); + ath11k_hif_ce_irq_enable(ab); + ath11k_hif_irq_enable(ab); + ath11k_enable_rx_pktlog(ar); + ath11k_wow_wakeup(ar); + } + + return 0; } -module_exit(ath11k_exit); +EXPORT_SYMBOL(ath11k_core_resume); -MODULE_DESCRIPTION("Driver support for Qualcomm Technologies 802.11ax wireless chip"); +MODULE_DESCRIPTION("Core module for Qualcomm Atheros 802.11ax wireless LAN cards."); MODULE_LICENSE("Dual BSD/GPL"); only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/net/wireless/ath/ath11k/core.h +++ linux-oem-5.6-5.6.0/drivers/net/wireless/ath/ath11k/core.h @@ -20,6 +20,9 @@ #include "hw.h" #include "hal_rx.h" #include "reg.h" +#include "thermal.h" +#include "dbring.h" +#include "spectral.h" #define SM(_v, _f) (((_v) << _f##_LSB) & _f##_MASK) @@ -32,6 +35,10 @@ #define ATH11K_INVALID_HW_MAC_ID 0xFF +extern unsigned int ath11k_frame_mode; + +#define ATH11K_MON_TIMER_INTERVAL 10 + enum ath11k_supported_bw { ATH11K_BW_20 = 0, ATH11K_BW_40 = 1, @@ -51,6 +58,13 @@ #define ATH11K_VHT_MCS_MAX 9 #define ATH11K_HE_MCS_MAX 11 +enum ath11k_crypt_mode { + /* Only use hardware crypto engine */ + ATH11K_CRYPT_MODE_HW, + /* Only use software crypto */ + ATH11K_CRYPT_MODE_SW, +}; + static inline enum wme_ac ath11k_tid_to_ac(u32 tid) { return (((tid == 0) || (tid == 3)) ? WME_AC_BE : @@ -59,9 +73,14 @@ WME_AC_VO); } +enum ath11k_skb_flags { + ATH11K_SKB_HW_80211_ENCAP = BIT(0), +}; + struct ath11k_skb_cb { dma_addr_t paddr; u8 eid; + u8 flags; struct ath11k *ar; struct ieee80211_vif *vif; } __packed; @@ -76,10 +95,14 @@ u8 err_code; u8 mac_id; u8 unmapped; + u8 is_frag; + u8 tid; }; enum ath11k_hw_rev { ATH11K_HW_IPQ8074, + ATH11K_HW_QCA6390_HW20, + ATH11K_HW_IPQ6018_HW10, }; enum ath11k_firmware_mode { @@ -91,29 +114,16 @@ }; #define ATH11K_IRQ_NUM_MAX 52 -#define ATH11K_EXT_IRQ_GRP_NUM_MAX 11 #define ATH11K_EXT_IRQ_NUM_MAX 16 -extern const u8 ath11k_reo_status_ring_mask[ATH11K_EXT_IRQ_GRP_NUM_MAX]; -extern const u8 ath11k_tx_ring_mask[ATH11K_EXT_IRQ_GRP_NUM_MAX]; -extern const u8 ath11k_rx_ring_mask[ATH11K_EXT_IRQ_GRP_NUM_MAX]; -extern const u8 ath11k_rx_err_ring_mask[ATH11K_EXT_IRQ_GRP_NUM_MAX]; -extern const u8 ath11k_rx_wbm_rel_ring_mask[ATH11K_EXT_IRQ_GRP_NUM_MAX]; -extern const u8 ath11k_rxdma2host_ring_mask[ATH11K_EXT_IRQ_GRP_NUM_MAX]; -extern const u8 ath11k_host2rxdma_ring_mask[ATH11K_EXT_IRQ_GRP_NUM_MAX]; -extern const u8 rx_mon_status_ring_mask[ATH11K_EXT_IRQ_GRP_NUM_MAX]; - struct ath11k_ext_irq_grp { struct ath11k_base *ab; u32 irqs[ATH11K_EXT_IRQ_NUM_MAX]; u32 num_irq; u32 grp_id; + u64 timestamp; struct napi_struct napi; struct net_device napi_ndev; - /* Queue of pending packets, not expected to be accessed concurrently - * to avoid locking overhead. - */ - struct sk_buff_head pending_q; }; #define HEHANDLE_CAP_PHYINFO_SIZE 3 @@ -210,12 +220,16 @@ bool is_started; bool is_up; + bool spectral_enabled; u32 aid; u8 bssid[ETH_ALEN]; struct cfg80211_bitrate_mask bitrate_mask; int num_legacy_stations; int rtscts_prot_mode; int txpower; + bool rsnie_present; + bool wpaie_present; + struct ieee80211_chanctx_conf chanctx; }; struct ath11k_vif_iter { @@ -243,6 +257,8 @@ u64 pream_cnt[HAL_RX_PREAMBLE_MAX]; u64 reception_type[HAL_RX_RECEPTION_TYPE_MAX]; u64 rx_duration; + u64 dcm_count; + u64 ru_alloc_cnt[HAL_RX_RU_ALLOC_TYPE_MAX]; }; #define ATH11K_HE_MCS_NUM 12 @@ -329,9 +345,9 @@ u32 bw; u32 nss; u32 smps; + enum hal_pn_type pn_type; struct work_struct update_wk; - struct ieee80211_tx_info tx_info; struct rate_info txrate; struct rate_info last_txrate; u64 rx_duration; @@ -339,9 +355,17 @@ u8 rssi_comb; struct ath11k_htt_tx_stats *tx_stats; struct ath11k_rx_peer_stats *rx_stats; + +#ifdef CONFIG_MAC80211_DEBUGFS + /* protected by conf_mutex */ + bool aggr_mode; +#endif }; -#define ATH11K_NUM_CHANS 41 +#define ATH11K_MIN_5G_FREQ 4150 +#define ATH11K_MIN_6G_FREQ 5945 +#define ATH11K_MAX_6G_FREQ 7115 +#define ATH11K_NUM_CHANS 100 #define ATH11K_MAX_5G_CHAN 173 enum ath11k_state { @@ -385,6 +409,7 @@ u32 pktlog_mode; u32 pktlog_peer_valid; u8 pktlog_peer_addr[ETH_ALEN]; + u32 rx_filter; }; struct ath11k_per_peer_tx_stats { @@ -400,12 +425,17 @@ }; #define ATH11K_FLUSH_TIMEOUT (5 * HZ) +#define ATH11K_VDEV_DELETE_TIMEOUT_HZ (5 * HZ) struct ath11k_vdev_stop_status { bool stop_in_progress; u32 vdev_id; }; +struct ath11k_wow { + struct completion wakeup_completed; +}; + struct ath11k { struct ath11k_base *ab; struct ath11k_pdev *pdev; @@ -418,6 +448,7 @@ u32 vht_cap_info; struct ath11k_he ar_he; enum ath11k_state state; + bool supports_6ghz; struct { struct completion started; struct completion completed; @@ -474,6 +505,7 @@ u8 lmac_id; struct completion peer_assoc_done; + struct completion peer_delete_done; int install_key_status; struct completion install_key_done; @@ -481,11 +513,13 @@ int last_wmi_vdev_start_status; struct ath11k_vdev_stop_status vdev_stop_status; struct completion vdev_setup_done; + struct completion vdev_delete_done; int num_peers; int max_num_peers; u32 num_started_vdevs; u32 num_created_vdevs; + unsigned long long allocated_vdev_map; struct idr txmgmt_idr; /* protects txmgmt_idr data */ @@ -523,16 +557,25 @@ #ifdef CONFIG_ATH11K_DEBUGFS struct ath11k_debug debug; #endif +#ifdef CONFIG_ATH11K_SPECTRAL + struct ath11k_spectral spectral; +#endif bool dfs_block_radar_events; + struct ath11k_thermal thermal; + struct completion target_suspend; + bool target_suspend_ack; + struct ath11k_wow wow; }; struct ath11k_band_cap { + u32 phy_id; u32 max_bw_supported; u32 ht_cap_info; u32 he_cap_info[2]; u32 he_mcs; u32 he_cap_phy_info[PSOC_HOST_MAX_PHY_SIZE]; struct ath11k_ppe_threshold he_ppet; + u16 he_6ghz_capa; }; struct ath11k_pdev_cap { @@ -561,15 +604,52 @@ size_t len; }; +struct ath11k_bus_params { + bool mhi_support; + bool m3_fw_support; + bool fixed_bdf_addr; + bool fixed_mem_region; +}; + /* IPQ8074 HW channel counters frequency value in hertz */ #define IPQ8074_CC_FREQ_HERTZ 320000 -struct ath11k_soc_dp_rx_stats { +struct ath11k_bp_stats { + /* Head Pointer reported by the last HTT Backpressure event for the ring */ + u16 hp; + + /* Tail Pointer reported by the last HTT Backpressure event for the ring */ + u16 tp; + + /* Number of Backpressure events received for the ring */ + u32 count; + + /* Last recorded event timestamp */ + unsigned long jiffies; +}; + +struct ath11k_dp_ring_bp_stats { + struct ath11k_bp_stats umac_ring_bp_stats[HTT_SW_UMAC_RING_IDX_MAX]; + struct ath11k_bp_stats lmac_ring_bp_stats[HTT_SW_LMAC_RING_IDX_MAX][MAX_RADIOS]; +}; + +struct ath11k_soc_dp_tx_err_stats { + /* TCL Ring Descriptor unavailable */ + u32 desc_na[DP_TCL_NUM_RING_MAX]; + /* Other failures during dp_tx due to mem allocation failure + * idr unavailable etc. + */ + atomic_t misc_fail; +}; + +struct ath11k_soc_dp_stats { u32 err_ring_pkts; u32 invalid_rbm; u32 rxdma_error[HAL_REO_ENTR_RING_RXDMA_ECODE_MAX]; u32 reo_error[HAL_REO_DEST_RING_ERROR_CODE_MAX]; u32 hal_reo_error[DP_REO_DST_RING_MAX]; + struct ath11k_soc_dp_tx_err_stats tx_err; + struct ath11k_dp_ring_bp_stats bp_stats; }; /* Master structure to hold the hw data which may be used in core module */ @@ -580,7 +660,6 @@ struct ath11k_qmi qmi; struct ath11k_wmi_base wmi_ab; struct completion fw_ready; - struct rproc *tgt_rproc; int num_radios; /* HW channel counters frequency value in hertz common to all MACs */ u32 cc_freq_hz; @@ -592,7 +671,10 @@ void __iomem *mem; unsigned long mem_len; - const struct ath11k_hif_ops *hif_ops; + struct { + enum ath11k_bus bus; + const struct ath11k_hif_ops *ops; + } hif; struct ath11k_ce ce; struct timer_list rx_replenish_retry; @@ -611,13 +693,17 @@ bool wmi_ready; u32 wlan_init_status; int irq_num[ATH11K_IRQ_NUM_MAX]; + int irq_enable_flag[ATH11K_IRQ_NUM_MAX]; struct ath11k_ext_irq_grp ext_irq_grp[ATH11K_EXT_IRQ_GRP_NUM_MAX]; struct napi_struct *napi; struct ath11k_targ_cap target_caps; u32 ext_service_bitmap[WMI_SERVICE_EXT_BM_SIZE]; bool pdevs_macaddr_valid; int bd_api; + struct ath11k_hw_params hw_params; + struct ath11k_bus_params bus_params; + const struct firmware *cal_file; /* Below regd's are protected by ab->data_lock */ @@ -636,7 +722,7 @@ struct dentry *debugfs_soc; struct dentry *debugfs_ath11k; #endif - struct ath11k_soc_dp_rx_stats soc_stats; + struct ath11k_soc_dp_stats soc_stats; unsigned long dev_flags; struct completion driver_recovery; @@ -646,6 +732,17 @@ /* protected by data_lock */ u32 fw_crash_counter; } stats; + u32 pktlog_defs_checksum; + + /* Round robbin based TCL ring selector */ + atomic_t tcl_ring_selector; + + struct ath11k_dbring_cap *db_caps; + u32 num_db_cap; + + struct timer_list mon_reap_timer; + /* must be last */ + u8 drv_priv[0] __aligned(sizeof(void *)); }; struct ath11k_fw_stats_pdev { @@ -771,6 +868,13 @@ u32 tx_bcn_outage_cnt; }; +extern const struct ce_pipe_config ath11k_target_ce_config_wlan_ipq8074[]; +extern const struct service_to_pipe ath11k_target_service_to_ce_map_wlan_ipq8074[]; +extern const struct service_to_pipe ath11k_target_service_to_ce_map_wlan_ipq6018[]; + +extern const struct ce_pipe_config ath11k_target_ce_config_wlan_qca6390[]; +extern const struct service_to_pipe ath11k_target_service_to_ce_map_wlan_qca6390[]; + void ath11k_peer_unmap_event(struct ath11k_base *ab, u16 peer_id); void ath11k_peer_map_event(struct ath11k_base *ab, u8 vdev_id, u16 peer_id, u8 *mac_addr, u16 ast_hash); @@ -780,16 +884,23 @@ const u8 *addr); struct ath11k_peer *ath11k_peer_find_by_id(struct ath11k_base *ab, int peer_id); int ath11k_core_qmi_firmware_ready(struct ath11k_base *ab); +int ath11k_core_pre_init(struct ath11k_base *ab); int ath11k_core_init(struct ath11k_base *ath11k); void ath11k_core_deinit(struct ath11k_base *ath11k); -struct ath11k_base *ath11k_core_alloc(struct device *dev); +struct ath11k_base *ath11k_core_alloc(struct device *dev, size_t priv_size, + enum ath11k_bus bus, + const struct ath11k_bus_params *bus_params); void ath11k_core_free(struct ath11k_base *ath11k); int ath11k_core_fetch_bdf(struct ath11k_base *ath11k, struct ath11k_board_data *bd); void ath11k_core_free_bdf(struct ath11k_base *ab, struct ath11k_board_data *bd); void ath11k_core_halt(struct ath11k *ar); -u8 ath11k_core_get_hw_mac_id(struct ath11k_base *ab, int pdev_idx); +int ath11k_core_resume(struct ath11k_base *ab); +int ath11k_core_suspend(struct ath11k_base *ab); + +const struct firmware *ath11k_core_firmware_request(struct ath11k_base *ab, + const char *filename); static inline const char *ath11k_scan_state_str(enum ath11k_scan_state state) { @@ -823,4 +934,30 @@ return (struct ath11k_vif *)vif->drv_priv; } +static inline struct ath11k *ath11k_ab_to_ar(struct ath11k_base *ab, + int mac_id) +{ + return ab->pdevs[ath11k_hw_mac_id_to_pdev_id(&ab->hw_params, mac_id)].ar; +} + +static inline void ath11k_core_create_firmware_path(struct ath11k_base *ab, + const char *filename, + void *buf, size_t buf_len) +{ + snprintf(buf, buf_len, "%s/%s/%s", ATH11K_FW_DIR, + ab->hw_params.fw.dir, filename); +} + +static inline const char *ath11k_bus_str(enum ath11k_bus bus) +{ + switch (bus) { + case ATH11K_BUS_PCI: + return "pci"; + case ATH11K_BUS_AHB: + return "ahb"; + } + + return "unknown"; +} + #endif /* _CORE_H_ */ only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/net/wireless/ath/ath11k/dbring.c +++ linux-oem-5.6-5.6.0/drivers/net/wireless/ath/ath11k/dbring.c @@ -0,0 +1,356 @@ +// SPDX-License-Identifier: BSD-3-Clause-Clear +/* + * Copyright (c) 2019-2020 The Linux Foundation. All rights reserved. + */ + +#include "core.h" +#include "debug.h" + +static int ath11k_dbring_bufs_replenish(struct ath11k *ar, + struct ath11k_dbring *ring, + struct ath11k_dbring_element *buff, + gfp_t gfp) +{ + struct ath11k_base *ab = ar->ab; + struct hal_srng *srng; + dma_addr_t paddr; + void *ptr_aligned, *ptr_unaligned, *desc; + int ret; + int buf_id; + u32 cookie; + + srng = &ab->hal.srng_list[ring->refill_srng.ring_id]; + + lockdep_assert_held(&srng->lock); + + ath11k_hal_srng_access_begin(ab, srng); + + ptr_unaligned = buff->payload; + ptr_aligned = PTR_ALIGN(ptr_unaligned, ring->buf_align); + paddr = dma_map_single(ab->dev, ptr_aligned, ring->buf_sz, + DMA_FROM_DEVICE); + + ret = dma_mapping_error(ab->dev, paddr); + if (ret) + goto err; + + spin_lock_bh(&ring->idr_lock); + buf_id = idr_alloc(&ring->bufs_idr, buff, 0, ring->bufs_max, gfp); + spin_unlock_bh(&ring->idr_lock); + if (buf_id < 0) { + ret = -ENOBUFS; + goto err_dma_unmap; + } + + desc = ath11k_hal_srng_src_get_next_entry(ab, srng); + if (!desc) { + ret = -ENOENT; + goto err_idr_remove; + } + + buff->paddr = paddr; + + cookie = FIELD_PREP(DP_RXDMA_BUF_COOKIE_PDEV_ID, ar->pdev_idx) | + FIELD_PREP(DP_RXDMA_BUF_COOKIE_BUF_ID, buf_id); + + ath11k_hal_rx_buf_addr_info_set(desc, paddr, cookie, 0); + + ath11k_hal_srng_access_end(ab, srng); + + return 0; + +err_idr_remove: + spin_lock_bh(&ring->idr_lock); + idr_remove(&ring->bufs_idr, buf_id); + spin_unlock_bh(&ring->idr_lock); +err_dma_unmap: + dma_unmap_single(ab->dev, paddr, ring->buf_sz, + DMA_FROM_DEVICE); +err: + ath11k_hal_srng_access_end(ab, srng); + return ret; +} + +static int ath11k_dbring_fill_bufs(struct ath11k *ar, + struct ath11k_dbring *ring, + gfp_t gfp) +{ + struct ath11k_dbring_element *buff; + struct hal_srng *srng; + int num_remain, req_entries, num_free; + u32 align; + int size, ret; + + srng = &ar->ab->hal.srng_list[ring->refill_srng.ring_id]; + + spin_lock_bh(&srng->lock); + + num_free = ath11k_hal_srng_src_num_free(ar->ab, srng, true); + req_entries = min(num_free, ring->bufs_max); + num_remain = req_entries; + align = ring->buf_align; + size = sizeof(*buff) + ring->buf_sz + align - 1; + + while (num_remain > 0) { + buff = kzalloc(size, gfp); + if (!buff) + break; + + ret = ath11k_dbring_bufs_replenish(ar, ring, buff, gfp); + if (ret) { + ath11k_warn(ar->ab, "failed to replenish db ring num_remain %d req_ent %d\n", + num_remain, req_entries); + kfree(buff); + break; + } + num_remain--; + } + + spin_unlock_bh(&srng->lock); + + return num_remain; +} + +int ath11k_dbring_wmi_cfg_setup(struct ath11k *ar, + struct ath11k_dbring *ring, + enum wmi_direct_buffer_module id) +{ + struct ath11k_wmi_pdev_dma_ring_cfg_req_cmd param = {0}; + int ret; + + if (id >= WMI_DIRECT_BUF_MAX) + return -EINVAL; + + param.pdev_id = DP_SW2HW_MACID(ring->pdev_id); + param.module_id = id; + param.base_paddr_lo = lower_32_bits(ring->refill_srng.paddr); + param.base_paddr_hi = upper_32_bits(ring->refill_srng.paddr); + param.head_idx_paddr_lo = lower_32_bits(ring->hp_addr); + param.head_idx_paddr_hi = upper_32_bits(ring->hp_addr); + param.tail_idx_paddr_lo = lower_32_bits(ring->tp_addr); + param.tail_idx_paddr_hi = upper_32_bits(ring->tp_addr); + param.num_elems = ring->bufs_max; + param.buf_size = ring->buf_sz; + param.num_resp_per_event = ring->num_resp_per_event; + param.event_timeout_ms = ring->event_timeout_ms; + + ret = ath11k_wmi_pdev_dma_ring_cfg(ar, ¶m); + if (ret) { + ath11k_warn(ar->ab, "failed to setup db ring cfg\n"); + return ret; + } + + return 0; +} + +int ath11k_dbring_set_cfg(struct ath11k *ar, struct ath11k_dbring *ring, + u32 num_resp_per_event, u32 event_timeout_ms, + int (*handler)(struct ath11k *, + struct ath11k_dbring_data *)) +{ + if (WARN_ON(!ring)) + return -EINVAL; + + ring->num_resp_per_event = num_resp_per_event; + ring->event_timeout_ms = event_timeout_ms; + ring->handler = handler; + + return 0; +} + +int ath11k_dbring_buf_setup(struct ath11k *ar, + struct ath11k_dbring *ring, + struct ath11k_dbring_cap *db_cap) +{ + struct ath11k_base *ab = ar->ab; + struct hal_srng *srng; + int ret; + + srng = &ab->hal.srng_list[ring->refill_srng.ring_id]; + ring->bufs_max = ring->refill_srng.size / + ath11k_hal_srng_get_entrysize(ab, HAL_RXDMA_DIR_BUF); + + ring->buf_sz = db_cap->min_buf_sz; + ring->buf_align = db_cap->min_buf_align; + ring->pdev_id = db_cap->pdev_id; + ring->hp_addr = ath11k_hal_srng_get_hp_addr(ar->ab, srng); + ring->tp_addr = ath11k_hal_srng_get_tp_addr(ar->ab, srng); + + ret = ath11k_dbring_fill_bufs(ar, ring, GFP_KERNEL); + + return ret; +} + +int ath11k_dbring_srng_setup(struct ath11k *ar, struct ath11k_dbring *ring, + int ring_num, int num_entries) +{ + int ret; + + ret = ath11k_dp_srng_setup(ar->ab, &ring->refill_srng, HAL_RXDMA_DIR_BUF, + ring_num, ar->pdev_idx, num_entries); + if (ret < 0) { + ath11k_warn(ar->ab, "failed to setup srng: %d ring_id %d\n", + ret, ring_num); + goto err; + } + + return 0; +err: + ath11k_dp_srng_cleanup(ar->ab, &ring->refill_srng); + return ret; +} + +int ath11k_dbring_get_cap(struct ath11k_base *ab, + u8 pdev_idx, + enum wmi_direct_buffer_module id, + struct ath11k_dbring_cap *db_cap) +{ + int i; + + if (!ab->num_db_cap || !ab->db_caps) + return -ENOENT; + + if (id >= WMI_DIRECT_BUF_MAX) + return -EINVAL; + + for (i = 0; i < ab->num_db_cap; i++) { + if (pdev_idx == ab->db_caps[i].pdev_id && + id == ab->db_caps[i].id) { + *db_cap = ab->db_caps[i]; + + return 0; + } + } + + return -ENOENT; +} + +int ath11k_dbring_buffer_release_event(struct ath11k_base *ab, + struct ath11k_dbring_buf_release_event *ev) +{ + struct ath11k_dbring *ring; + struct hal_srng *srng; + struct ath11k *ar; + struct ath11k_dbring_element *buff; + struct ath11k_dbring_data handler_data; + struct ath11k_buffer_addr desc; + u8 *vaddr_unalign; + u32 num_entry, num_buff_reaped; + u8 pdev_idx, rbm; + u32 cookie; + int buf_id; + int size; + dma_addr_t paddr; + int ret = 0; + + pdev_idx = ev->fixed.pdev_id; + + if (pdev_idx >= ab->num_radios) { + ath11k_warn(ab, "Invalid pdev id %d\n", pdev_idx); + return -EINVAL; + } + + if (ev->fixed.num_buf_release_entry != + ev->fixed.num_meta_data_entry) { + ath11k_warn(ab, "Buffer entry %d mismatch meta entry %d\n", + ev->fixed.num_buf_release_entry, + ev->fixed.num_meta_data_entry); + return -EINVAL; + } + + ar = ab->pdevs[pdev_idx].ar; + + rcu_read_lock(); + if (!rcu_dereference(ab->pdevs_active[pdev_idx])) { + ret = -EINVAL; + goto rcu_unlock; + } + + switch (ev->fixed.module_id) { + case WMI_DIRECT_BUF_SPECTRAL: + ring = ath11k_spectral_get_dbring(ar); + break; + default: + ring = NULL; + ath11k_warn(ab, "Recv dma buffer release ev on unsupp module %d\n", + ev->fixed.module_id); + break; + } + + if (!ring) { + ret = -EINVAL; + goto rcu_unlock; + } + + srng = &ab->hal.srng_list[ring->refill_srng.ring_id]; + num_entry = ev->fixed.num_buf_release_entry; + size = sizeof(*buff) + ring->buf_sz + ring->buf_align - 1; + num_buff_reaped = 0; + + spin_lock_bh(&srng->lock); + + while (num_buff_reaped < num_entry) { + desc.info0 = ev->buf_entry[num_buff_reaped].paddr_lo; + desc.info1 = ev->buf_entry[num_buff_reaped].paddr_hi; + handler_data.meta = ev->meta_data[num_buff_reaped]; + + num_buff_reaped++; + + ath11k_hal_rx_buf_addr_info_get(&desc, &paddr, &cookie, &rbm); + + buf_id = FIELD_GET(DP_RXDMA_BUF_COOKIE_BUF_ID, cookie); + + spin_lock_bh(&ring->idr_lock); + buff = idr_find(&ring->bufs_idr, buf_id); + if (!buff) { + spin_unlock_bh(&ring->idr_lock); + continue; + } + idr_remove(&ring->bufs_idr, buf_id); + spin_unlock_bh(&ring->idr_lock); + + dma_unmap_single(ab->dev, buff->paddr, ring->buf_sz, + DMA_FROM_DEVICE); + + if (ring->handler) { + vaddr_unalign = buff->payload; + handler_data.data = PTR_ALIGN(vaddr_unalign, + ring->buf_align); + handler_data.data_sz = ring->buf_sz; + + ring->handler(ar, &handler_data); + } + + memset(buff, 0, size); + ath11k_dbring_bufs_replenish(ar, ring, buff, GFP_ATOMIC); + } + + spin_unlock_bh(&srng->lock); + +rcu_unlock: + rcu_read_unlock(); + + return ret; +} + +void ath11k_dbring_srng_cleanup(struct ath11k *ar, struct ath11k_dbring *ring) +{ + ath11k_dp_srng_cleanup(ar->ab, &ring->refill_srng); +} + +void ath11k_dbring_buf_cleanup(struct ath11k *ar, struct ath11k_dbring *ring) +{ + struct ath11k_dbring_element *buff; + int buf_id; + + spin_lock_bh(&ring->idr_lock); + idr_for_each_entry(&ring->bufs_idr, buff, buf_id) { + idr_remove(&ring->bufs_idr, buf_id); + dma_unmap_single(ar->ab->dev, buff->paddr, + ring->buf_sz, DMA_FROM_DEVICE); + kfree(buff); + } + + idr_destroy(&ring->bufs_idr); + spin_unlock_bh(&ring->idr_lock); +} only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/net/wireless/ath/ath11k/dbring.h +++ linux-oem-5.6-5.6.0/drivers/net/wireless/ath/ath11k/dbring.h @@ -0,0 +1,79 @@ +/* SPDX-License-Identifier: BSD-3-Clause-Clear */ +/* + * Copyright (c) 2019-2020 The Linux Foundation. All rights reserved. + */ + +#ifndef ATH11K_DBRING_H +#define ATH11K_DBRING_H + +#include +#include +#include +#include "dp.h" + +struct ath11k_dbring_element { + dma_addr_t paddr; + u8 payload[0]; +}; + +struct ath11k_dbring_data { + void *data; + u32 data_sz; + struct wmi_dma_buf_release_meta_data meta; +}; + +struct ath11k_dbring_buf_release_event { + struct ath11k_wmi_dma_buf_release_fixed_param fixed; + struct wmi_dma_buf_release_entry *buf_entry; + struct wmi_dma_buf_release_meta_data *meta_data; + u32 num_buf_entry; + u32 num_meta; +}; + +struct ath11k_dbring_cap { + u32 pdev_id; + enum wmi_direct_buffer_module id; + u32 min_elem; + u32 min_buf_sz; + u32 min_buf_align; +}; + +struct ath11k_dbring { + struct dp_srng refill_srng; + struct idr bufs_idr; + /* Protects bufs_idr */ + spinlock_t idr_lock; + dma_addr_t tp_addr; + dma_addr_t hp_addr; + int bufs_max; + u32 pdev_id; + u32 buf_sz; + u32 buf_align; + u32 num_resp_per_event; + u32 event_timeout_ms; + int (*handler)(struct ath11k *, struct ath11k_dbring_data *); +}; + +int ath11k_dbring_set_cfg(struct ath11k *ar, + struct ath11k_dbring *ring, + u32 num_resp_per_event, + u32 event_timeout_ms, + int (*handler)(struct ath11k *, + struct ath11k_dbring_data *)); +int ath11k_dbring_wmi_cfg_setup(struct ath11k *ar, + struct ath11k_dbring *ring, + enum wmi_direct_buffer_module id); +int ath11k_dbring_buf_setup(struct ath11k *ar, + struct ath11k_dbring *ring, + struct ath11k_dbring_cap *db_cap); +int ath11k_dbring_srng_setup(struct ath11k *ar, struct ath11k_dbring *ring, + int ring_num, int num_entries); +int ath11k_dbring_buffer_release_event(struct ath11k_base *ab, + struct ath11k_dbring_buf_release_event *ev); +int ath11k_dbring_get_cap(struct ath11k_base *ab, + u8 pdev_idx, + enum wmi_direct_buffer_module id, + struct ath11k_dbring_cap *db_cap); +void ath11k_dbring_srng_cleanup(struct ath11k *ar, struct ath11k_dbring *ring); +void ath11k_dbring_buf_cleanup(struct ath11k *ar, struct ath11k_dbring *ring); +#endif /* ATH11K_DBRING_H */ only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/net/wireless/ath/ath11k/debug.c +++ linux-oem-5.6-5.6.0/drivers/net/wireless/ath/ath11k/debug.c @@ -6,11 +6,6 @@ #include #include "core.h" #include "debug.h" -#include "wmi.h" -#include "hal_rx.h" -#include "dp_tx.h" -#include "debug_htt_stats.h" -#include "peer.h" void ath11k_info(struct ath11k_base *ab, const char *fmt, ...) { @@ -25,6 +20,7 @@ /* TODO: Trace the log */ va_end(args); } +EXPORT_SYMBOL(ath11k_info); void ath11k_err(struct ath11k_base *ab, const char *fmt, ...) { @@ -39,6 +35,7 @@ /* TODO: Trace the log */ va_end(args); } +EXPORT_SYMBOL(ath11k_err); void ath11k_warn(struct ath11k_base *ab, const char *fmt, ...) { @@ -53,8 +50,10 @@ /* TODO: Trace the log */ va_end(args); } +EXPORT_SYMBOL(ath11k_warn); #ifdef CONFIG_ATH11K_DEBUG + void __ath11k_dbg(struct ath11k_base *ab, enum ath11k_debug_mask mask, const char *fmt, ...) { @@ -73,6 +72,7 @@ va_end(args); } +EXPORT_SYMBOL(__ath11k_dbg); void ath11k_dbg_dump(struct ath11k_base *ab, enum ath11k_debug_mask mask, @@ -101,975 +101,6 @@ } } } +EXPORT_SYMBOL(ath11k_dbg_dump); -#endif - -#ifdef CONFIG_ATH11K_DEBUGFS -static void ath11k_fw_stats_pdevs_free(struct list_head *head) -{ - struct ath11k_fw_stats_pdev *i, *tmp; - - list_for_each_entry_safe(i, tmp, head, list) { - list_del(&i->list); - kfree(i); - } -} - -static void ath11k_fw_stats_vdevs_free(struct list_head *head) -{ - struct ath11k_fw_stats_vdev *i, *tmp; - - list_for_each_entry_safe(i, tmp, head, list) { - list_del(&i->list); - kfree(i); - } -} - -static void ath11k_fw_stats_bcn_free(struct list_head *head) -{ - struct ath11k_fw_stats_bcn *i, *tmp; - - list_for_each_entry_safe(i, tmp, head, list) { - list_del(&i->list); - kfree(i); - } -} - -static void ath11k_debug_fw_stats_reset(struct ath11k *ar) -{ - spin_lock_bh(&ar->data_lock); - ar->debug.fw_stats_done = false; - ath11k_fw_stats_pdevs_free(&ar->debug.fw_stats.pdevs); - ath11k_fw_stats_vdevs_free(&ar->debug.fw_stats.vdevs); - spin_unlock_bh(&ar->data_lock); -} - -void ath11k_debug_fw_stats_process(struct ath11k_base *ab, struct sk_buff *skb) -{ - struct ath11k_fw_stats stats = {}; - struct ath11k *ar; - struct ath11k_pdev *pdev; - bool is_end; - static unsigned int num_vdev, num_bcn; - size_t total_vdevs_started = 0; - int i, ret; - - INIT_LIST_HEAD(&stats.pdevs); - INIT_LIST_HEAD(&stats.vdevs); - INIT_LIST_HEAD(&stats.bcn); - - ret = ath11k_wmi_pull_fw_stats(ab, skb, &stats); - if (ret) { - ath11k_warn(ab, "failed to pull fw stats: %d\n", ret); - goto free; - } - - rcu_read_lock(); - ar = ath11k_mac_get_ar_by_pdev_id(ab, stats.pdev_id); - if (!ar) { - rcu_read_unlock(); - ath11k_warn(ab, "failed to get ar for pdev_id %d: %d\n", - stats.pdev_id, ret); - goto free; - } - - spin_lock_bh(&ar->data_lock); - - if (stats.stats_id == WMI_REQUEST_PDEV_STAT) { - list_splice_tail_init(&stats.pdevs, &ar->debug.fw_stats.pdevs); - ar->debug.fw_stats_done = true; - goto complete; - } - - if (stats.stats_id == WMI_REQUEST_VDEV_STAT) { - if (list_empty(&stats.vdevs)) { - ath11k_warn(ab, "empty vdev stats"); - goto complete; - } - /* FW sends all the active VDEV stats irrespective of PDEV, - * hence limit until the count of all VDEVs started - */ - for (i = 0; i < ab->num_radios; i++) { - pdev = rcu_dereference(ab->pdevs_active[i]); - if (pdev && pdev->ar) - total_vdevs_started += ar->num_started_vdevs; - } - - is_end = ((++num_vdev) == total_vdevs_started ? true : false); - - list_splice_tail_init(&stats.vdevs, - &ar->debug.fw_stats.vdevs); - - if (is_end) { - ar->debug.fw_stats_done = true; - num_vdev = 0; - } - goto complete; - } - - if (stats.stats_id == WMI_REQUEST_BCN_STAT) { - if (list_empty(&stats.bcn)) { - ath11k_warn(ab, "empty bcn stats"); - goto complete; - } - /* Mark end until we reached the count of all started VDEVs - * within the PDEV - */ - is_end = ((++num_bcn) == ar->num_started_vdevs ? true : false); - - list_splice_tail_init(&stats.bcn, - &ar->debug.fw_stats.bcn); - - if (is_end) { - ar->debug.fw_stats_done = true; - num_bcn = 0; - } - } -complete: - complete(&ar->debug.fw_stats_complete); - rcu_read_unlock(); - spin_unlock_bh(&ar->data_lock); - -free: - ath11k_fw_stats_pdevs_free(&stats.pdevs); - ath11k_fw_stats_vdevs_free(&stats.vdevs); - ath11k_fw_stats_bcn_free(&stats.bcn); -} - -static int ath11k_debug_fw_stats_request(struct ath11k *ar, - struct stats_request_params *req_param) -{ - struct ath11k_base *ab = ar->ab; - unsigned long timeout, time_left; - int ret; - - lockdep_assert_held(&ar->conf_mutex); - - /* FW stats can get split when exceeding the stats data buffer limit. - * In that case, since there is no end marking for the back-to-back - * received 'update stats' event, we keep a 3 seconds timeout in case, - * fw_stats_done is not marked yet - */ - timeout = jiffies + msecs_to_jiffies(3 * HZ); - - ath11k_debug_fw_stats_reset(ar); - - reinit_completion(&ar->debug.fw_stats_complete); - - ret = ath11k_wmi_send_stats_request_cmd(ar, req_param); - - if (ret) { - ath11k_warn(ab, "could not request fw stats (%d)\n", - ret); - return ret; - } - - time_left = - wait_for_completion_timeout(&ar->debug.fw_stats_complete, - 1 * HZ); - if (!time_left) - return -ETIMEDOUT; - - for (;;) { - if (time_after(jiffies, timeout)) - break; - - spin_lock_bh(&ar->data_lock); - if (ar->debug.fw_stats_done) { - spin_unlock_bh(&ar->data_lock); - break; - } - spin_unlock_bh(&ar->data_lock); - } - return 0; -} - -static int ath11k_open_pdev_stats(struct inode *inode, struct file *file) -{ - struct ath11k *ar = inode->i_private; - struct ath11k_base *ab = ar->ab; - struct stats_request_params req_param; - void *buf = NULL; - int ret; - - mutex_lock(&ar->conf_mutex); - - if (ar->state != ATH11K_STATE_ON) { - ret = -ENETDOWN; - goto err_unlock; - } - - buf = vmalloc(ATH11K_FW_STATS_BUF_SIZE); - if (!buf) { - ret = -ENOMEM; - goto err_unlock; - } - - req_param.pdev_id = ar->pdev->pdev_id; - req_param.vdev_id = 0; - req_param.stats_id = WMI_REQUEST_PDEV_STAT; - - ret = ath11k_debug_fw_stats_request(ar, &req_param); - if (ret) { - ath11k_warn(ab, "failed to request fw pdev stats: %d\n", ret); - goto err_free; - } - - ath11k_wmi_fw_stats_fill(ar, &ar->debug.fw_stats, req_param.stats_id, - buf); - - file->private_data = buf; - - mutex_unlock(&ar->conf_mutex); - return 0; - -err_free: - vfree(buf); - -err_unlock: - mutex_unlock(&ar->conf_mutex); - return ret; -} - -static int ath11k_release_pdev_stats(struct inode *inode, struct file *file) -{ - vfree(file->private_data); - - return 0; -} - -static ssize_t ath11k_read_pdev_stats(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) -{ - const char *buf = file->private_data; - size_t len = strlen(buf); - - return simple_read_from_buffer(user_buf, count, ppos, buf, len); -} - -static const struct file_operations fops_pdev_stats = { - .open = ath11k_open_pdev_stats, - .release = ath11k_release_pdev_stats, - .read = ath11k_read_pdev_stats, - .owner = THIS_MODULE, - .llseek = default_llseek, -}; - -static int ath11k_open_vdev_stats(struct inode *inode, struct file *file) -{ - struct ath11k *ar = inode->i_private; - struct stats_request_params req_param; - void *buf = NULL; - int ret; - - mutex_lock(&ar->conf_mutex); - - if (ar->state != ATH11K_STATE_ON) { - ret = -ENETDOWN; - goto err_unlock; - } - - buf = vmalloc(ATH11K_FW_STATS_BUF_SIZE); - if (!buf) { - ret = -ENOMEM; - goto err_unlock; - } - - req_param.pdev_id = ar->pdev->pdev_id; - /* VDEV stats is always sent for all active VDEVs from FW */ - req_param.vdev_id = 0; - req_param.stats_id = WMI_REQUEST_VDEV_STAT; - - ret = ath11k_debug_fw_stats_request(ar, &req_param); - if (ret) { - ath11k_warn(ar->ab, "failed to request fw vdev stats: %d\n", ret); - goto err_free; - } - - ath11k_wmi_fw_stats_fill(ar, &ar->debug.fw_stats, req_param.stats_id, - buf); - - file->private_data = buf; - - mutex_unlock(&ar->conf_mutex); - return 0; - -err_free: - vfree(buf); - -err_unlock: - mutex_unlock(&ar->conf_mutex); - return ret; -} - -static int ath11k_release_vdev_stats(struct inode *inode, struct file *file) -{ - vfree(file->private_data); - - return 0; -} - -static ssize_t ath11k_read_vdev_stats(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) -{ - const char *buf = file->private_data; - size_t len = strlen(buf); - - return simple_read_from_buffer(user_buf, count, ppos, buf, len); -} - -static const struct file_operations fops_vdev_stats = { - .open = ath11k_open_vdev_stats, - .release = ath11k_release_vdev_stats, - .read = ath11k_read_vdev_stats, - .owner = THIS_MODULE, - .llseek = default_llseek, -}; - -static int ath11k_open_bcn_stats(struct inode *inode, struct file *file) -{ - struct ath11k *ar = inode->i_private; - struct ath11k_vif *arvif; - struct stats_request_params req_param; - void *buf = NULL; - int ret; - - mutex_lock(&ar->conf_mutex); - - if (ar->state != ATH11K_STATE_ON) { - ret = -ENETDOWN; - goto err_unlock; - } - - buf = vmalloc(ATH11K_FW_STATS_BUF_SIZE); - if (!buf) { - ret = -ENOMEM; - goto err_unlock; - } - - req_param.stats_id = WMI_REQUEST_BCN_STAT; - req_param.pdev_id = ar->pdev->pdev_id; - - /* loop all active VDEVs for bcn stats */ - list_for_each_entry(arvif, &ar->arvifs, list) { - if (!arvif->is_up) - continue; - - req_param.vdev_id = arvif->vdev_id; - ret = ath11k_debug_fw_stats_request(ar, &req_param); - if (ret) { - ath11k_warn(ar->ab, "failed to request fw bcn stats: %d\n", ret); - goto err_free; - } - } - - ath11k_wmi_fw_stats_fill(ar, &ar->debug.fw_stats, req_param.stats_id, - buf); - - /* since beacon stats request is looped for all active VDEVs, saved fw - * stats is not freed for each request until done for all active VDEVs - */ - spin_lock_bh(&ar->data_lock); - ath11k_fw_stats_bcn_free(&ar->debug.fw_stats.bcn); - spin_unlock_bh(&ar->data_lock); - - file->private_data = buf; - - mutex_unlock(&ar->conf_mutex); - return 0; - -err_free: - vfree(buf); - -err_unlock: - mutex_unlock(&ar->conf_mutex); - return ret; -} - -static int ath11k_release_bcn_stats(struct inode *inode, struct file *file) -{ - vfree(file->private_data); - - return 0; -} - -static ssize_t ath11k_read_bcn_stats(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) -{ - const char *buf = file->private_data; - size_t len = strlen(buf); - - return simple_read_from_buffer(user_buf, count, ppos, buf, len); -} - -static const struct file_operations fops_bcn_stats = { - .open = ath11k_open_bcn_stats, - .release = ath11k_release_bcn_stats, - .read = ath11k_read_bcn_stats, - .owner = THIS_MODULE, - .llseek = default_llseek, -}; - -static ssize_t ath11k_read_simulate_fw_crash(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) -{ - const char buf[] = - "To simulate firmware crash write one of the keywords to this file:\n" - "`assert` - this will send WMI_FORCE_FW_HANG_CMDID to firmware to cause assert.\n" - "`hw-restart` - this will simply queue hw restart without fw/hw actually crashing.\n"; - - return simple_read_from_buffer(user_buf, count, ppos, buf, strlen(buf)); -} - -/* Simulate firmware crash: - * 'soft': Call wmi command causing firmware hang. This firmware hang is - * recoverable by warm firmware reset. - * 'hard': Force firmware crash by setting any vdev parameter for not allowed - * vdev id. This is hard firmware crash because it is recoverable only by cold - * firmware reset. - */ -static ssize_t ath11k_write_simulate_fw_crash(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) -{ - struct ath11k_base *ab = file->private_data; - struct ath11k_pdev *pdev; - struct ath11k *ar = ab->pdevs[0].ar; - char buf[32] = {0}; - ssize_t rc; - int i, ret, radioup = 0; - - for (i = 0; i < ab->num_radios; i++) { - pdev = &ab->pdevs[i]; - ar = pdev->ar; - if (ar && ar->state == ATH11K_STATE_ON) { - radioup = 1; - break; - } - } - /* filter partial writes and invalid commands */ - if (*ppos != 0 || count >= sizeof(buf) || count == 0) - return -EINVAL; - - rc = simple_write_to_buffer(buf, sizeof(buf) - 1, ppos, user_buf, count); - if (rc < 0) - return rc; - - /* drop the possible '\n' from the end */ - if (buf[*ppos - 1] == '\n') - buf[*ppos - 1] = '\0'; - - if (radioup == 0) { - ret = -ENETDOWN; - goto exit; - } - - if (!strcmp(buf, "assert")) { - ath11k_info(ab, "simulating firmware assert crash\n"); - ret = ath11k_wmi_force_fw_hang_cmd(ar, - ATH11K_WMI_FW_HANG_ASSERT_TYPE, - ATH11K_WMI_FW_HANG_DELAY); - } else { - ret = -EINVAL; - goto exit; - } - - if (ret) { - ath11k_warn(ab, "failed to simulate firmware crash: %d\n", ret); - goto exit; - } - - ret = count; - -exit: - return ret; -} - -static const struct file_operations fops_simulate_fw_crash = { - .read = ath11k_read_simulate_fw_crash, - .write = ath11k_write_simulate_fw_crash, - .open = simple_open, - .owner = THIS_MODULE, - .llseek = default_llseek, -}; - -static ssize_t ath11k_write_enable_extd_tx_stats(struct file *file, - const char __user *ubuf, - size_t count, loff_t *ppos) -{ - struct ath11k *ar = file->private_data; - u32 filter; - int ret; - - if (kstrtouint_from_user(ubuf, count, 0, &filter)) - return -EINVAL; - - mutex_lock(&ar->conf_mutex); - - if (ar->state != ATH11K_STATE_ON) { - ret = -ENETDOWN; - goto out; - } - - if (filter == ar->debug.extd_tx_stats) { - ret = count; - goto out; - } - - ar->debug.extd_tx_stats = filter; - ret = count; - -out: - mutex_unlock(&ar->conf_mutex); - return ret; -} - -static ssize_t ath11k_read_enable_extd_tx_stats(struct file *file, - char __user *ubuf, - size_t count, loff_t *ppos) - -{ - char buf[32] = {0}; - struct ath11k *ar = file->private_data; - int len = 0; - - mutex_lock(&ar->conf_mutex); - len = scnprintf(buf, sizeof(buf) - len, "%08x\n", - ar->debug.extd_tx_stats); - mutex_unlock(&ar->conf_mutex); - - return simple_read_from_buffer(ubuf, count, ppos, buf, len); -} - -static const struct file_operations fops_extd_tx_stats = { - .read = ath11k_read_enable_extd_tx_stats, - .write = ath11k_write_enable_extd_tx_stats, - .open = simple_open -}; - -static ssize_t ath11k_write_extd_rx_stats(struct file *file, - const char __user *ubuf, - size_t count, loff_t *ppos) -{ - struct ath11k *ar = file->private_data; - struct htt_rx_ring_tlv_filter tlv_filter = {0}; - u32 enable, rx_filter = 0, ring_id; - int ret; - - if (kstrtouint_from_user(ubuf, count, 0, &enable)) - return -EINVAL; - - mutex_lock(&ar->conf_mutex); - - if (ar->state != ATH11K_STATE_ON) { - ret = -ENETDOWN; - goto exit; - } - - if (enable > 1) { - ret = -EINVAL; - goto exit; - } - - if (enable == ar->debug.extd_rx_stats) { - ret = count; - goto exit; - } - - if (enable) { - rx_filter = HTT_RX_FILTER_TLV_FLAGS_MPDU_START; - rx_filter |= HTT_RX_FILTER_TLV_FLAGS_PPDU_START; - rx_filter |= HTT_RX_FILTER_TLV_FLAGS_PPDU_END; - rx_filter |= HTT_RX_FILTER_TLV_FLAGS_PPDU_END_USER_STATS; - rx_filter |= HTT_RX_FILTER_TLV_FLAGS_PPDU_END_USER_STATS_EXT; - rx_filter |= HTT_RX_FILTER_TLV_FLAGS_PPDU_END_STATUS_DONE; - - tlv_filter.rx_filter = rx_filter; - tlv_filter.pkt_filter_flags0 = HTT_RX_FP_MGMT_FILTER_FLAGS0; - tlv_filter.pkt_filter_flags1 = HTT_RX_FP_MGMT_FILTER_FLAGS1; - tlv_filter.pkt_filter_flags2 = HTT_RX_FP_CTRL_FILTER_FLASG2; - tlv_filter.pkt_filter_flags3 = HTT_RX_FP_CTRL_FILTER_FLASG3 | - HTT_RX_FP_DATA_FILTER_FLASG3; - } else { - tlv_filter = ath11k_mac_mon_status_filter_default; - } - - ring_id = ar->dp.rx_mon_status_refill_ring.refill_buf_ring.ring_id; - ret = ath11k_dp_tx_htt_rx_filter_setup(ar->ab, ring_id, ar->dp.mac_id, - HAL_RXDMA_MONITOR_STATUS, - DP_RX_BUFFER_SIZE, &tlv_filter); - - if (ret) { - ath11k_warn(ar->ab, "failed to set rx filter for monitor status ring\n"); - goto exit; - } - - ar->debug.extd_rx_stats = enable; - ret = count; -exit: - mutex_unlock(&ar->conf_mutex); - return ret; -} - -static ssize_t ath11k_read_extd_rx_stats(struct file *file, - char __user *ubuf, - size_t count, loff_t *ppos) -{ - struct ath11k *ar = file->private_data; - char buf[32]; - int len = 0; - - mutex_lock(&ar->conf_mutex); - len = scnprintf(buf, sizeof(buf) - len, "%d\n", - ar->debug.extd_rx_stats); - mutex_unlock(&ar->conf_mutex); - - return simple_read_from_buffer(ubuf, count, ppos, buf, len); -} - -static const struct file_operations fops_extd_rx_stats = { - .read = ath11k_read_extd_rx_stats, - .write = ath11k_write_extd_rx_stats, - .open = simple_open, -}; - -static ssize_t ath11k_debug_dump_soc_rx_stats(struct file *file, - char __user *user_buf, - size_t count, loff_t *ppos) -{ - struct ath11k_base *ab = file->private_data; - struct ath11k_soc_dp_rx_stats *soc_stats = &ab->soc_stats; - int len = 0, i, retval; - const int size = 4096; - static const char *rxdma_err[HAL_REO_ENTR_RING_RXDMA_ECODE_MAX] = { - "Overflow", "MPDU len", "FCS", "Decrypt", "TKIP MIC", - "Unencrypt", "MSDU len", "MSDU limit", "WiFi parse", - "AMSDU parse", "SA timeout", "DA timeout", - "Flow timeout", "Flush req"}; - static const char *reo_err[HAL_REO_DEST_RING_ERROR_CODE_MAX] = { - "Desc addr zero", "Desc inval", "AMPDU in non BA", - "Non BA dup", "BA dup", "Frame 2k jump", "BAR 2k jump", - "Frame OOR", "BAR OOR", "No BA session", - "Frame SN equal SSN", "PN check fail", "2k err", - "PN err", "Desc blocked"}; - - char *buf; - - buf = kzalloc(size, GFP_KERNEL); - if (!buf) - return -ENOMEM; - - len += scnprintf(buf + len, size - len, "SOC RX STATS:\n\n"); - len += scnprintf(buf + len, size - len, "err ring pkts: %u\n", - soc_stats->err_ring_pkts); - len += scnprintf(buf + len, size - len, "Invalid RBM: %u\n\n", - soc_stats->invalid_rbm); - len += scnprintf(buf + len, size - len, "RXDMA errors:\n"); - for (i = 0; i < HAL_REO_ENTR_RING_RXDMA_ECODE_MAX; i++) - len += scnprintf(buf + len, size - len, "%s: %u\n", - rxdma_err[i], soc_stats->rxdma_error[i]); - - len += scnprintf(buf + len, size - len, "\nREO errors:\n"); - for (i = 0; i < HAL_REO_DEST_RING_ERROR_CODE_MAX; i++) - len += scnprintf(buf + len, size - len, "%s: %u\n", - reo_err[i], soc_stats->reo_error[i]); - - len += scnprintf(buf + len, size - len, "\nHAL REO errors:\n"); - len += scnprintf(buf + len, size - len, - "ring0: %u\nring1: %u\nring2: %u\nring3: %u\n", - soc_stats->hal_reo_error[0], - soc_stats->hal_reo_error[1], - soc_stats->hal_reo_error[2], - soc_stats->hal_reo_error[3]); - - if (len > size) - len = size; - retval = simple_read_from_buffer(user_buf, count, ppos, buf, len); - kfree(buf); - - return retval; -} - -static const struct file_operations fops_soc_rx_stats = { - .read = ath11k_debug_dump_soc_rx_stats, - .open = simple_open, - .owner = THIS_MODULE, - .llseek = default_llseek, -}; - -int ath11k_debug_pdev_create(struct ath11k_base *ab) -{ - ab->debugfs_soc = debugfs_create_dir(ab->hw_params.name, ab->debugfs_ath11k); - - if (IS_ERR_OR_NULL(ab->debugfs_soc)) { - if (IS_ERR(ab->debugfs_soc)) - return PTR_ERR(ab->debugfs_soc); - return -ENOMEM; - } - - debugfs_create_file("simulate_fw_crash", 0600, ab->debugfs_soc, ab, - &fops_simulate_fw_crash); - - debugfs_create_file("soc_rx_stats", 0600, ab->debugfs_soc, ab, - &fops_soc_rx_stats); - - return 0; -} - -void ath11k_debug_pdev_destroy(struct ath11k_base *ab) -{ - debugfs_remove_recursive(ab->debugfs_ath11k); - ab->debugfs_ath11k = NULL; -} - -int ath11k_debug_soc_create(struct ath11k_base *ab) -{ - ab->debugfs_ath11k = debugfs_create_dir("ath11k", NULL); - - if (IS_ERR_OR_NULL(ab->debugfs_ath11k)) { - if (IS_ERR(ab->debugfs_ath11k)) - return PTR_ERR(ab->debugfs_ath11k); - return -ENOMEM; - } - - return 0; -} - -void ath11k_debug_soc_destroy(struct ath11k_base *ab) -{ - debugfs_remove_recursive(ab->debugfs_soc); - ab->debugfs_soc = NULL; -} - -void ath11k_debug_fw_stats_init(struct ath11k *ar) -{ - struct dentry *fwstats_dir = debugfs_create_dir("fw_stats", - ar->debug.debugfs_pdev); - - ar->debug.fw_stats.debugfs_fwstats = fwstats_dir; - - /* all stats debugfs files created are under "fw_stats" directory - * created per PDEV - */ - debugfs_create_file("pdev_stats", 0600, fwstats_dir, ar, - &fops_pdev_stats); - debugfs_create_file("vdev_stats", 0600, fwstats_dir, ar, - &fops_vdev_stats); - debugfs_create_file("beacon_stats", 0600, fwstats_dir, ar, - &fops_bcn_stats); - - INIT_LIST_HEAD(&ar->debug.fw_stats.pdevs); - INIT_LIST_HEAD(&ar->debug.fw_stats.vdevs); - INIT_LIST_HEAD(&ar->debug.fw_stats.bcn); - - init_completion(&ar->debug.fw_stats_complete); -} - -static ssize_t ath11k_write_pktlog_filter(struct file *file, - const char __user *ubuf, - size_t count, loff_t *ppos) -{ - struct ath11k *ar = file->private_data; - struct htt_rx_ring_tlv_filter tlv_filter = {0}; - u32 rx_filter = 0, ring_id, filter, mode; - u8 buf[128] = {0}; - int ret; - ssize_t rc; - - mutex_lock(&ar->conf_mutex); - if (ar->state != ATH11K_STATE_ON) { - ret = -ENETDOWN; - goto out; - } - - rc = simple_write_to_buffer(buf, sizeof(buf) - 1, ppos, ubuf, count); - if (rc < 0) { - ret = rc; - goto out; - } - buf[rc] = '\0'; - - ret = sscanf(buf, "0x%x %u", &filter, &mode); - if (ret != 2) { - ret = -EINVAL; - goto out; - } - - if (filter) { - ret = ath11k_wmi_pdev_pktlog_enable(ar, filter); - if (ret) { - ath11k_warn(ar->ab, - "failed to enable pktlog filter %x: %d\n", - ar->debug.pktlog_filter, ret); - goto out; - } - } else { - ret = ath11k_wmi_pdev_pktlog_disable(ar); - if (ret) { - ath11k_warn(ar->ab, "failed to disable pktlog: %d\n", ret); - goto out; - } - } - -#define HTT_RX_FILTER_TLV_LITE_MODE \ - (HTT_RX_FILTER_TLV_FLAGS_PPDU_START | \ - HTT_RX_FILTER_TLV_FLAGS_PPDU_END | \ - HTT_RX_FILTER_TLV_FLAGS_PPDU_END_USER_STATS | \ - HTT_RX_FILTER_TLV_FLAGS_PPDU_END_USER_STATS_EXT | \ - HTT_RX_FILTER_TLV_FLAGS_PPDU_END_STATUS_DONE | \ - HTT_RX_FILTER_TLV_FLAGS_MPDU_START) - - if (mode == ATH11K_PKTLOG_MODE_FULL) { - rx_filter = HTT_RX_FILTER_TLV_LITE_MODE | - HTT_RX_FILTER_TLV_FLAGS_MSDU_START | - HTT_RX_FILTER_TLV_FLAGS_MSDU_END | - HTT_RX_FILTER_TLV_FLAGS_MPDU_END | - HTT_RX_FILTER_TLV_FLAGS_PACKET_HEADER | - HTT_RX_FILTER_TLV_FLAGS_ATTENTION; - } else if (mode == ATH11K_PKTLOG_MODE_LITE) { - ret = ath11k_dp_tx_htt_h2t_ppdu_stats_req(ar, - HTT_PPDU_STATS_TAG_PKTLOG); - if (ret) { - ath11k_err(ar->ab, "failed to enable pktlog lite: %d\n", ret); - goto out; - } - - rx_filter = HTT_RX_FILTER_TLV_LITE_MODE; - } else { - ret = ath11k_dp_tx_htt_h2t_ppdu_stats_req(ar, - HTT_PPDU_STATS_TAG_DEFAULT); - if (ret) { - ath11k_err(ar->ab, "failed to send htt ppdu stats req: %d\n", - ret); - goto out; - } - } - - tlv_filter.rx_filter = rx_filter; - if (rx_filter) { - tlv_filter.pkt_filter_flags0 = HTT_RX_FP_MGMT_FILTER_FLAGS0; - tlv_filter.pkt_filter_flags1 = HTT_RX_FP_MGMT_FILTER_FLAGS1; - tlv_filter.pkt_filter_flags2 = HTT_RX_FP_CTRL_FILTER_FLASG2; - tlv_filter.pkt_filter_flags3 = HTT_RX_FP_CTRL_FILTER_FLASG3 | - HTT_RX_FP_DATA_FILTER_FLASG3; - } - - ring_id = ar->dp.rx_mon_status_refill_ring.refill_buf_ring.ring_id; - ret = ath11k_dp_tx_htt_rx_filter_setup(ar->ab, ring_id, ar->dp.mac_id, - HAL_RXDMA_MONITOR_STATUS, - DP_RX_BUFFER_SIZE, &tlv_filter); - if (ret) { - ath11k_warn(ar->ab, "failed to set rx filter for monitor status ring\n"); - goto out; - } - - ath11k_dbg(ar->ab, ATH11K_DBG_WMI, "pktlog filter %d mode %s\n", - filter, ((mode == ATH11K_PKTLOG_MODE_FULL) ? "full" : "lite")); - - ar->debug.pktlog_filter = filter; - ar->debug.pktlog_mode = mode; - ret = count; - -out: - mutex_unlock(&ar->conf_mutex); - return ret; -} - -static ssize_t ath11k_read_pktlog_filter(struct file *file, - char __user *ubuf, - size_t count, loff_t *ppos) - -{ - char buf[32] = {0}; - struct ath11k *ar = file->private_data; - int len = 0; - - mutex_lock(&ar->conf_mutex); - len = scnprintf(buf, sizeof(buf) - len, "%08x %08x\n", - ar->debug.pktlog_filter, - ar->debug.pktlog_mode); - mutex_unlock(&ar->conf_mutex); - - return simple_read_from_buffer(ubuf, count, ppos, buf, len); -} - -static const struct file_operations fops_pktlog_filter = { - .read = ath11k_read_pktlog_filter, - .write = ath11k_write_pktlog_filter, - .open = simple_open -}; - -static ssize_t ath11k_write_simulate_radar(struct file *file, - const char __user *user_buf, - size_t count, loff_t *ppos) -{ - struct ath11k *ar = file->private_data; - int ret; - - ret = ath11k_wmi_simulate_radar(ar); - if (ret) - return ret; - - return count; -} - -static const struct file_operations fops_simulate_radar = { - .write = ath11k_write_simulate_radar, - .open = simple_open -}; - -int ath11k_debug_register(struct ath11k *ar) -{ - struct ath11k_base *ab = ar->ab; - char pdev_name[5]; - char buf[100] = {0}; - - snprintf(pdev_name, sizeof(pdev_name), "%s%d", "mac", ar->pdev_idx); - - ar->debug.debugfs_pdev = debugfs_create_dir(pdev_name, ab->debugfs_soc); - - if (IS_ERR_OR_NULL(ar->debug.debugfs_pdev)) { - if (IS_ERR(ar->debug.debugfs_pdev)) - return PTR_ERR(ar->debug.debugfs_pdev); - - return -ENOMEM; - } - - /* Create a symlink under ieee80211/phy* */ - snprintf(buf, 100, "../../ath11k/%pd2", ar->debug.debugfs_pdev); - debugfs_create_symlink("ath11k", ar->hw->wiphy->debugfsdir, buf); - - ath11k_debug_htt_stats_init(ar); - - ath11k_debug_fw_stats_init(ar); - - debugfs_create_file("ext_tx_stats", 0644, - ar->debug.debugfs_pdev, ar, - &fops_extd_tx_stats); - debugfs_create_file("ext_rx_stats", 0644, - ar->debug.debugfs_pdev, ar, - &fops_extd_rx_stats); - debugfs_create_file("pktlog_filter", 0644, - ar->debug.debugfs_pdev, ar, - &fops_pktlog_filter); - - if (ar->hw->wiphy->bands[NL80211_BAND_5GHZ]) { - debugfs_create_file("dfs_simulate_radar", 0200, - ar->debug.debugfs_pdev, ar, - &fops_simulate_radar); - debugfs_create_bool("dfs_block_radar_events", 0200, - ar->debug.debugfs_pdev, - &ar->dfs_block_radar_events); - } - - return 0; -} - -void ath11k_debug_unregister(struct ath11k *ar) -{ -} -#endif /* CONFIG_ATH11K_DEBUGFS */ +#endif /* CONFIG_ATH11K_DEBUG */ only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/net/wireless/ath/ath11k/debug.h +++ linux-oem-5.6-5.6.0/drivers/net/wireless/ath/ath11k/debug.h @@ -6,11 +6,8 @@ #ifndef _ATH11K_DEBUG_H_ #define _ATH11K_DEBUG_H_ -#include "hal_tx.h" #include "trace.h" - -#define ATH11K_TX_POWER_MAX_VAL 70 -#define ATH11K_TX_POWER_MIN_VAL 0 +#include "debugfs.h" enum ath11k_debug_mask { ATH11K_DBG_AHB = 0x00000001, @@ -25,84 +22,12 @@ ATH11K_DBG_REG = 0x00000200, ATH11K_DBG_TESTMODE = 0x00000400, ATH11k_DBG_HAL = 0x00000800, + ATH11K_DBG_PCI = 0x00001000, + ATH11K_DBG_DP_TX = 0x00001000, + ATH11K_DBG_DP_RX = 0x00002000, ATH11K_DBG_ANY = 0xffffffff, }; -/* htt_dbg_ext_stats_type */ -enum ath11k_dbg_htt_ext_stats_type { - ATH11K_DBG_HTT_EXT_STATS_RESET = 0, - ATH11K_DBG_HTT_EXT_STATS_PDEV_TX = 1, - ATH11K_DBG_HTT_EXT_STATS_PDEV_RX = 2, - ATH11K_DBG_HTT_EXT_STATS_PDEV_TX_HWQ = 3, - ATH11K_DBG_HTT_EXT_STATS_PDEV_TX_SCHED = 4, - ATH11K_DBG_HTT_EXT_STATS_PDEV_ERROR = 5, - ATH11K_DBG_HTT_EXT_STATS_PDEV_TQM = 6, - ATH11K_DBG_HTT_EXT_STATS_TQM_CMDQ = 7, - ATH11K_DBG_HTT_EXT_STATS_TX_DE_INFO = 8, - ATH11K_DBG_HTT_EXT_STATS_PDEV_TX_RATE = 9, - ATH11K_DBG_HTT_EXT_STATS_PDEV_RX_RATE = 10, - ATH11K_DBG_HTT_EXT_STATS_PEER_INFO = 11, - ATH11K_DBG_HTT_EXT_STATS_TX_SELFGEN_INFO = 12, - ATH11K_DBG_HTT_EXT_STATS_TX_MU_HWQ = 13, - ATH11K_DBG_HTT_EXT_STATS_RING_IF_INFO = 14, - ATH11K_DBG_HTT_EXT_STATS_SRNG_INFO = 15, - ATH11K_DBG_HTT_EXT_STATS_SFM_INFO = 16, - ATH11K_DBG_HTT_EXT_STATS_PDEV_TX_MU = 17, - ATH11K_DBG_HTT_EXT_STATS_ACTIVE_PEERS_LIST = 18, - ATH11K_DBG_HTT_EXT_STATS_PDEV_CCA_STATS = 19, - ATH11K_DBG_HTT_EXT_STATS_TWT_SESSIONS = 20, - ATH11K_DBG_HTT_EXT_STATS_REO_RESOURCE_STATS = 21, - ATH11K_DBG_HTT_EXT_STATS_TX_SOUNDING_INFO = 22, - - /* keep this last */ - ATH11K_DBG_HTT_NUM_EXT_STATS, -}; - -struct debug_htt_stats_req { - bool done; - u8 pdev_id; - u8 type; - u8 peer_addr[ETH_ALEN]; - struct completion cmpln; - u32 buf_len; - u8 buf[0]; -}; - -#define ATH11K_HTT_STATS_BUF_SIZE (1024 * 512) - -#define ATH11K_FW_STATS_BUF_SIZE (1024 * 1024) - -#define ATH11K_HTT_PKTLOG_MAX_SIZE 2048 - -enum ath11k_pktlog_filter { - ATH11K_PKTLOG_RX = 0x000000001, - ATH11K_PKTLOG_TX = 0x000000002, - ATH11K_PKTLOG_RCFIND = 0x000000004, - ATH11K_PKTLOG_RCUPDATE = 0x000000008, - ATH11K_PKTLOG_EVENT_SMART_ANT = 0x000000020, - ATH11K_PKTLOG_EVENT_SW = 0x000000040, - ATH11K_PKTLOG_ANY = 0x00000006f, -}; - -enum ath11k_pktlog_mode { - ATH11K_PKTLOG_MODE_LITE = 1, - ATH11K_PKTLOG_MODE_FULL = 2, -}; - -enum ath11k_pktlog_enum { - ATH11K_PKTLOG_TYPE_TX_CTRL = 1, - ATH11K_PKTLOG_TYPE_TX_STAT = 2, - ATH11K_PKTLOG_TYPE_TX_MSDU_ID = 3, - ATH11K_PKTLOG_TYPE_RX_STAT = 5, - ATH11K_PKTLOG_TYPE_RC_FIND = 6, - ATH11K_PKTLOG_TYPE_RC_UPDATE = 7, - ATH11K_PKTLOG_TYPE_TX_VIRT_ADDR = 8, - ATH11K_PKTLOG_TYPE_RX_CBF = 10, - ATH11K_PKTLOG_TYPE_RX_STATBUF = 22, - ATH11K_PKTLOG_TYPE_PPDU_STATS = 23, - ATH11K_PKTLOG_TYPE_LITE_RX = 24, -}; - __printf(2, 3) void ath11k_info(struct ath11k_base *ab, const char *fmt, ...); __printf(2, 3) void ath11k_err(struct ath11k_base *ab, const char *fmt, ...); __printf(2, 3) void ath11k_warn(struct ath11k_base *ab, const char *fmt, ...); @@ -133,143 +58,6 @@ } #endif /* CONFIG_ATH11K_DEBUG */ -#ifdef CONFIG_ATH11K_DEBUGFS -int ath11k_debug_soc_create(struct ath11k_base *ab); -void ath11k_debug_soc_destroy(struct ath11k_base *ab); -int ath11k_debug_pdev_create(struct ath11k_base *ab); -void ath11k_debug_pdev_destroy(struct ath11k_base *ab); -int ath11k_debug_register(struct ath11k *ar); -void ath11k_debug_unregister(struct ath11k *ar); -void ath11k_dbg_htt_ext_stats_handler(struct ath11k_base *ab, - struct sk_buff *skb); -void ath11k_debug_fw_stats_process(struct ath11k_base *ab, struct sk_buff *skb); - -void ath11k_debug_fw_stats_init(struct ath11k *ar); -int ath11k_dbg_htt_stats_req(struct ath11k *ar); - -static inline bool ath11k_debug_is_pktlog_lite_mode_enabled(struct ath11k *ar) -{ - return (ar->debug.pktlog_mode == ATH11K_PKTLOG_MODE_LITE); -} - -static inline bool ath11k_debug_is_pktlog_rx_stats_enabled(struct ath11k *ar) -{ - return (!ar->debug.pktlog_peer_valid && ar->debug.pktlog_mode); -} - -static inline bool ath11k_debug_is_pktlog_peer_valid(struct ath11k *ar, u8 *addr) -{ - return (ar->debug.pktlog_peer_valid && ar->debug.pktlog_mode && - ether_addr_equal(addr, ar->debug.pktlog_peer_addr)); -} - -static inline int ath11k_debug_is_extd_tx_stats_enabled(struct ath11k *ar) -{ - return ar->debug.extd_tx_stats; -} - -static inline int ath11k_debug_is_extd_rx_stats_enabled(struct ath11k *ar) -{ - return ar->debug.extd_rx_stats; -} - -void ath11k_sta_add_debugfs(struct ieee80211_hw *hw, struct ieee80211_vif *vif, - struct ieee80211_sta *sta, struct dentry *dir); -void -ath11k_accumulate_per_peer_tx_stats(struct ath11k_sta *arsta, - struct ath11k_per_peer_tx_stats *peer_stats, - u8 legacy_rate_idx); -void ath11k_update_per_peer_stats_from_txcompl(struct ath11k *ar, - struct sk_buff *msdu, - struct hal_tx_status *ts); -#else -static inline int ath11k_debug_soc_create(struct ath11k_base *ab) -{ - return 0; -} - -static inline void ath11k_debug_soc_destroy(struct ath11k_base *ab) -{ -} - -static inline int ath11k_debug_pdev_create(struct ath11k_base *ab) -{ - return 0; -} - -static inline void ath11k_debug_pdev_destroy(struct ath11k_base *ab) -{ -} - -static inline int ath11k_debug_register(struct ath11k *ar) -{ - return 0; -} - -static inline void ath11k_debug_unregister(struct ath11k *ar) -{ -} - -static inline void ath11k_dbg_htt_ext_stats_handler(struct ath11k_base *ab, - struct sk_buff *skb) -{ -} - -static inline void ath11k_debug_fw_stats_process(struct ath11k_base *ab, - struct sk_buff *skb) -{ -} - -static inline void ath11k_debug_fw_stats_init(struct ath11k *ar) -{ -} - -static inline int ath11k_debug_is_extd_tx_stats_enabled(struct ath11k *ar) -{ - return 0; -} - -static inline int ath11k_debug_is_extd_rx_stats_enabled(struct ath11k *ar) -{ - return 0; -} - -static inline int ath11k_dbg_htt_stats_req(struct ath11k *ar) -{ - return 0; -} - -static inline bool ath11k_debug_is_pktlog_lite_mode_enabled(struct ath11k *ar) -{ - return false; -} - -static inline bool ath11k_debug_is_pktlog_rx_stats_enabled(struct ath11k *ar) -{ - return false; -} - -static inline bool ath11k_debug_is_pktlog_peer_valid(struct ath11k *ar, u8 *addr) -{ - return false; -} - -static inline void -ath11k_accumulate_per_peer_tx_stats(struct ath11k_sta *arsta, - struct ath11k_per_peer_tx_stats *peer_stats, - u8 legacy_rate_idx) -{ -} - -static inline void -ath11k_update_per_peer_stats_from_txcompl(struct ath11k *ar, - struct sk_buff *msdu, - struct hal_tx_status *ts) -{ -} - -#endif /* CONFIG_MAC80211_DEBUGFS*/ - #define ath11k_dbg(ar, dbg_mask, fmt, ...) \ do { \ if (ath11k_debug_mask & dbg_mask) \ only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/net/wireless/ath/ath11k/debugfs.c +++ linux-oem-5.6-5.6.0/drivers/net/wireless/ath/ath11k/debugfs.c @@ -0,0 +1,1097 @@ +// SPDX-License-Identifier: BSD-3-Clause-Clear +/* + * Copyright (c) 2018-2020 The Linux Foundation. All rights reserved. + */ + +#include "debugfs.h" + +#include "core.h" +#include "debug.h" +#include "wmi.h" +#include "hal_rx.h" +#include "dp_tx.h" +#include "debugfs_htt_stats.h" +#include "peer.h" + +static const char *htt_bp_umac_ring[HTT_SW_UMAC_RING_IDX_MAX] = { + "REO2SW1_RING", + "REO2SW2_RING", + "REO2SW3_RING", + "REO2SW4_RING", + "WBM2REO_LINK_RING", + "REO2TCL_RING", + "REO2FW_RING", + "RELEASE_RING", + "PPE_RELEASE_RING", + "TCL2TQM_RING", + "TQM_RELEASE_RING", + "REO_RELEASE_RING", + "WBM2SW0_RELEASE_RING", + "WBM2SW1_RELEASE_RING", + "WBM2SW2_RELEASE_RING", + "WBM2SW3_RELEASE_RING", + "REO_CMD_RING", + "REO_STATUS_RING", +}; + +static const char *htt_bp_lmac_ring[HTT_SW_LMAC_RING_IDX_MAX] = { + "FW2RXDMA_BUF_RING", + "FW2RXDMA_STATUS_RING", + "FW2RXDMA_LINK_RING", + "SW2RXDMA_BUF_RING", + "WBM2RXDMA_LINK_RING", + "RXDMA2FW_RING", + "RXDMA2SW_RING", + "RXDMA2RELEASE_RING", + "RXDMA2REO_RING", + "MONITOR_STATUS_RING", + "MONITOR_BUF_RING", + "MONITOR_DESC_RING", + "MONITOR_DEST_RING", +}; + +static void ath11k_fw_stats_pdevs_free(struct list_head *head) +{ + struct ath11k_fw_stats_pdev *i, *tmp; + + list_for_each_entry_safe(i, tmp, head, list) { + list_del(&i->list); + kfree(i); + } +} + +static void ath11k_fw_stats_vdevs_free(struct list_head *head) +{ + struct ath11k_fw_stats_vdev *i, *tmp; + + list_for_each_entry_safe(i, tmp, head, list) { + list_del(&i->list); + kfree(i); + } +} + +static void ath11k_fw_stats_bcn_free(struct list_head *head) +{ + struct ath11k_fw_stats_bcn *i, *tmp; + + list_for_each_entry_safe(i, tmp, head, list) { + list_del(&i->list); + kfree(i); + } +} + +static void ath11k_debugfs_fw_stats_reset(struct ath11k *ar) +{ + spin_lock_bh(&ar->data_lock); + ar->debug.fw_stats_done = false; + ath11k_fw_stats_pdevs_free(&ar->debug.fw_stats.pdevs); + ath11k_fw_stats_vdevs_free(&ar->debug.fw_stats.vdevs); + spin_unlock_bh(&ar->data_lock); +} + +void ath11k_debugfs_fw_stats_process(struct ath11k_base *ab, struct sk_buff *skb) +{ + struct ath11k_fw_stats stats = {}; + struct ath11k *ar; + struct ath11k_pdev *pdev; + bool is_end; + static unsigned int num_vdev, num_bcn; + size_t total_vdevs_started = 0; + int i, ret; + + INIT_LIST_HEAD(&stats.pdevs); + INIT_LIST_HEAD(&stats.vdevs); + INIT_LIST_HEAD(&stats.bcn); + + ret = ath11k_wmi_pull_fw_stats(ab, skb, &stats); + if (ret) { + ath11k_warn(ab, "failed to pull fw stats: %d\n", ret); + goto free; + } + + rcu_read_lock(); + ar = ath11k_mac_get_ar_by_pdev_id(ab, stats.pdev_id); + if (!ar) { + rcu_read_unlock(); + ath11k_warn(ab, "failed to get ar for pdev_id %d: %d\n", + stats.pdev_id, ret); + goto free; + } + + spin_lock_bh(&ar->data_lock); + + if (stats.stats_id == WMI_REQUEST_PDEV_STAT) { + list_splice_tail_init(&stats.pdevs, &ar->debug.fw_stats.pdevs); + ar->debug.fw_stats_done = true; + goto complete; + } + + if (stats.stats_id == WMI_REQUEST_VDEV_STAT) { + if (list_empty(&stats.vdevs)) { + ath11k_warn(ab, "empty vdev stats"); + goto complete; + } + /* FW sends all the active VDEV stats irrespective of PDEV, + * hence limit until the count of all VDEVs started + */ + for (i = 0; i < ab->num_radios; i++) { + pdev = rcu_dereference(ab->pdevs_active[i]); + if (pdev && pdev->ar) + total_vdevs_started += ar->num_started_vdevs; + } + + is_end = ((++num_vdev) == total_vdevs_started); + + list_splice_tail_init(&stats.vdevs, + &ar->debug.fw_stats.vdevs); + + if (is_end) { + ar->debug.fw_stats_done = true; + num_vdev = 0; + } + goto complete; + } + + if (stats.stats_id == WMI_REQUEST_BCN_STAT) { + if (list_empty(&stats.bcn)) { + ath11k_warn(ab, "empty bcn stats"); + goto complete; + } + /* Mark end until we reached the count of all started VDEVs + * within the PDEV + */ + is_end = ((++num_bcn) == ar->num_started_vdevs); + + list_splice_tail_init(&stats.bcn, + &ar->debug.fw_stats.bcn); + + if (is_end) { + ar->debug.fw_stats_done = true; + num_bcn = 0; + } + } +complete: + complete(&ar->debug.fw_stats_complete); + rcu_read_unlock(); + spin_unlock_bh(&ar->data_lock); + +free: + ath11k_fw_stats_pdevs_free(&stats.pdevs); + ath11k_fw_stats_vdevs_free(&stats.vdevs); + ath11k_fw_stats_bcn_free(&stats.bcn); +} + +static int ath11k_debugfs_fw_stats_request(struct ath11k *ar, + struct stats_request_params *req_param) +{ + struct ath11k_base *ab = ar->ab; + unsigned long timeout, time_left; + int ret; + + lockdep_assert_held(&ar->conf_mutex); + + /* FW stats can get split when exceeding the stats data buffer limit. + * In that case, since there is no end marking for the back-to-back + * received 'update stats' event, we keep a 3 seconds timeout in case, + * fw_stats_done is not marked yet + */ + timeout = jiffies + msecs_to_jiffies(3 * HZ); + + ath11k_debugfs_fw_stats_reset(ar); + + reinit_completion(&ar->debug.fw_stats_complete); + + ret = ath11k_wmi_send_stats_request_cmd(ar, req_param); + + if (ret) { + ath11k_warn(ab, "could not request fw stats (%d)\n", + ret); + return ret; + } + + time_left = + wait_for_completion_timeout(&ar->debug.fw_stats_complete, + 1 * HZ); + if (!time_left) + return -ETIMEDOUT; + + for (;;) { + if (time_after(jiffies, timeout)) + break; + + spin_lock_bh(&ar->data_lock); + if (ar->debug.fw_stats_done) { + spin_unlock_bh(&ar->data_lock); + break; + } + spin_unlock_bh(&ar->data_lock); + } + return 0; +} + +static int ath11k_open_pdev_stats(struct inode *inode, struct file *file) +{ + struct ath11k *ar = inode->i_private; + struct ath11k_base *ab = ar->ab; + struct stats_request_params req_param; + void *buf = NULL; + int ret; + + mutex_lock(&ar->conf_mutex); + + if (ar->state != ATH11K_STATE_ON) { + ret = -ENETDOWN; + goto err_unlock; + } + + buf = vmalloc(ATH11K_FW_STATS_BUF_SIZE); + if (!buf) { + ret = -ENOMEM; + goto err_unlock; + } + + req_param.pdev_id = ar->pdev->pdev_id; + req_param.vdev_id = 0; + req_param.stats_id = WMI_REQUEST_PDEV_STAT; + + ret = ath11k_debugfs_fw_stats_request(ar, &req_param); + if (ret) { + ath11k_warn(ab, "failed to request fw pdev stats: %d\n", ret); + goto err_free; + } + + ath11k_wmi_fw_stats_fill(ar, &ar->debug.fw_stats, req_param.stats_id, + buf); + + file->private_data = buf; + + mutex_unlock(&ar->conf_mutex); + return 0; + +err_free: + vfree(buf); + +err_unlock: + mutex_unlock(&ar->conf_mutex); + return ret; +} + +static int ath11k_release_pdev_stats(struct inode *inode, struct file *file) +{ + vfree(file->private_data); + + return 0; +} + +static ssize_t ath11k_read_pdev_stats(struct file *file, + char __user *user_buf, + size_t count, loff_t *ppos) +{ + const char *buf = file->private_data; + size_t len = strlen(buf); + + return simple_read_from_buffer(user_buf, count, ppos, buf, len); +} + +static const struct file_operations fops_pdev_stats = { + .open = ath11k_open_pdev_stats, + .release = ath11k_release_pdev_stats, + .read = ath11k_read_pdev_stats, + .owner = THIS_MODULE, + .llseek = default_llseek, +}; + +static int ath11k_open_vdev_stats(struct inode *inode, struct file *file) +{ + struct ath11k *ar = inode->i_private; + struct stats_request_params req_param; + void *buf = NULL; + int ret; + + mutex_lock(&ar->conf_mutex); + + if (ar->state != ATH11K_STATE_ON) { + ret = -ENETDOWN; + goto err_unlock; + } + + buf = vmalloc(ATH11K_FW_STATS_BUF_SIZE); + if (!buf) { + ret = -ENOMEM; + goto err_unlock; + } + + req_param.pdev_id = ar->pdev->pdev_id; + /* VDEV stats is always sent for all active VDEVs from FW */ + req_param.vdev_id = 0; + req_param.stats_id = WMI_REQUEST_VDEV_STAT; + + ret = ath11k_debugfs_fw_stats_request(ar, &req_param); + if (ret) { + ath11k_warn(ar->ab, "failed to request fw vdev stats: %d\n", ret); + goto err_free; + } + + ath11k_wmi_fw_stats_fill(ar, &ar->debug.fw_stats, req_param.stats_id, + buf); + + file->private_data = buf; + + mutex_unlock(&ar->conf_mutex); + return 0; + +err_free: + vfree(buf); + +err_unlock: + mutex_unlock(&ar->conf_mutex); + return ret; +} + +static int ath11k_release_vdev_stats(struct inode *inode, struct file *file) +{ + vfree(file->private_data); + + return 0; +} + +static ssize_t ath11k_read_vdev_stats(struct file *file, + char __user *user_buf, + size_t count, loff_t *ppos) +{ + const char *buf = file->private_data; + size_t len = strlen(buf); + + return simple_read_from_buffer(user_buf, count, ppos, buf, len); +} + +static const struct file_operations fops_vdev_stats = { + .open = ath11k_open_vdev_stats, + .release = ath11k_release_vdev_stats, + .read = ath11k_read_vdev_stats, + .owner = THIS_MODULE, + .llseek = default_llseek, +}; + +static int ath11k_open_bcn_stats(struct inode *inode, struct file *file) +{ + struct ath11k *ar = inode->i_private; + struct ath11k_vif *arvif; + struct stats_request_params req_param; + void *buf = NULL; + int ret; + + mutex_lock(&ar->conf_mutex); + + if (ar->state != ATH11K_STATE_ON) { + ret = -ENETDOWN; + goto err_unlock; + } + + buf = vmalloc(ATH11K_FW_STATS_BUF_SIZE); + if (!buf) { + ret = -ENOMEM; + goto err_unlock; + } + + req_param.stats_id = WMI_REQUEST_BCN_STAT; + req_param.pdev_id = ar->pdev->pdev_id; + + /* loop all active VDEVs for bcn stats */ + list_for_each_entry(arvif, &ar->arvifs, list) { + if (!arvif->is_up) + continue; + + req_param.vdev_id = arvif->vdev_id; + ret = ath11k_debugfs_fw_stats_request(ar, &req_param); + if (ret) { + ath11k_warn(ar->ab, "failed to request fw bcn stats: %d\n", ret); + goto err_free; + } + } + + ath11k_wmi_fw_stats_fill(ar, &ar->debug.fw_stats, req_param.stats_id, + buf); + + /* since beacon stats request is looped for all active VDEVs, saved fw + * stats is not freed for each request until done for all active VDEVs + */ + spin_lock_bh(&ar->data_lock); + ath11k_fw_stats_bcn_free(&ar->debug.fw_stats.bcn); + spin_unlock_bh(&ar->data_lock); + + file->private_data = buf; + + mutex_unlock(&ar->conf_mutex); + return 0; + +err_free: + vfree(buf); + +err_unlock: + mutex_unlock(&ar->conf_mutex); + return ret; +} + +static int ath11k_release_bcn_stats(struct inode *inode, struct file *file) +{ + vfree(file->private_data); + + return 0; +} + +static ssize_t ath11k_read_bcn_stats(struct file *file, + char __user *user_buf, + size_t count, loff_t *ppos) +{ + const char *buf = file->private_data; + size_t len = strlen(buf); + + return simple_read_from_buffer(user_buf, count, ppos, buf, len); +} + +static const struct file_operations fops_bcn_stats = { + .open = ath11k_open_bcn_stats, + .release = ath11k_release_bcn_stats, + .read = ath11k_read_bcn_stats, + .owner = THIS_MODULE, + .llseek = default_llseek, +}; + +static ssize_t ath11k_read_simulate_fw_crash(struct file *file, + char __user *user_buf, + size_t count, loff_t *ppos) +{ + const char buf[] = + "To simulate firmware crash write one of the keywords to this file:\n" + "`assert` - this will send WMI_FORCE_FW_HANG_CMDID to firmware to cause assert.\n" + "`hw-restart` - this will simply queue hw restart without fw/hw actually crashing.\n"; + + return simple_read_from_buffer(user_buf, count, ppos, buf, strlen(buf)); +} + +/* Simulate firmware crash: + * 'soft': Call wmi command causing firmware hang. This firmware hang is + * recoverable by warm firmware reset. + * 'hard': Force firmware crash by setting any vdev parameter for not allowed + * vdev id. This is hard firmware crash because it is recoverable only by cold + * firmware reset. + */ +static ssize_t ath11k_write_simulate_fw_crash(struct file *file, + const char __user *user_buf, + size_t count, loff_t *ppos) +{ + struct ath11k_base *ab = file->private_data; + struct ath11k_pdev *pdev; + struct ath11k *ar = ab->pdevs[0].ar; + char buf[32] = {0}; + ssize_t rc; + int i, ret, radioup = 0; + + for (i = 0; i < ab->num_radios; i++) { + pdev = &ab->pdevs[i]; + ar = pdev->ar; + if (ar && ar->state == ATH11K_STATE_ON) { + radioup = 1; + break; + } + } + /* filter partial writes and invalid commands */ + if (*ppos != 0 || count >= sizeof(buf) || count == 0) + return -EINVAL; + + rc = simple_write_to_buffer(buf, sizeof(buf) - 1, ppos, user_buf, count); + if (rc < 0) + return rc; + + /* drop the possible '\n' from the end */ + if (buf[*ppos - 1] == '\n') + buf[*ppos - 1] = '\0'; + + if (radioup == 0) { + ret = -ENETDOWN; + goto exit; + } + + if (!strcmp(buf, "assert")) { + ath11k_info(ab, "simulating firmware assert crash\n"); + ret = ath11k_wmi_force_fw_hang_cmd(ar, + ATH11K_WMI_FW_HANG_ASSERT_TYPE, + ATH11K_WMI_FW_HANG_DELAY); + } else { + ret = -EINVAL; + goto exit; + } + + if (ret) { + ath11k_warn(ab, "failed to simulate firmware crash: %d\n", ret); + goto exit; + } + + ret = count; + +exit: + return ret; +} + +static const struct file_operations fops_simulate_fw_crash = { + .read = ath11k_read_simulate_fw_crash, + .write = ath11k_write_simulate_fw_crash, + .open = simple_open, + .owner = THIS_MODULE, + .llseek = default_llseek, +}; + +static ssize_t ath11k_write_enable_extd_tx_stats(struct file *file, + const char __user *ubuf, + size_t count, loff_t *ppos) +{ + struct ath11k *ar = file->private_data; + u32 filter; + int ret; + + if (kstrtouint_from_user(ubuf, count, 0, &filter)) + return -EINVAL; + + mutex_lock(&ar->conf_mutex); + + if (ar->state != ATH11K_STATE_ON) { + ret = -ENETDOWN; + goto out; + } + + if (filter == ar->debug.extd_tx_stats) { + ret = count; + goto out; + } + + ar->debug.extd_tx_stats = filter; + ret = count; + +out: + mutex_unlock(&ar->conf_mutex); + return ret; +} + +static ssize_t ath11k_read_enable_extd_tx_stats(struct file *file, + char __user *ubuf, + size_t count, loff_t *ppos) + +{ + char buf[32] = {0}; + struct ath11k *ar = file->private_data; + int len = 0; + + mutex_lock(&ar->conf_mutex); + len = scnprintf(buf, sizeof(buf) - len, "%08x\n", + ar->debug.extd_tx_stats); + mutex_unlock(&ar->conf_mutex); + + return simple_read_from_buffer(ubuf, count, ppos, buf, len); +} + +static const struct file_operations fops_extd_tx_stats = { + .read = ath11k_read_enable_extd_tx_stats, + .write = ath11k_write_enable_extd_tx_stats, + .open = simple_open +}; + +static ssize_t ath11k_write_extd_rx_stats(struct file *file, + const char __user *ubuf, + size_t count, loff_t *ppos) +{ + struct ath11k *ar = file->private_data; + struct ath11k_base *ab = ar->ab; + struct htt_rx_ring_tlv_filter tlv_filter = {0}; + u32 enable, rx_filter = 0, ring_id; + int i; + int ret; + + if (kstrtouint_from_user(ubuf, count, 0, &enable)) + return -EINVAL; + + mutex_lock(&ar->conf_mutex); + + if (ar->state != ATH11K_STATE_ON) { + ret = -ENETDOWN; + goto exit; + } + + if (enable > 1) { + ret = -EINVAL; + goto exit; + } + + if (enable == ar->debug.extd_rx_stats) { + ret = count; + goto exit; + } + + if (enable) { + rx_filter = HTT_RX_FILTER_TLV_FLAGS_MPDU_START; + rx_filter |= HTT_RX_FILTER_TLV_FLAGS_PPDU_START; + rx_filter |= HTT_RX_FILTER_TLV_FLAGS_PPDU_END; + rx_filter |= HTT_RX_FILTER_TLV_FLAGS_PPDU_END_USER_STATS; + rx_filter |= HTT_RX_FILTER_TLV_FLAGS_PPDU_END_USER_STATS_EXT; + rx_filter |= HTT_RX_FILTER_TLV_FLAGS_PPDU_END_STATUS_DONE; + + tlv_filter.rx_filter = rx_filter; + tlv_filter.pkt_filter_flags0 = HTT_RX_FP_MGMT_FILTER_FLAGS0; + tlv_filter.pkt_filter_flags1 = HTT_RX_FP_MGMT_FILTER_FLAGS1; + tlv_filter.pkt_filter_flags2 = HTT_RX_FP_CTRL_FILTER_FLASG2; + tlv_filter.pkt_filter_flags3 = HTT_RX_FP_CTRL_FILTER_FLASG3 | + HTT_RX_FP_DATA_FILTER_FLASG3; + } else { + tlv_filter = ath11k_mac_mon_status_filter_default; + } + + ar->debug.rx_filter = tlv_filter.rx_filter; + + for (i = 0; i < ab->hw_params.num_rxmda_per_pdev; i++) { + ring_id = ar->dp.rx_mon_status_refill_ring[i].refill_buf_ring.ring_id; + ret = ath11k_dp_tx_htt_rx_filter_setup(ar->ab, ring_id, ar->dp.mac_id, + HAL_RXDMA_MONITOR_STATUS, + DP_RX_BUFFER_SIZE, &tlv_filter); + + if (ret) { + ath11k_warn(ar->ab, "failed to set rx filter for monitor status ring\n"); + goto exit; + } + } + + ar->debug.extd_rx_stats = enable; + ret = count; +exit: + mutex_unlock(&ar->conf_mutex); + return ret; +} + +static ssize_t ath11k_read_extd_rx_stats(struct file *file, + char __user *ubuf, + size_t count, loff_t *ppos) +{ + struct ath11k *ar = file->private_data; + char buf[32]; + int len = 0; + + mutex_lock(&ar->conf_mutex); + len = scnprintf(buf, sizeof(buf) - len, "%d\n", + ar->debug.extd_rx_stats); + mutex_unlock(&ar->conf_mutex); + + return simple_read_from_buffer(ubuf, count, ppos, buf, len); +} + +static const struct file_operations fops_extd_rx_stats = { + .read = ath11k_read_extd_rx_stats, + .write = ath11k_write_extd_rx_stats, + .open = simple_open, +}; + +static int ath11k_fill_bp_stats(struct ath11k_base *ab, + struct ath11k_bp_stats *bp_stats, + char *buf, int len, int size) +{ + lockdep_assert_held(&ab->base_lock); + + len += scnprintf(buf + len, size - len, "count: %u\n", + bp_stats->count); + len += scnprintf(buf + len, size - len, "hp: %u\n", + bp_stats->hp); + len += scnprintf(buf + len, size - len, "tp: %u\n", + bp_stats->tp); + len += scnprintf(buf + len, size - len, "seen before: %ums\n\n", + jiffies_to_msecs(jiffies - bp_stats->jiffies)); + return len; +} + +static ssize_t ath11k_debugfs_dump_soc_ring_bp_stats(struct ath11k_base *ab, + char *buf, int size) +{ + struct ath11k_bp_stats *bp_stats; + bool stats_rxd = false; + u8 i, pdev_idx; + int len = 0; + + len += scnprintf(buf + len, size - len, "\nBackpressure Stats\n"); + len += scnprintf(buf + len, size - len, "==================\n"); + + spin_lock_bh(&ab->base_lock); + for (i = 0; i < HTT_SW_UMAC_RING_IDX_MAX; i++) { + bp_stats = &ab->soc_stats.bp_stats.umac_ring_bp_stats[i]; + + if (!bp_stats->count) + continue; + + len += scnprintf(buf + len, size - len, "Ring: %s\n", + htt_bp_umac_ring[i]); + len = ath11k_fill_bp_stats(ab, bp_stats, buf, len, size); + stats_rxd = true; + } + + for (i = 0; i < HTT_SW_LMAC_RING_IDX_MAX; i++) { + for (pdev_idx = 0; pdev_idx < MAX_RADIOS; pdev_idx++) { + bp_stats = + &ab->soc_stats.bp_stats.lmac_ring_bp_stats[i][pdev_idx]; + + if (!bp_stats->count) + continue; + + len += scnprintf(buf + len, size - len, "Ring: %s\n", + htt_bp_lmac_ring[i]); + len += scnprintf(buf + len, size - len, "pdev: %d\n", + pdev_idx); + len = ath11k_fill_bp_stats(ab, bp_stats, buf, len, size); + stats_rxd = true; + } + } + spin_unlock_bh(&ab->base_lock); + + if (!stats_rxd) + len += scnprintf(buf + len, size - len, + "No Ring Backpressure stats received\n\n"); + + return len; +} + +static ssize_t ath11k_debugfs_dump_soc_dp_stats(struct file *file, + char __user *user_buf, + size_t count, loff_t *ppos) +{ + struct ath11k_base *ab = file->private_data; + struct ath11k_soc_dp_stats *soc_stats = &ab->soc_stats; + int len = 0, i, retval; + const int size = 4096; + static const char *rxdma_err[HAL_REO_ENTR_RING_RXDMA_ECODE_MAX] = { + "Overflow", "MPDU len", "FCS", "Decrypt", "TKIP MIC", + "Unencrypt", "MSDU len", "MSDU limit", "WiFi parse", + "AMSDU parse", "SA timeout", "DA timeout", + "Flow timeout", "Flush req"}; + static const char *reo_err[HAL_REO_DEST_RING_ERROR_CODE_MAX] = { + "Desc addr zero", "Desc inval", "AMPDU in non BA", + "Non BA dup", "BA dup", "Frame 2k jump", "BAR 2k jump", + "Frame OOR", "BAR OOR", "No BA session", + "Frame SN equal SSN", "PN check fail", "2k err", + "PN err", "Desc blocked"}; + + char *buf; + + buf = kzalloc(size, GFP_KERNEL); + if (!buf) + return -ENOMEM; + + len += scnprintf(buf + len, size - len, "SOC RX STATS:\n\n"); + len += scnprintf(buf + len, size - len, "err ring pkts: %u\n", + soc_stats->err_ring_pkts); + len += scnprintf(buf + len, size - len, "Invalid RBM: %u\n\n", + soc_stats->invalid_rbm); + len += scnprintf(buf + len, size - len, "RXDMA errors:\n"); + for (i = 0; i < HAL_REO_ENTR_RING_RXDMA_ECODE_MAX; i++) + len += scnprintf(buf + len, size - len, "%s: %u\n", + rxdma_err[i], soc_stats->rxdma_error[i]); + + len += scnprintf(buf + len, size - len, "\nREO errors:\n"); + for (i = 0; i < HAL_REO_DEST_RING_ERROR_CODE_MAX; i++) + len += scnprintf(buf + len, size - len, "%s: %u\n", + reo_err[i], soc_stats->reo_error[i]); + + len += scnprintf(buf + len, size - len, "\nHAL REO errors:\n"); + len += scnprintf(buf + len, size - len, + "ring0: %u\nring1: %u\nring2: %u\nring3: %u\n", + soc_stats->hal_reo_error[0], + soc_stats->hal_reo_error[1], + soc_stats->hal_reo_error[2], + soc_stats->hal_reo_error[3]); + + len += scnprintf(buf + len, size - len, "\nSOC TX STATS:\n"); + len += scnprintf(buf + len, size - len, "\nTCL Ring Full Failures:\n"); + + for (i = 0; i < DP_TCL_NUM_RING_MAX; i++) + len += scnprintf(buf + len, size - len, "ring%d: %u\n", + i, soc_stats->tx_err.desc_na[i]); + + len += scnprintf(buf + len, size - len, + "\nMisc Transmit Failures: %d\n", + atomic_read(&soc_stats->tx_err.misc_fail)); + + len += ath11k_debugfs_dump_soc_ring_bp_stats(ab, buf + len, size - len); + + if (len > size) + len = size; + retval = simple_read_from_buffer(user_buf, count, ppos, buf, len); + kfree(buf); + + return retval; +} + +static const struct file_operations fops_soc_dp_stats = { + .read = ath11k_debugfs_dump_soc_dp_stats, + .open = simple_open, + .owner = THIS_MODULE, + .llseek = default_llseek, +}; + +int ath11k_debugfs_pdev_create(struct ath11k_base *ab) +{ + if (test_bit(ATH11K_FLAG_REGISTERED, &ab->dev_flags)) + return 0; + + ab->debugfs_soc = debugfs_create_dir(ab->hw_params.name, ab->debugfs_ath11k); + if (IS_ERR(ab->debugfs_soc)) + return PTR_ERR(ab->debugfs_soc); + + debugfs_create_file("simulate_fw_crash", 0600, ab->debugfs_soc, ab, + &fops_simulate_fw_crash); + + debugfs_create_file("soc_dp_stats", 0600, ab->debugfs_soc, ab, + &fops_soc_dp_stats); + + return 0; +} + +void ath11k_debugfs_pdev_destroy(struct ath11k_base *ab) +{ + debugfs_remove_recursive(ab->debugfs_soc); + ab->debugfs_soc = NULL; +} + +int ath11k_debugfs_soc_create(struct ath11k_base *ab) +{ + ab->debugfs_ath11k = debugfs_create_dir("ath11k", NULL); + + return PTR_ERR_OR_ZERO(ab->debugfs_ath11k); +} + +void ath11k_debugfs_soc_destroy(struct ath11k_base *ab) +{ + debugfs_remove_recursive(ab->debugfs_ath11k); + ab->debugfs_ath11k = NULL; +} + +void ath11k_debugfs_fw_stats_init(struct ath11k *ar) +{ + struct dentry *fwstats_dir = debugfs_create_dir("fw_stats", + ar->debug.debugfs_pdev); + + ar->debug.fw_stats.debugfs_fwstats = fwstats_dir; + + /* all stats debugfs files created are under "fw_stats" directory + * created per PDEV + */ + debugfs_create_file("pdev_stats", 0600, fwstats_dir, ar, + &fops_pdev_stats); + debugfs_create_file("vdev_stats", 0600, fwstats_dir, ar, + &fops_vdev_stats); + debugfs_create_file("beacon_stats", 0600, fwstats_dir, ar, + &fops_bcn_stats); + + INIT_LIST_HEAD(&ar->debug.fw_stats.pdevs); + INIT_LIST_HEAD(&ar->debug.fw_stats.vdevs); + INIT_LIST_HEAD(&ar->debug.fw_stats.bcn); + + init_completion(&ar->debug.fw_stats_complete); +} + +static ssize_t ath11k_write_pktlog_filter(struct file *file, + const char __user *ubuf, + size_t count, loff_t *ppos) +{ + struct ath11k *ar = file->private_data; + struct ath11k_base *ab = ar->ab; + struct htt_rx_ring_tlv_filter tlv_filter = {0}; + u32 rx_filter = 0, ring_id, filter, mode; + u8 buf[128] = {0}; + int i, ret; + ssize_t rc; + + mutex_lock(&ar->conf_mutex); + if (ar->state != ATH11K_STATE_ON) { + ret = -ENETDOWN; + goto out; + } + + rc = simple_write_to_buffer(buf, sizeof(buf) - 1, ppos, ubuf, count); + if (rc < 0) { + ret = rc; + goto out; + } + buf[rc] = '\0'; + + ret = sscanf(buf, "0x%x %u", &filter, &mode); + if (ret != 2) { + ret = -EINVAL; + goto out; + } + + if (filter) { + ret = ath11k_wmi_pdev_pktlog_enable(ar, filter); + if (ret) { + ath11k_warn(ar->ab, + "failed to enable pktlog filter %x: %d\n", + ar->debug.pktlog_filter, ret); + goto out; + } + } else { + ret = ath11k_wmi_pdev_pktlog_disable(ar); + if (ret) { + ath11k_warn(ar->ab, "failed to disable pktlog: %d\n", ret); + goto out; + } + } + +#define HTT_RX_FILTER_TLV_LITE_MODE \ + (HTT_RX_FILTER_TLV_FLAGS_PPDU_START | \ + HTT_RX_FILTER_TLV_FLAGS_PPDU_END | \ + HTT_RX_FILTER_TLV_FLAGS_PPDU_END_USER_STATS | \ + HTT_RX_FILTER_TLV_FLAGS_PPDU_END_USER_STATS_EXT | \ + HTT_RX_FILTER_TLV_FLAGS_PPDU_END_STATUS_DONE | \ + HTT_RX_FILTER_TLV_FLAGS_MPDU_START) + + if (mode == ATH11K_PKTLOG_MODE_FULL) { + rx_filter = HTT_RX_FILTER_TLV_LITE_MODE | + HTT_RX_FILTER_TLV_FLAGS_MSDU_START | + HTT_RX_FILTER_TLV_FLAGS_MSDU_END | + HTT_RX_FILTER_TLV_FLAGS_MPDU_END | + HTT_RX_FILTER_TLV_FLAGS_PACKET_HEADER | + HTT_RX_FILTER_TLV_FLAGS_ATTENTION; + } else if (mode == ATH11K_PKTLOG_MODE_LITE) { + ret = ath11k_dp_tx_htt_h2t_ppdu_stats_req(ar, + HTT_PPDU_STATS_TAG_PKTLOG); + if (ret) { + ath11k_err(ar->ab, "failed to enable pktlog lite: %d\n", ret); + goto out; + } + + rx_filter = HTT_RX_FILTER_TLV_LITE_MODE; + } else { + ret = ath11k_dp_tx_htt_h2t_ppdu_stats_req(ar, + HTT_PPDU_STATS_TAG_DEFAULT); + if (ret) { + ath11k_err(ar->ab, "failed to send htt ppdu stats req: %d\n", + ret); + goto out; + } + } + + tlv_filter.rx_filter = rx_filter; + if (rx_filter) { + tlv_filter.pkt_filter_flags0 = HTT_RX_FP_MGMT_FILTER_FLAGS0; + tlv_filter.pkt_filter_flags1 = HTT_RX_FP_MGMT_FILTER_FLAGS1; + tlv_filter.pkt_filter_flags2 = HTT_RX_FP_CTRL_FILTER_FLASG2; + tlv_filter.pkt_filter_flags3 = HTT_RX_FP_CTRL_FILTER_FLASG3 | + HTT_RX_FP_DATA_FILTER_FLASG3; + } + + for (i = 0; i < ab->hw_params.num_rxmda_per_pdev; i++) { + ring_id = ar->dp.rx_mon_status_refill_ring[i].refill_buf_ring.ring_id; + ret = ath11k_dp_tx_htt_rx_filter_setup(ab, ring_id, + ar->dp.mac_id + i, + HAL_RXDMA_MONITOR_STATUS, + DP_RX_BUFFER_SIZE, &tlv_filter); + + if (ret) { + ath11k_warn(ab, "failed to set rx filter for monitor status ring\n"); + goto out; + } + } + + ath11k_dbg(ab, ATH11K_DBG_WMI, "pktlog filter %d mode %s\n", + filter, ((mode == ATH11K_PKTLOG_MODE_FULL) ? "full" : "lite")); + + ar->debug.pktlog_filter = filter; + ar->debug.pktlog_mode = mode; + ret = count; + +out: + mutex_unlock(&ar->conf_mutex); + return ret; +} + +static ssize_t ath11k_read_pktlog_filter(struct file *file, + char __user *ubuf, + size_t count, loff_t *ppos) + +{ + char buf[32] = {0}; + struct ath11k *ar = file->private_data; + int len = 0; + + mutex_lock(&ar->conf_mutex); + len = scnprintf(buf, sizeof(buf) - len, "%08x %08x\n", + ar->debug.pktlog_filter, + ar->debug.pktlog_mode); + mutex_unlock(&ar->conf_mutex); + + return simple_read_from_buffer(ubuf, count, ppos, buf, len); +} + +static const struct file_operations fops_pktlog_filter = { + .read = ath11k_read_pktlog_filter, + .write = ath11k_write_pktlog_filter, + .open = simple_open +}; + +static ssize_t ath11k_write_simulate_radar(struct file *file, + const char __user *user_buf, + size_t count, loff_t *ppos) +{ + struct ath11k *ar = file->private_data; + int ret; + + ret = ath11k_wmi_simulate_radar(ar); + if (ret) + return ret; + + return count; +} + +static const struct file_operations fops_simulate_radar = { + .write = ath11k_write_simulate_radar, + .open = simple_open +}; + +int ath11k_debugfs_register(struct ath11k *ar) +{ + struct ath11k_base *ab = ar->ab; + char pdev_name[5]; + char buf[100] = {0}; + + snprintf(pdev_name, sizeof(pdev_name), "%s%d", "mac", ar->pdev_idx); + + ar->debug.debugfs_pdev = debugfs_create_dir(pdev_name, ab->debugfs_soc); + if (IS_ERR(ar->debug.debugfs_pdev)) + return PTR_ERR(ar->debug.debugfs_pdev); + + /* Create a symlink under ieee80211/phy* */ + snprintf(buf, 100, "../../ath11k/%pd2", ar->debug.debugfs_pdev); + debugfs_create_symlink("ath11k", ar->hw->wiphy->debugfsdir, buf); + + ath11k_debugfs_htt_stats_init(ar); + + ath11k_debugfs_fw_stats_init(ar); + + debugfs_create_file("ext_tx_stats", 0644, + ar->debug.debugfs_pdev, ar, + &fops_extd_tx_stats); + debugfs_create_file("ext_rx_stats", 0644, + ar->debug.debugfs_pdev, ar, + &fops_extd_rx_stats); + debugfs_create_file("pktlog_filter", 0644, + ar->debug.debugfs_pdev, ar, + &fops_pktlog_filter); + + if (ar->hw->wiphy->bands[NL80211_BAND_5GHZ]) { + debugfs_create_file("dfs_simulate_radar", 0200, + ar->debug.debugfs_pdev, ar, + &fops_simulate_radar); + debugfs_create_bool("dfs_block_radar_events", 0200, + ar->debug.debugfs_pdev, + &ar->dfs_block_radar_events); + } + + return 0; +} + +void ath11k_debugfs_unregister(struct ath11k *ar) +{ +} only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/net/wireless/ath/ath11k/debugfs.h +++ linux-oem-5.6-5.6.0/drivers/net/wireless/ath/ath11k/debugfs.h @@ -0,0 +1,217 @@ +/* SPDX-License-Identifier: BSD-3-Clause-Clear */ +/* + * Copyright (c) 2018-2019 The Linux Foundation. All rights reserved. + */ + +#ifndef _ATH11K_DEBUGFS_H_ +#define _ATH11K_DEBUGFS_H_ + +#include "hal_tx.h" + +#define ATH11K_TX_POWER_MAX_VAL 70 +#define ATH11K_TX_POWER_MIN_VAL 0 + +/* htt_dbg_ext_stats_type */ +enum ath11k_dbg_htt_ext_stats_type { + ATH11K_DBG_HTT_EXT_STATS_RESET = 0, + ATH11K_DBG_HTT_EXT_STATS_PDEV_TX = 1, + ATH11K_DBG_HTT_EXT_STATS_PDEV_RX = 2, + ATH11K_DBG_HTT_EXT_STATS_PDEV_TX_HWQ = 3, + ATH11K_DBG_HTT_EXT_STATS_PDEV_TX_SCHED = 4, + ATH11K_DBG_HTT_EXT_STATS_PDEV_ERROR = 5, + ATH11K_DBG_HTT_EXT_STATS_PDEV_TQM = 6, + ATH11K_DBG_HTT_EXT_STATS_TQM_CMDQ = 7, + ATH11K_DBG_HTT_EXT_STATS_TX_DE_INFO = 8, + ATH11K_DBG_HTT_EXT_STATS_PDEV_TX_RATE = 9, + ATH11K_DBG_HTT_EXT_STATS_PDEV_RX_RATE = 10, + ATH11K_DBG_HTT_EXT_STATS_PEER_INFO = 11, + ATH11K_DBG_HTT_EXT_STATS_TX_SELFGEN_INFO = 12, + ATH11K_DBG_HTT_EXT_STATS_TX_MU_HWQ = 13, + ATH11K_DBG_HTT_EXT_STATS_RING_IF_INFO = 14, + ATH11K_DBG_HTT_EXT_STATS_SRNG_INFO = 15, + ATH11K_DBG_HTT_EXT_STATS_SFM_INFO = 16, + ATH11K_DBG_HTT_EXT_STATS_PDEV_TX_MU = 17, + ATH11K_DBG_HTT_EXT_STATS_ACTIVE_PEERS_LIST = 18, + ATH11K_DBG_HTT_EXT_STATS_PDEV_CCA_STATS = 19, + ATH11K_DBG_HTT_EXT_STATS_TWT_SESSIONS = 20, + ATH11K_DBG_HTT_EXT_STATS_REO_RESOURCE_STATS = 21, + ATH11K_DBG_HTT_EXT_STATS_TX_SOUNDING_INFO = 22, + ATH11K_DBG_HTT_EXT_STATS_PDEV_OBSS_PD_STATS = 23, + ATH11K_DBG_HTT_EXT_STATS_RING_BACKPRESSURE_STATS = 24, + + /* keep this last */ + ATH11K_DBG_HTT_NUM_EXT_STATS, +}; + +struct debug_htt_stats_req { + bool done; + u8 pdev_id; + u8 type; + u8 peer_addr[ETH_ALEN]; + struct completion cmpln; + u32 buf_len; + u8 buf[]; +}; + +struct ath_pktlog_hdr { + u16 flags; + u16 missed_cnt; + u16 log_type; + u16 size; + u32 timestamp; + u32 type_specific_data; + u8 payload[]; +}; + +#define ATH11K_HTT_PEER_STATS_RESET BIT(16) + +#define ATH11K_HTT_STATS_BUF_SIZE (1024 * 512) +#define ATH11K_FW_STATS_BUF_SIZE (1024 * 1024) + +enum ath11k_pktlog_filter { + ATH11K_PKTLOG_RX = 0x000000001, + ATH11K_PKTLOG_TX = 0x000000002, + ATH11K_PKTLOG_RCFIND = 0x000000004, + ATH11K_PKTLOG_RCUPDATE = 0x000000008, + ATH11K_PKTLOG_EVENT_SMART_ANT = 0x000000020, + ATH11K_PKTLOG_EVENT_SW = 0x000000040, + ATH11K_PKTLOG_ANY = 0x00000006f, +}; + +enum ath11k_pktlog_mode { + ATH11K_PKTLOG_MODE_LITE = 1, + ATH11K_PKTLOG_MODE_FULL = 2, +}; + +enum ath11k_pktlog_enum { + ATH11K_PKTLOG_TYPE_TX_CTRL = 1, + ATH11K_PKTLOG_TYPE_TX_STAT = 2, + ATH11K_PKTLOG_TYPE_TX_MSDU_ID = 3, + ATH11K_PKTLOG_TYPE_RX_STAT = 5, + ATH11K_PKTLOG_TYPE_RC_FIND = 6, + ATH11K_PKTLOG_TYPE_RC_UPDATE = 7, + ATH11K_PKTLOG_TYPE_TX_VIRT_ADDR = 8, + ATH11K_PKTLOG_TYPE_RX_CBF = 10, + ATH11K_PKTLOG_TYPE_RX_STATBUF = 22, + ATH11K_PKTLOG_TYPE_PPDU_STATS = 23, + ATH11K_PKTLOG_TYPE_LITE_RX = 24, +}; + +enum ath11k_dbg_aggr_mode { + ATH11K_DBG_AGGR_MODE_AUTO, + ATH11K_DBG_AGGR_MODE_MANUAL, + ATH11K_DBG_AGGR_MODE_MAX, +}; + +#ifdef CONFIG_ATH11K_DEBUGFS +int ath11k_debugfs_soc_create(struct ath11k_base *ab); +void ath11k_debugfs_soc_destroy(struct ath11k_base *ab); +int ath11k_debugfs_pdev_create(struct ath11k_base *ab); +void ath11k_debugfs_pdev_destroy(struct ath11k_base *ab); +int ath11k_debugfs_register(struct ath11k *ar); +void ath11k_debugfs_unregister(struct ath11k *ar); +void ath11k_debugfs_fw_stats_process(struct ath11k_base *ab, struct sk_buff *skb); + +void ath11k_debugfs_fw_stats_init(struct ath11k *ar); + +static inline bool ath11k_debugfs_is_pktlog_lite_mode_enabled(struct ath11k *ar) +{ + return (ar->debug.pktlog_mode == ATH11K_PKTLOG_MODE_LITE); +} + +static inline bool ath11k_debugfs_is_pktlog_rx_stats_enabled(struct ath11k *ar) +{ + return (!ar->debug.pktlog_peer_valid && ar->debug.pktlog_mode); +} + +static inline bool ath11k_debugfs_is_pktlog_peer_valid(struct ath11k *ar, u8 *addr) +{ + return (ar->debug.pktlog_peer_valid && ar->debug.pktlog_mode && + ether_addr_equal(addr, ar->debug.pktlog_peer_addr)); +} + +static inline int ath11k_debugfs_is_extd_tx_stats_enabled(struct ath11k *ar) +{ + return ar->debug.extd_tx_stats; +} + +static inline int ath11k_debugfs_is_extd_rx_stats_enabled(struct ath11k *ar) +{ + return ar->debug.extd_rx_stats; +} + +static inline int ath11k_debugfs_rx_filter(struct ath11k *ar) +{ + return ar->debug.rx_filter; +} + +#else +static inline int ath11k_debugfs_soc_create(struct ath11k_base *ab) +{ + return 0; +} + +static inline void ath11k_debugfs_soc_destroy(struct ath11k_base *ab) +{ +} + +static inline int ath11k_debugfs_pdev_create(struct ath11k_base *ab) +{ + return 0; +} + +static inline void ath11k_debugfs_pdev_destroy(struct ath11k_base *ab) +{ +} + +static inline int ath11k_debugfs_register(struct ath11k *ar) +{ + return 0; +} + +static inline void ath11k_debugfs_unregister(struct ath11k *ar) +{ +} + +static inline void ath11k_debugfs_fw_stats_process(struct ath11k_base *ab, + struct sk_buff *skb) +{ +} + +static inline void ath11k_debugfs_fw_stats_init(struct ath11k *ar) +{ +} + +static inline int ath11k_debugfs_is_extd_tx_stats_enabled(struct ath11k *ar) +{ + return 0; +} + +static inline int ath11k_debugfs_is_extd_rx_stats_enabled(struct ath11k *ar) +{ + return 0; +} + +static inline bool ath11k_debugfs_is_pktlog_lite_mode_enabled(struct ath11k *ar) +{ + return false; +} + +static inline bool ath11k_debugfs_is_pktlog_rx_stats_enabled(struct ath11k *ar) +{ + return false; +} + +static inline bool ath11k_debugfs_is_pktlog_peer_valid(struct ath11k *ar, u8 *addr) +{ + return false; +} + +static inline int ath11k_debugfs_rx_filter(struct ath11k *ar) +{ + return 0; +} + +#endif /* CONFIG_MAC80211_DEBUGFS*/ + +#endif /* _ATH11K_DEBUGFS_H_ */ only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/net/wireless/ath/ath11k/debugfs_htt_stats.c +++ linux-oem-5.6-5.6.0/drivers/net/wireless/ath/ath11k/debugfs_htt_stats.c @@ -0,0 +1,4598 @@ +// SPDX-License-Identifier: BSD-3-Clause-Clear +/* + * Copyright (c) 2018-2019 The Linux Foundation. All rights reserved. + */ + +#include +#include "core.h" +#include "dp_tx.h" +#include "dp_rx.h" +#include "debug.h" +#include "debugfs_htt_stats.h" + +#define HTT_DBG_OUT(buf, len, fmt, ...) \ + scnprintf(buf, len, fmt "\n", ##__VA_ARGS__) + +#define HTT_MAX_STRING_LEN 256 +#define HTT_MAX_PRINT_CHAR_PER_ELEM 15 + +#define HTT_TLV_HDR_LEN 4 + +#define ARRAY_TO_STRING(out, arr, len) \ + do { \ + int index = 0; u8 i; \ + for (i = 0; i < len; i++) { \ + index += scnprintf(out + index, HTT_MAX_STRING_LEN - index, \ + " %u:%u,", i, arr[i]); \ + if (index < 0 || index >= HTT_MAX_STRING_LEN) \ + break; \ + } \ + } while (0) + +static inline void htt_print_stats_string_tlv(const void *tag_buf, + u16 tag_len, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_stats_string_tlv *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + u8 i; + u16 index = 0; + char data[HTT_MAX_STRING_LEN] = {0}; + + tag_len = tag_len >> 2; + + len += HTT_DBG_OUT(buf + len, buf_len - len, "HTT_STATS_STRING_TLV:"); + + for (i = 0; i < tag_len; i++) { + index += scnprintf(&data[index], + HTT_MAX_STRING_LEN - index, + "%.*s", 4, (char *)&(htt_stats_buf->data[i])); + if (index >= HTT_MAX_STRING_LEN) + break; + } + + len += HTT_DBG_OUT(buf + len, buf_len - len, "data = %s\n", data); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void htt_print_tx_pdev_stats_cmn_tlv(const void *tag_buf, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_tx_pdev_stats_cmn_tlv *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + + len += HTT_DBG_OUT(buf + len, buf_len - len, "HTT_TX_PDEV_STATS_CMN_TLV:"); + len += HTT_DBG_OUT(buf + len, buf_len - len, "mac_id = %u", + htt_stats_buf->mac_id__word & 0xFF); + len += HTT_DBG_OUT(buf + len, buf_len - len, "hw_queued = %u", + htt_stats_buf->hw_queued); + len += HTT_DBG_OUT(buf + len, buf_len - len, "hw_reaped = %u", + htt_stats_buf->hw_reaped); + len += HTT_DBG_OUT(buf + len, buf_len - len, "underrun = %u", + htt_stats_buf->underrun); + len += HTT_DBG_OUT(buf + len, buf_len - len, "hw_paused = %u", + htt_stats_buf->hw_paused); + len += HTT_DBG_OUT(buf + len, buf_len - len, "hw_flush = %u", + htt_stats_buf->hw_flush); + len += HTT_DBG_OUT(buf + len, buf_len - len, "hw_filt = %u", + htt_stats_buf->hw_filt); + len += HTT_DBG_OUT(buf + len, buf_len - len, "tx_abort = %u", + htt_stats_buf->tx_abort); + len += HTT_DBG_OUT(buf + len, buf_len - len, "mpdu_requeued = %u", + htt_stats_buf->mpdu_requed); + len += HTT_DBG_OUT(buf + len, buf_len - len, "tx_xretry = %u", + htt_stats_buf->tx_xretry); + len += HTT_DBG_OUT(buf + len, buf_len - len, "data_rc = %u", + htt_stats_buf->data_rc); + len += HTT_DBG_OUT(buf + len, buf_len - len, "mpdu_dropped_xretry = %u", + htt_stats_buf->mpdu_dropped_xretry); + len += HTT_DBG_OUT(buf + len, buf_len - len, "illegal_rate_phy_err = %u", + htt_stats_buf->illgl_rate_phy_err); + len += HTT_DBG_OUT(buf + len, buf_len - len, "cont_xretry = %u", + htt_stats_buf->cont_xretry); + len += HTT_DBG_OUT(buf + len, buf_len - len, "tx_timeout = %u", + htt_stats_buf->tx_timeout); + len += HTT_DBG_OUT(buf + len, buf_len - len, "pdev_resets = %u", + htt_stats_buf->pdev_resets); + len += HTT_DBG_OUT(buf + len, buf_len - len, "phy_underrun = %u", + htt_stats_buf->phy_underrun); + len += HTT_DBG_OUT(buf + len, buf_len - len, "txop_ovf = %u", + htt_stats_buf->txop_ovf); + len += HTT_DBG_OUT(buf + len, buf_len - len, "seq_posted = %u", + htt_stats_buf->seq_posted); + len += HTT_DBG_OUT(buf + len, buf_len - len, "seq_failed_queueing = %u", + htt_stats_buf->seq_failed_queueing); + len += HTT_DBG_OUT(buf + len, buf_len - len, "seq_completed = %u", + htt_stats_buf->seq_completed); + len += HTT_DBG_OUT(buf + len, buf_len - len, "seq_restarted = %u", + htt_stats_buf->seq_restarted); + len += HTT_DBG_OUT(buf + len, buf_len - len, "mu_seq_posted = %u", + htt_stats_buf->mu_seq_posted); + len += HTT_DBG_OUT(buf + len, buf_len - len, "seq_switch_hw_paused = %u", + htt_stats_buf->seq_switch_hw_paused); + len += HTT_DBG_OUT(buf + len, buf_len - len, "next_seq_posted_dsr = %u", + htt_stats_buf->next_seq_posted_dsr); + len += HTT_DBG_OUT(buf + len, buf_len - len, "seq_posted_isr = %u", + htt_stats_buf->seq_posted_isr); + len += HTT_DBG_OUT(buf + len, buf_len - len, "seq_ctrl_cached = %u", + htt_stats_buf->seq_ctrl_cached); + len += HTT_DBG_OUT(buf + len, buf_len - len, "mpdu_count_tqm = %u", + htt_stats_buf->mpdu_count_tqm); + len += HTT_DBG_OUT(buf + len, buf_len - len, "msdu_count_tqm = %u", + htt_stats_buf->msdu_count_tqm); + len += HTT_DBG_OUT(buf + len, buf_len - len, "mpdu_removed_tqm = %u", + htt_stats_buf->mpdu_removed_tqm); + len += HTT_DBG_OUT(buf + len, buf_len - len, "msdu_removed_tqm = %u", + htt_stats_buf->msdu_removed_tqm); + len += HTT_DBG_OUT(buf + len, buf_len - len, "mpdus_sw_flush = %u", + htt_stats_buf->mpdus_sw_flush); + len += HTT_DBG_OUT(buf + len, buf_len - len, "mpdus_hw_filter = %u", + htt_stats_buf->mpdus_hw_filter); + len += HTT_DBG_OUT(buf + len, buf_len - len, "mpdus_truncated = %u", + htt_stats_buf->mpdus_truncated); + len += HTT_DBG_OUT(buf + len, buf_len - len, "mpdus_ack_failed = %u", + htt_stats_buf->mpdus_ack_failed); + len += HTT_DBG_OUT(buf + len, buf_len - len, "mpdus_expired = %u", + htt_stats_buf->mpdus_expired); + len += HTT_DBG_OUT(buf + len, buf_len - len, "mpdus_seq_hw_retry = %u", + htt_stats_buf->mpdus_seq_hw_retry); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ack_tlv_proc = %u", + htt_stats_buf->ack_tlv_proc); + len += HTT_DBG_OUT(buf + len, buf_len - len, "coex_abort_mpdu_cnt_valid = %u", + htt_stats_buf->coex_abort_mpdu_cnt_valid); + len += HTT_DBG_OUT(buf + len, buf_len - len, "coex_abort_mpdu_cnt = %u", + htt_stats_buf->coex_abort_mpdu_cnt); + len += HTT_DBG_OUT(buf + len, buf_len - len, "num_total_ppdus_tried_ota = %u", + htt_stats_buf->num_total_ppdus_tried_ota); + len += HTT_DBG_OUT(buf + len, buf_len - len, "num_data_ppdus_tried_ota = %u", + htt_stats_buf->num_data_ppdus_tried_ota); + len += HTT_DBG_OUT(buf + len, buf_len - len, "local_ctrl_mgmt_enqued = %u", + htt_stats_buf->local_ctrl_mgmt_enqued); + len += HTT_DBG_OUT(buf + len, buf_len - len, "local_ctrl_mgmt_freed = %u", + htt_stats_buf->local_ctrl_mgmt_freed); + len += HTT_DBG_OUT(buf + len, buf_len - len, "local_data_enqued = %u", + htt_stats_buf->local_data_enqued); + len += HTT_DBG_OUT(buf + len, buf_len - len, "local_data_freed = %u", + htt_stats_buf->local_data_freed); + len += HTT_DBG_OUT(buf + len, buf_len - len, "mpdu_tried = %u", + htt_stats_buf->mpdu_tried); + len += HTT_DBG_OUT(buf + len, buf_len - len, "isr_wait_seq_posted = %u", + htt_stats_buf->isr_wait_seq_posted); + len += HTT_DBG_OUT(buf + len, buf_len - len, "tx_active_dur_us_low = %u", + htt_stats_buf->tx_active_dur_us_low); + len += HTT_DBG_OUT(buf + len, buf_len - len, "tx_active_dur_us_high = %u\n", + htt_stats_buf->tx_active_dur_us_high); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void +htt_print_tx_pdev_stats_urrn_tlv_v(const void *tag_buf, + u16 tag_len, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_tx_pdev_stats_urrn_tlv_v *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + char urrn_stats[HTT_MAX_STRING_LEN] = {0}; + u16 num_elems = min_t(u16, (tag_len >> 2), HTT_TX_PDEV_MAX_URRN_STATS); + + len += HTT_DBG_OUT(buf + len, buf_len - len, "HTT_TX_PDEV_STATS_URRN_TLV_V:"); + + ARRAY_TO_STRING(urrn_stats, htt_stats_buf->urrn_stats, num_elems); + len += HTT_DBG_OUT(buf + len, buf_len - len, "urrn_stats = %s\n", urrn_stats); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void +htt_print_tx_pdev_stats_flush_tlv_v(const void *tag_buf, + u16 tag_len, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_tx_pdev_stats_flush_tlv_v *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + char flush_errs[HTT_MAX_STRING_LEN] = {0}; + u16 num_elems = min_t(u16, (tag_len >> 2), HTT_TX_PDEV_MAX_FLUSH_REASON_STATS); + + len += HTT_DBG_OUT(buf + len, buf_len - len, "HTT_TX_PDEV_STATS_FLUSH_TLV_V:"); + + ARRAY_TO_STRING(flush_errs, htt_stats_buf->flush_errs, num_elems); + len += HTT_DBG_OUT(buf + len, buf_len - len, "flush_errs = %s\n", flush_errs); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void +htt_print_tx_pdev_stats_sifs_tlv_v(const void *tag_buf, + u16 tag_len, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_tx_pdev_stats_sifs_tlv_v *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + char sifs_status[HTT_MAX_STRING_LEN] = {0}; + u16 num_elems = min_t(u16, (tag_len >> 2), HTT_TX_PDEV_MAX_SIFS_BURST_STATS); + + len += HTT_DBG_OUT(buf + len, buf_len - len, "HTT_TX_PDEV_STATS_SIFS_TLV_V:"); + + ARRAY_TO_STRING(sifs_status, htt_stats_buf->sifs_status, num_elems); + len += HTT_DBG_OUT(buf + len, buf_len - len, "sifs_status = %s\n", + sifs_status); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void +htt_print_tx_pdev_stats_phy_err_tlv_v(const void *tag_buf, + u16 tag_len, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_tx_pdev_stats_phy_err_tlv_v *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + char phy_errs[HTT_MAX_STRING_LEN] = {0}; + u16 num_elems = min_t(u16, (tag_len >> 2), HTT_TX_PDEV_MAX_PHY_ERR_STATS); + + len += HTT_DBG_OUT(buf + len, buf_len - len, "HTT_TX_PDEV_STATS_PHY_ERR_TLV_V:"); + + ARRAY_TO_STRING(phy_errs, htt_stats_buf->phy_errs, num_elems); + len += HTT_DBG_OUT(buf + len, buf_len - len, "phy_errs = %s\n", phy_errs); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void +htt_print_tx_pdev_stats_sifs_hist_tlv_v(const void *tag_buf, + u16 tag_len, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_tx_pdev_stats_sifs_hist_tlv_v *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + char sifs_hist_status[HTT_MAX_STRING_LEN] = {0}; + u16 num_elems = min_t(u16, (tag_len >> 2), HTT_TX_PDEV_MAX_SIFS_BURST_HIST_STATS); + + len += HTT_DBG_OUT(buf + len, buf_len - len, + "HTT_TX_PDEV_STATS_SIFS_HIST_TLV_V:"); + + ARRAY_TO_STRING(sifs_hist_status, htt_stats_buf->sifs_hist_status, num_elems); + len += HTT_DBG_OUT(buf + len, buf_len - len, "sifs_hist_status = %s\n", + sifs_hist_status); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void +htt_print_tx_pdev_stats_tx_ppdu_stats_tlv_v(const void *tag_buf, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_tx_pdev_stats_tx_ppdu_stats_tlv_v *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + + len += HTT_DBG_OUT(buf + len, buf_len - len, + "HTT_TX_PDEV_STATS_TX_PPDU_STATS_TLV_V:"); + + len += HTT_DBG_OUT(buf + len, buf_len - len, "num_data_ppdus_legacy_su = %u", + htt_stats_buf->num_data_ppdus_legacy_su); + + len += HTT_DBG_OUT(buf + len, buf_len - len, "num_data_ppdus_ac_su = %u", + htt_stats_buf->num_data_ppdus_ac_su); + + len += HTT_DBG_OUT(buf + len, buf_len - len, "num_data_ppdus_ax_su = %u", + htt_stats_buf->num_data_ppdus_ax_su); + + len += HTT_DBG_OUT(buf + len, buf_len - len, "num_data_ppdus_ac_su_txbf = %u", + htt_stats_buf->num_data_ppdus_ac_su_txbf); + + len += HTT_DBG_OUT(buf + len, buf_len - len, "num_data_ppdus_ax_su_txbf = %u\n", + htt_stats_buf->num_data_ppdus_ax_su_txbf); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void +htt_print_tx_pdev_stats_tried_mpdu_cnt_hist_tlv_v(const void *tag_buf, + u16 tag_len, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_tx_pdev_stats_tried_mpdu_cnt_hist_tlv_v *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + char tried_mpdu_cnt_hist[HTT_MAX_STRING_LEN] = {0}; + u32 num_elements = ((tag_len - sizeof(htt_stats_buf->hist_bin_size)) >> 2); + u32 required_buffer_size = HTT_MAX_PRINT_CHAR_PER_ELEM * num_elements; + + len += HTT_DBG_OUT(buf + len, buf_len - len, + "HTT_TX_PDEV_STATS_TRIED_MPDU_CNT_HIST_TLV_V:"); + len += HTT_DBG_OUT(buf + len, buf_len - len, "TRIED_MPDU_CNT_HIST_BIN_SIZE : %u", + htt_stats_buf->hist_bin_size); + + if (required_buffer_size < HTT_MAX_STRING_LEN) { + ARRAY_TO_STRING(tried_mpdu_cnt_hist, + htt_stats_buf->tried_mpdu_cnt_hist, + num_elements); + len += HTT_DBG_OUT(buf + len, buf_len - len, "tried_mpdu_cnt_hist = %s\n", + tried_mpdu_cnt_hist); + } else { + len += HTT_DBG_OUT(buf + len, buf_len - len, + "INSUFFICIENT PRINT BUFFER\n"); + } + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void htt_print_hw_stats_intr_misc_tlv(const void *tag_buf, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_hw_stats_intr_misc_tlv *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + char hw_intr_name[HTT_STATS_MAX_HW_INTR_NAME_LEN + 1] = {0}; + + len += HTT_DBG_OUT(buf + len, buf_len - len, "HTT_HW_STATS_INTR_MISC_TLV:"); + memcpy(hw_intr_name, &(htt_stats_buf->hw_intr_name[0]), + HTT_STATS_MAX_HW_INTR_NAME_LEN); + len += HTT_DBG_OUT(buf + len, buf_len - len, "hw_intr_name = %s ", hw_intr_name); + len += HTT_DBG_OUT(buf + len, buf_len - len, "mask = %u", + htt_stats_buf->mask); + len += HTT_DBG_OUT(buf + len, buf_len - len, "count = %u\n", + htt_stats_buf->count); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void +htt_print_hw_stats_wd_timeout_tlv(const void *tag_buf, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_hw_stats_wd_timeout_tlv *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + char hw_module_name[HTT_STATS_MAX_HW_MODULE_NAME_LEN + 1] = {0}; + + len += HTT_DBG_OUT(buf + len, buf_len - len, "HTT_HW_STATS_WD_TIMEOUT_TLV:"); + memcpy(hw_module_name, &(htt_stats_buf->hw_module_name[0]), + HTT_STATS_MAX_HW_MODULE_NAME_LEN); + len += HTT_DBG_OUT(buf + len, buf_len - len, "hw_module_name = %s ", + hw_module_name); + len += HTT_DBG_OUT(buf + len, buf_len - len, "count = %u", + htt_stats_buf->count); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void htt_print_hw_stats_pdev_errs_tlv(const void *tag_buf, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_hw_stats_pdev_errs_tlv *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + + len += HTT_DBG_OUT(buf + len, buf_len - len, "HTT_HW_STATS_PDEV_ERRS_TLV:"); + len += HTT_DBG_OUT(buf + len, buf_len - len, "mac_id = %u", + htt_stats_buf->mac_id__word & 0xFF); + len += HTT_DBG_OUT(buf + len, buf_len - len, "tx_abort = %u", + htt_stats_buf->tx_abort); + len += HTT_DBG_OUT(buf + len, buf_len - len, "tx_abort_fail_count = %u", + htt_stats_buf->tx_abort_fail_count); + len += HTT_DBG_OUT(buf + len, buf_len - len, "rx_abort = %u", + htt_stats_buf->rx_abort); + len += HTT_DBG_OUT(buf + len, buf_len - len, "rx_abort_fail_count = %u", + htt_stats_buf->rx_abort_fail_count); + len += HTT_DBG_OUT(buf + len, buf_len - len, "warm_reset = %u", + htt_stats_buf->warm_reset); + len += HTT_DBG_OUT(buf + len, buf_len - len, "cold_reset = %u", + htt_stats_buf->cold_reset); + len += HTT_DBG_OUT(buf + len, buf_len - len, "tx_flush = %u", + htt_stats_buf->tx_flush); + len += HTT_DBG_OUT(buf + len, buf_len - len, "tx_glb_reset = %u", + htt_stats_buf->tx_glb_reset); + len += HTT_DBG_OUT(buf + len, buf_len - len, "tx_txq_reset = %u", + htt_stats_buf->tx_txq_reset); + len += HTT_DBG_OUT(buf + len, buf_len - len, "rx_timeout_reset = %u\n", + htt_stats_buf->rx_timeout_reset); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void htt_print_msdu_flow_stats_tlv(const void *tag_buf, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_msdu_flow_stats_tlv *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + + len += HTT_DBG_OUT(buf + len, buf_len - len, "HTT_MSDU_FLOW_STATS_TLV:"); + len += HTT_DBG_OUT(buf + len, buf_len - len, "last_update_timestamp = %u", + htt_stats_buf->last_update_timestamp); + len += HTT_DBG_OUT(buf + len, buf_len - len, "last_add_timestamp = %u", + htt_stats_buf->last_add_timestamp); + len += HTT_DBG_OUT(buf + len, buf_len - len, "last_remove_timestamp = %u", + htt_stats_buf->last_remove_timestamp); + len += HTT_DBG_OUT(buf + len, buf_len - len, "total_processed_msdu_count = %u", + htt_stats_buf->total_processed_msdu_count); + len += HTT_DBG_OUT(buf + len, buf_len - len, "cur_msdu_count_in_flowq = %u", + htt_stats_buf->cur_msdu_count_in_flowq); + len += HTT_DBG_OUT(buf + len, buf_len - len, "sw_peer_id = %u", + htt_stats_buf->sw_peer_id); + len += HTT_DBG_OUT(buf + len, buf_len - len, "tx_flow_no = %u", + htt_stats_buf->tx_flow_no__tid_num__drop_rule & 0xFFFF); + len += HTT_DBG_OUT(buf + len, buf_len - len, "tid_num = %u", + (htt_stats_buf->tx_flow_no__tid_num__drop_rule & 0xF0000) >> + 16); + len += HTT_DBG_OUT(buf + len, buf_len - len, "drop_rule = %u", + (htt_stats_buf->tx_flow_no__tid_num__drop_rule & 0x100000) >> + 20); + len += HTT_DBG_OUT(buf + len, buf_len - len, "last_cycle_enqueue_count = %u", + htt_stats_buf->last_cycle_enqueue_count); + len += HTT_DBG_OUT(buf + len, buf_len - len, "last_cycle_dequeue_count = %u", + htt_stats_buf->last_cycle_dequeue_count); + len += HTT_DBG_OUT(buf + len, buf_len - len, "last_cycle_drop_count = %u", + htt_stats_buf->last_cycle_drop_count); + len += HTT_DBG_OUT(buf + len, buf_len - len, "current_drop_th = %u\n", + htt_stats_buf->current_drop_th); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void htt_print_tx_tid_stats_tlv(const void *tag_buf, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_tx_tid_stats_tlv *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + char tid_name[MAX_HTT_TID_NAME + 1] = {0}; + + len += HTT_DBG_OUT(buf + len, buf_len - len, "HTT_TX_TID_STATS_TLV:"); + memcpy(tid_name, &(htt_stats_buf->tid_name[0]), MAX_HTT_TID_NAME); + len += HTT_DBG_OUT(buf + len, buf_len - len, "tid_name = %s ", tid_name); + len += HTT_DBG_OUT(buf + len, buf_len - len, "sw_peer_id = %u", + htt_stats_buf->sw_peer_id__tid_num & 0xFFFF); + len += HTT_DBG_OUT(buf + len, buf_len - len, "tid_num = %u", + (htt_stats_buf->sw_peer_id__tid_num & 0xFFFF0000) >> 16); + len += HTT_DBG_OUT(buf + len, buf_len - len, "num_sched_pending = %u", + htt_stats_buf->num_sched_pending__num_ppdu_in_hwq & 0xFF); + len += HTT_DBG_OUT(buf + len, buf_len - len, "num_ppdu_in_hwq = %u", + (htt_stats_buf->num_sched_pending__num_ppdu_in_hwq & + 0xFF00) >> 8); + len += HTT_DBG_OUT(buf + len, buf_len - len, "tid_flags = 0x%x", + htt_stats_buf->tid_flags); + len += HTT_DBG_OUT(buf + len, buf_len - len, "hw_queued = %u", + htt_stats_buf->hw_queued); + len += HTT_DBG_OUT(buf + len, buf_len - len, "hw_reaped = %u", + htt_stats_buf->hw_reaped); + len += HTT_DBG_OUT(buf + len, buf_len - len, "mpdus_hw_filter = %u", + htt_stats_buf->mpdus_hw_filter); + len += HTT_DBG_OUT(buf + len, buf_len - len, "qdepth_bytes = %u", + htt_stats_buf->qdepth_bytes); + len += HTT_DBG_OUT(buf + len, buf_len - len, "qdepth_num_msdu = %u", + htt_stats_buf->qdepth_num_msdu); + len += HTT_DBG_OUT(buf + len, buf_len - len, "qdepth_num_mpdu = %u", + htt_stats_buf->qdepth_num_mpdu); + len += HTT_DBG_OUT(buf + len, buf_len - len, "last_scheduled_tsmp = %u", + htt_stats_buf->last_scheduled_tsmp); + len += HTT_DBG_OUT(buf + len, buf_len - len, "pause_module_id = %u", + htt_stats_buf->pause_module_id); + len += HTT_DBG_OUT(buf + len, buf_len - len, "block_module_id = %u\n", + htt_stats_buf->block_module_id); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void htt_print_tx_tid_stats_v1_tlv(const void *tag_buf, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_tx_tid_stats_v1_tlv *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + char tid_name[MAX_HTT_TID_NAME + 1] = {0}; + + len += HTT_DBG_OUT(buf + len, buf_len - len, "HTT_TX_TID_STATS_V1_TLV:"); + memcpy(tid_name, &(htt_stats_buf->tid_name[0]), MAX_HTT_TID_NAME); + len += HTT_DBG_OUT(buf + len, buf_len - len, "tid_name = %s ", tid_name); + len += HTT_DBG_OUT(buf + len, buf_len - len, "sw_peer_id = %u", + htt_stats_buf->sw_peer_id__tid_num & 0xFFFF); + len += HTT_DBG_OUT(buf + len, buf_len - len, "tid_num = %u", + (htt_stats_buf->sw_peer_id__tid_num & 0xFFFF0000) >> 16); + len += HTT_DBG_OUT(buf + len, buf_len - len, "num_sched_pending = %u", + htt_stats_buf->num_sched_pending__num_ppdu_in_hwq & 0xFF); + len += HTT_DBG_OUT(buf + len, buf_len - len, "num_ppdu_in_hwq = %u", + (htt_stats_buf->num_sched_pending__num_ppdu_in_hwq & + 0xFF00) >> 8); + len += HTT_DBG_OUT(buf + len, buf_len - len, "tid_flags = 0x%x", + htt_stats_buf->tid_flags); + len += HTT_DBG_OUT(buf + len, buf_len - len, "max_qdepth_bytes = %u", + htt_stats_buf->max_qdepth_bytes); + len += HTT_DBG_OUT(buf + len, buf_len - len, "max_qdepth_n_msdus = %u", + htt_stats_buf->max_qdepth_n_msdus); + len += HTT_DBG_OUT(buf + len, buf_len - len, "rsvd = %u", + htt_stats_buf->rsvd); + len += HTT_DBG_OUT(buf + len, buf_len - len, "qdepth_bytes = %u", + htt_stats_buf->qdepth_bytes); + len += HTT_DBG_OUT(buf + len, buf_len - len, "qdepth_num_msdu = %u", + htt_stats_buf->qdepth_num_msdu); + len += HTT_DBG_OUT(buf + len, buf_len - len, "qdepth_num_mpdu = %u", + htt_stats_buf->qdepth_num_mpdu); + len += HTT_DBG_OUT(buf + len, buf_len - len, "last_scheduled_tsmp = %u", + htt_stats_buf->last_scheduled_tsmp); + len += HTT_DBG_OUT(buf + len, buf_len - len, "pause_module_id = %u", + htt_stats_buf->pause_module_id); + len += HTT_DBG_OUT(buf + len, buf_len - len, "block_module_id = %u", + htt_stats_buf->block_module_id); + len += HTT_DBG_OUT(buf + len, buf_len - len, "allow_n_flags = 0x%x", + htt_stats_buf->allow_n_flags); + len += HTT_DBG_OUT(buf + len, buf_len - len, "sendn_frms_allowed = %u\n", + htt_stats_buf->sendn_frms_allowed); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void htt_print_rx_tid_stats_tlv(const void *tag_buf, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_rx_tid_stats_tlv *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + char tid_name[MAX_HTT_TID_NAME + 1] = {0}; + + len += HTT_DBG_OUT(buf + len, buf_len - len, "HTT_RX_TID_STATS_TLV:"); + len += HTT_DBG_OUT(buf + len, buf_len - len, "sw_peer_id = %u", + htt_stats_buf->sw_peer_id__tid_num & 0xFFFF); + len += HTT_DBG_OUT(buf + len, buf_len - len, "tid_num = %u", + (htt_stats_buf->sw_peer_id__tid_num & 0xFFFF0000) >> 16); + memcpy(tid_name, &(htt_stats_buf->tid_name[0]), MAX_HTT_TID_NAME); + len += HTT_DBG_OUT(buf + len, buf_len - len, "tid_name = %s ", tid_name); + len += HTT_DBG_OUT(buf + len, buf_len - len, "dup_in_reorder = %u", + htt_stats_buf->dup_in_reorder); + len += HTT_DBG_OUT(buf + len, buf_len - len, "dup_past_outside_window = %u", + htt_stats_buf->dup_past_outside_window); + len += HTT_DBG_OUT(buf + len, buf_len - len, "dup_past_within_window = %u", + htt_stats_buf->dup_past_within_window); + len += HTT_DBG_OUT(buf + len, buf_len - len, "rxdesc_err_decrypt = %u\n", + htt_stats_buf->rxdesc_err_decrypt); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void htt_print_counter_tlv(const void *tag_buf, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_counter_tlv *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + char counter_name[HTT_MAX_STRING_LEN] = {0}; + + len += HTT_DBG_OUT(buf + len, buf_len - len, "HTT_COUNTER_TLV:"); + + ARRAY_TO_STRING(counter_name, + htt_stats_buf->counter_name, + HTT_MAX_COUNTER_NAME); + len += HTT_DBG_OUT(buf + len, buf_len - len, "counter_name = %s ", counter_name); + len += HTT_DBG_OUT(buf + len, buf_len - len, "count = %u\n", + htt_stats_buf->count); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void htt_print_peer_stats_cmn_tlv(const void *tag_buf, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_peer_stats_cmn_tlv *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + + len += HTT_DBG_OUT(buf + len, buf_len - len, "HTT_PEER_STATS_CMN_TLV:"); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ppdu_cnt = %u", + htt_stats_buf->ppdu_cnt); + len += HTT_DBG_OUT(buf + len, buf_len - len, "mpdu_cnt = %u", + htt_stats_buf->mpdu_cnt); + len += HTT_DBG_OUT(buf + len, buf_len - len, "msdu_cnt = %u", + htt_stats_buf->msdu_cnt); + len += HTT_DBG_OUT(buf + len, buf_len - len, "pause_bitmap = %u", + htt_stats_buf->pause_bitmap); + len += HTT_DBG_OUT(buf + len, buf_len - len, "block_bitmap = %u", + htt_stats_buf->block_bitmap); + len += HTT_DBG_OUT(buf + len, buf_len - len, "last_rssi = %d", + htt_stats_buf->rssi); + len += HTT_DBG_OUT(buf + len, buf_len - len, "enqueued_count = %llu", + htt_stats_buf->peer_enqueued_count_low | + ((u64)htt_stats_buf->peer_enqueued_count_high << 32)); + len += HTT_DBG_OUT(buf + len, buf_len - len, "dequeued_count = %llu", + htt_stats_buf->peer_dequeued_count_low | + ((u64)htt_stats_buf->peer_dequeued_count_high << 32)); + len += HTT_DBG_OUT(buf + len, buf_len - len, "dropped_count = %llu", + htt_stats_buf->peer_dropped_count_low | + ((u64)htt_stats_buf->peer_dropped_count_high << 32)); + len += HTT_DBG_OUT(buf + len, buf_len - len, "transmitted_ppdu_bytes = %llu", + htt_stats_buf->ppdu_transmitted_bytes_low | + ((u64)htt_stats_buf->ppdu_transmitted_bytes_high << 32)); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ttl_removed_count = %u", + htt_stats_buf->peer_ttl_removed_count); + len += HTT_DBG_OUT(buf + len, buf_len - len, "inactive_time = %u\n", + htt_stats_buf->inactive_time); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void htt_print_peer_details_tlv(const void *tag_buf, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_peer_details_tlv *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + + len += HTT_DBG_OUT(buf + len, buf_len - len, "HTT_PEER_DETAILS_TLV:"); + len += HTT_DBG_OUT(buf + len, buf_len - len, "peer_type = %u", + htt_stats_buf->peer_type); + len += HTT_DBG_OUT(buf + len, buf_len - len, "sw_peer_id = %u", + htt_stats_buf->sw_peer_id); + len += HTT_DBG_OUT(buf + len, buf_len - len, "vdev_id = %u", + htt_stats_buf->vdev_pdev_ast_idx & 0xFF); + len += HTT_DBG_OUT(buf + len, buf_len - len, "pdev_id = %u", + (htt_stats_buf->vdev_pdev_ast_idx & 0xFF00) >> 8); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ast_idx = %u", + (htt_stats_buf->vdev_pdev_ast_idx & 0xFFFF0000) >> 16); + len += HTT_DBG_OUT(buf + len, buf_len - len, + "mac_addr = %02x:%02x:%02x:%02x:%02x:%02x", + htt_stats_buf->mac_addr.mac_addr_l32 & 0xFF, + (htt_stats_buf->mac_addr.mac_addr_l32 & 0xFF00) >> 8, + (htt_stats_buf->mac_addr.mac_addr_l32 & 0xFF0000) >> 16, + (htt_stats_buf->mac_addr.mac_addr_l32 & 0xFF000000) >> 24, + (htt_stats_buf->mac_addr.mac_addr_h16 & 0xFF), + (htt_stats_buf->mac_addr.mac_addr_h16 & 0xFF00) >> 8); + len += HTT_DBG_OUT(buf + len, buf_len - len, "peer_flags = 0x%x", + htt_stats_buf->peer_flags); + len += HTT_DBG_OUT(buf + len, buf_len - len, "qpeer_flags = 0x%x\n", + htt_stats_buf->qpeer_flags); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void htt_print_tx_peer_rate_stats_tlv(const void *tag_buf, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_tx_peer_rate_stats_tlv *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + char str_buf[HTT_MAX_STRING_LEN] = {0}; + char *tx_gi[HTT_TX_PEER_STATS_NUM_GI_COUNTERS] = {NULL}; + u8 j; + + for (j = 0; j < HTT_TX_PEER_STATS_NUM_GI_COUNTERS; j++) { + tx_gi[j] = kmalloc(HTT_MAX_STRING_LEN, GFP_ATOMIC); + if (!tx_gi[j]) + goto fail; + } + + len += HTT_DBG_OUT(buf + len, buf_len - len, "HTT_TX_PEER_RATE_STATS_TLV:"); + len += HTT_DBG_OUT(buf + len, buf_len - len, "tx_ldpc = %u", + htt_stats_buf->tx_ldpc); + len += HTT_DBG_OUT(buf + len, buf_len - len, "rts_cnt = %u", + htt_stats_buf->rts_cnt); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ack_rssi = %u", + htt_stats_buf->ack_rssi); + + memset(str_buf, 0x0, HTT_MAX_STRING_LEN); + ARRAY_TO_STRING(str_buf, htt_stats_buf->tx_mcs, + HTT_TX_PDEV_STATS_NUM_MCS_COUNTERS); + len += HTT_DBG_OUT(buf + len, buf_len - len, "tx_mcs = %s ", str_buf); + + memset(str_buf, 0x0, HTT_MAX_STRING_LEN); + ARRAY_TO_STRING(str_buf, htt_stats_buf->tx_su_mcs, + HTT_TX_PDEV_STATS_NUM_MCS_COUNTERS); + len += HTT_DBG_OUT(buf + len, buf_len - len, "tx_su_mcs = %s ", str_buf); + + memset(str_buf, 0x0, HTT_MAX_STRING_LEN); + ARRAY_TO_STRING(str_buf, htt_stats_buf->tx_mu_mcs, + HTT_TX_PDEV_STATS_NUM_MCS_COUNTERS); + len += HTT_DBG_OUT(buf + len, buf_len - len, "tx_mu_mcs = %s ", str_buf); + + memset(str_buf, 0x0, HTT_MAX_STRING_LEN); + ARRAY_TO_STRING(str_buf, + htt_stats_buf->tx_nss, + HTT_TX_PDEV_STATS_NUM_SPATIAL_STREAMS); + len += HTT_DBG_OUT(buf + len, buf_len - len, "tx_nss = %s ", str_buf); + + memset(str_buf, 0x0, HTT_MAX_STRING_LEN); + ARRAY_TO_STRING(str_buf, + htt_stats_buf->tx_bw, + HTT_TX_PDEV_STATS_NUM_BW_COUNTERS); + len += HTT_DBG_OUT(buf + len, buf_len - len, "tx_bw = %s ", str_buf); + + memset(str_buf, 0x0, HTT_MAX_STRING_LEN); + ARRAY_TO_STRING(str_buf, htt_stats_buf->tx_stbc, + HTT_TX_PDEV_STATS_NUM_MCS_COUNTERS); + len += HTT_DBG_OUT(buf + len, buf_len - len, "tx_stbc = %s ", str_buf); + + memset(str_buf, 0x0, HTT_MAX_STRING_LEN); + ARRAY_TO_STRING(str_buf, htt_stats_buf->tx_pream, + HTT_TX_PDEV_STATS_NUM_PREAMBLE_TYPES); + len += HTT_DBG_OUT(buf + len, buf_len - len, "tx_pream = %s ", str_buf); + + for (j = 0; j < HTT_TX_PEER_STATS_NUM_GI_COUNTERS; j++) { + ARRAY_TO_STRING(tx_gi[j], + htt_stats_buf->tx_gi[j], + HTT_TX_PEER_STATS_NUM_MCS_COUNTERS); + len += HTT_DBG_OUT(buf + len, buf_len - len, "tx_gi[%u] = %s ", + j, tx_gi[j]); + } + + memset(str_buf, 0x0, HTT_MAX_STRING_LEN); + ARRAY_TO_STRING(str_buf, + htt_stats_buf->tx_dcm, + HTT_TX_PDEV_STATS_NUM_DCM_COUNTERS); + len += HTT_DBG_OUT(buf + len, buf_len - len, "tx_dcm = %s\n", str_buf); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; + +fail: + for (j = 0; j < HTT_TX_PEER_STATS_NUM_GI_COUNTERS; j++) + kfree(tx_gi[j]); +} + +static inline void htt_print_rx_peer_rate_stats_tlv(const void *tag_buf, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_rx_peer_rate_stats_tlv *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + u8 j; + char *rssi_chain[HTT_RX_PEER_STATS_NUM_SPATIAL_STREAMS] = {NULL}; + char *rx_gi[HTT_RX_PEER_STATS_NUM_GI_COUNTERS] = {NULL}; + char str_buf[HTT_MAX_STRING_LEN] = {0}; + + for (j = 0; j < HTT_RX_PEER_STATS_NUM_SPATIAL_STREAMS; j++) { + rssi_chain[j] = kmalloc(HTT_MAX_STRING_LEN, GFP_ATOMIC); + if (!rssi_chain[j]) + goto fail; + } + + for (j = 0; j < HTT_RX_PEER_STATS_NUM_GI_COUNTERS; j++) { + rx_gi[j] = kmalloc(HTT_MAX_STRING_LEN, GFP_ATOMIC); + if (!rx_gi[j]) + goto fail; + } + + len += HTT_DBG_OUT(buf + len, buf_len - len, "HTT_RX_PEER_RATE_STATS_TLV:"); + len += HTT_DBG_OUT(buf + len, buf_len - len, "nsts = %u", + htt_stats_buf->nsts); + len += HTT_DBG_OUT(buf + len, buf_len - len, "rx_ldpc = %u", + htt_stats_buf->rx_ldpc); + len += HTT_DBG_OUT(buf + len, buf_len - len, "rts_cnt = %u", + htt_stats_buf->rts_cnt); + len += HTT_DBG_OUT(buf + len, buf_len - len, "rssi_mgmt = %u", + htt_stats_buf->rssi_mgmt); + len += HTT_DBG_OUT(buf + len, buf_len - len, "rssi_data = %u", + htt_stats_buf->rssi_data); + len += HTT_DBG_OUT(buf + len, buf_len - len, "rssi_comb = %u", + htt_stats_buf->rssi_comb); + + memset(str_buf, 0x0, HTT_MAX_STRING_LEN); + ARRAY_TO_STRING(str_buf, htt_stats_buf->rx_mcs, + HTT_RX_PDEV_STATS_NUM_MCS_COUNTERS); + len += HTT_DBG_OUT(buf + len, buf_len - len, "rx_mcs = %s ", str_buf); + + memset(str_buf, 0x0, HTT_MAX_STRING_LEN); + ARRAY_TO_STRING(str_buf, htt_stats_buf->rx_nss, + HTT_RX_PDEV_STATS_NUM_SPATIAL_STREAMS); + len += HTT_DBG_OUT(buf + len, buf_len - len, "rx_nss = %s ", str_buf); + + memset(str_buf, 0x0, HTT_MAX_STRING_LEN); + ARRAY_TO_STRING(str_buf, htt_stats_buf->rx_dcm, + HTT_RX_PDEV_STATS_NUM_DCM_COUNTERS); + len += HTT_DBG_OUT(buf + len, buf_len - len, "rx_dcm = %s ", str_buf); + + memset(str_buf, 0x0, HTT_MAX_STRING_LEN); + ARRAY_TO_STRING(str_buf, htt_stats_buf->rx_stbc, + HTT_RX_PDEV_STATS_NUM_MCS_COUNTERS); + len += HTT_DBG_OUT(buf + len, buf_len - len, "rx_stbc = %s ", str_buf); + + memset(str_buf, 0x0, HTT_MAX_STRING_LEN); + ARRAY_TO_STRING(str_buf, htt_stats_buf->rx_bw, + HTT_RX_PDEV_STATS_NUM_BW_COUNTERS); + len += HTT_DBG_OUT(buf + len, buf_len - len, "rx_bw = %s ", str_buf); + + for (j = 0; j < HTT_RX_PEER_STATS_NUM_SPATIAL_STREAMS; j++) { + ARRAY_TO_STRING(rssi_chain[j], htt_stats_buf->rssi_chain[j], + HTT_RX_PEER_STATS_NUM_BW_COUNTERS); + len += HTT_DBG_OUT(buf + len, buf_len - len, "rssi_chain[%u] = %s ", + j, rssi_chain[j]); + } + + for (j = 0; j < HTT_RX_PEER_STATS_NUM_GI_COUNTERS; j++) { + ARRAY_TO_STRING(rx_gi[j], htt_stats_buf->rx_gi[j], + HTT_RX_PDEV_STATS_NUM_MCS_COUNTERS); + len += HTT_DBG_OUT(buf + len, buf_len - len, "rx_gi[%u] = %s ", + j, rx_gi[j]); + } + + memset(str_buf, 0x0, HTT_MAX_STRING_LEN); + ARRAY_TO_STRING(str_buf, htt_stats_buf->rx_pream, + HTT_RX_PDEV_STATS_NUM_PREAMBLE_TYPES); + len += HTT_DBG_OUT(buf + len, buf_len - len, "rx_pream = %s\n", str_buf); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; + +fail: + for (j = 0; j < HTT_RX_PEER_STATS_NUM_SPATIAL_STREAMS; j++) + kfree(rssi_chain[j]); + + for (j = 0; j < HTT_RX_PEER_STATS_NUM_GI_COUNTERS; j++) + kfree(rx_gi[j]); +} + +static inline void +htt_print_tx_hwq_mu_mimo_sch_stats_tlv(const void *tag_buf, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_tx_hwq_mu_mimo_sch_stats_tlv *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + + len += HTT_DBG_OUT(buf + len, buf_len - len, "HTT_TX_HWQ_MU_MIMO_SCH_STATS_TLV:"); + len += HTT_DBG_OUT(buf + len, buf_len - len, "mu_mimo_sch_posted = %u", + htt_stats_buf->mu_mimo_sch_posted); + len += HTT_DBG_OUT(buf + len, buf_len - len, "mu_mimo_sch_failed = %u", + htt_stats_buf->mu_mimo_sch_failed); + len += HTT_DBG_OUT(buf + len, buf_len - len, "mu_mimo_ppdu_posted = %u\n", + htt_stats_buf->mu_mimo_ppdu_posted); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void +htt_print_tx_hwq_mu_mimo_mpdu_stats_tlv(const void *tag_buf, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_tx_hwq_mu_mimo_mpdu_stats_tlv *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + + len += HTT_DBG_OUT(buf + len, buf_len - len, + "HTT_TX_HWQ_MU_MIMO_MPDU_STATS_TLV:"); + len += HTT_DBG_OUT(buf + len, buf_len - len, "mu_mimo_mpdus_queued_usr = %u", + htt_stats_buf->mu_mimo_mpdus_queued_usr); + len += HTT_DBG_OUT(buf + len, buf_len - len, "mu_mimo_mpdus_tried_usr = %u", + htt_stats_buf->mu_mimo_mpdus_tried_usr); + len += HTT_DBG_OUT(buf + len, buf_len - len, "mu_mimo_mpdus_failed_usr = %u", + htt_stats_buf->mu_mimo_mpdus_failed_usr); + len += HTT_DBG_OUT(buf + len, buf_len - len, "mu_mimo_mpdus_requeued_usr = %u", + htt_stats_buf->mu_mimo_mpdus_requeued_usr); + len += HTT_DBG_OUT(buf + len, buf_len - len, "mu_mimo_err_no_ba_usr = %u", + htt_stats_buf->mu_mimo_err_no_ba_usr); + len += HTT_DBG_OUT(buf + len, buf_len - len, "mu_mimo_mpdu_underrun_usr = %u", + htt_stats_buf->mu_mimo_mpdu_underrun_usr); + len += HTT_DBG_OUT(buf + len, buf_len - len, "mu_mimo_ampdu_underrun_usr = %u\n", + htt_stats_buf->mu_mimo_ampdu_underrun_usr); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void +htt_print_tx_hwq_mu_mimo_cmn_stats_tlv(const void *tag_buf, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_tx_hwq_mu_mimo_cmn_stats_tlv *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + + len += HTT_DBG_OUT(buf + len, buf_len - len, "HTT_TX_HWQ_MU_MIMO_CMN_STATS_TLV:"); + len += HTT_DBG_OUT(buf + len, buf_len - len, "mac_id = %u", + htt_stats_buf->mac_id__hwq_id__word & 0xFF); + len += HTT_DBG_OUT(buf + len, buf_len - len, "hwq_id = %u\n", + (htt_stats_buf->mac_id__hwq_id__word & 0xFF00) >> 8); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void +htt_print_tx_hwq_stats_cmn_tlv(const void *tag_buf, struct debug_htt_stats_req *stats_req) +{ + const struct htt_tx_hwq_stats_cmn_tlv *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + + /* TODO: HKDBG */ + len += HTT_DBG_OUT(buf + len, buf_len - len, "HTT_TX_HWQ_STATS_CMN_TLV:"); + len += HTT_DBG_OUT(buf + len, buf_len - len, "mac_id = %u", + htt_stats_buf->mac_id__hwq_id__word & 0xFF); + len += HTT_DBG_OUT(buf + len, buf_len - len, "hwq_id = %u", + (htt_stats_buf->mac_id__hwq_id__word & 0xFF00) >> 8); + len += HTT_DBG_OUT(buf + len, buf_len - len, "xretry = %u", + htt_stats_buf->xretry); + len += HTT_DBG_OUT(buf + len, buf_len - len, "underrun_cnt = %u", + htt_stats_buf->underrun_cnt); + len += HTT_DBG_OUT(buf + len, buf_len - len, "flush_cnt = %u", + htt_stats_buf->flush_cnt); + len += HTT_DBG_OUT(buf + len, buf_len - len, "filt_cnt = %u", + htt_stats_buf->filt_cnt); + len += HTT_DBG_OUT(buf + len, buf_len - len, "null_mpdu_bmap = %u", + htt_stats_buf->null_mpdu_bmap); + len += HTT_DBG_OUT(buf + len, buf_len - len, "user_ack_failure = %u", + htt_stats_buf->user_ack_failure); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ack_tlv_proc = %u", + htt_stats_buf->ack_tlv_proc); + len += HTT_DBG_OUT(buf + len, buf_len - len, "sched_id_proc = %u", + htt_stats_buf->sched_id_proc); + len += HTT_DBG_OUT(buf + len, buf_len - len, "null_mpdu_tx_count = %u", + htt_stats_buf->null_mpdu_tx_count); + len += HTT_DBG_OUT(buf + len, buf_len - len, "mpdu_bmap_not_recvd = %u", + htt_stats_buf->mpdu_bmap_not_recvd); + len += HTT_DBG_OUT(buf + len, buf_len - len, "num_bar = %u", + htt_stats_buf->num_bar); + len += HTT_DBG_OUT(buf + len, buf_len - len, "rts = %u", + htt_stats_buf->rts); + len += HTT_DBG_OUT(buf + len, buf_len - len, "cts2self = %u", + htt_stats_buf->cts2self); + len += HTT_DBG_OUT(buf + len, buf_len - len, "qos_null = %u", + htt_stats_buf->qos_null); + len += HTT_DBG_OUT(buf + len, buf_len - len, "mpdu_tried_cnt = %u", + htt_stats_buf->mpdu_tried_cnt); + len += HTT_DBG_OUT(buf + len, buf_len - len, "mpdu_queued_cnt = %u", + htt_stats_buf->mpdu_queued_cnt); + len += HTT_DBG_OUT(buf + len, buf_len - len, "mpdu_ack_fail_cnt = %u", + htt_stats_buf->mpdu_ack_fail_cnt); + len += HTT_DBG_OUT(buf + len, buf_len - len, "mpdu_filt_cnt = %u", + htt_stats_buf->mpdu_filt_cnt); + len += HTT_DBG_OUT(buf + len, buf_len - len, "false_mpdu_ack_count = %u", + htt_stats_buf->false_mpdu_ack_count); + len += HTT_DBG_OUT(buf + len, buf_len - len, "txq_timeout = %u\n", + htt_stats_buf->txq_timeout); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void +htt_print_tx_hwq_difs_latency_stats_tlv_v(const void *tag_buf, + u16 tag_len, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_tx_hwq_difs_latency_stats_tlv_v *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + u16 data_len = min_t(u16, (tag_len >> 2), HTT_TX_HWQ_MAX_DIFS_LATENCY_BINS); + char difs_latency_hist[HTT_MAX_STRING_LEN] = {0}; + + len += HTT_DBG_OUT(buf + len, buf_len - len, + "HTT_TX_HWQ_DIFS_LATENCY_STATS_TLV_V:"); + len += HTT_DBG_OUT(buf + len, buf_len - len, "hist_intvl = %u", + htt_stats_buf->hist_intvl); + + ARRAY_TO_STRING(difs_latency_hist, htt_stats_buf->difs_latency_hist, + data_len); + len += HTT_DBG_OUT(buf + len, buf_len - len, "difs_latency_hist = %s\n", + difs_latency_hist); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void +htt_print_tx_hwq_cmd_result_stats_tlv_v(const void *tag_buf, + u16 tag_len, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_tx_hwq_cmd_result_stats_tlv_v *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + u16 data_len; + char cmd_result[HTT_MAX_STRING_LEN] = {0}; + + data_len = min_t(u16, (tag_len >> 2), HTT_TX_HWQ_MAX_CMD_RESULT_STATS); + + len += HTT_DBG_OUT(buf + len, buf_len - len, + "HTT_TX_HWQ_CMD_RESULT_STATS_TLV_V:"); + + ARRAY_TO_STRING(cmd_result, htt_stats_buf->cmd_result, data_len); + + len += HTT_DBG_OUT(buf + len, buf_len - len, "cmd_result = %s\n", cmd_result); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void +htt_print_tx_hwq_cmd_stall_stats_tlv_v(const void *tag_buf, + u16 tag_len, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_tx_hwq_cmd_stall_stats_tlv_v *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + u16 num_elems; + char cmd_stall_status[HTT_MAX_STRING_LEN] = {0}; + + num_elems = min_t(u16, (tag_len >> 2), HTT_TX_HWQ_MAX_CMD_STALL_STATS); + + len += HTT_DBG_OUT(buf + len, buf_len - len, "HTT_TX_HWQ_CMD_STALL_STATS_TLV_V:"); + + ARRAY_TO_STRING(cmd_stall_status, htt_stats_buf->cmd_stall_status, num_elems); + len += HTT_DBG_OUT(buf + len, buf_len - len, "cmd_stall_status = %s\n", + cmd_stall_status); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void +htt_print_tx_hwq_fes_result_stats_tlv_v(const void *tag_buf, + u16 tag_len, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_tx_hwq_fes_result_stats_tlv_v *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + u16 num_elems; + char fes_result[HTT_MAX_STRING_LEN] = {0}; + + num_elems = min_t(u16, (tag_len >> 2), HTT_TX_HWQ_MAX_FES_RESULT_STATS); + + len += HTT_DBG_OUT(buf + len, buf_len - len, + "HTT_TX_HWQ_FES_RESULT_STATS_TLV_V:"); + + ARRAY_TO_STRING(fes_result, htt_stats_buf->fes_result, num_elems); + len += HTT_DBG_OUT(buf + len, buf_len - len, "fes_result = %s\n", fes_result); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void +htt_print_tx_hwq_tried_mpdu_cnt_hist_tlv_v(const void *tag_buf, + u16 tag_len, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_tx_hwq_tried_mpdu_cnt_hist_tlv_v *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + char tried_mpdu_cnt_hist[HTT_MAX_STRING_LEN] = {0}; + u32 num_elements = ((tag_len - + sizeof(htt_stats_buf->hist_bin_size)) >> 2); + u32 required_buffer_size = HTT_MAX_PRINT_CHAR_PER_ELEM * num_elements; + + len += HTT_DBG_OUT(buf + len, buf_len - len, + "HTT_TX_HWQ_TRIED_MPDU_CNT_HIST_TLV_V:"); + len += HTT_DBG_OUT(buf + len, buf_len - len, "TRIED_MPDU_CNT_HIST_BIN_SIZE : %u", + htt_stats_buf->hist_bin_size); + + if (required_buffer_size < HTT_MAX_STRING_LEN) { + ARRAY_TO_STRING(tried_mpdu_cnt_hist, + htt_stats_buf->tried_mpdu_cnt_hist, + num_elements); + len += HTT_DBG_OUT(buf + len, buf_len - len, + "tried_mpdu_cnt_hist = %s\n", + tried_mpdu_cnt_hist); + } else { + len += HTT_DBG_OUT(buf + len, buf_len - len, + "INSUFFICIENT PRINT BUFFER "); + } + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void +htt_print_tx_hwq_txop_used_cnt_hist_tlv_v(const void *tag_buf, + u16 tag_len, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_tx_hwq_txop_used_cnt_hist_tlv_v *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + char txop_used_cnt_hist[HTT_MAX_STRING_LEN] = {0}; + u32 num_elements = tag_len >> 2; + u32 required_buffer_size = HTT_MAX_PRINT_CHAR_PER_ELEM * num_elements; + + len += HTT_DBG_OUT(buf + len, buf_len - len, + "HTT_TX_HWQ_TXOP_USED_CNT_HIST_TLV_V:"); + + if (required_buffer_size < HTT_MAX_STRING_LEN) { + ARRAY_TO_STRING(txop_used_cnt_hist, + htt_stats_buf->txop_used_cnt_hist, + num_elements); + len += HTT_DBG_OUT(buf + len, buf_len - len, "txop_used_cnt_hist = %s\n", + txop_used_cnt_hist); + } else { + len += HTT_DBG_OUT(buf + len, buf_len - len, + "INSUFFICIENT PRINT BUFFER "); + } + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void htt_print_tx_sounding_stats_tlv(const void *tag_buf, + struct debug_htt_stats_req *stats_req) +{ + s32 i; + const struct htt_tx_sounding_stats_tlv *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + const u32 *cbf_20 = htt_stats_buf->cbf_20; + const u32 *cbf_40 = htt_stats_buf->cbf_40; + const u32 *cbf_80 = htt_stats_buf->cbf_80; + const u32 *cbf_160 = htt_stats_buf->cbf_160; + + if (htt_stats_buf->tx_sounding_mode == HTT_TX_AC_SOUNDING_MODE) { + len += HTT_DBG_OUT(buf + len, buf_len - len, + "\nHTT_TX_AC_SOUNDING_STATS_TLV:\n"); + len += HTT_DBG_OUT(buf + len, buf_len - len, + "ac_cbf_20 = IBF : %u, SU_SIFS : %u, SU_RBO : %u, MU_SIFS : %u, MU_RBO : %u ", + cbf_20[HTT_IMPLICIT_TXBF_STEER_STATS], + cbf_20[HTT_EXPLICIT_TXBF_SU_SIFS_STEER_STATS], + cbf_20[HTT_EXPLICIT_TXBF_SU_RBO_STEER_STATS], + cbf_20[HTT_EXPLICIT_TXBF_MU_SIFS_STEER_STATS], + cbf_20[HTT_EXPLICIT_TXBF_MU_RBO_STEER_STATS]); + len += HTT_DBG_OUT(buf + len, buf_len - len, + "ac_cbf_40 = IBF : %u, SU_SIFS : %u, SU_RBO : %u, MU_SIFS : %u, MU_RBO : %u", + cbf_40[HTT_IMPLICIT_TXBF_STEER_STATS], + cbf_40[HTT_EXPLICIT_TXBF_SU_SIFS_STEER_STATS], + cbf_40[HTT_EXPLICIT_TXBF_SU_RBO_STEER_STATS], + cbf_40[HTT_EXPLICIT_TXBF_MU_SIFS_STEER_STATS], + cbf_40[HTT_EXPLICIT_TXBF_MU_RBO_STEER_STATS]); + len += HTT_DBG_OUT(buf + len, buf_len - len, + "ac_cbf_80 = IBF : %u, SU_SIFS : %u, SU_RBO : %u, MU_SIFS : %u, MU_RBO : %u", + cbf_80[HTT_IMPLICIT_TXBF_STEER_STATS], + cbf_80[HTT_EXPLICIT_TXBF_SU_SIFS_STEER_STATS], + cbf_80[HTT_EXPLICIT_TXBF_SU_RBO_STEER_STATS], + cbf_80[HTT_EXPLICIT_TXBF_MU_SIFS_STEER_STATS], + cbf_80[HTT_EXPLICIT_TXBF_MU_RBO_STEER_STATS]); + len += HTT_DBG_OUT(buf + len, buf_len - len, + "ac_cbf_160 = IBF : %u, SU_SIFS : %u, SU_RBO : %u, MU_SIFS : %u, MU_RBO : %u", + cbf_160[HTT_IMPLICIT_TXBF_STEER_STATS], + cbf_160[HTT_EXPLICIT_TXBF_SU_SIFS_STEER_STATS], + cbf_160[HTT_EXPLICIT_TXBF_SU_RBO_STEER_STATS], + cbf_160[HTT_EXPLICIT_TXBF_MU_SIFS_STEER_STATS], + cbf_160[HTT_EXPLICIT_TXBF_MU_RBO_STEER_STATS]); + + for (i = 0; i < HTT_TX_PDEV_STATS_NUM_AC_MUMIMO_USER_STATS; i++) { + len += HTT_DBG_OUT(buf + len, buf_len - len, + "Sounding User %u = 20MHz: %u, 40MHz : %u, 80MHz: %u, 160MHz: %u ", + i, + htt_stats_buf->sounding[0], + htt_stats_buf->sounding[1], + htt_stats_buf->sounding[2], + htt_stats_buf->sounding[3]); + } + } else if (htt_stats_buf->tx_sounding_mode == HTT_TX_AX_SOUNDING_MODE) { + len += HTT_DBG_OUT(buf + len, buf_len - len, + "\nHTT_TX_AX_SOUNDING_STATS_TLV:\n"); + len += HTT_DBG_OUT(buf + len, buf_len - len, + "ax_cbf_20 = IBF : %u, SU_SIFS : %u, SU_RBO : %u, MU_SIFS : %u, MU_RBO : %u ", + cbf_20[HTT_IMPLICIT_TXBF_STEER_STATS], + cbf_20[HTT_EXPLICIT_TXBF_SU_SIFS_STEER_STATS], + cbf_20[HTT_EXPLICIT_TXBF_SU_RBO_STEER_STATS], + cbf_20[HTT_EXPLICIT_TXBF_MU_SIFS_STEER_STATS], + cbf_20[HTT_EXPLICIT_TXBF_MU_RBO_STEER_STATS]); + len += HTT_DBG_OUT(buf + len, buf_len - len, + "ax_cbf_40 = IBF : %u, SU_SIFS : %u, SU_RBO : %u, MU_SIFS : %u, MU_RBO : %u", + cbf_40[HTT_IMPLICIT_TXBF_STEER_STATS], + cbf_40[HTT_EXPLICIT_TXBF_SU_SIFS_STEER_STATS], + cbf_40[HTT_EXPLICIT_TXBF_SU_RBO_STEER_STATS], + cbf_40[HTT_EXPLICIT_TXBF_MU_SIFS_STEER_STATS], + cbf_40[HTT_EXPLICIT_TXBF_MU_RBO_STEER_STATS]); + len += HTT_DBG_OUT(buf + len, buf_len - len, + "ax_cbf_80 = IBF : %u, SU_SIFS : %u, SU_RBO : %u, MU_SIFS : %u, MU_RBO : %u", + cbf_80[HTT_IMPLICIT_TXBF_STEER_STATS], + cbf_80[HTT_EXPLICIT_TXBF_SU_SIFS_STEER_STATS], + cbf_80[HTT_EXPLICIT_TXBF_SU_RBO_STEER_STATS], + cbf_80[HTT_EXPLICIT_TXBF_MU_SIFS_STEER_STATS], + cbf_80[HTT_EXPLICIT_TXBF_MU_RBO_STEER_STATS]); + len += HTT_DBG_OUT(buf + len, buf_len - len, + "ax_cbf_160 = IBF : %u, SU_SIFS : %u, SU_RBO : %u, MU_SIFS : %u, MU_RBO : %u", + cbf_160[HTT_IMPLICIT_TXBF_STEER_STATS], + cbf_160[HTT_EXPLICIT_TXBF_SU_SIFS_STEER_STATS], + cbf_160[HTT_EXPLICIT_TXBF_SU_RBO_STEER_STATS], + cbf_160[HTT_EXPLICIT_TXBF_MU_SIFS_STEER_STATS], + cbf_160[HTT_EXPLICIT_TXBF_MU_RBO_STEER_STATS]); + + for (i = 0; i < HTT_TX_PDEV_STATS_NUM_AX_MUMIMO_USER_STATS; i++) { + len += HTT_DBG_OUT(buf + len, buf_len - len, + "Sounding User %u = 20MHz: %u, 40MHz : %u, 80MHz: %u, 160MHz: %u ", + i, + htt_stats_buf->sounding[0], + htt_stats_buf->sounding[1], + htt_stats_buf->sounding[2], + htt_stats_buf->sounding[3]); + } + } + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void +htt_print_tx_selfgen_cmn_stats_tlv(const void *tag_buf, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_tx_selfgen_cmn_stats_tlv *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + + len += HTT_DBG_OUT(buf + len, buf_len - len, "HTT_TX_SELFGEN_CMN_STATS_TLV:"); + len += HTT_DBG_OUT(buf + len, buf_len - len, "mac_id = %u", + htt_stats_buf->mac_id__word & 0xFF); + len += HTT_DBG_OUT(buf + len, buf_len - len, "su_bar = %u", + htt_stats_buf->su_bar); + len += HTT_DBG_OUT(buf + len, buf_len - len, "rts = %u", + htt_stats_buf->rts); + len += HTT_DBG_OUT(buf + len, buf_len - len, "cts2self = %u", + htt_stats_buf->cts2self); + len += HTT_DBG_OUT(buf + len, buf_len - len, "qos_null = %u", + htt_stats_buf->qos_null); + len += HTT_DBG_OUT(buf + len, buf_len - len, "delayed_bar_1 = %u", + htt_stats_buf->delayed_bar_1); + len += HTT_DBG_OUT(buf + len, buf_len - len, "delayed_bar_2 = %u", + htt_stats_buf->delayed_bar_2); + len += HTT_DBG_OUT(buf + len, buf_len - len, "delayed_bar_3 = %u", + htt_stats_buf->delayed_bar_3); + len += HTT_DBG_OUT(buf + len, buf_len - len, "delayed_bar_4 = %u", + htt_stats_buf->delayed_bar_4); + len += HTT_DBG_OUT(buf + len, buf_len - len, "delayed_bar_5 = %u", + htt_stats_buf->delayed_bar_5); + len += HTT_DBG_OUT(buf + len, buf_len - len, "delayed_bar_6 = %u", + htt_stats_buf->delayed_bar_6); + len += HTT_DBG_OUT(buf + len, buf_len - len, "delayed_bar_7 = %u\n", + htt_stats_buf->delayed_bar_7); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void +htt_print_tx_selfgen_ac_stats_tlv(const void *tag_buf, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_tx_selfgen_ac_stats_tlv *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + + len += HTT_DBG_OUT(buf + len, buf_len - len, "HTT_TX_SELFGEN_AC_STATS_TLV:"); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ac_su_ndpa = %u", + htt_stats_buf->ac_su_ndpa); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ac_su_ndp = %u", + htt_stats_buf->ac_su_ndp); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ac_mu_mimo_ndpa = %u", + htt_stats_buf->ac_mu_mimo_ndpa); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ac_mu_mimo_ndp = %u", + htt_stats_buf->ac_mu_mimo_ndp); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ac_mu_mimo_brpoll_1 = %u", + htt_stats_buf->ac_mu_mimo_brpoll_1); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ac_mu_mimo_brpoll_2 = %u", + htt_stats_buf->ac_mu_mimo_brpoll_2); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ac_mu_mimo_brpoll_3 = %u\n", + htt_stats_buf->ac_mu_mimo_brpoll_3); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void +htt_print_tx_selfgen_ax_stats_tlv(const void *tag_buf, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_tx_selfgen_ax_stats_tlv *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + + len += HTT_DBG_OUT(buf + len, buf_len - len, "HTT_TX_SELFGEN_AX_STATS_TLV:"); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ax_su_ndpa = %u", + htt_stats_buf->ax_su_ndpa); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ax_su_ndp = %u", + htt_stats_buf->ax_su_ndp); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ax_mu_mimo_ndpa = %u", + htt_stats_buf->ax_mu_mimo_ndpa); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ax_mu_mimo_ndp = %u", + htt_stats_buf->ax_mu_mimo_ndp); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ax_mu_mimo_brpoll_1 = %u", + htt_stats_buf->ax_mu_mimo_brpoll_1); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ax_mu_mimo_brpoll_2 = %u", + htt_stats_buf->ax_mu_mimo_brpoll_2); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ax_mu_mimo_brpoll_3 = %u", + htt_stats_buf->ax_mu_mimo_brpoll_3); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ax_mu_mimo_brpoll_4 = %u", + htt_stats_buf->ax_mu_mimo_brpoll_4); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ax_mu_mimo_brpoll_5 = %u", + htt_stats_buf->ax_mu_mimo_brpoll_5); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ax_mu_mimo_brpoll_6 = %u", + htt_stats_buf->ax_mu_mimo_brpoll_6); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ax_mu_mimo_brpoll_7 = %u", + htt_stats_buf->ax_mu_mimo_brpoll_7); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ax_basic_trigger = %u", + htt_stats_buf->ax_basic_trigger); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ax_bsr_trigger = %u", + htt_stats_buf->ax_bsr_trigger); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ax_mu_bar_trigger = %u", + htt_stats_buf->ax_mu_bar_trigger); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ax_mu_rts_trigger = %u\n", + htt_stats_buf->ax_mu_rts_trigger); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void +htt_print_tx_selfgen_ac_err_stats_tlv(const void *tag_buf, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_tx_selfgen_ac_err_stats_tlv *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + + len += HTT_DBG_OUT(buf + len, buf_len - len, "HTT_TX_SELFGEN_AC_ERR_STATS_TLV:"); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ac_su_ndp_err = %u", + htt_stats_buf->ac_su_ndp_err); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ac_su_ndpa_err = %u", + htt_stats_buf->ac_su_ndpa_err); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ac_mu_mimo_ndpa_err = %u", + htt_stats_buf->ac_mu_mimo_ndpa_err); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ac_mu_mimo_ndp_err = %u", + htt_stats_buf->ac_mu_mimo_ndp_err); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ac_mu_mimo_brp1_err = %u", + htt_stats_buf->ac_mu_mimo_brp1_err); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ac_mu_mimo_brp2_err = %u", + htt_stats_buf->ac_mu_mimo_brp2_err); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ac_mu_mimo_brp3_err = %u\n", + htt_stats_buf->ac_mu_mimo_brp3_err); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void +htt_print_tx_selfgen_ax_err_stats_tlv(const void *tag_buf, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_tx_selfgen_ax_err_stats_tlv *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + + len += HTT_DBG_OUT(buf + len, buf_len - len, "HTT_TX_SELFGEN_AX_ERR_STATS_TLV:"); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ax_su_ndp_err = %u", + htt_stats_buf->ax_su_ndp_err); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ax_su_ndpa_err = %u", + htt_stats_buf->ax_su_ndpa_err); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ax_mu_mimo_ndpa_err = %u", + htt_stats_buf->ax_mu_mimo_ndpa_err); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ax_mu_mimo_ndp_err = %u", + htt_stats_buf->ax_mu_mimo_ndp_err); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ax_mu_mimo_brp1_err = %u", + htt_stats_buf->ax_mu_mimo_brp1_err); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ax_mu_mimo_brp2_err = %u", + htt_stats_buf->ax_mu_mimo_brp2_err); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ax_mu_mimo_brp3_err = %u", + htt_stats_buf->ax_mu_mimo_brp3_err); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ax_mu_mimo_brp4_err = %u", + htt_stats_buf->ax_mu_mimo_brp4_err); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ax_mu_mimo_brp5_err = %u", + htt_stats_buf->ax_mu_mimo_brp5_err); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ax_mu_mimo_brp6_err = %u", + htt_stats_buf->ax_mu_mimo_brp6_err); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ax_mu_mimo_brp7_err = %u", + htt_stats_buf->ax_mu_mimo_brp7_err); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ax_basic_trigger_err = %u", + htt_stats_buf->ax_basic_trigger_err); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ax_bsr_trigger_err = %u", + htt_stats_buf->ax_bsr_trigger_err); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ax_mu_bar_trigger_err = %u", + htt_stats_buf->ax_mu_bar_trigger_err); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ax_mu_rts_trigger_err = %u\n", + htt_stats_buf->ax_mu_rts_trigger_err); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void +htt_print_tx_pdev_mu_mimo_sch_stats_tlv(const void *tag_buf, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_tx_pdev_mu_mimo_sch_stats_tlv *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + u8 i; + + len += HTT_DBG_OUT(buf + len, buf_len - len, + "HTT_TX_PDEV_MU_MIMO_SCH_STATS_TLV:"); + len += HTT_DBG_OUT(buf + len, buf_len - len, "mu_mimo_sch_posted = %u", + htt_stats_buf->mu_mimo_sch_posted); + len += HTT_DBG_OUT(buf + len, buf_len - len, "mu_mimo_sch_failed = %u", + htt_stats_buf->mu_mimo_sch_failed); + len += HTT_DBG_OUT(buf + len, buf_len - len, "mu_mimo_ppdu_posted = %u\n", + htt_stats_buf->mu_mimo_ppdu_posted); + + len += HTT_DBG_OUT(buf + len, buf_len - len, "11ac MU_MIMO SCH STATS:"); + + for (i = 0; i < HTT_TX_PDEV_STATS_NUM_AC_MUMIMO_USER_STATS; i++) + len += HTT_DBG_OUT(buf + len, buf_len - len, + "ac_mu_mimo_sch_nusers_%u = %u", + i, htt_stats_buf->ac_mu_mimo_sch_nusers[i]); + + len += HTT_DBG_OUT(buf + len, buf_len - len, "\n11ax MU_MIMO SCH STATS:"); + + for (i = 0; i < HTT_TX_PDEV_STATS_NUM_AX_MUMIMO_USER_STATS; i++) + len += HTT_DBG_OUT(buf + len, buf_len - len, + "ax_mu_mimo_sch_nusers_%u = %u", + i, htt_stats_buf->ax_mu_mimo_sch_nusers[i]); + + len += HTT_DBG_OUT(buf + len, buf_len - len, "\n11ax OFDMA SCH STATS:"); + + for (i = 0; i < HTT_TX_PDEV_STATS_NUM_OFDMA_USER_STATS; i++) + len += HTT_DBG_OUT(buf + len, buf_len - len, + "ax_ofdma_sch_nusers_%u = %u", + i, htt_stats_buf->ax_ofdma_sch_nusers[i]); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void +htt_print_tx_pdev_mu_mimo_mpdu_stats_tlv(const void *tag_buf, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_tx_pdev_mpdu_stats_tlv *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + + if (htt_stats_buf->tx_sched_mode == HTT_STATS_TX_SCHED_MODE_MU_MIMO_AC) { + if (!htt_stats_buf->user_index) + len += HTT_DBG_OUT(buf + len, buf_len - len, + "HTT_TX_PDEV_MU_MIMO_AC_MPDU_STATS:\n"); + + if (htt_stats_buf->user_index < + HTT_TX_PDEV_STATS_NUM_AC_MUMIMO_USER_STATS) { + len += HTT_DBG_OUT(buf + len, buf_len - len, + "ac_mu_mimo_mpdus_queued_usr_%u = %u", + htt_stats_buf->user_index, + htt_stats_buf->mpdus_queued_usr); + len += HTT_DBG_OUT(buf + len, buf_len - len, + "ac_mu_mimo_mpdus_tried_usr_%u = %u", + htt_stats_buf->user_index, + htt_stats_buf->mpdus_tried_usr); + len += HTT_DBG_OUT(buf + len, buf_len - len, + "ac_mu_mimo_mpdus_failed_usr_%u = %u", + htt_stats_buf->user_index, + htt_stats_buf->mpdus_failed_usr); + len += HTT_DBG_OUT(buf + len, buf_len - len, + "ac_mu_mimo_mpdus_requeued_usr_%u = %u", + htt_stats_buf->user_index, + htt_stats_buf->mpdus_requeued_usr); + len += HTT_DBG_OUT(buf + len, buf_len - len, + "ac_mu_mimo_err_no_ba_usr_%u = %u", + htt_stats_buf->user_index, + htt_stats_buf->err_no_ba_usr); + len += HTT_DBG_OUT(buf + len, buf_len - len, + "ac_mu_mimo_mpdu_underrun_usr_%u = %u", + htt_stats_buf->user_index, + htt_stats_buf->mpdu_underrun_usr); + len += HTT_DBG_OUT(buf + len, buf_len - len, + "ac_mu_mimo_ampdu_underrun_usr_%u = %u\n", + htt_stats_buf->user_index, + htt_stats_buf->ampdu_underrun_usr); + } + } + + if (htt_stats_buf->tx_sched_mode == HTT_STATS_TX_SCHED_MODE_MU_MIMO_AX) { + if (!htt_stats_buf->user_index) + len += HTT_DBG_OUT(buf + len, buf_len - len, + "HTT_TX_PDEV_MU_MIMO_AX_MPDU_STATS:\n"); + + if (htt_stats_buf->user_index < + HTT_TX_PDEV_STATS_NUM_AX_MUMIMO_USER_STATS) { + len += HTT_DBG_OUT(buf + len, buf_len - len, + "ax_mu_mimo_mpdus_queued_usr_%u = %u", + htt_stats_buf->user_index, + htt_stats_buf->mpdus_queued_usr); + len += HTT_DBG_OUT(buf + len, buf_len - len, + "ax_mu_mimo_mpdus_tried_usr_%u = %u", + htt_stats_buf->user_index, + htt_stats_buf->mpdus_tried_usr); + len += HTT_DBG_OUT(buf + len, buf_len - len, + "ax_mu_mimo_mpdus_failed_usr_%u = %u", + htt_stats_buf->user_index, + htt_stats_buf->mpdus_failed_usr); + len += HTT_DBG_OUT(buf + len, buf_len - len, + "ax_mu_mimo_mpdus_requeued_usr_%u = %u", + htt_stats_buf->user_index, + htt_stats_buf->mpdus_requeued_usr); + len += HTT_DBG_OUT(buf + len, buf_len - len, + "ax_mu_mimo_err_no_ba_usr_%u = %u", + htt_stats_buf->user_index, + htt_stats_buf->err_no_ba_usr); + len += HTT_DBG_OUT(buf + len, buf_len - len, + "ax_mu_mimo_mpdu_underrun_usr_%u = %u", + htt_stats_buf->user_index, + htt_stats_buf->mpdu_underrun_usr); + len += HTT_DBG_OUT(buf + len, buf_len - len, + "ax_mu_mimo_ampdu_underrun_usr_%u = %u\n", + htt_stats_buf->user_index, + htt_stats_buf->ampdu_underrun_usr); + } + } + + if (htt_stats_buf->tx_sched_mode == HTT_STATS_TX_SCHED_MODE_MU_OFDMA_AX) { + if (!htt_stats_buf->user_index) + len += HTT_DBG_OUT(buf + len, buf_len - len, + "HTT_TX_PDEV_AX_MU_OFDMA_MPDU_STATS:\n"); + + if (htt_stats_buf->user_index < HTT_TX_PDEV_STATS_NUM_OFDMA_USER_STATS) { + len += HTT_DBG_OUT(buf + len, buf_len - len, + "ax_mu_ofdma_mpdus_queued_usr_%u = %u", + htt_stats_buf->user_index, + htt_stats_buf->mpdus_queued_usr); + len += HTT_DBG_OUT(buf + len, buf_len - len, + "ax_mu_ofdma_mpdus_tried_usr_%u = %u", + htt_stats_buf->user_index, + htt_stats_buf->mpdus_tried_usr); + len += HTT_DBG_OUT(buf + len, buf_len - len, + "ax_mu_ofdma_mpdus_failed_usr_%u = %u", + htt_stats_buf->user_index, + htt_stats_buf->mpdus_failed_usr); + len += HTT_DBG_OUT(buf + len, buf_len - len, + "ax_mu_ofdma_mpdus_requeued_usr_%u = %u", + htt_stats_buf->user_index, + htt_stats_buf->mpdus_requeued_usr); + len += HTT_DBG_OUT(buf + len, buf_len - len, + "ax_mu_ofdma_err_no_ba_usr_%u = %u", + htt_stats_buf->user_index, + htt_stats_buf->err_no_ba_usr); + len += HTT_DBG_OUT(buf + len, buf_len - len, + "ax_mu_ofdma_mpdu_underrun_usr_%u = %u", + htt_stats_buf->user_index, + htt_stats_buf->mpdu_underrun_usr); + len += HTT_DBG_OUT(buf + len, buf_len - len, + "ax_mu_ofdma_ampdu_underrun_usr_%u = %u\n", + htt_stats_buf->user_index, + htt_stats_buf->ampdu_underrun_usr); + } + } + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void +htt_print_sched_txq_cmd_posted_tlv_v(const void *tag_buf, + u16 tag_len, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_sched_txq_cmd_posted_tlv_v *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + char sched_cmd_posted[HTT_MAX_STRING_LEN] = {0}; + u16 num_elements = min_t(u16, (tag_len >> 2), HTT_TX_PDEV_SCHED_TX_MODE_MAX); + + len += HTT_DBG_OUT(buf + len, buf_len - len, "HTT_SCHED_TXQ_CMD_POSTED_TLV_V:"); + + ARRAY_TO_STRING(sched_cmd_posted, htt_stats_buf->sched_cmd_posted, + num_elements); + len += HTT_DBG_OUT(buf + len, buf_len - len, "sched_cmd_posted = %s\n", + sched_cmd_posted); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void +htt_print_sched_txq_cmd_reaped_tlv_v(const void *tag_buf, + u16 tag_len, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_sched_txq_cmd_reaped_tlv_v *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + char sched_cmd_reaped[HTT_MAX_STRING_LEN] = {0}; + u16 num_elements = min_t(u16, (tag_len >> 2), HTT_TX_PDEV_SCHED_TX_MODE_MAX); + + len += HTT_DBG_OUT(buf + len, buf_len - len, "HTT_SCHED_TXQ_CMD_REAPED_TLV_V:"); + + ARRAY_TO_STRING(sched_cmd_reaped, htt_stats_buf->sched_cmd_reaped, + num_elements); + len += HTT_DBG_OUT(buf + len, buf_len - len, "sched_cmd_reaped = %s\n", + sched_cmd_reaped); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void +htt_print_sched_txq_sched_order_su_tlv_v(const void *tag_buf, + u16 tag_len, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_sched_txq_sched_order_su_tlv_v *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + char sched_order_su[HTT_MAX_STRING_LEN] = {0}; + /* each entry is u32, i.e. 4 bytes */ + u32 sched_order_su_num_entries = + min_t(u32, (tag_len >> 2), HTT_TX_PDEV_NUM_SCHED_ORDER_LOG); + + len += HTT_DBG_OUT(buf + len, buf_len - len, + "HTT_SCHED_TXQ_SCHED_ORDER_SU_TLV_V:"); + + ARRAY_TO_STRING(sched_order_su, htt_stats_buf->sched_order_su, + sched_order_su_num_entries); + len += HTT_DBG_OUT(buf + len, buf_len - len, "sched_order_su = %s\n", + sched_order_su); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void +htt_print_sched_txq_sched_ineligibility_tlv_v(const void *tag_buf, + u16 tag_len, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_sched_txq_sched_ineligibility_tlv_v *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + char sched_ineligibility[HTT_MAX_STRING_LEN] = {0}; + /* each entry is u32, i.e. 4 bytes */ + u32 sched_ineligibility_num_entries = tag_len >> 2; + + len += HTT_DBG_OUT(buf + len, buf_len - len, + "HTT_SCHED_TXQ_SCHED_INELIGIBILITY_V:"); + + ARRAY_TO_STRING(sched_ineligibility, htt_stats_buf->sched_ineligibility, + sched_ineligibility_num_entries); + len += HTT_DBG_OUT(buf + len, buf_len - len, "sched_ineligibility = %s\n", + sched_ineligibility); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void +htt_print_tx_pdev_stats_sched_per_txq_tlv(const void *tag_buf, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_tx_pdev_stats_sched_per_txq_tlv *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + + len += HTT_DBG_OUT(buf + len, buf_len - len, + "HTT_TX_PDEV_STATS_SCHED_PER_TXQ_TLV:"); + len += HTT_DBG_OUT(buf + len, buf_len - len, "mac_id = %u", + htt_stats_buf->mac_id__txq_id__word & 0xFF); + len += HTT_DBG_OUT(buf + len, buf_len - len, "txq_id = %u", + (htt_stats_buf->mac_id__txq_id__word & 0xFF00) >> 8); + len += HTT_DBG_OUT(buf + len, buf_len - len, "sched_policy = %u", + htt_stats_buf->sched_policy); + len += HTT_DBG_OUT(buf + len, buf_len - len, + "last_sched_cmd_posted_timestamp = %u", + htt_stats_buf->last_sched_cmd_posted_timestamp); + len += HTT_DBG_OUT(buf + len, buf_len - len, + "last_sched_cmd_compl_timestamp = %u", + htt_stats_buf->last_sched_cmd_compl_timestamp); + len += HTT_DBG_OUT(buf + len, buf_len - len, "sched_2_tac_lwm_count = %u", + htt_stats_buf->sched_2_tac_lwm_count); + len += HTT_DBG_OUT(buf + len, buf_len - len, "sched_2_tac_ring_full = %u", + htt_stats_buf->sched_2_tac_ring_full); + len += HTT_DBG_OUT(buf + len, buf_len - len, "sched_cmd_post_failure = %u", + htt_stats_buf->sched_cmd_post_failure); + len += HTT_DBG_OUT(buf + len, buf_len - len, "num_active_tids = %u", + htt_stats_buf->num_active_tids); + len += HTT_DBG_OUT(buf + len, buf_len - len, "num_ps_schedules = %u", + htt_stats_buf->num_ps_schedules); + len += HTT_DBG_OUT(buf + len, buf_len - len, "sched_cmds_pending = %u", + htt_stats_buf->sched_cmds_pending); + len += HTT_DBG_OUT(buf + len, buf_len - len, "num_tid_register = %u", + htt_stats_buf->num_tid_register); + len += HTT_DBG_OUT(buf + len, buf_len - len, "num_tid_unregister = %u", + htt_stats_buf->num_tid_unregister); + len += HTT_DBG_OUT(buf + len, buf_len - len, "num_qstats_queried = %u", + htt_stats_buf->num_qstats_queried); + len += HTT_DBG_OUT(buf + len, buf_len - len, "qstats_update_pending = %u", + htt_stats_buf->qstats_update_pending); + len += HTT_DBG_OUT(buf + len, buf_len - len, "last_qstats_query_timestamp = %u", + htt_stats_buf->last_qstats_query_timestamp); + len += HTT_DBG_OUT(buf + len, buf_len - len, "num_tqm_cmdq_full = %u", + htt_stats_buf->num_tqm_cmdq_full); + len += HTT_DBG_OUT(buf + len, buf_len - len, "num_de_sched_algo_trigger = %u", + htt_stats_buf->num_de_sched_algo_trigger); + len += HTT_DBG_OUT(buf + len, buf_len - len, "num_rt_sched_algo_trigger = %u", + htt_stats_buf->num_rt_sched_algo_trigger); + len += HTT_DBG_OUT(buf + len, buf_len - len, "num_tqm_sched_algo_trigger = %u", + htt_stats_buf->num_tqm_sched_algo_trigger); + len += HTT_DBG_OUT(buf + len, buf_len - len, "notify_sched = %u\n", + htt_stats_buf->notify_sched); + len += HTT_DBG_OUT(buf + len, buf_len - len, "dur_based_sendn_term = %u\n", + htt_stats_buf->dur_based_sendn_term); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void htt_print_stats_tx_sched_cmn_tlv(const void *tag_buf, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_stats_tx_sched_cmn_tlv *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + + len += HTT_DBG_OUT(buf + len, buf_len - len, "HTT_STATS_TX_SCHED_CMN_TLV:"); + len += HTT_DBG_OUT(buf + len, buf_len - len, "mac_id = %u", + htt_stats_buf->mac_id__word & 0xFF); + len += HTT_DBG_OUT(buf + len, buf_len - len, "current_timestamp = %u\n", + htt_stats_buf->current_timestamp); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void +htt_print_tx_tqm_gen_mpdu_stats_tlv_v(const void *tag_buf, + u16 tag_len, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_tx_tqm_gen_mpdu_stats_tlv_v *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + char gen_mpdu_end_reason[HTT_MAX_STRING_LEN] = {0}; + u16 num_elements = min_t(u16, (tag_len >> 2), + HTT_TX_TQM_MAX_LIST_MPDU_END_REASON); + + len += HTT_DBG_OUT(buf + len, buf_len - len, "HTT_TX_TQM_GEN_MPDU_STATS_TLV_V:"); + + ARRAY_TO_STRING(gen_mpdu_end_reason, htt_stats_buf->gen_mpdu_end_reason, + num_elements); + len += HTT_DBG_OUT(buf + len, buf_len - len, "gen_mpdu_end_reason = %s\n", + gen_mpdu_end_reason); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void +htt_print_tx_tqm_list_mpdu_stats_tlv_v(const void *tag_buf, + u16 tag_len, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_tx_tqm_list_mpdu_stats_tlv_v *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + char list_mpdu_end_reason[HTT_MAX_STRING_LEN] = {0}; + u16 num_elems = min_t(u16, (tag_len >> 2), HTT_TX_TQM_MAX_LIST_MPDU_END_REASON); + + len += HTT_DBG_OUT(buf + len, buf_len - len, + "HTT_TX_TQM_LIST_MPDU_STATS_TLV_V:"); + + ARRAY_TO_STRING(list_mpdu_end_reason, htt_stats_buf->list_mpdu_end_reason, + num_elems); + len += HTT_DBG_OUT(buf + len, buf_len - len, "list_mpdu_end_reason = %s\n", + list_mpdu_end_reason); + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void +htt_print_tx_tqm_list_mpdu_cnt_tlv_v(const void *tag_buf, + u16 tag_len, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_tx_tqm_list_mpdu_cnt_tlv_v *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + char list_mpdu_cnt_hist[HTT_MAX_STRING_LEN] = {0}; + u16 num_elems = min_t(u16, (tag_len >> 2), + HTT_TX_TQM_MAX_LIST_MPDU_CNT_HISTOGRAM_BINS); + + len += HTT_DBG_OUT(buf + len, buf_len - len, "HTT_TX_TQM_LIST_MPDU_CNT_TLV_V:"); + + ARRAY_TO_STRING(list_mpdu_cnt_hist, htt_stats_buf->list_mpdu_cnt_hist, + num_elems); + len += HTT_DBG_OUT(buf + len, buf_len - len, "list_mpdu_cnt_hist = %s\n", + list_mpdu_cnt_hist); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void +htt_print_tx_tqm_pdev_stats_tlv_v(const void *tag_buf, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_tx_tqm_pdev_stats_tlv_v *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + + len += HTT_DBG_OUT(buf + len, buf_len - len, "HTT_TX_TQM_PDEV_STATS_TLV_V:"); + len += HTT_DBG_OUT(buf + len, buf_len - len, "msdu_count = %u", + htt_stats_buf->msdu_count); + len += HTT_DBG_OUT(buf + len, buf_len - len, "mpdu_count = %u", + htt_stats_buf->mpdu_count); + len += HTT_DBG_OUT(buf + len, buf_len - len, "remove_msdu = %u", + htt_stats_buf->remove_msdu); + len += HTT_DBG_OUT(buf + len, buf_len - len, "remove_mpdu = %u", + htt_stats_buf->remove_mpdu); + len += HTT_DBG_OUT(buf + len, buf_len - len, "remove_msdu_ttl = %u", + htt_stats_buf->remove_msdu_ttl); + len += HTT_DBG_OUT(buf + len, buf_len - len, "send_bar = %u", + htt_stats_buf->send_bar); + len += HTT_DBG_OUT(buf + len, buf_len - len, "bar_sync = %u", + htt_stats_buf->bar_sync); + len += HTT_DBG_OUT(buf + len, buf_len - len, "notify_mpdu = %u", + htt_stats_buf->notify_mpdu); + len += HTT_DBG_OUT(buf + len, buf_len - len, "sync_cmd = %u", + htt_stats_buf->sync_cmd); + len += HTT_DBG_OUT(buf + len, buf_len - len, "write_cmd = %u", + htt_stats_buf->write_cmd); + len += HTT_DBG_OUT(buf + len, buf_len - len, "hwsch_trigger = %u", + htt_stats_buf->hwsch_trigger); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ack_tlv_proc = %u", + htt_stats_buf->ack_tlv_proc); + len += HTT_DBG_OUT(buf + len, buf_len - len, "gen_mpdu_cmd = %u", + htt_stats_buf->gen_mpdu_cmd); + len += HTT_DBG_OUT(buf + len, buf_len - len, "gen_list_cmd = %u", + htt_stats_buf->gen_list_cmd); + len += HTT_DBG_OUT(buf + len, buf_len - len, "remove_mpdu_cmd = %u", + htt_stats_buf->remove_mpdu_cmd); + len += HTT_DBG_OUT(buf + len, buf_len - len, "remove_mpdu_tried_cmd = %u", + htt_stats_buf->remove_mpdu_tried_cmd); + len += HTT_DBG_OUT(buf + len, buf_len - len, "mpdu_queue_stats_cmd = %u", + htt_stats_buf->mpdu_queue_stats_cmd); + len += HTT_DBG_OUT(buf + len, buf_len - len, "mpdu_head_info_cmd = %u", + htt_stats_buf->mpdu_head_info_cmd); + len += HTT_DBG_OUT(buf + len, buf_len - len, "msdu_flow_stats_cmd = %u", + htt_stats_buf->msdu_flow_stats_cmd); + len += HTT_DBG_OUT(buf + len, buf_len - len, "remove_msdu_cmd = %u", + htt_stats_buf->remove_msdu_cmd); + len += HTT_DBG_OUT(buf + len, buf_len - len, "remove_msdu_ttl_cmd = %u", + htt_stats_buf->remove_msdu_ttl_cmd); + len += HTT_DBG_OUT(buf + len, buf_len - len, "flush_cache_cmd = %u", + htt_stats_buf->flush_cache_cmd); + len += HTT_DBG_OUT(buf + len, buf_len - len, "update_mpduq_cmd = %u", + htt_stats_buf->update_mpduq_cmd); + len += HTT_DBG_OUT(buf + len, buf_len - len, "enqueue = %u", + htt_stats_buf->enqueue); + len += HTT_DBG_OUT(buf + len, buf_len - len, "enqueue_notify = %u", + htt_stats_buf->enqueue_notify); + len += HTT_DBG_OUT(buf + len, buf_len - len, "notify_mpdu_at_head = %u", + htt_stats_buf->notify_mpdu_at_head); + len += HTT_DBG_OUT(buf + len, buf_len - len, "notify_mpdu_state_valid = %u", + htt_stats_buf->notify_mpdu_state_valid); + len += HTT_DBG_OUT(buf + len, buf_len - len, "sched_udp_notify1 = %u", + htt_stats_buf->sched_udp_notify1); + len += HTT_DBG_OUT(buf + len, buf_len - len, "sched_udp_notify2 = %u", + htt_stats_buf->sched_udp_notify2); + len += HTT_DBG_OUT(buf + len, buf_len - len, "sched_nonudp_notify1 = %u", + htt_stats_buf->sched_nonudp_notify1); + len += HTT_DBG_OUT(buf + len, buf_len - len, "sched_nonudp_notify2 = %u\n", + htt_stats_buf->sched_nonudp_notify2); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void htt_print_tx_tqm_cmn_stats_tlv(const void *tag_buf, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_tx_tqm_cmn_stats_tlv *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + + len += HTT_DBG_OUT(buf + len, buf_len - len, "HTT_TX_TQM_CMN_STATS_TLV:"); + len += HTT_DBG_OUT(buf + len, buf_len - len, "mac_id = %u", + htt_stats_buf->mac_id__word & 0xFF); + len += HTT_DBG_OUT(buf + len, buf_len - len, "max_cmdq_id = %u", + htt_stats_buf->max_cmdq_id); + len += HTT_DBG_OUT(buf + len, buf_len - len, "list_mpdu_cnt_hist_intvl = %u", + htt_stats_buf->list_mpdu_cnt_hist_intvl); + len += HTT_DBG_OUT(buf + len, buf_len - len, "add_msdu = %u", + htt_stats_buf->add_msdu); + len += HTT_DBG_OUT(buf + len, buf_len - len, "q_empty = %u", + htt_stats_buf->q_empty); + len += HTT_DBG_OUT(buf + len, buf_len - len, "q_not_empty = %u", + htt_stats_buf->q_not_empty); + len += HTT_DBG_OUT(buf + len, buf_len - len, "drop_notification = %u", + htt_stats_buf->drop_notification); + len += HTT_DBG_OUT(buf + len, buf_len - len, "desc_threshold = %u\n", + htt_stats_buf->desc_threshold); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void htt_print_tx_tqm_error_stats_tlv(const void *tag_buf, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_tx_tqm_error_stats_tlv *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + + len += HTT_DBG_OUT(buf + len, buf_len - len, "HTT_TX_TQM_ERROR_STATS_TLV:"); + len += HTT_DBG_OUT(buf + len, buf_len - len, "q_empty_failure = %u", + htt_stats_buf->q_empty_failure); + len += HTT_DBG_OUT(buf + len, buf_len - len, "q_not_empty_failure = %u", + htt_stats_buf->q_not_empty_failure); + len += HTT_DBG_OUT(buf + len, buf_len - len, "add_msdu_failure = %u\n", + htt_stats_buf->add_msdu_failure); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void htt_print_tx_tqm_cmdq_status_tlv(const void *tag_buf, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_tx_tqm_cmdq_status_tlv *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + + len += HTT_DBG_OUT(buf + len, buf_len - len, "HTT_TX_TQM_CMDQ_STATUS_TLV:"); + len += HTT_DBG_OUT(buf + len, buf_len - len, "mac_id = %u", + htt_stats_buf->mac_id__cmdq_id__word & 0xFF); + len += HTT_DBG_OUT(buf + len, buf_len - len, "cmdq_id = %u\n", + (htt_stats_buf->mac_id__cmdq_id__word & 0xFF00) >> 8); + len += HTT_DBG_OUT(buf + len, buf_len - len, "sync_cmd = %u", + htt_stats_buf->sync_cmd); + len += HTT_DBG_OUT(buf + len, buf_len - len, "write_cmd = %u", + htt_stats_buf->write_cmd); + len += HTT_DBG_OUT(buf + len, buf_len - len, "gen_mpdu_cmd = %u", + htt_stats_buf->gen_mpdu_cmd); + len += HTT_DBG_OUT(buf + len, buf_len - len, "mpdu_queue_stats_cmd = %u", + htt_stats_buf->mpdu_queue_stats_cmd); + len += HTT_DBG_OUT(buf + len, buf_len - len, "mpdu_head_info_cmd = %u", + htt_stats_buf->mpdu_head_info_cmd); + len += HTT_DBG_OUT(buf + len, buf_len - len, "msdu_flow_stats_cmd = %u", + htt_stats_buf->msdu_flow_stats_cmd); + len += HTT_DBG_OUT(buf + len, buf_len - len, "remove_mpdu_cmd = %u", + htt_stats_buf->remove_mpdu_cmd); + len += HTT_DBG_OUT(buf + len, buf_len - len, "remove_msdu_cmd = %u", + htt_stats_buf->remove_msdu_cmd); + len += HTT_DBG_OUT(buf + len, buf_len - len, "flush_cache_cmd = %u", + htt_stats_buf->flush_cache_cmd); + len += HTT_DBG_OUT(buf + len, buf_len - len, "update_mpduq_cmd = %u", + htt_stats_buf->update_mpduq_cmd); + len += HTT_DBG_OUT(buf + len, buf_len - len, "update_msduq_cmd = %u\n", + htt_stats_buf->update_msduq_cmd); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void +htt_print_tx_de_eapol_packets_stats_tlv(const void *tag_buf, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_tx_de_eapol_packets_stats_tlv *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + + len += HTT_DBG_OUT(buf + len, buf_len - len, + "HTT_TX_DE_EAPOL_PACKETS_STATS_TLV:"); + len += HTT_DBG_OUT(buf + len, buf_len - len, "m1_packets = %u", + htt_stats_buf->m1_packets); + len += HTT_DBG_OUT(buf + len, buf_len - len, "m2_packets = %u", + htt_stats_buf->m2_packets); + len += HTT_DBG_OUT(buf + len, buf_len - len, "m3_packets = %u", + htt_stats_buf->m3_packets); + len += HTT_DBG_OUT(buf + len, buf_len - len, "m4_packets = %u", + htt_stats_buf->m4_packets); + len += HTT_DBG_OUT(buf + len, buf_len - len, "g1_packets = %u", + htt_stats_buf->g1_packets); + len += HTT_DBG_OUT(buf + len, buf_len - len, "g2_packets = %u\n", + htt_stats_buf->g2_packets); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void +htt_print_tx_de_classify_failed_stats_tlv(const void *tag_buf, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_tx_de_classify_failed_stats_tlv *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + + len += HTT_DBG_OUT(buf + len, buf_len - len, + "HTT_TX_DE_CLASSIFY_FAILED_STATS_TLV:"); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ap_bss_peer_not_found = %u", + htt_stats_buf->ap_bss_peer_not_found); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ap_bcast_mcast_no_peer = %u", + htt_stats_buf->ap_bcast_mcast_no_peer); + len += HTT_DBG_OUT(buf + len, buf_len - len, "sta_delete_in_progress = %u", + htt_stats_buf->sta_delete_in_progress); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ibss_no_bss_peer = %u", + htt_stats_buf->ibss_no_bss_peer); + len += HTT_DBG_OUT(buf + len, buf_len - len, "invalid_vdev_type = %u", + htt_stats_buf->invalid_vdev_type); + len += HTT_DBG_OUT(buf + len, buf_len - len, "invalid_ast_peer_entry = %u", + htt_stats_buf->invalid_ast_peer_entry); + len += HTT_DBG_OUT(buf + len, buf_len - len, "peer_entry_invalid = %u", + htt_stats_buf->peer_entry_invalid); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ethertype_not_ip = %u", + htt_stats_buf->ethertype_not_ip); + len += HTT_DBG_OUT(buf + len, buf_len - len, "eapol_lookup_failed = %u", + htt_stats_buf->eapol_lookup_failed); + len += HTT_DBG_OUT(buf + len, buf_len - len, "qpeer_not_allow_data = %u", + htt_stats_buf->qpeer_not_allow_data); + len += HTT_DBG_OUT(buf + len, buf_len - len, "fse_tid_override = %u", + htt_stats_buf->fse_tid_override); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ipv6_jumbogram_zero_length = %u", + htt_stats_buf->ipv6_jumbogram_zero_length); + len += HTT_DBG_OUT(buf + len, buf_len - len, "qos_to_non_qos_in_prog = %u\n", + htt_stats_buf->qos_to_non_qos_in_prog); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void +htt_print_tx_de_classify_stats_tlv(const void *tag_buf, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_tx_de_classify_stats_tlv *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + + len += HTT_DBG_OUT(buf + len, buf_len - len, "HTT_TX_DE_CLASSIFY_STATS_TLV:"); + len += HTT_DBG_OUT(buf + len, buf_len - len, "arp_packets = %u", + htt_stats_buf->arp_packets); + len += HTT_DBG_OUT(buf + len, buf_len - len, "igmp_packets = %u", + htt_stats_buf->igmp_packets); + len += HTT_DBG_OUT(buf + len, buf_len - len, "dhcp_packets = %u", + htt_stats_buf->dhcp_packets); + len += HTT_DBG_OUT(buf + len, buf_len - len, "host_inspected = %u", + htt_stats_buf->host_inspected); + len += HTT_DBG_OUT(buf + len, buf_len - len, "htt_included = %u", + htt_stats_buf->htt_included); + len += HTT_DBG_OUT(buf + len, buf_len - len, "htt_valid_mcs = %u", + htt_stats_buf->htt_valid_mcs); + len += HTT_DBG_OUT(buf + len, buf_len - len, "htt_valid_nss = %u", + htt_stats_buf->htt_valid_nss); + len += HTT_DBG_OUT(buf + len, buf_len - len, "htt_valid_preamble_type = %u", + htt_stats_buf->htt_valid_preamble_type); + len += HTT_DBG_OUT(buf + len, buf_len - len, "htt_valid_chainmask = %u", + htt_stats_buf->htt_valid_chainmask); + len += HTT_DBG_OUT(buf + len, buf_len - len, "htt_valid_guard_interval = %u", + htt_stats_buf->htt_valid_guard_interval); + len += HTT_DBG_OUT(buf + len, buf_len - len, "htt_valid_retries = %u", + htt_stats_buf->htt_valid_retries); + len += HTT_DBG_OUT(buf + len, buf_len - len, "htt_valid_bw_info = %u", + htt_stats_buf->htt_valid_bw_info); + len += HTT_DBG_OUT(buf + len, buf_len - len, "htt_valid_power = %u", + htt_stats_buf->htt_valid_power); + len += HTT_DBG_OUT(buf + len, buf_len - len, "htt_valid_key_flags = 0x%x", + htt_stats_buf->htt_valid_key_flags); + len += HTT_DBG_OUT(buf + len, buf_len - len, "htt_valid_no_encryption = %u", + htt_stats_buf->htt_valid_no_encryption); + len += HTT_DBG_OUT(buf + len, buf_len - len, "fse_entry_count = %u", + htt_stats_buf->fse_entry_count); + len += HTT_DBG_OUT(buf + len, buf_len - len, "fse_priority_be = %u", + htt_stats_buf->fse_priority_be); + len += HTT_DBG_OUT(buf + len, buf_len - len, "fse_priority_high = %u", + htt_stats_buf->fse_priority_high); + len += HTT_DBG_OUT(buf + len, buf_len - len, "fse_priority_low = %u", + htt_stats_buf->fse_priority_low); + len += HTT_DBG_OUT(buf + len, buf_len - len, "fse_traffic_ptrn_be = %u", + htt_stats_buf->fse_traffic_ptrn_be); + len += HTT_DBG_OUT(buf + len, buf_len - len, "fse_traffic_ptrn_over_sub = %u", + htt_stats_buf->fse_traffic_ptrn_over_sub); + len += HTT_DBG_OUT(buf + len, buf_len - len, "fse_traffic_ptrn_bursty = %u", + htt_stats_buf->fse_traffic_ptrn_bursty); + len += HTT_DBG_OUT(buf + len, buf_len - len, "fse_traffic_ptrn_interactive = %u", + htt_stats_buf->fse_traffic_ptrn_interactive); + len += HTT_DBG_OUT(buf + len, buf_len - len, "fse_traffic_ptrn_periodic = %u", + htt_stats_buf->fse_traffic_ptrn_periodic); + len += HTT_DBG_OUT(buf + len, buf_len - len, "fse_hwqueue_alloc = %u", + htt_stats_buf->fse_hwqueue_alloc); + len += HTT_DBG_OUT(buf + len, buf_len - len, "fse_hwqueue_created = %u", + htt_stats_buf->fse_hwqueue_created); + len += HTT_DBG_OUT(buf + len, buf_len - len, "fse_hwqueue_send_to_host = %u", + htt_stats_buf->fse_hwqueue_send_to_host); + len += HTT_DBG_OUT(buf + len, buf_len - len, "mcast_entry = %u", + htt_stats_buf->mcast_entry); + len += HTT_DBG_OUT(buf + len, buf_len - len, "bcast_entry = %u", + htt_stats_buf->bcast_entry); + len += HTT_DBG_OUT(buf + len, buf_len - len, "htt_update_peer_cache = %u", + htt_stats_buf->htt_update_peer_cache); + len += HTT_DBG_OUT(buf + len, buf_len - len, "htt_learning_frame = %u", + htt_stats_buf->htt_learning_frame); + len += HTT_DBG_OUT(buf + len, buf_len - len, "fse_invalid_peer = %u", + htt_stats_buf->fse_invalid_peer); + len += HTT_DBG_OUT(buf + len, buf_len - len, "mec_notify = %u\n", + htt_stats_buf->mec_notify); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void +htt_print_tx_de_classify_status_stats_tlv(const void *tag_buf, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_tx_de_classify_status_stats_tlv *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + + len += HTT_DBG_OUT(buf + len, buf_len - len, + "HTT_TX_DE_CLASSIFY_STATUS_STATS_TLV:"); + len += HTT_DBG_OUT(buf + len, buf_len - len, "eok = %u", + htt_stats_buf->eok); + len += HTT_DBG_OUT(buf + len, buf_len - len, "classify_done = %u", + htt_stats_buf->classify_done); + len += HTT_DBG_OUT(buf + len, buf_len - len, "lookup_failed = %u", + htt_stats_buf->lookup_failed); + len += HTT_DBG_OUT(buf + len, buf_len - len, "send_host_dhcp = %u", + htt_stats_buf->send_host_dhcp); + len += HTT_DBG_OUT(buf + len, buf_len - len, "send_host_mcast = %u", + htt_stats_buf->send_host_mcast); + len += HTT_DBG_OUT(buf + len, buf_len - len, "send_host_unknown_dest = %u", + htt_stats_buf->send_host_unknown_dest); + len += HTT_DBG_OUT(buf + len, buf_len - len, "send_host = %u", + htt_stats_buf->send_host); + len += HTT_DBG_OUT(buf + len, buf_len - len, "status_invalid = %u\n", + htt_stats_buf->status_invalid); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void +htt_print_tx_de_enqueue_packets_stats_tlv(const void *tag_buf, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_tx_de_enqueue_packets_stats_tlv *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + + len += HTT_DBG_OUT(buf + len, buf_len - len, + "HTT_TX_DE_ENQUEUE_PACKETS_STATS_TLV:"); + len += HTT_DBG_OUT(buf + len, buf_len - len, "enqueued_pkts = %u", + htt_stats_buf->enqueued_pkts); + len += HTT_DBG_OUT(buf + len, buf_len - len, "to_tqm = %u", + htt_stats_buf->to_tqm); + len += HTT_DBG_OUT(buf + len, buf_len - len, "to_tqm_bypass = %u\n", + htt_stats_buf->to_tqm_bypass); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void +htt_print_tx_de_enqueue_discard_stats_tlv(const void *tag_buf, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_tx_de_enqueue_discard_stats_tlv *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + + len += HTT_DBG_OUT(buf + len, buf_len - len, + "HTT_TX_DE_ENQUEUE_DISCARD_STATS_TLV:"); + len += HTT_DBG_OUT(buf + len, buf_len - len, "discarded_pkts = %u", + htt_stats_buf->discarded_pkts); + len += HTT_DBG_OUT(buf + len, buf_len - len, "local_frames = %u", + htt_stats_buf->local_frames); + len += HTT_DBG_OUT(buf + len, buf_len - len, "is_ext_msdu = %u\n", + htt_stats_buf->is_ext_msdu); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void htt_print_tx_de_compl_stats_tlv(const void *tag_buf, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_tx_de_compl_stats_tlv *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + + len += HTT_DBG_OUT(buf + len, buf_len - len, "HTT_TX_DE_COMPL_STATS_TLV:"); + len += HTT_DBG_OUT(buf + len, buf_len - len, "tcl_dummy_frame = %u", + htt_stats_buf->tcl_dummy_frame); + len += HTT_DBG_OUT(buf + len, buf_len - len, "tqm_dummy_frame = %u", + htt_stats_buf->tqm_dummy_frame); + len += HTT_DBG_OUT(buf + len, buf_len - len, "tqm_notify_frame = %u", + htt_stats_buf->tqm_notify_frame); + len += HTT_DBG_OUT(buf + len, buf_len - len, "fw2wbm_enq = %u", + htt_stats_buf->fw2wbm_enq); + len += HTT_DBG_OUT(buf + len, buf_len - len, "tqm_bypass_frame = %u\n", + htt_stats_buf->tqm_bypass_frame); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void +htt_print_tx_de_fw2wbm_ring_full_hist_tlv(const void *tag_buf, + u16 tag_len, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_tx_de_fw2wbm_ring_full_hist_tlv *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + char fw2wbm_ring_full_hist[HTT_MAX_STRING_LEN] = {0}; + u16 num_elements = tag_len >> 2; + u32 required_buffer_size = HTT_MAX_PRINT_CHAR_PER_ELEM * num_elements; + + len += HTT_DBG_OUT(buf + len, buf_len - len, + "HTT_TX_DE_FW2WBM_RING_FULL_HIST_TLV"); + + if (required_buffer_size < HTT_MAX_STRING_LEN) { + ARRAY_TO_STRING(fw2wbm_ring_full_hist, + htt_stats_buf->fw2wbm_ring_full_hist, + num_elements); + len += HTT_DBG_OUT(buf + len, buf_len - len, + "fw2wbm_ring_full_hist = %s\n", + fw2wbm_ring_full_hist); + } else { + len += HTT_DBG_OUT(buf + len, buf_len - len, + "INSUFFICIENT PRINT BUFFER "); + } + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void +htt_print_tx_de_cmn_stats_tlv(const void *tag_buf, struct debug_htt_stats_req *stats_req) +{ + const struct htt_tx_de_cmn_stats_tlv *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + + len += HTT_DBG_OUT(buf + len, buf_len - len, "HTT_TX_DE_CMN_STATS_TLV:"); + len += HTT_DBG_OUT(buf + len, buf_len - len, "mac_id = %u", + htt_stats_buf->mac_id__word & 0xFF); + len += HTT_DBG_OUT(buf + len, buf_len - len, "tcl2fw_entry_count = %u", + htt_stats_buf->tcl2fw_entry_count); + len += HTT_DBG_OUT(buf + len, buf_len - len, "not_to_fw = %u", + htt_stats_buf->not_to_fw); + len += HTT_DBG_OUT(buf + len, buf_len - len, "invalid_pdev_vdev_peer = %u", + htt_stats_buf->invalid_pdev_vdev_peer); + len += HTT_DBG_OUT(buf + len, buf_len - len, "tcl_res_invalid_addrx = %u", + htt_stats_buf->tcl_res_invalid_addrx); + len += HTT_DBG_OUT(buf + len, buf_len - len, "wbm2fw_entry_count = %u", + htt_stats_buf->wbm2fw_entry_count); + len += HTT_DBG_OUT(buf + len, buf_len - len, "invalid_pdev = %u\n", + htt_stats_buf->invalid_pdev); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void htt_print_ring_if_stats_tlv(const void *tag_buf, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_ring_if_stats_tlv *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + char low_wm_hit_count[HTT_MAX_STRING_LEN] = {0}; + char high_wm_hit_count[HTT_MAX_STRING_LEN] = {0}; + + len += HTT_DBG_OUT(buf + len, buf_len - len, "HTT_RING_IF_STATS_TLV:"); + len += HTT_DBG_OUT(buf + len, buf_len - len, "base_addr = %u", + htt_stats_buf->base_addr); + len += HTT_DBG_OUT(buf + len, buf_len - len, "elem_size = %u", + htt_stats_buf->elem_size); + len += HTT_DBG_OUT(buf + len, buf_len - len, "num_elems = %u", + htt_stats_buf->num_elems__prefetch_tail_idx & 0xFFFF); + len += HTT_DBG_OUT(buf + len, buf_len - len, "prefetch_tail_idx = %u", + (htt_stats_buf->num_elems__prefetch_tail_idx & + 0xFFFF0000) >> 16); + len += HTT_DBG_OUT(buf + len, buf_len - len, "head_idx = %u", + htt_stats_buf->head_idx__tail_idx & 0xFFFF); + len += HTT_DBG_OUT(buf + len, buf_len - len, "tail_idx = %u", + (htt_stats_buf->head_idx__tail_idx & 0xFFFF0000) >> 16); + len += HTT_DBG_OUT(buf + len, buf_len - len, "shadow_head_idx = %u", + htt_stats_buf->shadow_head_idx__shadow_tail_idx & 0xFFFF); + len += HTT_DBG_OUT(buf + len, buf_len - len, "shadow_tail_idx = %u", + (htt_stats_buf->shadow_head_idx__shadow_tail_idx & + 0xFFFF0000) >> 16); + len += HTT_DBG_OUT(buf + len, buf_len - len, "num_tail_incr = %u", + htt_stats_buf->num_tail_incr); + len += HTT_DBG_OUT(buf + len, buf_len - len, "lwm_thresh = %u", + htt_stats_buf->lwm_thresh__hwm_thresh & 0xFFFF); + len += HTT_DBG_OUT(buf + len, buf_len - len, "hwm_thresh = %u", + (htt_stats_buf->lwm_thresh__hwm_thresh & 0xFFFF0000) >> 16); + len += HTT_DBG_OUT(buf + len, buf_len - len, "overrun_hit_count = %u", + htt_stats_buf->overrun_hit_count); + len += HTT_DBG_OUT(buf + len, buf_len - len, "underrun_hit_count = %u", + htt_stats_buf->underrun_hit_count); + len += HTT_DBG_OUT(buf + len, buf_len - len, "prod_blockwait_count = %u", + htt_stats_buf->prod_blockwait_count); + len += HTT_DBG_OUT(buf + len, buf_len - len, "cons_blockwait_count = %u", + htt_stats_buf->cons_blockwait_count); + + ARRAY_TO_STRING(low_wm_hit_count, htt_stats_buf->low_wm_hit_count, + HTT_STATS_LOW_WM_BINS); + len += HTT_DBG_OUT(buf + len, buf_len - len, "low_wm_hit_count = %s ", + low_wm_hit_count); + + ARRAY_TO_STRING(high_wm_hit_count, htt_stats_buf->high_wm_hit_count, + HTT_STATS_HIGH_WM_BINS); + len += HTT_DBG_OUT(buf + len, buf_len - len, "high_wm_hit_count = %s\n", + high_wm_hit_count); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void htt_print_ring_if_cmn_tlv(const void *tag_buf, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_ring_if_cmn_tlv *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + + len += HTT_DBG_OUT(buf + len, buf_len - len, "HTT_RING_IF_CMN_TLV:"); + len += HTT_DBG_OUT(buf + len, buf_len - len, "mac_id = %u", + htt_stats_buf->mac_id__word & 0xFF); + len += HTT_DBG_OUT(buf + len, buf_len - len, "num_records = %u\n", + htt_stats_buf->num_records); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void htt_print_sfm_client_user_tlv_v(const void *tag_buf, + u16 tag_len, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_sfm_client_user_tlv_v *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + char dwords_used_by_user_n[HTT_MAX_STRING_LEN] = {0}; + u16 num_elems = tag_len >> 2; + + len += HTT_DBG_OUT(buf + len, buf_len - len, "HTT_SFM_CLIENT_USER_TLV_V:"); + + ARRAY_TO_STRING(dwords_used_by_user_n, + htt_stats_buf->dwords_used_by_user_n, + num_elems); + len += HTT_DBG_OUT(buf + len, buf_len - len, "dwords_used_by_user_n = %s\n", + dwords_used_by_user_n); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void htt_print_sfm_client_tlv(const void *tag_buf, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_sfm_client_tlv *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + + len += HTT_DBG_OUT(buf + len, buf_len - len, "HTT_SFM_CLIENT_TLV:"); + len += HTT_DBG_OUT(buf + len, buf_len - len, "client_id = %u", + htt_stats_buf->client_id); + len += HTT_DBG_OUT(buf + len, buf_len - len, "buf_min = %u", + htt_stats_buf->buf_min); + len += HTT_DBG_OUT(buf + len, buf_len - len, "buf_max = %u", + htt_stats_buf->buf_max); + len += HTT_DBG_OUT(buf + len, buf_len - len, "buf_busy = %u", + htt_stats_buf->buf_busy); + len += HTT_DBG_OUT(buf + len, buf_len - len, "buf_alloc = %u", + htt_stats_buf->buf_alloc); + len += HTT_DBG_OUT(buf + len, buf_len - len, "buf_avail = %u", + htt_stats_buf->buf_avail); + len += HTT_DBG_OUT(buf + len, buf_len - len, "num_users = %u\n", + htt_stats_buf->num_users); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void htt_print_sfm_cmn_tlv(const void *tag_buf, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_sfm_cmn_tlv *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + + len += HTT_DBG_OUT(buf + len, buf_len - len, "HTT_SFM_CMN_TLV:"); + len += HTT_DBG_OUT(buf + len, buf_len - len, "mac_id = %u", + htt_stats_buf->mac_id__word & 0xFF); + len += HTT_DBG_OUT(buf + len, buf_len - len, "buf_total = %u", + htt_stats_buf->buf_total); + len += HTT_DBG_OUT(buf + len, buf_len - len, "mem_empty = %u", + htt_stats_buf->mem_empty); + len += HTT_DBG_OUT(buf + len, buf_len - len, "deallocate_bufs = %u", + htt_stats_buf->deallocate_bufs); + len += HTT_DBG_OUT(buf + len, buf_len - len, "num_records = %u\n", + htt_stats_buf->num_records); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void htt_print_sring_stats_tlv(const void *tag_buf, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_sring_stats_tlv *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + + len += HTT_DBG_OUT(buf + len, buf_len - len, "HTT_SRING_STATS_TLV:"); + len += HTT_DBG_OUT(buf + len, buf_len - len, "mac_id = %u", + htt_stats_buf->mac_id__ring_id__arena__ep & 0xFF); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ring_id = %u", + (htt_stats_buf->mac_id__ring_id__arena__ep & 0xFF00) >> 8); + len += HTT_DBG_OUT(buf + len, buf_len - len, "arena = %u", + (htt_stats_buf->mac_id__ring_id__arena__ep & 0xFF0000) >> 16); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ep = %u", + (htt_stats_buf->mac_id__ring_id__arena__ep & 0x1000000) >> 24); + len += HTT_DBG_OUT(buf + len, buf_len - len, "base_addr_lsb = 0x%x", + htt_stats_buf->base_addr_lsb); + len += HTT_DBG_OUT(buf + len, buf_len - len, "base_addr_msb = 0x%x", + htt_stats_buf->base_addr_msb); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ring_size = %u", + htt_stats_buf->ring_size); + len += HTT_DBG_OUT(buf + len, buf_len - len, "elem_size = %u", + htt_stats_buf->elem_size); + len += HTT_DBG_OUT(buf + len, buf_len - len, "num_avail_words = %u", + htt_stats_buf->num_avail_words__num_valid_words & 0xFFFF); + len += HTT_DBG_OUT(buf + len, buf_len - len, "num_valid_words = %u", + (htt_stats_buf->num_avail_words__num_valid_words & + 0xFFFF0000) >> 16); + len += HTT_DBG_OUT(buf + len, buf_len - len, "head_ptr = %u", + htt_stats_buf->head_ptr__tail_ptr & 0xFFFF); + len += HTT_DBG_OUT(buf + len, buf_len - len, "tail_ptr = %u", + (htt_stats_buf->head_ptr__tail_ptr & 0xFFFF0000) >> 16); + len += HTT_DBG_OUT(buf + len, buf_len - len, "consumer_empty = %u", + htt_stats_buf->consumer_empty__producer_full & 0xFFFF); + len += HTT_DBG_OUT(buf + len, buf_len - len, "producer_full = %u", + (htt_stats_buf->consumer_empty__producer_full & + 0xFFFF0000) >> 16); + len += HTT_DBG_OUT(buf + len, buf_len - len, "prefetch_count = %u", + htt_stats_buf->prefetch_count__internal_tail_ptr & 0xFFFF); + len += HTT_DBG_OUT(buf + len, buf_len - len, "internal_tail_ptr = %u\n", + (htt_stats_buf->prefetch_count__internal_tail_ptr & + 0xFFFF0000) >> 16); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void htt_print_sring_cmn_tlv(const void *tag_buf, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_sring_cmn_tlv *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + + len += HTT_DBG_OUT(buf + len, buf_len - len, "HTT_SRING_CMN_TLV:"); + len += HTT_DBG_OUT(buf + len, buf_len - len, "num_records = %u\n", + htt_stats_buf->num_records); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void htt_print_tx_pdev_rate_stats_tlv(const void *tag_buf, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_tx_pdev_rate_stats_tlv *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + u8 j; + char str_buf[HTT_MAX_STRING_LEN] = {0}; + char *tx_gi[HTT_TX_PEER_STATS_NUM_GI_COUNTERS] = {NULL}; + + for (j = 0; j < HTT_TX_PEER_STATS_NUM_GI_COUNTERS; j++) { + tx_gi[j] = kmalloc(HTT_MAX_STRING_LEN, GFP_ATOMIC); + if (!tx_gi[j]) + goto fail; + } + + len += HTT_DBG_OUT(buf + len, buf_len - len, "HTT_TX_PDEV_RATE_STATS_TLV:"); + len += HTT_DBG_OUT(buf + len, buf_len - len, "mac_id = %u", + htt_stats_buf->mac_id__word & 0xFF); + len += HTT_DBG_OUT(buf + len, buf_len - len, "tx_ldpc = %u", + htt_stats_buf->tx_ldpc); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ac_mu_mimo_tx_ldpc = %u", + htt_stats_buf->ac_mu_mimo_tx_ldpc); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ax_mu_mimo_tx_ldpc = %u", + htt_stats_buf->ax_mu_mimo_tx_ldpc); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ofdma_tx_ldpc = %u", + htt_stats_buf->ofdma_tx_ldpc); + len += HTT_DBG_OUT(buf + len, buf_len - len, "rts_cnt = %u", + htt_stats_buf->rts_cnt); + len += HTT_DBG_OUT(buf + len, buf_len - len, "rts_success = %u", + htt_stats_buf->rts_success); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ack_rssi = %u", + htt_stats_buf->ack_rssi); + + len += HTT_DBG_OUT(buf + len, buf_len - len, + "Legacy CCK Rates: 1 Mbps: %u, 2 Mbps: %u, 5.5 Mbps: %u, 11 Mbps: %u", + htt_stats_buf->tx_legacy_cck_rate[0], + htt_stats_buf->tx_legacy_cck_rate[1], + htt_stats_buf->tx_legacy_cck_rate[2], + htt_stats_buf->tx_legacy_cck_rate[3]); + + len += HTT_DBG_OUT(buf + len, buf_len - len, + "Legacy OFDM Rates: 6 Mbps: %u, 9 Mbps: %u, 12 Mbps: %u, 18 Mbps: %u\n" + " 24 Mbps: %u, 36 Mbps: %u, 48 Mbps: %u, 54 Mbps: %u", + htt_stats_buf->tx_legacy_ofdm_rate[0], + htt_stats_buf->tx_legacy_ofdm_rate[1], + htt_stats_buf->tx_legacy_ofdm_rate[2], + htt_stats_buf->tx_legacy_ofdm_rate[3], + htt_stats_buf->tx_legacy_ofdm_rate[4], + htt_stats_buf->tx_legacy_ofdm_rate[5], + htt_stats_buf->tx_legacy_ofdm_rate[6], + htt_stats_buf->tx_legacy_ofdm_rate[7]); + + memset(str_buf, 0x0, HTT_MAX_STRING_LEN); + ARRAY_TO_STRING(str_buf, htt_stats_buf->tx_mcs, + HTT_TX_PDEV_STATS_NUM_MCS_COUNTERS); + len += HTT_DBG_OUT(buf + len, buf_len - len, "tx_mcs = %s ", str_buf); + + memset(str_buf, 0x0, HTT_MAX_STRING_LEN); + ARRAY_TO_STRING(str_buf, htt_stats_buf->ac_mu_mimo_tx_mcs, + HTT_TX_PDEV_STATS_NUM_MCS_COUNTERS); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ac_mu_mimo_tx_mcs = %s ", str_buf); + + memset(str_buf, 0x0, HTT_MAX_STRING_LEN); + ARRAY_TO_STRING(str_buf, htt_stats_buf->ax_mu_mimo_tx_mcs, + HTT_TX_PDEV_STATS_NUM_MCS_COUNTERS); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ax_mu_mimo_tx_mcs = %s ", str_buf); + + memset(str_buf, 0x0, HTT_MAX_STRING_LEN); + ARRAY_TO_STRING(str_buf, htt_stats_buf->ofdma_tx_mcs, + HTT_TX_PDEV_STATS_NUM_MCS_COUNTERS); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ofdma_tx_mcs = %s ", str_buf); + + memset(str_buf, 0x0, HTT_MAX_STRING_LEN); + ARRAY_TO_STRING(str_buf, htt_stats_buf->tx_nss, + HTT_TX_PDEV_STATS_NUM_SPATIAL_STREAMS); + len += HTT_DBG_OUT(buf + len, buf_len - len, "tx_nss = %s ", str_buf); + + memset(str_buf, 0x0, HTT_MAX_STRING_LEN); + ARRAY_TO_STRING(str_buf, htt_stats_buf->ac_mu_mimo_tx_nss, + HTT_TX_PDEV_STATS_NUM_SPATIAL_STREAMS); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ac_mu_mimo_tx_nss = %s ", str_buf); + + memset(str_buf, 0x0, HTT_MAX_STRING_LEN); + ARRAY_TO_STRING(str_buf, htt_stats_buf->ax_mu_mimo_tx_nss, + HTT_TX_PDEV_STATS_NUM_SPATIAL_STREAMS); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ax_mu_mimo_tx_nss = %s ", str_buf); + + memset(str_buf, 0x0, HTT_MAX_STRING_LEN); + ARRAY_TO_STRING(str_buf, htt_stats_buf->ofdma_tx_nss, + HTT_TX_PDEV_STATS_NUM_SPATIAL_STREAMS); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ofdma_tx_nss = %s ", str_buf); + + memset(str_buf, 0x0, HTT_MAX_STRING_LEN); + ARRAY_TO_STRING(str_buf, htt_stats_buf->tx_bw, + HTT_TX_PDEV_STATS_NUM_BW_COUNTERS); + len += HTT_DBG_OUT(buf + len, buf_len - len, "tx_bw = %s ", str_buf); + + memset(str_buf, 0x0, HTT_MAX_STRING_LEN); + ARRAY_TO_STRING(str_buf, htt_stats_buf->ac_mu_mimo_tx_bw, + HTT_TX_PDEV_STATS_NUM_BW_COUNTERS); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ac_mu_mimo_tx_bw = %s ", str_buf); + + memset(str_buf, 0x0, HTT_MAX_STRING_LEN); + ARRAY_TO_STRING(str_buf, htt_stats_buf->ax_mu_mimo_tx_bw, + HTT_TX_PDEV_STATS_NUM_BW_COUNTERS); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ax_mu_mimo_tx_bw = %s ", str_buf); + + memset(str_buf, 0x0, HTT_MAX_STRING_LEN); + ARRAY_TO_STRING(str_buf, htt_stats_buf->ofdma_tx_bw, + HTT_TX_PDEV_STATS_NUM_BW_COUNTERS); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ofdma_tx_bw = %s ", str_buf); + + memset(str_buf, 0x0, HTT_MAX_STRING_LEN); + ARRAY_TO_STRING(str_buf, htt_stats_buf->tx_stbc, + HTT_TX_PDEV_STATS_NUM_MCS_COUNTERS); + len += HTT_DBG_OUT(buf + len, buf_len - len, "tx_stbc = %s ", str_buf); + + memset(str_buf, 0x0, HTT_MAX_STRING_LEN); + ARRAY_TO_STRING(str_buf, htt_stats_buf->tx_pream, + HTT_TX_PDEV_STATS_NUM_PREAMBLE_TYPES); + len += HTT_DBG_OUT(buf + len, buf_len - len, "tx_pream = %s ", str_buf); + + len += HTT_DBG_OUT(buf + len, buf_len - len, "HE LTF: 1x: %u, 2x: %u, 4x: %u", + htt_stats_buf->tx_he_ltf[1], + htt_stats_buf->tx_he_ltf[2], + htt_stats_buf->tx_he_ltf[3]); + + /* SU GI Stats */ + for (j = 0; j < HTT_TX_PDEV_STATS_NUM_GI_COUNTERS; j++) { + ARRAY_TO_STRING(tx_gi[j], htt_stats_buf->tx_gi[j], + HTT_TX_PDEV_STATS_NUM_MCS_COUNTERS); + len += HTT_DBG_OUT(buf + len, buf_len - len, "tx_gi[%u] = %s ", + j, tx_gi[j]); + } + + /* AC MU-MIMO GI Stats */ + for (j = 0; j < HTT_TX_PDEV_STATS_NUM_GI_COUNTERS; j++) { + ARRAY_TO_STRING(tx_gi[j], htt_stats_buf->ac_mu_mimo_tx_gi[j], + HTT_TX_PDEV_STATS_NUM_MCS_COUNTERS); + len += HTT_DBG_OUT(buf + len, buf_len - len, + "ac_mu_mimo_tx_gi[%u] = %s ", + j, tx_gi[j]); + } + + /* AX MU-MIMO GI Stats */ + for (j = 0; j < HTT_TX_PDEV_STATS_NUM_GI_COUNTERS; j++) { + ARRAY_TO_STRING(tx_gi[j], htt_stats_buf->ax_mu_mimo_tx_gi[j], + HTT_TX_PDEV_STATS_NUM_MCS_COUNTERS); + len += HTT_DBG_OUT(buf + len, buf_len - len, + "ax_mu_mimo_tx_gi[%u] = %s ", + j, tx_gi[j]); + } + + /* DL OFDMA GI Stats */ + for (j = 0; j < HTT_TX_PDEV_STATS_NUM_GI_COUNTERS; j++) { + ARRAY_TO_STRING(tx_gi[j], htt_stats_buf->ofdma_tx_gi[j], + HTT_TX_PDEV_STATS_NUM_MCS_COUNTERS); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ofdma_tx_gi[%u] = %s ", + j, tx_gi[j]); + } + + memset(str_buf, 0x0, HTT_MAX_STRING_LEN); + ARRAY_TO_STRING(str_buf, htt_stats_buf->tx_dcm, + HTT_TX_PDEV_STATS_NUM_DCM_COUNTERS); + len += HTT_DBG_OUT(buf + len, buf_len - len, "tx_dcm = %s\n", str_buf); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +fail: + for (j = 0; j < HTT_TX_PEER_STATS_NUM_GI_COUNTERS; j++) + kfree(tx_gi[j]); +} + +static inline void htt_print_rx_pdev_rate_stats_tlv(const void *tag_buf, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_rx_pdev_rate_stats_tlv *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + u8 i, j; + u16 index = 0; + char *rssi_chain[HTT_RX_PDEV_STATS_NUM_SPATIAL_STREAMS] = {NULL}; + char *rx_gi[HTT_RX_PDEV_STATS_NUM_GI_COUNTERS] = {NULL}; + char str_buf[HTT_MAX_STRING_LEN] = {0}; + char *rx_pilot_evm_db[HTT_RX_PDEV_STATS_NUM_SPATIAL_STREAMS] = {NULL}; + + for (j = 0; j < HTT_RX_PDEV_STATS_NUM_SPATIAL_STREAMS; j++) { + rssi_chain[j] = kmalloc(HTT_MAX_STRING_LEN, GFP_ATOMIC); + if (!rssi_chain[j]) + goto fail; + } + + for (j = 0; j < HTT_RX_PDEV_STATS_NUM_GI_COUNTERS; j++) { + rx_gi[j] = kmalloc(HTT_MAX_STRING_LEN, GFP_ATOMIC); + if (!rx_gi[j]) + goto fail; + } + + for (j = 0; j < HTT_RX_PDEV_STATS_NUM_SPATIAL_STREAMS; j++) { + rx_pilot_evm_db[j] = kmalloc(HTT_MAX_STRING_LEN, GFP_ATOMIC); + if (!rx_pilot_evm_db[j]) + goto fail; + } + + len += HTT_DBG_OUT(buf + len, buf_len - len, "HTT_RX_PDEV_RATE_STATS_TLV:"); + len += HTT_DBG_OUT(buf + len, buf_len - len, "mac_id = %u", + htt_stats_buf->mac_id__word & 0xFF); + len += HTT_DBG_OUT(buf + len, buf_len - len, "nsts = %u", + htt_stats_buf->nsts); + len += HTT_DBG_OUT(buf + len, buf_len - len, "rx_ldpc = %u", + htt_stats_buf->rx_ldpc); + len += HTT_DBG_OUT(buf + len, buf_len - len, "rts_cnt = %u", + htt_stats_buf->rts_cnt); + len += HTT_DBG_OUT(buf + len, buf_len - len, "rssi_mgmt = %u", + htt_stats_buf->rssi_mgmt); + len += HTT_DBG_OUT(buf + len, buf_len - len, "rssi_data = %u", + htt_stats_buf->rssi_data); + len += HTT_DBG_OUT(buf + len, buf_len - len, "rssi_comb = %u", + htt_stats_buf->rssi_comb); + len += HTT_DBG_OUT(buf + len, buf_len - len, "rssi_in_dbm = %d", + htt_stats_buf->rssi_in_dbm); + + memset(str_buf, 0x0, HTT_MAX_STRING_LEN); + ARRAY_TO_STRING(str_buf, htt_stats_buf->rx_mcs, + HTT_RX_PDEV_STATS_NUM_MCS_COUNTERS); + len += HTT_DBG_OUT(buf + len, buf_len - len, "rx_mcs = %s ", str_buf); + + memset(str_buf, 0x0, HTT_MAX_STRING_LEN); + ARRAY_TO_STRING(str_buf, htt_stats_buf->rx_nss, + HTT_RX_PDEV_STATS_NUM_SPATIAL_STREAMS); + len += HTT_DBG_OUT(buf + len, buf_len - len, "rx_nss = %s ", str_buf); + + memset(str_buf, 0x0, HTT_MAX_STRING_LEN); + ARRAY_TO_STRING(str_buf, htt_stats_buf->rx_dcm, + HTT_RX_PDEV_STATS_NUM_DCM_COUNTERS); + len += HTT_DBG_OUT(buf + len, buf_len - len, "rx_dcm = %s ", str_buf); + + memset(str_buf, 0x0, HTT_MAX_STRING_LEN); + ARRAY_TO_STRING(str_buf, htt_stats_buf->rx_stbc, + HTT_RX_PDEV_STATS_NUM_MCS_COUNTERS); + len += HTT_DBG_OUT(buf + len, buf_len - len, "rx_stbc = %s ", str_buf); + + memset(str_buf, 0x0, HTT_MAX_STRING_LEN); + ARRAY_TO_STRING(str_buf, htt_stats_buf->rx_bw, + HTT_RX_PDEV_STATS_NUM_BW_COUNTERS); + len += HTT_DBG_OUT(buf + len, buf_len - len, "rx_bw = %s ", str_buf); + len += HTT_DBG_OUT(buf + len, buf_len - len, "rx_evm_nss_count = %u", + htt_stats_buf->nss_count); + + len += HTT_DBG_OUT(buf + len, buf_len - len, "rx_evm_pilot_count = %u", + htt_stats_buf->pilot_count); + + for (j = 0; j < HTT_RX_PDEV_STATS_NUM_SPATIAL_STREAMS; j++) { + index = 0; + + for (i = 0; i < HTT_RX_PDEV_STATS_RXEVM_MAX_PILOTS_PER_NSS; i++) + index += scnprintf(&rx_pilot_evm_db[j][index], + HTT_MAX_STRING_LEN - index, + " %u:%d,", + i, + htt_stats_buf->rx_pilot_evm_db[j][i]); + len += HTT_DBG_OUT(buf + len, buf_len - len, "pilot_evm_dB[%u] = %s ", + j, rx_pilot_evm_db[j]); + } + + index = 0; + memset(str_buf, 0x0, HTT_MAX_STRING_LEN); + for (i = 0; i < HTT_RX_PDEV_STATS_NUM_SPATIAL_STREAMS; i++) + index += scnprintf(&str_buf[index], + HTT_MAX_STRING_LEN - index, + " %u:%d,", i, htt_stats_buf->rx_pilot_evm_db_mean[i]); + len += HTT_DBG_OUT(buf + len, buf_len - len, "pilot_evm_dB_mean = %s ", str_buf); + + for (j = 0; j < HTT_RX_PDEV_STATS_NUM_SPATIAL_STREAMS; j++) { + ARRAY_TO_STRING(rssi_chain[j], htt_stats_buf->rssi_chain[j], + HTT_RX_PDEV_STATS_NUM_BW_COUNTERS); + len += HTT_DBG_OUT(buf + len, buf_len - len, "rssi_chain[%u] = %s ", + j, rssi_chain[j]); + } + + for (j = 0; j < HTT_RX_PDEV_STATS_NUM_GI_COUNTERS; j++) { + ARRAY_TO_STRING(rx_gi[j], htt_stats_buf->rx_gi[j], + HTT_RX_PDEV_STATS_NUM_MCS_COUNTERS); + len += HTT_DBG_OUT(buf + len, buf_len - len, "rx_gi[%u] = %s ", + j, rx_gi[j]); + } + + memset(str_buf, 0x0, HTT_MAX_STRING_LEN); + ARRAY_TO_STRING(str_buf, htt_stats_buf->rx_pream, + HTT_RX_PDEV_STATS_NUM_PREAMBLE_TYPES); + len += HTT_DBG_OUT(buf + len, buf_len - len, "rx_pream = %s", str_buf); + + len += HTT_DBG_OUT(buf + len, buf_len - len, "rx_11ax_su_ext = %u", + htt_stats_buf->rx_11ax_su_ext); + len += HTT_DBG_OUT(buf + len, buf_len - len, "rx_11ac_mumimo = %u", + htt_stats_buf->rx_11ac_mumimo); + len += HTT_DBG_OUT(buf + len, buf_len - len, "rx_11ax_mumimo = %u", + htt_stats_buf->rx_11ax_mumimo); + len += HTT_DBG_OUT(buf + len, buf_len - len, "rx_11ax_ofdma = %u", + htt_stats_buf->rx_11ax_ofdma); + len += HTT_DBG_OUT(buf + len, buf_len - len, "txbf = %u", + htt_stats_buf->txbf); + + memset(str_buf, 0x0, HTT_MAX_STRING_LEN); + ARRAY_TO_STRING(str_buf, htt_stats_buf->rx_legacy_cck_rate, + HTT_RX_PDEV_STATS_NUM_LEGACY_CCK_STATS); + len += HTT_DBG_OUT(buf + len, buf_len - len, "rx_legacy_cck_rate = %s ", + str_buf); + + memset(str_buf, 0x0, HTT_MAX_STRING_LEN); + ARRAY_TO_STRING(str_buf, htt_stats_buf->rx_legacy_ofdm_rate, + HTT_RX_PDEV_STATS_NUM_LEGACY_OFDM_STATS); + len += HTT_DBG_OUT(buf + len, buf_len - len, "rx_legacy_ofdm_rate = %s ", + str_buf); + + len += HTT_DBG_OUT(buf + len, buf_len - len, "rx_active_dur_us_low = %u", + htt_stats_buf->rx_active_dur_us_low); + len += HTT_DBG_OUT(buf + len, buf_len - len, "rx_active_dur_us_high = %u", + htt_stats_buf->rx_active_dur_us_high); + len += HTT_DBG_OUT(buf + len, buf_len - len, "rx_11ax_ul_ofdma = %u", + htt_stats_buf->rx_11ax_ul_ofdma); + + memset(str_buf, 0x0, HTT_MAX_STRING_LEN); + ARRAY_TO_STRING(str_buf, htt_stats_buf->ul_ofdma_rx_mcs, + HTT_RX_PDEV_STATS_NUM_MCS_COUNTERS); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ul_ofdma_rx_mcs = %s ", str_buf); + + for (j = 0; j < HTT_RX_PDEV_STATS_NUM_GI_COUNTERS; j++) { + ARRAY_TO_STRING(rx_gi[j], htt_stats_buf->ul_ofdma_rx_gi[j], + HTT_RX_PDEV_STATS_NUM_MCS_COUNTERS); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ul_ofdma_rx_gi[%u] = %s ", + j, rx_gi[j]); + } + + memset(str_buf, 0x0, HTT_MAX_STRING_LEN); + ARRAY_TO_STRING(str_buf, htt_stats_buf->ul_ofdma_rx_nss, + HTT_RX_PDEV_STATS_NUM_SPATIAL_STREAMS); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ul_ofdma_rx_nss = %s ", str_buf); + + memset(str_buf, 0x0, HTT_MAX_STRING_LEN); + ARRAY_TO_STRING(str_buf, htt_stats_buf->ul_ofdma_rx_bw, + HTT_RX_PDEV_STATS_NUM_BW_COUNTERS); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ul_ofdma_rx_bw = %s ", str_buf); + + len += HTT_DBG_OUT(buf + len, buf_len - len, "ul_ofdma_rx_stbc = %u", + htt_stats_buf->ul_ofdma_rx_stbc); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ul_ofdma_rx_ldpc = %u", + htt_stats_buf->ul_ofdma_rx_ldpc); + + memset(str_buf, 0x0, HTT_MAX_STRING_LEN); + ARRAY_TO_STRING(str_buf, htt_stats_buf->rx_ulofdma_non_data_ppdu, + HTT_RX_PDEV_MAX_OFDMA_NUM_USER); + len += HTT_DBG_OUT(buf + len, buf_len - len, "rx_ulofdma_non_data_ppdu = %s ", + str_buf); + + memset(str_buf, 0x0, HTT_MAX_STRING_LEN); + ARRAY_TO_STRING(str_buf, htt_stats_buf->rx_ulofdma_data_ppdu, + HTT_RX_PDEV_MAX_OFDMA_NUM_USER); + len += HTT_DBG_OUT(buf + len, buf_len - len, "rx_ulofdma_data_ppdu = %s ", + str_buf); + + memset(str_buf, 0x0, HTT_MAX_STRING_LEN); + ARRAY_TO_STRING(str_buf, htt_stats_buf->rx_ulofdma_mpdu_ok, + HTT_RX_PDEV_MAX_OFDMA_NUM_USER); + len += HTT_DBG_OUT(buf + len, buf_len - len, "rx_ulofdma_mpdu_ok = %s ", str_buf); + + memset(str_buf, 0x0, HTT_MAX_STRING_LEN); + ARRAY_TO_STRING(str_buf, htt_stats_buf->rx_ulofdma_mpdu_fail, + HTT_RX_PDEV_MAX_OFDMA_NUM_USER); + len += HTT_DBG_OUT(buf + len, buf_len - len, "rx_ulofdma_mpdu_fail = %s", + str_buf); + + for (j = 0; j < HTT_RX_PDEV_STATS_NUM_SPATIAL_STREAMS; j++) { + index = 0; + memset(str_buf, 0x0, HTT_MAX_STRING_LEN); + for (i = 0; i < HTT_RX_PDEV_MAX_OFDMA_NUM_USER; i++) + index += scnprintf(&str_buf[index], + HTT_MAX_STRING_LEN - index, + " %u:%d,", + i, htt_stats_buf->rx_ul_fd_rssi[j][i]); + len += HTT_DBG_OUT(buf + len, buf_len - len, + "rx_ul_fd_rssi: nss[%u] = %s", j, str_buf); + } + + len += HTT_DBG_OUT(buf + len, buf_len - len, "per_chain_rssi_pkt_type = %#x", + htt_stats_buf->per_chain_rssi_pkt_type); + + for (j = 0; j < HTT_RX_PDEV_STATS_NUM_SPATIAL_STREAMS; j++) { + index = 0; + memset(str_buf, 0x0, HTT_MAX_STRING_LEN); + for (i = 0; i < HTT_RX_PDEV_STATS_NUM_BW_COUNTERS; i++) + index += scnprintf(&str_buf[index], + HTT_MAX_STRING_LEN - index, + " %u:%d,", + i, + htt_stats_buf->rx_per_chain_rssi_in_dbm[j][i]); + len += HTT_DBG_OUT(buf + len, buf_len - len, + "rx_per_chain_rssi_in_dbm[%u] = %s ", j, str_buf); + } + len += HTT_DBG_OUT(buf + len, buf_len - len, "\n"); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; + +fail: + for (j = 0; j < HTT_RX_PDEV_STATS_NUM_SPATIAL_STREAMS; j++) + kfree(rssi_chain[j]); + + for (j = 0; j < HTT_RX_PDEV_STATS_NUM_SPATIAL_STREAMS; j++) + kfree(rx_pilot_evm_db[j]); + + for (i = 0; i < HTT_RX_PDEV_STATS_NUM_GI_COUNTERS; i++) + kfree(rx_gi[i]); +} + +static inline void htt_print_rx_soc_fw_stats_tlv(const void *tag_buf, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_rx_soc_fw_stats_tlv *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + + len += HTT_DBG_OUT(buf + len, buf_len - len, "HTT_RX_SOC_FW_STATS_TLV:"); + len += HTT_DBG_OUT(buf + len, buf_len - len, "fw_reo_ring_data_msdu = %u", + htt_stats_buf->fw_reo_ring_data_msdu); + len += HTT_DBG_OUT(buf + len, buf_len - len, "fw_to_host_data_msdu_bcmc = %u", + htt_stats_buf->fw_to_host_data_msdu_bcmc); + len += HTT_DBG_OUT(buf + len, buf_len - len, "fw_to_host_data_msdu_uc = %u", + htt_stats_buf->fw_to_host_data_msdu_uc); + len += HTT_DBG_OUT(buf + len, buf_len - len, + "ofld_remote_data_buf_recycle_cnt = %u", + htt_stats_buf->ofld_remote_data_buf_recycle_cnt); + len += HTT_DBG_OUT(buf + len, buf_len - len, + "ofld_remote_free_buf_indication_cnt = %u", + htt_stats_buf->ofld_remote_free_buf_indication_cnt); + len += HTT_DBG_OUT(buf + len, buf_len - len, + "ofld_buf_to_host_data_msdu_uc = %u", + htt_stats_buf->ofld_buf_to_host_data_msdu_uc); + len += HTT_DBG_OUT(buf + len, buf_len - len, + "reo_fw_ring_to_host_data_msdu_uc = %u", + htt_stats_buf->reo_fw_ring_to_host_data_msdu_uc); + len += HTT_DBG_OUT(buf + len, buf_len - len, "wbm_sw_ring_reap = %u", + htt_stats_buf->wbm_sw_ring_reap); + len += HTT_DBG_OUT(buf + len, buf_len - len, "wbm_forward_to_host_cnt = %u", + htt_stats_buf->wbm_forward_to_host_cnt); + len += HTT_DBG_OUT(buf + len, buf_len - len, "wbm_target_recycle_cnt = %u", + htt_stats_buf->wbm_target_recycle_cnt); + len += HTT_DBG_OUT(buf + len, buf_len - len, + "target_refill_ring_recycle_cnt = %u", + htt_stats_buf->target_refill_ring_recycle_cnt); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void +htt_print_rx_soc_fw_refill_ring_empty_tlv_v(const void *tag_buf, + u16 tag_len, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_rx_soc_fw_refill_ring_empty_tlv_v *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + char refill_ring_empty_cnt[HTT_MAX_STRING_LEN] = {0}; + u16 num_elems = min_t(u16, (tag_len >> 2), HTT_RX_STATS_REFILL_MAX_RING); + + len += HTT_DBG_OUT(buf + len, buf_len - len, + "HTT_RX_SOC_FW_REFILL_RING_EMPTY_TLV_V:"); + + ARRAY_TO_STRING(refill_ring_empty_cnt, + htt_stats_buf->refill_ring_empty_cnt, + num_elems); + len += HTT_DBG_OUT(buf + len, buf_len - len, "refill_ring_empty_cnt = %s\n", + refill_ring_empty_cnt); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void +htt_print_rx_soc_fw_refill_ring_num_rxdma_err_tlv_v(const void *tag_buf, + u16 tag_len, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_rx_soc_fw_refill_ring_num_rxdma_err_tlv_v *htt_stats_buf = + tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + char rxdma_err_cnt[HTT_MAX_STRING_LEN] = {0}; + u16 num_elems = min_t(u16, (tag_len >> 2), HTT_RX_RXDMA_MAX_ERR_CODE); + + len += HTT_DBG_OUT(buf + len, buf_len - len, + "HTT_RX_SOC_FW_REFILL_RING_NUM_RXDMA_ERR_TLV_V:"); + + ARRAY_TO_STRING(rxdma_err_cnt, + htt_stats_buf->rxdma_err, + num_elems); + len += HTT_DBG_OUT(buf + len, buf_len - len, "rxdma_err = %s\n", + rxdma_err_cnt); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void +htt_print_rx_soc_fw_refill_ring_num_reo_err_tlv_v(const void *tag_buf, + u16 tag_len, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_rx_soc_fw_refill_ring_num_reo_err_tlv_v *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + char reo_err_cnt[HTT_MAX_STRING_LEN] = {0}; + u16 num_elems = min_t(u16, (tag_len >> 2), HTT_RX_REO_MAX_ERR_CODE); + + len += HTT_DBG_OUT(buf + len, buf_len - len, + "HTT_RX_SOC_FW_REFILL_RING_NUM_REO_ERR_TLV_V:"); + + ARRAY_TO_STRING(reo_err_cnt, + htt_stats_buf->reo_err, + num_elems); + len += HTT_DBG_OUT(buf + len, buf_len - len, "reo_err = %s\n", + reo_err_cnt); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void +htt_print_rx_reo_debug_stats_tlv_v(const void *tag_buf, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_rx_reo_resource_stats_tlv_v *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + + len += HTT_DBG_OUT(buf + len, buf_len - len, "HTT_RX_REO_RESOURCE_STATS_TLV:"); + len += HTT_DBG_OUT(buf + len, buf_len - len, "sample_id = %u", + htt_stats_buf->sample_id); + len += HTT_DBG_OUT(buf + len, buf_len - len, "total_max = %u", + htt_stats_buf->total_max); + len += HTT_DBG_OUT(buf + len, buf_len - len, "total_avg = %u", + htt_stats_buf->total_avg); + len += HTT_DBG_OUT(buf + len, buf_len - len, "total_sample = %u", + htt_stats_buf->total_sample); + len += HTT_DBG_OUT(buf + len, buf_len - len, "non_zeros_avg = %u", + htt_stats_buf->non_zeros_avg); + len += HTT_DBG_OUT(buf + len, buf_len - len, "non_zeros_sample = %u", + htt_stats_buf->non_zeros_sample); + len += HTT_DBG_OUT(buf + len, buf_len - len, "last_non_zeros_max = %u", + htt_stats_buf->last_non_zeros_max); + len += HTT_DBG_OUT(buf + len, buf_len - len, "last_non_zeros_min %u", + htt_stats_buf->last_non_zeros_min); + len += HTT_DBG_OUT(buf + len, buf_len - len, "last_non_zeros_avg %u", + htt_stats_buf->last_non_zeros_avg); + len += HTT_DBG_OUT(buf + len, buf_len - len, "last_non_zeros_sample %u\n", + htt_stats_buf->last_non_zeros_sample); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void +htt_print_rx_soc_fw_refill_ring_num_refill_tlv_v(const void *tag_buf, + u16 tag_len, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_rx_soc_fw_refill_ring_num_refill_tlv_v *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + char refill_ring_num_refill[HTT_MAX_STRING_LEN] = {0}; + u16 num_elems = min_t(u16, (tag_len >> 2), HTT_RX_STATS_REFILL_MAX_RING); + + len += HTT_DBG_OUT(buf + len, buf_len - len, + "HTT_RX_SOC_FW_REFILL_RING_NUM_REFILL_TLV_V:"); + + ARRAY_TO_STRING(refill_ring_num_refill, + htt_stats_buf->refill_ring_num_refill, + num_elems); + len += HTT_DBG_OUT(buf + len, buf_len - len, "refill_ring_num_refill = %s\n", + refill_ring_num_refill); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void htt_print_rx_pdev_fw_stats_tlv(const void *tag_buf, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_rx_pdev_fw_stats_tlv *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + char fw_ring_mgmt_subtype[HTT_MAX_STRING_LEN] = {0}; + char fw_ring_ctrl_subtype[HTT_MAX_STRING_LEN] = {0}; + + len += HTT_DBG_OUT(buf + len, buf_len - len, "HTT_RX_PDEV_FW_STATS_TLV:"); + len += HTT_DBG_OUT(buf + len, buf_len - len, "mac_id = %u", + htt_stats_buf->mac_id__word & 0xFF); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ppdu_recvd = %u", + htt_stats_buf->ppdu_recvd); + len += HTT_DBG_OUT(buf + len, buf_len - len, "mpdu_cnt_fcs_ok = %u", + htt_stats_buf->mpdu_cnt_fcs_ok); + len += HTT_DBG_OUT(buf + len, buf_len - len, "mpdu_cnt_fcs_err = %u", + htt_stats_buf->mpdu_cnt_fcs_err); + len += HTT_DBG_OUT(buf + len, buf_len - len, "tcp_msdu_cnt = %u", + htt_stats_buf->tcp_msdu_cnt); + len += HTT_DBG_OUT(buf + len, buf_len - len, "tcp_ack_msdu_cnt = %u", + htt_stats_buf->tcp_ack_msdu_cnt); + len += HTT_DBG_OUT(buf + len, buf_len - len, "udp_msdu_cnt = %u", + htt_stats_buf->udp_msdu_cnt); + len += HTT_DBG_OUT(buf + len, buf_len - len, "other_msdu_cnt = %u", + htt_stats_buf->other_msdu_cnt); + len += HTT_DBG_OUT(buf + len, buf_len - len, "fw_ring_mpdu_ind = %u", + htt_stats_buf->fw_ring_mpdu_ind); + + ARRAY_TO_STRING(fw_ring_mgmt_subtype, + htt_stats_buf->fw_ring_mgmt_subtype, + HTT_STATS_SUBTYPE_MAX); + len += HTT_DBG_OUT(buf + len, buf_len - len, "fw_ring_mgmt_subtype = %s ", + fw_ring_mgmt_subtype); + + ARRAY_TO_STRING(fw_ring_ctrl_subtype, + htt_stats_buf->fw_ring_ctrl_subtype, + HTT_STATS_SUBTYPE_MAX); + len += HTT_DBG_OUT(buf + len, buf_len - len, "fw_ring_ctrl_subtype = %s ", + fw_ring_ctrl_subtype); + len += HTT_DBG_OUT(buf + len, buf_len - len, "fw_ring_mcast_data_msdu = %u", + htt_stats_buf->fw_ring_mcast_data_msdu); + len += HTT_DBG_OUT(buf + len, buf_len - len, "fw_ring_bcast_data_msdu = %u", + htt_stats_buf->fw_ring_bcast_data_msdu); + len += HTT_DBG_OUT(buf + len, buf_len - len, "fw_ring_ucast_data_msdu = %u", + htt_stats_buf->fw_ring_ucast_data_msdu); + len += HTT_DBG_OUT(buf + len, buf_len - len, "fw_ring_null_data_msdu = %u", + htt_stats_buf->fw_ring_null_data_msdu); + len += HTT_DBG_OUT(buf + len, buf_len - len, "fw_ring_mpdu_drop = %u", + htt_stats_buf->fw_ring_mpdu_drop); + len += HTT_DBG_OUT(buf + len, buf_len - len, "ofld_local_data_ind_cnt = %u", + htt_stats_buf->ofld_local_data_ind_cnt); + len += HTT_DBG_OUT(buf + len, buf_len - len, + "ofld_local_data_buf_recycle_cnt = %u", + htt_stats_buf->ofld_local_data_buf_recycle_cnt); + len += HTT_DBG_OUT(buf + len, buf_len - len, "drx_local_data_ind_cnt = %u", + htt_stats_buf->drx_local_data_ind_cnt); + len += HTT_DBG_OUT(buf + len, buf_len - len, + "drx_local_data_buf_recycle_cnt = %u", + htt_stats_buf->drx_local_data_buf_recycle_cnt); + len += HTT_DBG_OUT(buf + len, buf_len - len, "local_nondata_ind_cnt = %u", + htt_stats_buf->local_nondata_ind_cnt); + len += HTT_DBG_OUT(buf + len, buf_len - len, "local_nondata_buf_recycle_cnt = %u", + htt_stats_buf->local_nondata_buf_recycle_cnt); + len += HTT_DBG_OUT(buf + len, buf_len - len, "fw_status_buf_ring_refill_cnt = %u", + htt_stats_buf->fw_status_buf_ring_refill_cnt); + len += HTT_DBG_OUT(buf + len, buf_len - len, "fw_status_buf_ring_empty_cnt = %u", + htt_stats_buf->fw_status_buf_ring_empty_cnt); + len += HTT_DBG_OUT(buf + len, buf_len - len, "fw_pkt_buf_ring_refill_cnt = %u", + htt_stats_buf->fw_pkt_buf_ring_refill_cnt); + len += HTT_DBG_OUT(buf + len, buf_len - len, "fw_pkt_buf_ring_empty_cnt = %u", + htt_stats_buf->fw_pkt_buf_ring_empty_cnt); + len += HTT_DBG_OUT(buf + len, buf_len - len, "fw_link_buf_ring_refill_cnt = %u", + htt_stats_buf->fw_link_buf_ring_refill_cnt); + len += HTT_DBG_OUT(buf + len, buf_len - len, "fw_link_buf_ring_empty_cnt = %u", + htt_stats_buf->fw_link_buf_ring_empty_cnt); + len += HTT_DBG_OUT(buf + len, buf_len - len, "host_pkt_buf_ring_refill_cnt = %u", + htt_stats_buf->host_pkt_buf_ring_refill_cnt); + len += HTT_DBG_OUT(buf + len, buf_len - len, "host_pkt_buf_ring_empty_cnt = %u", + htt_stats_buf->host_pkt_buf_ring_empty_cnt); + len += HTT_DBG_OUT(buf + len, buf_len - len, "mon_pkt_buf_ring_refill_cnt = %u", + htt_stats_buf->mon_pkt_buf_ring_refill_cnt); + len += HTT_DBG_OUT(buf + len, buf_len - len, "mon_pkt_buf_ring_empty_cnt = %u", + htt_stats_buf->mon_pkt_buf_ring_empty_cnt); + len += HTT_DBG_OUT(buf + len, buf_len - len, + "mon_status_buf_ring_refill_cnt = %u", + htt_stats_buf->mon_status_buf_ring_refill_cnt); + len += HTT_DBG_OUT(buf + len, buf_len - len, "mon_status_buf_ring_empty_cnt = %u", + htt_stats_buf->mon_status_buf_ring_empty_cnt); + len += HTT_DBG_OUT(buf + len, buf_len - len, "mon_desc_buf_ring_refill_cnt = %u", + htt_stats_buf->mon_desc_buf_ring_refill_cnt); + len += HTT_DBG_OUT(buf + len, buf_len - len, "mon_desc_buf_ring_empty_cnt = %u", + htt_stats_buf->mon_desc_buf_ring_empty_cnt); + len += HTT_DBG_OUT(buf + len, buf_len - len, "mon_dest_ring_update_cnt = %u", + htt_stats_buf->mon_dest_ring_update_cnt); + len += HTT_DBG_OUT(buf + len, buf_len - len, "mon_dest_ring_full_cnt = %u", + htt_stats_buf->mon_dest_ring_full_cnt); + len += HTT_DBG_OUT(buf + len, buf_len - len, "rx_suspend_cnt = %u", + htt_stats_buf->rx_suspend_cnt); + len += HTT_DBG_OUT(buf + len, buf_len - len, "rx_suspend_fail_cnt = %u", + htt_stats_buf->rx_suspend_fail_cnt); + len += HTT_DBG_OUT(buf + len, buf_len - len, "rx_resume_cnt = %u", + htt_stats_buf->rx_resume_cnt); + len += HTT_DBG_OUT(buf + len, buf_len - len, "rx_resume_fail_cnt = %u", + htt_stats_buf->rx_resume_fail_cnt); + len += HTT_DBG_OUT(buf + len, buf_len - len, "rx_ring_switch_cnt = %u", + htt_stats_buf->rx_ring_switch_cnt); + len += HTT_DBG_OUT(buf + len, buf_len - len, "rx_ring_restore_cnt = %u", + htt_stats_buf->rx_ring_restore_cnt); + len += HTT_DBG_OUT(buf + len, buf_len - len, "rx_flush_cnt = %u", + htt_stats_buf->rx_flush_cnt); + len += HTT_DBG_OUT(buf + len, buf_len - len, "rx_recovery_reset_cnt = %u\n", + htt_stats_buf->rx_recovery_reset_cnt); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void +htt_print_rx_pdev_fw_ring_mpdu_err_tlv_v(const void *tag_buf, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_rx_pdev_fw_ring_mpdu_err_tlv_v *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + char fw_ring_mpdu_err[HTT_MAX_STRING_LEN] = {0}; + + len += HTT_DBG_OUT(buf + len, buf_len - len, + "HTT_RX_PDEV_FW_RING_MPDU_ERR_TLV_V:"); + + ARRAY_TO_STRING(fw_ring_mpdu_err, + htt_stats_buf->fw_ring_mpdu_err, + HTT_RX_STATS_RXDMA_MAX_ERR); + len += HTT_DBG_OUT(buf + len, buf_len - len, "fw_ring_mpdu_err = %s\n", + fw_ring_mpdu_err); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void +htt_print_rx_pdev_fw_mpdu_drop_tlv_v(const void *tag_buf, + u16 tag_len, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_rx_pdev_fw_mpdu_drop_tlv_v *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + char fw_mpdu_drop[HTT_MAX_STRING_LEN] = {0}; + u16 num_elems = min_t(u16, (tag_len >> 2), HTT_RX_STATS_FW_DROP_REASON_MAX); + + len += HTT_DBG_OUT(buf + len, buf_len - len, "HTT_RX_PDEV_FW_MPDU_DROP_TLV_V:"); + + ARRAY_TO_STRING(fw_mpdu_drop, + htt_stats_buf->fw_mpdu_drop, + num_elems); + len += HTT_DBG_OUT(buf + len, buf_len - len, "fw_mpdu_drop = %s\n", fw_mpdu_drop); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void +htt_print_rx_pdev_fw_stats_phy_err_tlv(const void *tag_buf, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_rx_pdev_fw_stats_phy_err_tlv *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + char phy_errs[HTT_MAX_STRING_LEN] = {0}; + + len += HTT_DBG_OUT(buf + len, buf_len - len, "HTT_RX_PDEV_FW_STATS_PHY_ERR_TLV:"); + len += HTT_DBG_OUT(buf + len, buf_len - len, "mac_id__word = %u", + htt_stats_buf->mac_id__word); + len += HTT_DBG_OUT(buf + len, buf_len - len, "total_phy_err_nct = %u", + htt_stats_buf->total_phy_err_cnt); + + ARRAY_TO_STRING(phy_errs, + htt_stats_buf->phy_err, + HTT_STATS_PHY_ERR_MAX); + len += HTT_DBG_OUT(buf + len, buf_len - len, "phy_errs = %s\n", phy_errs); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void +htt_print_pdev_cca_stats_hist_tlv(const void *tag_buf, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_pdev_cca_stats_hist_v1_tlv *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + + len += HTT_DBG_OUT(buf + len, buf_len - len, "\nHTT_PDEV_CCA_STATS_HIST_TLV:"); + len += HTT_DBG_OUT(buf + len, buf_len - len, "chan_num = %u", + htt_stats_buf->chan_num); + len += HTT_DBG_OUT(buf + len, buf_len - len, "num_records = %u", + htt_stats_buf->num_records); + len += HTT_DBG_OUT(buf + len, buf_len - len, "valid_cca_counters_bitmap = 0x%x", + htt_stats_buf->valid_cca_counters_bitmap); + len += HTT_DBG_OUT(buf + len, buf_len - len, "collection_interval = %u\n", + htt_stats_buf->collection_interval); + + len += HTT_DBG_OUT(buf + len, buf_len - len, + "HTT_PDEV_STATS_CCA_COUNTERS_TLV:(in usec)"); + len += HTT_DBG_OUT(buf + len, buf_len - len, + "| tx_frame| rx_frame| rx_clear| my_rx_frame| cnt| med_rx_idle| med_tx_idle_global| cca_obss|"); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void +htt_print_pdev_stats_cca_counters_tlv(const void *tag_buf, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_pdev_stats_cca_counters_tlv *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + + len += HTT_DBG_OUT(buf + len, buf_len - len, + "|%10u| %10u| %10u| %11u| %10u| %11u| %18u| %10u|", + htt_stats_buf->tx_frame_usec, + htt_stats_buf->rx_frame_usec, + htt_stats_buf->rx_clear_usec, + htt_stats_buf->my_rx_frame_usec, + htt_stats_buf->usec_cnt, + htt_stats_buf->med_rx_idle_usec, + htt_stats_buf->med_tx_idle_global_usec, + htt_stats_buf->cca_obss_usec); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void htt_print_hw_stats_whal_tx_tlv(const void *tag_buf, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_hw_stats_whal_tx_tlv *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + + len += HTT_DBG_OUT(buf + len, buf_len - len, "HTT_HW_STATS_WHAL_TX_TLV:"); + len += HTT_DBG_OUT(buf + len, buf_len - len, "mac_id = %u", + htt_stats_buf->mac_id__word & 0xFF); + len += HTT_DBG_OUT(buf + len, buf_len - len, "last_unpause_ppdu_id = %u", + htt_stats_buf->last_unpause_ppdu_id); + len += HTT_DBG_OUT(buf + len, buf_len - len, "hwsch_unpause_wait_tqm_write = %u", + htt_stats_buf->hwsch_unpause_wait_tqm_write); + len += HTT_DBG_OUT(buf + len, buf_len - len, "hwsch_dummy_tlv_skipped = %u", + htt_stats_buf->hwsch_dummy_tlv_skipped); + len += HTT_DBG_OUT(buf + len, buf_len - len, + "hwsch_misaligned_offset_received = %u", + htt_stats_buf->hwsch_misaligned_offset_received); + len += HTT_DBG_OUT(buf + len, buf_len - len, "hwsch_reset_count = %u", + htt_stats_buf->hwsch_reset_count); + len += HTT_DBG_OUT(buf + len, buf_len - len, "hwsch_dev_reset_war = %u", + htt_stats_buf->hwsch_dev_reset_war); + len += HTT_DBG_OUT(buf + len, buf_len - len, "hwsch_delayed_pause = %u", + htt_stats_buf->hwsch_delayed_pause); + len += HTT_DBG_OUT(buf + len, buf_len - len, "hwsch_long_delayed_pause = %u", + htt_stats_buf->hwsch_long_delayed_pause); + len += HTT_DBG_OUT(buf + len, buf_len - len, "sch_rx_ppdu_no_response = %u", + htt_stats_buf->sch_rx_ppdu_no_response); + len += HTT_DBG_OUT(buf + len, buf_len - len, "sch_selfgen_response = %u", + htt_stats_buf->sch_selfgen_response); + len += HTT_DBG_OUT(buf + len, buf_len - len, "sch_rx_sifs_resp_trigger= %u\n", + htt_stats_buf->sch_rx_sifs_resp_trigger); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void +htt_print_pdev_stats_twt_sessions_tlv(const void *tag_buf, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_pdev_stats_twt_sessions_tlv *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + + len += HTT_DBG_OUT(buf + len, buf_len - len, "HTT_PDEV_STATS_TWT_SESSIONS_TLV:"); + len += HTT_DBG_OUT(buf + len, buf_len - len, "pdev_id = %u", + htt_stats_buf->pdev_id); + len += HTT_DBG_OUT(buf + len, buf_len - len, "num_sessions = %u\n", + htt_stats_buf->num_sessions); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void +htt_print_pdev_stats_twt_session_tlv(const void *tag_buf, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_pdev_stats_twt_session_tlv *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + + len += HTT_DBG_OUT(buf + len, buf_len - len, "HTT_PDEV_STATS_TWT_SESSION_TLV:"); + len += HTT_DBG_OUT(buf + len, buf_len - len, "vdev_id = %u", + htt_stats_buf->vdev_id); + len += HTT_DBG_OUT(buf + len, buf_len - len, + "peer_mac = %02x:%02x:%02x:%02x:%02x:%02x", + htt_stats_buf->peer_mac.mac_addr_l32 & 0xFF, + (htt_stats_buf->peer_mac.mac_addr_l32 & 0xFF00) >> 8, + (htt_stats_buf->peer_mac.mac_addr_l32 & 0xFF0000) >> 16, + (htt_stats_buf->peer_mac.mac_addr_l32 & 0xFF000000) >> 24, + (htt_stats_buf->peer_mac.mac_addr_h16 & 0xFF), + (htt_stats_buf->peer_mac.mac_addr_h16 & 0xFF00) >> 8); + len += HTT_DBG_OUT(buf + len, buf_len - len, "flow_id_flags = %u", + htt_stats_buf->flow_id_flags); + len += HTT_DBG_OUT(buf + len, buf_len - len, "dialog_id = %u", + htt_stats_buf->dialog_id); + len += HTT_DBG_OUT(buf + len, buf_len - len, "wake_dura_us = %u", + htt_stats_buf->wake_dura_us); + len += HTT_DBG_OUT(buf + len, buf_len - len, "wake_intvl_us = %u", + htt_stats_buf->wake_intvl_us); + len += HTT_DBG_OUT(buf + len, buf_len - len, "sp_offset_us = %u\n", + htt_stats_buf->sp_offset_us); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void +htt_print_pdev_obss_pd_stats_tlv_v(const void *tag_buf, + struct debug_htt_stats_req *stats_req) +{ + const struct htt_pdev_obss_pd_stats_tlv *htt_stats_buf = tag_buf; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + + len += HTT_DBG_OUT(buf + len, buf_len - len, "OBSS Tx success PPDU = %u", + htt_stats_buf->num_obss_tx_ppdu_success); + len += HTT_DBG_OUT(buf + len, buf_len - len, "OBSS Tx failures PPDU = %u\n", + htt_stats_buf->num_obss_tx_ppdu_failure); + + if (len >= buf_len) + buf[buf_len - 1] = 0; + else + buf[len] = 0; + + stats_req->buf_len = len; +} + +static inline void htt_print_backpressure_stats_tlv_v(const u32 *tag_buf, + u8 *data) +{ + struct debug_htt_stats_req *stats_req = + (struct debug_htt_stats_req *)data; + struct htt_ring_backpressure_stats_tlv *htt_stats_buf = + (struct htt_ring_backpressure_stats_tlv *)tag_buf; + int i; + u8 *buf = stats_req->buf; + u32 len = stats_req->buf_len; + u32 buf_len = ATH11K_HTT_STATS_BUF_SIZE; + + len += HTT_DBG_OUT(buf + len, buf_len - len, "pdev_id = %u", + htt_stats_buf->pdev_id); + len += HTT_DBG_OUT(buf + len, buf_len - len, "current_head_idx = %u", + htt_stats_buf->current_head_idx); + len += HTT_DBG_OUT(buf + len, buf_len - len, "current_tail_idx = %u", + htt_stats_buf->current_tail_idx); + len += HTT_DBG_OUT(buf + len, buf_len - len, "num_htt_msgs_sent = %u", + htt_stats_buf->num_htt_msgs_sent); + len += HTT_DBG_OUT(buf + len, buf_len - len, + "backpressure_time_ms = %u", + htt_stats_buf->backpressure_time_ms); + + for (i = 0; i < 5; i++) + len += HTT_DBG_OUT(buf + len, buf_len - len, + "backpressure_hist_%u = %u", + i + 1, htt_stats_buf->backpressure_hist[i]); + + len += HTT_DBG_OUT(buf + len, buf_len - len, + "============================"); + + if (len >= buf_len) { + buf[buf_len - 1] = 0; + stats_req->buf_len = buf_len - 1; + } else { + buf[len] = 0; + stats_req->buf_len = len; + } +} + +static int ath11k_dbg_htt_ext_stats_parse(struct ath11k_base *ab, + u16 tag, u16 len, const void *tag_buf, + void *user_data) +{ + struct debug_htt_stats_req *stats_req = user_data; + + switch (tag) { + case HTT_STATS_TX_PDEV_CMN_TAG: + htt_print_tx_pdev_stats_cmn_tlv(tag_buf, stats_req); + break; + case HTT_STATS_TX_PDEV_UNDERRUN_TAG: + htt_print_tx_pdev_stats_urrn_tlv_v(tag_buf, len, stats_req); + break; + case HTT_STATS_TX_PDEV_SIFS_TAG: + htt_print_tx_pdev_stats_sifs_tlv_v(tag_buf, len, stats_req); + break; + case HTT_STATS_TX_PDEV_FLUSH_TAG: + htt_print_tx_pdev_stats_flush_tlv_v(tag_buf, len, stats_req); + break; + case HTT_STATS_TX_PDEV_PHY_ERR_TAG: + htt_print_tx_pdev_stats_phy_err_tlv_v(tag_buf, len, stats_req); + break; + case HTT_STATS_TX_PDEV_SIFS_HIST_TAG: + htt_print_tx_pdev_stats_sifs_hist_tlv_v(tag_buf, len, stats_req); + break; + + case HTT_STATS_TX_PDEV_TX_PPDU_STATS_TAG: + htt_print_tx_pdev_stats_tx_ppdu_stats_tlv_v(tag_buf, stats_req); + break; + + case HTT_STATS_TX_PDEV_TRIED_MPDU_CNT_HIST_TAG: + htt_print_tx_pdev_stats_tried_mpdu_cnt_hist_tlv_v(tag_buf, len, + stats_req); + break; + + case HTT_STATS_STRING_TAG: + htt_print_stats_string_tlv(tag_buf, len, stats_req); + break; + + case HTT_STATS_TX_HWQ_CMN_TAG: + htt_print_tx_hwq_stats_cmn_tlv(tag_buf, stats_req); + break; + + case HTT_STATS_TX_HWQ_DIFS_LATENCY_TAG: + htt_print_tx_hwq_difs_latency_stats_tlv_v(tag_buf, len, stats_req); + break; + + case HTT_STATS_TX_HWQ_CMD_RESULT_TAG: + htt_print_tx_hwq_cmd_result_stats_tlv_v(tag_buf, len, stats_req); + break; + + case HTT_STATS_TX_HWQ_CMD_STALL_TAG: + htt_print_tx_hwq_cmd_stall_stats_tlv_v(tag_buf, len, stats_req); + break; + + case HTT_STATS_TX_HWQ_FES_STATUS_TAG: + htt_print_tx_hwq_fes_result_stats_tlv_v(tag_buf, len, stats_req); + break; + + case HTT_STATS_TX_HWQ_TRIED_MPDU_CNT_HIST_TAG: + htt_print_tx_hwq_tried_mpdu_cnt_hist_tlv_v(tag_buf, len, stats_req); + break; + + case HTT_STATS_TX_HWQ_TXOP_USED_CNT_HIST_TAG: + htt_print_tx_hwq_txop_used_cnt_hist_tlv_v(tag_buf, len, stats_req); + break; + case HTT_STATS_TX_TQM_GEN_MPDU_TAG: + htt_print_tx_tqm_gen_mpdu_stats_tlv_v(tag_buf, len, stats_req); + break; + + case HTT_STATS_TX_TQM_LIST_MPDU_TAG: + htt_print_tx_tqm_list_mpdu_stats_tlv_v(tag_buf, len, stats_req); + break; + + case HTT_STATS_TX_TQM_LIST_MPDU_CNT_TAG: + htt_print_tx_tqm_list_mpdu_cnt_tlv_v(tag_buf, len, stats_req); + break; + + case HTT_STATS_TX_TQM_CMN_TAG: + htt_print_tx_tqm_cmn_stats_tlv(tag_buf, stats_req); + break; + + case HTT_STATS_TX_TQM_PDEV_TAG: + htt_print_tx_tqm_pdev_stats_tlv_v(tag_buf, stats_req); + break; + + case HTT_STATS_TX_TQM_CMDQ_STATUS_TAG: + htt_print_tx_tqm_cmdq_status_tlv(tag_buf, stats_req); + break; + + case HTT_STATS_TX_DE_EAPOL_PACKETS_TAG: + htt_print_tx_de_eapol_packets_stats_tlv(tag_buf, stats_req); + break; + + case HTT_STATS_TX_DE_CLASSIFY_FAILED_TAG: + htt_print_tx_de_classify_failed_stats_tlv(tag_buf, stats_req); + break; + + case HTT_STATS_TX_DE_CLASSIFY_STATS_TAG: + htt_print_tx_de_classify_stats_tlv(tag_buf, stats_req); + break; + + case HTT_STATS_TX_DE_CLASSIFY_STATUS_TAG: + htt_print_tx_de_classify_status_stats_tlv(tag_buf, stats_req); + break; + + case HTT_STATS_TX_DE_ENQUEUE_PACKETS_TAG: + htt_print_tx_de_enqueue_packets_stats_tlv(tag_buf, stats_req); + break; + + case HTT_STATS_TX_DE_ENQUEUE_DISCARD_TAG: + htt_print_tx_de_enqueue_discard_stats_tlv(tag_buf, stats_req); + break; + + case HTT_STATS_TX_DE_FW2WBM_RING_FULL_HIST_TAG: + htt_print_tx_de_fw2wbm_ring_full_hist_tlv(tag_buf, len, stats_req); + break; + + case HTT_STATS_TX_DE_CMN_TAG: + htt_print_tx_de_cmn_stats_tlv(tag_buf, stats_req); + break; + + case HTT_STATS_RING_IF_TAG: + htt_print_ring_if_stats_tlv(tag_buf, stats_req); + break; + + case HTT_STATS_TX_PDEV_MU_MIMO_STATS_TAG: + htt_print_tx_pdev_mu_mimo_sch_stats_tlv(tag_buf, stats_req); + break; + + case HTT_STATS_SFM_CMN_TAG: + htt_print_sfm_cmn_tlv(tag_buf, stats_req); + break; + + case HTT_STATS_SRING_STATS_TAG: + htt_print_sring_stats_tlv(tag_buf, stats_req); + break; + + case HTT_STATS_RX_PDEV_FW_STATS_TAG: + htt_print_rx_pdev_fw_stats_tlv(tag_buf, stats_req); + break; + + case HTT_STATS_RX_PDEV_FW_RING_MPDU_ERR_TAG: + htt_print_rx_pdev_fw_ring_mpdu_err_tlv_v(tag_buf, stats_req); + break; + + case HTT_STATS_RX_PDEV_FW_MPDU_DROP_TAG: + htt_print_rx_pdev_fw_mpdu_drop_tlv_v(tag_buf, len, stats_req); + break; + + case HTT_STATS_RX_SOC_FW_STATS_TAG: + htt_print_rx_soc_fw_stats_tlv(tag_buf, stats_req); + break; + + case HTT_STATS_RX_SOC_FW_REFILL_RING_EMPTY_TAG: + htt_print_rx_soc_fw_refill_ring_empty_tlv_v(tag_buf, len, stats_req); + break; + + case HTT_STATS_RX_SOC_FW_REFILL_RING_NUM_REFILL_TAG: + htt_print_rx_soc_fw_refill_ring_num_refill_tlv_v( + tag_buf, len, stats_req); + break; + case HTT_STATS_RX_REFILL_RXDMA_ERR_TAG: + htt_print_rx_soc_fw_refill_ring_num_rxdma_err_tlv_v( + tag_buf, len, stats_req); + break; + + case HTT_STATS_RX_REFILL_REO_ERR_TAG: + htt_print_rx_soc_fw_refill_ring_num_reo_err_tlv_v( + tag_buf, len, stats_req); + break; + + case HTT_STATS_RX_REO_RESOURCE_STATS_TAG: + htt_print_rx_reo_debug_stats_tlv_v( + tag_buf, stats_req); + break; + case HTT_STATS_RX_PDEV_FW_STATS_PHY_ERR_TAG: + htt_print_rx_pdev_fw_stats_phy_err_tlv(tag_buf, stats_req); + break; + + case HTT_STATS_TX_PDEV_RATE_STATS_TAG: + htt_print_tx_pdev_rate_stats_tlv(tag_buf, stats_req); + break; + + case HTT_STATS_RX_PDEV_RATE_STATS_TAG: + htt_print_rx_pdev_rate_stats_tlv(tag_buf, stats_req); + break; + + case HTT_STATS_TX_PDEV_SCHEDULER_TXQ_STATS_TAG: + htt_print_tx_pdev_stats_sched_per_txq_tlv(tag_buf, stats_req); + break; + case HTT_STATS_TX_SCHED_CMN_TAG: + htt_print_stats_tx_sched_cmn_tlv(tag_buf, stats_req); + break; + + case HTT_STATS_TX_PDEV_MPDU_STATS_TAG: + htt_print_tx_pdev_mu_mimo_mpdu_stats_tlv(tag_buf, stats_req); + break; + + case HTT_STATS_SCHED_TXQ_CMD_POSTED_TAG: + htt_print_sched_txq_cmd_posted_tlv_v(tag_buf, len, stats_req); + break; + + case HTT_STATS_RING_IF_CMN_TAG: + htt_print_ring_if_cmn_tlv(tag_buf, stats_req); + break; + + case HTT_STATS_SFM_CLIENT_USER_TAG: + htt_print_sfm_client_user_tlv_v(tag_buf, len, stats_req); + break; + + case HTT_STATS_SFM_CLIENT_TAG: + htt_print_sfm_client_tlv(tag_buf, stats_req); + break; + + case HTT_STATS_TX_TQM_ERROR_STATS_TAG: + htt_print_tx_tqm_error_stats_tlv(tag_buf, stats_req); + break; + + case HTT_STATS_SCHED_TXQ_CMD_REAPED_TAG: + htt_print_sched_txq_cmd_reaped_tlv_v(tag_buf, len, stats_req); + break; + + case HTT_STATS_SRING_CMN_TAG: + htt_print_sring_cmn_tlv(tag_buf, stats_req); + break; + + case HTT_STATS_TX_SOUNDING_STATS_TAG: + htt_print_tx_sounding_stats_tlv(tag_buf, stats_req); + break; + + case HTT_STATS_TX_SELFGEN_AC_ERR_STATS_TAG: + htt_print_tx_selfgen_ac_err_stats_tlv(tag_buf, stats_req); + break; + + case HTT_STATS_TX_SELFGEN_CMN_STATS_TAG: + htt_print_tx_selfgen_cmn_stats_tlv(tag_buf, stats_req); + break; + + case HTT_STATS_TX_SELFGEN_AC_STATS_TAG: + htt_print_tx_selfgen_ac_stats_tlv(tag_buf, stats_req); + break; + + case HTT_STATS_TX_SELFGEN_AX_STATS_TAG: + htt_print_tx_selfgen_ax_stats_tlv(tag_buf, stats_req); + break; + + case HTT_STATS_TX_SELFGEN_AX_ERR_STATS_TAG: + htt_print_tx_selfgen_ax_err_stats_tlv(tag_buf, stats_req); + break; + + case HTT_STATS_TX_HWQ_MUMIMO_SCH_STATS_TAG: + htt_print_tx_hwq_mu_mimo_sch_stats_tlv(tag_buf, stats_req); + break; + + case HTT_STATS_TX_HWQ_MUMIMO_MPDU_STATS_TAG: + htt_print_tx_hwq_mu_mimo_mpdu_stats_tlv(tag_buf, stats_req); + break; + + case HTT_STATS_TX_HWQ_MUMIMO_CMN_STATS_TAG: + htt_print_tx_hwq_mu_mimo_cmn_stats_tlv(tag_buf, stats_req); + break; + + case HTT_STATS_HW_INTR_MISC_TAG: + htt_print_hw_stats_intr_misc_tlv(tag_buf, stats_req); + break; + + case HTT_STATS_HW_WD_TIMEOUT_TAG: + htt_print_hw_stats_wd_timeout_tlv(tag_buf, stats_req); + break; + + case HTT_STATS_HW_PDEV_ERRS_TAG: + htt_print_hw_stats_pdev_errs_tlv(tag_buf, stats_req); + break; + + case HTT_STATS_COUNTER_NAME_TAG: + htt_print_counter_tlv(tag_buf, stats_req); + break; + + case HTT_STATS_TX_TID_DETAILS_TAG: + htt_print_tx_tid_stats_tlv(tag_buf, stats_req); + break; + + case HTT_STATS_TX_TID_DETAILS_V1_TAG: + htt_print_tx_tid_stats_v1_tlv(tag_buf, stats_req); + break; + + case HTT_STATS_RX_TID_DETAILS_TAG: + htt_print_rx_tid_stats_tlv(tag_buf, stats_req); + break; + + case HTT_STATS_PEER_STATS_CMN_TAG: + htt_print_peer_stats_cmn_tlv(tag_buf, stats_req); + break; + + case HTT_STATS_PEER_DETAILS_TAG: + htt_print_peer_details_tlv(tag_buf, stats_req); + break; + + case HTT_STATS_PEER_MSDU_FLOWQ_TAG: + htt_print_msdu_flow_stats_tlv(tag_buf, stats_req); + break; + + case HTT_STATS_PEER_TX_RATE_STATS_TAG: + htt_print_tx_peer_rate_stats_tlv(tag_buf, stats_req); + break; + + case HTT_STATS_PEER_RX_RATE_STATS_TAG: + htt_print_rx_peer_rate_stats_tlv(tag_buf, stats_req); + break; + + case HTT_STATS_TX_DE_COMPL_STATS_TAG: + htt_print_tx_de_compl_stats_tlv(tag_buf, stats_req); + break; + + case HTT_STATS_PDEV_CCA_1SEC_HIST_TAG: + case HTT_STATS_PDEV_CCA_100MSEC_HIST_TAG: + case HTT_STATS_PDEV_CCA_STAT_CUMULATIVE_TAG: + htt_print_pdev_cca_stats_hist_tlv(tag_buf, stats_req); + break; + + case HTT_STATS_PDEV_CCA_COUNTERS_TAG: + htt_print_pdev_stats_cca_counters_tlv(tag_buf, stats_req); + break; + + case HTT_STATS_WHAL_TX_TAG: + htt_print_hw_stats_whal_tx_tlv(tag_buf, stats_req); + break; + + case HTT_STATS_PDEV_TWT_SESSIONS_TAG: + htt_print_pdev_stats_twt_sessions_tlv(tag_buf, stats_req); + break; + + case HTT_STATS_PDEV_TWT_SESSION_TAG: + htt_print_pdev_stats_twt_session_tlv(tag_buf, stats_req); + break; + + case HTT_STATS_SCHED_TXQ_SCHED_ORDER_SU_TAG: + htt_print_sched_txq_sched_order_su_tlv_v(tag_buf, len, stats_req); + break; + + case HTT_STATS_SCHED_TXQ_SCHED_INELIGIBILITY_TAG: + htt_print_sched_txq_sched_ineligibility_tlv_v(tag_buf, len, stats_req); + break; + + case HTT_STATS_PDEV_OBSS_PD_TAG: + htt_print_pdev_obss_pd_stats_tlv_v(tag_buf, stats_req); + break; + case HTT_STATS_RING_BACKPRESSURE_STATS_TAG: + htt_print_backpressure_stats_tlv_v(tag_buf, user_data); + break; + default: + break; + } + + return 0; +} + +void ath11k_debugfs_htt_ext_stats_handler(struct ath11k_base *ab, + struct sk_buff *skb) +{ + struct ath11k_htt_extd_stats_msg *msg; + struct debug_htt_stats_req *stats_req; + struct ath11k *ar; + u32 len; + u64 cookie; + int ret; + bool send_completion = false; + u8 pdev_id; + + msg = (struct ath11k_htt_extd_stats_msg *)skb->data; + cookie = msg->cookie; + + if (FIELD_GET(HTT_STATS_COOKIE_MSB, cookie) != HTT_STATS_MAGIC_VALUE) { + ath11k_warn(ab, "received invalid htt ext stats event\n"); + return; + } + + pdev_id = FIELD_GET(HTT_STATS_COOKIE_LSB, cookie); + rcu_read_lock(); + ar = ath11k_mac_get_ar_by_pdev_id(ab, pdev_id); + rcu_read_unlock(); + if (!ar) { + ath11k_warn(ab, "failed to get ar for pdev_id %d\n", pdev_id); + return; + } + + stats_req = ar->debug.htt_stats.stats_req; + if (!stats_req) + return; + + spin_lock_bh(&ar->debug.htt_stats.lock); + + stats_req->done = FIELD_GET(HTT_T2H_EXT_STATS_INFO1_DONE, msg->info1); + if (stats_req->done) + send_completion = true; + + spin_unlock_bh(&ar->debug.htt_stats.lock); + + len = FIELD_GET(HTT_T2H_EXT_STATS_INFO1_LENGTH, msg->info1); + ret = ath11k_dp_htt_tlv_iter(ab, msg->data, len, + ath11k_dbg_htt_ext_stats_parse, + stats_req); + if (ret) + ath11k_warn(ab, "Failed to parse tlv %d\n", ret); + + if (send_completion) + complete(&stats_req->cmpln); +} + +static ssize_t ath11k_read_htt_stats_type(struct file *file, + char __user *user_buf, + size_t count, loff_t *ppos) +{ + struct ath11k *ar = file->private_data; + char buf[32]; + size_t len; + + len = scnprintf(buf, sizeof(buf), "%u\n", ar->debug.htt_stats.type); + + return simple_read_from_buffer(user_buf, count, ppos, buf, len); +} + +static ssize_t ath11k_write_htt_stats_type(struct file *file, + const char __user *user_buf, + size_t count, loff_t *ppos) +{ + struct ath11k *ar = file->private_data; + u8 type; + int ret; + + ret = kstrtou8_from_user(user_buf, count, 0, &type); + if (ret) + return ret; + + if (type >= ATH11K_DBG_HTT_NUM_EXT_STATS) + return -E2BIG; + + if (type == ATH11K_DBG_HTT_EXT_STATS_RESET || + type == ATH11K_DBG_HTT_EXT_STATS_PEER_INFO) + return -EPERM; + + ar->debug.htt_stats.type = type; + + ret = count; + + return ret; +} + +static const struct file_operations fops_htt_stats_type = { + .read = ath11k_read_htt_stats_type, + .write = ath11k_write_htt_stats_type, + .open = simple_open, + .owner = THIS_MODULE, + .llseek = default_llseek, +}; + +static int ath11k_prep_htt_stats_cfg_params(struct ath11k *ar, u8 type, + const u8 *mac_addr, + struct htt_ext_stats_cfg_params *cfg_params) +{ + if (!cfg_params) + return -EINVAL; + + switch (type) { + case ATH11K_DBG_HTT_EXT_STATS_PDEV_TX_HWQ: + case ATH11K_DBG_HTT_EXT_STATS_TX_MU_HWQ: + cfg_params->cfg0 = HTT_STAT_DEFAULT_CFG0_ALL_HWQS; + break; + case ATH11K_DBG_HTT_EXT_STATS_PDEV_TX_SCHED: + cfg_params->cfg0 = HTT_STAT_DEFAULT_CFG0_ALL_TXQS; + break; + case ATH11K_DBG_HTT_EXT_STATS_TQM_CMDQ: + cfg_params->cfg0 = HTT_STAT_DEFAULT_CFG0_ALL_CMDQS; + break; + case ATH11K_DBG_HTT_EXT_STATS_PEER_INFO: + cfg_params->cfg0 = HTT_STAT_PEER_INFO_MAC_ADDR; + cfg_params->cfg0 |= FIELD_PREP(GENMASK(15, 1), + HTT_PEER_STATS_REQ_MODE_FLUSH_TQM); + cfg_params->cfg1 = HTT_STAT_DEFAULT_PEER_REQ_TYPE; + cfg_params->cfg2 |= FIELD_PREP(GENMASK(7, 0), mac_addr[0]); + cfg_params->cfg2 |= FIELD_PREP(GENMASK(15, 8), mac_addr[1]); + cfg_params->cfg2 |= FIELD_PREP(GENMASK(23, 16), mac_addr[2]); + cfg_params->cfg2 |= FIELD_PREP(GENMASK(31, 24), mac_addr[3]); + cfg_params->cfg3 |= FIELD_PREP(GENMASK(7, 0), mac_addr[4]); + cfg_params->cfg3 |= FIELD_PREP(GENMASK(15, 8), mac_addr[5]); + break; + case ATH11K_DBG_HTT_EXT_STATS_RING_IF_INFO: + case ATH11K_DBG_HTT_EXT_STATS_SRNG_INFO: + cfg_params->cfg0 = HTT_STAT_DEFAULT_CFG0_ALL_RINGS; + break; + case ATH11K_DBG_HTT_EXT_STATS_ACTIVE_PEERS_LIST: + cfg_params->cfg0 = HTT_STAT_DEFAULT_CFG0_ACTIVE_PEERS; + break; + case ATH11K_DBG_HTT_EXT_STATS_PDEV_CCA_STATS: + cfg_params->cfg0 = HTT_STAT_DEFAULT_CFG0_CCA_CUMULATIVE; + break; + case ATH11K_DBG_HTT_EXT_STATS_TX_SOUNDING_INFO: + cfg_params->cfg0 = HTT_STAT_DEFAULT_CFG0_ACTIVE_VDEVS; + break; + default: + break; + } + + return 0; +} + +int ath11k_debugfs_htt_stats_req(struct ath11k *ar) +{ + struct debug_htt_stats_req *stats_req = ar->debug.htt_stats.stats_req; + u8 type = stats_req->type; + u64 cookie = 0; + int ret, pdev_id = ar->pdev->pdev_id; + struct htt_ext_stats_cfg_params cfg_params = { 0 }; + + init_completion(&stats_req->cmpln); + + stats_req->done = false; + stats_req->pdev_id = pdev_id; + + cookie = FIELD_PREP(HTT_STATS_COOKIE_MSB, HTT_STATS_MAGIC_VALUE) | + FIELD_PREP(HTT_STATS_COOKIE_LSB, pdev_id); + + ret = ath11k_prep_htt_stats_cfg_params(ar, type, stats_req->peer_addr, + &cfg_params); + if (ret) { + ath11k_warn(ar->ab, "failed to set htt stats cfg params: %d\n", ret); + return ret; + } + + ret = ath11k_dp_tx_htt_h2t_ext_stats_req(ar, type, &cfg_params, cookie); + if (ret) { + ath11k_warn(ar->ab, "failed to send htt stats request: %d\n", ret); + return ret; + } + + while (!wait_for_completion_timeout(&stats_req->cmpln, 3 * HZ)) { + spin_lock_bh(&ar->debug.htt_stats.lock); + if (!stats_req->done) { + stats_req->done = true; + spin_unlock_bh(&ar->debug.htt_stats.lock); + ath11k_warn(ar->ab, "stats request timed out\n"); + return -ETIMEDOUT; + } + spin_unlock_bh(&ar->debug.htt_stats.lock); + } + + return 0; +} + +static int ath11k_open_htt_stats(struct inode *inode, struct file *file) +{ + struct ath11k *ar = inode->i_private; + struct debug_htt_stats_req *stats_req; + u8 type = ar->debug.htt_stats.type; + int ret; + + if (type == ATH11K_DBG_HTT_EXT_STATS_RESET) + return -EPERM; + + mutex_lock(&ar->conf_mutex); + + if (ar->state != ATH11K_STATE_ON) { + ret = -ENETDOWN; + goto err_unlock; + } + + if (ar->debug.htt_stats.stats_req) { + ret = -EAGAIN; + goto err_unlock; + } + + stats_req = vzalloc(sizeof(*stats_req) + ATH11K_HTT_STATS_BUF_SIZE); + if (!stats_req) { + ret = -ENOMEM; + goto err_unlock; + } + + ar->debug.htt_stats.stats_req = stats_req; + stats_req->type = type; + + ret = ath11k_debugfs_htt_stats_req(ar); + if (ret < 0) + goto out; + + file->private_data = stats_req; + + mutex_unlock(&ar->conf_mutex); + + return 0; +out: + vfree(stats_req); + ar->debug.htt_stats.stats_req = NULL; +err_unlock: + mutex_unlock(&ar->conf_mutex); + + return ret; +} + +static int ath11k_release_htt_stats(struct inode *inode, struct file *file) +{ + struct ath11k *ar = inode->i_private; + + mutex_lock(&ar->conf_mutex); + vfree(file->private_data); + ar->debug.htt_stats.stats_req = NULL; + mutex_unlock(&ar->conf_mutex); + + return 0; +} + +static ssize_t ath11k_read_htt_stats(struct file *file, + char __user *user_buf, + size_t count, loff_t *ppos) +{ + struct debug_htt_stats_req *stats_req = file->private_data; + char *buf; + u32 length = 0; + + buf = stats_req->buf; + length = min_t(u32, stats_req->buf_len, ATH11K_HTT_STATS_BUF_SIZE); + return simple_read_from_buffer(user_buf, count, ppos, buf, length); +} + +static const struct file_operations fops_dump_htt_stats = { + .open = ath11k_open_htt_stats, + .release = ath11k_release_htt_stats, + .read = ath11k_read_htt_stats, + .owner = THIS_MODULE, + .llseek = default_llseek, +}; + +static ssize_t ath11k_read_htt_stats_reset(struct file *file, + char __user *user_buf, + size_t count, loff_t *ppos) +{ + struct ath11k *ar = file->private_data; + char buf[32]; + size_t len; + + len = scnprintf(buf, sizeof(buf), "%u\n", ar->debug.htt_stats.reset); + + return simple_read_from_buffer(user_buf, count, ppos, buf, len); +} + +static ssize_t ath11k_write_htt_stats_reset(struct file *file, + const char __user *user_buf, + size_t count, loff_t *ppos) +{ + struct ath11k *ar = file->private_data; + u8 type; + struct htt_ext_stats_cfg_params cfg_params = { 0 }; + int ret; + + ret = kstrtou8_from_user(user_buf, count, 0, &type); + if (ret) + return ret; + + if (type >= ATH11K_DBG_HTT_NUM_EXT_STATS || + type == ATH11K_DBG_HTT_EXT_STATS_RESET) + return -E2BIG; + + mutex_lock(&ar->conf_mutex); + cfg_params.cfg0 = HTT_STAT_DEFAULT_RESET_START_OFFSET; + cfg_params.cfg1 = 1 << (cfg_params.cfg0 + type); + ret = ath11k_dp_tx_htt_h2t_ext_stats_req(ar, + ATH11K_DBG_HTT_EXT_STATS_RESET, + &cfg_params, + 0ULL); + if (ret) { + ath11k_warn(ar->ab, "failed to send htt stats request: %d\n", ret); + mutex_unlock(&ar->conf_mutex); + return ret; + } + + ar->debug.htt_stats.reset = type; + mutex_unlock(&ar->conf_mutex); + + ret = count; + + return ret; +} + +static const struct file_operations fops_htt_stats_reset = { + .read = ath11k_read_htt_stats_reset, + .write = ath11k_write_htt_stats_reset, + .open = simple_open, + .owner = THIS_MODULE, + .llseek = default_llseek, +}; + +void ath11k_debugfs_htt_stats_init(struct ath11k *ar) +{ + spin_lock_init(&ar->debug.htt_stats.lock); + debugfs_create_file("htt_stats_type", 0600, ar->debug.debugfs_pdev, + ar, &fops_htt_stats_type); + debugfs_create_file("htt_stats", 0400, ar->debug.debugfs_pdev, + ar, &fops_dump_htt_stats); + debugfs_create_file("htt_stats_reset", 0600, ar->debug.debugfs_pdev, + ar, &fops_htt_stats_reset); +} only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/net/wireless/ath/ath11k/debugfs_htt_stats.h +++ linux-oem-5.6-5.6.0/drivers/net/wireless/ath/ath11k/debugfs_htt_stats.h @@ -0,0 +1,1713 @@ +/* SPDX-License-Identifier: BSD-3-Clause-Clear */ +/* + * Copyright (c) 2018-2019 The Linux Foundation. All rights reserved. + */ + +#ifndef DEBUG_HTT_STATS_H +#define DEBUG_HTT_STATS_H + +#define HTT_STATS_COOKIE_LSB GENMASK_ULL(31, 0) +#define HTT_STATS_COOKIE_MSB GENMASK_ULL(63, 32) +#define HTT_STATS_MAGIC_VALUE 0xF0F0F0F0 + +enum htt_tlv_tag_t { + HTT_STATS_TX_PDEV_CMN_TAG = 0, + HTT_STATS_TX_PDEV_UNDERRUN_TAG = 1, + HTT_STATS_TX_PDEV_SIFS_TAG = 2, + HTT_STATS_TX_PDEV_FLUSH_TAG = 3, + HTT_STATS_TX_PDEV_PHY_ERR_TAG = 4, + HTT_STATS_STRING_TAG = 5, + HTT_STATS_TX_HWQ_CMN_TAG = 6, + HTT_STATS_TX_HWQ_DIFS_LATENCY_TAG = 7, + HTT_STATS_TX_HWQ_CMD_RESULT_TAG = 8, + HTT_STATS_TX_HWQ_CMD_STALL_TAG = 9, + HTT_STATS_TX_HWQ_FES_STATUS_TAG = 10, + HTT_STATS_TX_TQM_GEN_MPDU_TAG = 11, + HTT_STATS_TX_TQM_LIST_MPDU_TAG = 12, + HTT_STATS_TX_TQM_LIST_MPDU_CNT_TAG = 13, + HTT_STATS_TX_TQM_CMN_TAG = 14, + HTT_STATS_TX_TQM_PDEV_TAG = 15, + HTT_STATS_TX_TQM_CMDQ_STATUS_TAG = 16, + HTT_STATS_TX_DE_EAPOL_PACKETS_TAG = 17, + HTT_STATS_TX_DE_CLASSIFY_FAILED_TAG = 18, + HTT_STATS_TX_DE_CLASSIFY_STATS_TAG = 19, + HTT_STATS_TX_DE_CLASSIFY_STATUS_TAG = 20, + HTT_STATS_TX_DE_ENQUEUE_PACKETS_TAG = 21, + HTT_STATS_TX_DE_ENQUEUE_DISCARD_TAG = 22, + HTT_STATS_TX_DE_CMN_TAG = 23, + HTT_STATS_RING_IF_TAG = 24, + HTT_STATS_TX_PDEV_MU_MIMO_STATS_TAG = 25, + HTT_STATS_SFM_CMN_TAG = 26, + HTT_STATS_SRING_STATS_TAG = 27, + HTT_STATS_RX_PDEV_FW_STATS_TAG = 28, + HTT_STATS_RX_PDEV_FW_RING_MPDU_ERR_TAG = 29, + HTT_STATS_RX_PDEV_FW_MPDU_DROP_TAG = 30, + HTT_STATS_RX_SOC_FW_STATS_TAG = 31, + HTT_STATS_RX_SOC_FW_REFILL_RING_EMPTY_TAG = 32, + HTT_STATS_RX_SOC_FW_REFILL_RING_NUM_REFILL_TAG = 33, + HTT_STATS_TX_PDEV_RATE_STATS_TAG = 34, + HTT_STATS_RX_PDEV_RATE_STATS_TAG = 35, + HTT_STATS_TX_PDEV_SCHEDULER_TXQ_STATS_TAG = 36, + HTT_STATS_TX_SCHED_CMN_TAG = 37, + HTT_STATS_TX_PDEV_MUMIMO_MPDU_STATS_TAG = 38, + HTT_STATS_SCHED_TXQ_CMD_POSTED_TAG = 39, + HTT_STATS_RING_IF_CMN_TAG = 40, + HTT_STATS_SFM_CLIENT_USER_TAG = 41, + HTT_STATS_SFM_CLIENT_TAG = 42, + HTT_STATS_TX_TQM_ERROR_STATS_TAG = 43, + HTT_STATS_SCHED_TXQ_CMD_REAPED_TAG = 44, + HTT_STATS_SRING_CMN_TAG = 45, + HTT_STATS_TX_SELFGEN_AC_ERR_STATS_TAG = 46, + HTT_STATS_TX_SELFGEN_CMN_STATS_TAG = 47, + HTT_STATS_TX_SELFGEN_AC_STATS_TAG = 48, + HTT_STATS_TX_SELFGEN_AX_STATS_TAG = 49, + HTT_STATS_TX_SELFGEN_AX_ERR_STATS_TAG = 50, + HTT_STATS_TX_HWQ_MUMIMO_SCH_STATS_TAG = 51, + HTT_STATS_TX_HWQ_MUMIMO_MPDU_STATS_TAG = 52, + HTT_STATS_TX_HWQ_MUMIMO_CMN_STATS_TAG = 53, + HTT_STATS_HW_INTR_MISC_TAG = 54, + HTT_STATS_HW_WD_TIMEOUT_TAG = 55, + HTT_STATS_HW_PDEV_ERRS_TAG = 56, + HTT_STATS_COUNTER_NAME_TAG = 57, + HTT_STATS_TX_TID_DETAILS_TAG = 58, + HTT_STATS_RX_TID_DETAILS_TAG = 59, + HTT_STATS_PEER_STATS_CMN_TAG = 60, + HTT_STATS_PEER_DETAILS_TAG = 61, + HTT_STATS_PEER_TX_RATE_STATS_TAG = 62, + HTT_STATS_PEER_RX_RATE_STATS_TAG = 63, + HTT_STATS_PEER_MSDU_FLOWQ_TAG = 64, + HTT_STATS_TX_DE_COMPL_STATS_TAG = 65, + HTT_STATS_WHAL_TX_TAG = 66, + HTT_STATS_TX_PDEV_SIFS_HIST_TAG = 67, + HTT_STATS_RX_PDEV_FW_STATS_PHY_ERR_TAG = 68, + HTT_STATS_TX_TID_DETAILS_V1_TAG = 69, + HTT_STATS_PDEV_CCA_1SEC_HIST_TAG = 70, + HTT_STATS_PDEV_CCA_100MSEC_HIST_TAG = 71, + HTT_STATS_PDEV_CCA_STAT_CUMULATIVE_TAG = 72, + HTT_STATS_PDEV_CCA_COUNTERS_TAG = 73, + HTT_STATS_TX_PDEV_MPDU_STATS_TAG = 74, + HTT_STATS_PDEV_TWT_SESSIONS_TAG = 75, + HTT_STATS_PDEV_TWT_SESSION_TAG = 76, + HTT_STATS_RX_REFILL_RXDMA_ERR_TAG = 77, + HTT_STATS_RX_REFILL_REO_ERR_TAG = 78, + HTT_STATS_RX_REO_RESOURCE_STATS_TAG = 79, + HTT_STATS_TX_SOUNDING_STATS_TAG = 80, + HTT_STATS_TX_PDEV_TX_PPDU_STATS_TAG = 81, + HTT_STATS_TX_PDEV_TRIED_MPDU_CNT_HIST_TAG = 82, + HTT_STATS_TX_HWQ_TRIED_MPDU_CNT_HIST_TAG = 83, + HTT_STATS_TX_HWQ_TXOP_USED_CNT_HIST_TAG = 84, + HTT_STATS_TX_DE_FW2WBM_RING_FULL_HIST_TAG = 85, + HTT_STATS_SCHED_TXQ_SCHED_ORDER_SU_TAG = 86, + HTT_STATS_SCHED_TXQ_SCHED_INELIGIBILITY_TAG = 87, + HTT_STATS_PDEV_OBSS_PD_TAG = 88, + HTT_STATS_HW_WAR_TAG = 89, + HTT_STATS_RING_BACKPRESSURE_STATS_TAG = 90, + + HTT_STATS_MAX_TAG, +}; + +#define HTT_STATS_MAX_STRING_SZ32 4 +#define HTT_STATS_MACID_INVALID 0xff +#define HTT_TX_HWQ_MAX_DIFS_LATENCY_BINS 10 +#define HTT_TX_HWQ_MAX_CMD_RESULT_STATS 13 +#define HTT_TX_HWQ_MAX_CMD_STALL_STATS 5 +#define HTT_TX_HWQ_MAX_FES_RESULT_STATS 10 + +enum htt_tx_pdev_underrun_enum { + HTT_STATS_TX_PDEV_NO_DATA_UNDERRUN = 0, + HTT_STATS_TX_PDEV_DATA_UNDERRUN_BETWEEN_MPDU = 1, + HTT_STATS_TX_PDEV_DATA_UNDERRUN_WITHIN_MPDU = 2, + HTT_TX_PDEV_MAX_URRN_STATS = 3, +}; + +#define HTT_TX_PDEV_MAX_FLUSH_REASON_STATS 71 +#define HTT_TX_PDEV_MAX_SIFS_BURST_STATS 9 +#define HTT_TX_PDEV_MAX_SIFS_BURST_HIST_STATS 10 +#define HTT_TX_PDEV_MAX_PHY_ERR_STATS 18 +#define HTT_TX_PDEV_SCHED_TX_MODE_MAX 4 +#define HTT_TX_PDEV_NUM_SCHED_ORDER_LOG 20 + +#define HTT_RX_STATS_REFILL_MAX_RING 4 +#define HTT_RX_STATS_RXDMA_MAX_ERR 16 +#define HTT_RX_STATS_FW_DROP_REASON_MAX 16 + +/* Bytes stored in little endian order */ +/* Length should be multiple of DWORD */ +struct htt_stats_string_tlv { + u32 data[0]; /* Can be variable length */ +} __packed; + +/* == TX PDEV STATS == */ +struct htt_tx_pdev_stats_cmn_tlv { + u32 mac_id__word; + u32 hw_queued; + u32 hw_reaped; + u32 underrun; + u32 hw_paused; + u32 hw_flush; + u32 hw_filt; + u32 tx_abort; + u32 mpdu_requed; + u32 tx_xretry; + u32 data_rc; + u32 mpdu_dropped_xretry; + u32 illgl_rate_phy_err; + u32 cont_xretry; + u32 tx_timeout; + u32 pdev_resets; + u32 phy_underrun; + u32 txop_ovf; + u32 seq_posted; + u32 seq_failed_queueing; + u32 seq_completed; + u32 seq_restarted; + u32 mu_seq_posted; + u32 seq_switch_hw_paused; + u32 next_seq_posted_dsr; + u32 seq_posted_isr; + u32 seq_ctrl_cached; + u32 mpdu_count_tqm; + u32 msdu_count_tqm; + u32 mpdu_removed_tqm; + u32 msdu_removed_tqm; + u32 mpdus_sw_flush; + u32 mpdus_hw_filter; + u32 mpdus_truncated; + u32 mpdus_ack_failed; + u32 mpdus_expired; + u32 mpdus_seq_hw_retry; + u32 ack_tlv_proc; + u32 coex_abort_mpdu_cnt_valid; + u32 coex_abort_mpdu_cnt; + u32 num_total_ppdus_tried_ota; + u32 num_data_ppdus_tried_ota; + u32 local_ctrl_mgmt_enqued; + u32 local_ctrl_mgmt_freed; + u32 local_data_enqued; + u32 local_data_freed; + u32 mpdu_tried; + u32 isr_wait_seq_posted; + + u32 tx_active_dur_us_low; + u32 tx_active_dur_us_high; +}; + +/* NOTE: Variable length TLV, use length spec to infer array size */ +struct htt_tx_pdev_stats_urrn_tlv_v { + u32 urrn_stats[0]; /* HTT_TX_PDEV_MAX_URRN_STATS */ +}; + +/* NOTE: Variable length TLV, use length spec to infer array size */ +struct htt_tx_pdev_stats_flush_tlv_v { + u32 flush_errs[0]; /* HTT_TX_PDEV_MAX_FLUSH_REASON_STATS */ +}; + +/* NOTE: Variable length TLV, use length spec to infer array size */ +struct htt_tx_pdev_stats_sifs_tlv_v { + u32 sifs_status[0]; /* HTT_TX_PDEV_MAX_SIFS_BURST_STATS */ +}; + +/* NOTE: Variable length TLV, use length spec to infer array size */ +struct htt_tx_pdev_stats_phy_err_tlv_v { + u32 phy_errs[0]; /* HTT_TX_PDEV_MAX_PHY_ERR_STATS */ +}; + +/* NOTE: Variable length TLV, use length spec to infer array size */ +struct htt_tx_pdev_stats_sifs_hist_tlv_v { + u32 sifs_hist_status[0]; /* HTT_TX_PDEV_SIFS_BURST_HIST_STATS */ +}; + +struct htt_tx_pdev_stats_tx_ppdu_stats_tlv_v { + u32 num_data_ppdus_legacy_su; + u32 num_data_ppdus_ac_su; + u32 num_data_ppdus_ax_su; + u32 num_data_ppdus_ac_su_txbf; + u32 num_data_ppdus_ax_su_txbf; +}; + +/* NOTE: Variable length TLV, use length spec to infer array size . + * + * Tried_mpdu_cnt_hist is the histogram of MPDUs tries per HWQ. + * The tries here is the count of the MPDUS within a PPDU that the + * HW had attempted to transmit on air, for the HWSCH Schedule + * command submitted by FW.It is not the retry attempts. + * The histogram bins are 0-29, 30-59, 60-89 and so on. The are + * 10 bins in this histogram. They are defined in FW using the + * following macros + * #define WAL_MAX_TRIED_MPDU_CNT_HISTOGRAM 9 + * #define WAL_TRIED_MPDU_CNT_HISTOGRAM_INTERVAL 30 + */ +struct htt_tx_pdev_stats_tried_mpdu_cnt_hist_tlv_v { + u32 hist_bin_size; + u32 tried_mpdu_cnt_hist[]; /* HTT_TX_PDEV_TRIED_MPDU_CNT_HIST */ +}; + +/* == SOC ERROR STATS == */ + +/* =============== PDEV ERROR STATS ============== */ +#define HTT_STATS_MAX_HW_INTR_NAME_LEN 8 +struct htt_hw_stats_intr_misc_tlv { + /* Stored as little endian */ + u8 hw_intr_name[HTT_STATS_MAX_HW_INTR_NAME_LEN]; + u32 mask; + u32 count; +}; + +#define HTT_STATS_MAX_HW_MODULE_NAME_LEN 8 +struct htt_hw_stats_wd_timeout_tlv { + /* Stored as little endian */ + u8 hw_module_name[HTT_STATS_MAX_HW_MODULE_NAME_LEN]; + u32 count; +}; + +struct htt_hw_stats_pdev_errs_tlv { + u32 mac_id__word; /* BIT [ 7 : 0] : mac_id */ + u32 tx_abort; + u32 tx_abort_fail_count; + u32 rx_abort; + u32 rx_abort_fail_count; + u32 warm_reset; + u32 cold_reset; + u32 tx_flush; + u32 tx_glb_reset; + u32 tx_txq_reset; + u32 rx_timeout_reset; +}; + +struct htt_hw_stats_whal_tx_tlv { + u32 mac_id__word; + u32 last_unpause_ppdu_id; + u32 hwsch_unpause_wait_tqm_write; + u32 hwsch_dummy_tlv_skipped; + u32 hwsch_misaligned_offset_received; + u32 hwsch_reset_count; + u32 hwsch_dev_reset_war; + u32 hwsch_delayed_pause; + u32 hwsch_long_delayed_pause; + u32 sch_rx_ppdu_no_response; + u32 sch_selfgen_response; + u32 sch_rx_sifs_resp_trigger; +}; + +/* ============ PEER STATS ============ */ +struct htt_msdu_flow_stats_tlv { + u32 last_update_timestamp; + u32 last_add_timestamp; + u32 last_remove_timestamp; + u32 total_processed_msdu_count; + u32 cur_msdu_count_in_flowq; + u32 sw_peer_id; + u32 tx_flow_no__tid_num__drop_rule; + u32 last_cycle_enqueue_count; + u32 last_cycle_dequeue_count; + u32 last_cycle_drop_count; + u32 current_drop_th; +}; + +#define MAX_HTT_TID_NAME 8 + +/* Tidq stats */ +struct htt_tx_tid_stats_tlv { + /* Stored as little endian */ + u8 tid_name[MAX_HTT_TID_NAME]; + u32 sw_peer_id__tid_num; + u32 num_sched_pending__num_ppdu_in_hwq; + u32 tid_flags; + u32 hw_queued; + u32 hw_reaped; + u32 mpdus_hw_filter; + + u32 qdepth_bytes; + u32 qdepth_num_msdu; + u32 qdepth_num_mpdu; + u32 last_scheduled_tsmp; + u32 pause_module_id; + u32 block_module_id; + u32 tid_tx_airtime; +}; + +/* Tidq stats */ +struct htt_tx_tid_stats_v1_tlv { + /* Stored as little endian */ + u8 tid_name[MAX_HTT_TID_NAME]; + u32 sw_peer_id__tid_num; + u32 num_sched_pending__num_ppdu_in_hwq; + u32 tid_flags; + u32 max_qdepth_bytes; + u32 max_qdepth_n_msdus; + u32 rsvd; + + u32 qdepth_bytes; + u32 qdepth_num_msdu; + u32 qdepth_num_mpdu; + u32 last_scheduled_tsmp; + u32 pause_module_id; + u32 block_module_id; + u32 tid_tx_airtime; + u32 allow_n_flags; + u32 sendn_frms_allowed; +}; + +struct htt_rx_tid_stats_tlv { + u32 sw_peer_id__tid_num; + u8 tid_name[MAX_HTT_TID_NAME]; + u32 dup_in_reorder; + u32 dup_past_outside_window; + u32 dup_past_within_window; + u32 rxdesc_err_decrypt; + u32 tid_rx_airtime; +}; + +#define HTT_MAX_COUNTER_NAME 8 +struct htt_counter_tlv { + u8 counter_name[HTT_MAX_COUNTER_NAME]; + u32 count; +}; + +struct htt_peer_stats_cmn_tlv { + u32 ppdu_cnt; + u32 mpdu_cnt; + u32 msdu_cnt; + u32 pause_bitmap; + u32 block_bitmap; + u32 current_timestamp; + u32 peer_tx_airtime; + u32 peer_rx_airtime; + s32 rssi; + u32 peer_enqueued_count_low; + u32 peer_enqueued_count_high; + u32 peer_dequeued_count_low; + u32 peer_dequeued_count_high; + u32 peer_dropped_count_low; + u32 peer_dropped_count_high; + u32 ppdu_transmitted_bytes_low; + u32 ppdu_transmitted_bytes_high; + u32 peer_ttl_removed_count; + u32 inactive_time; +}; + +struct htt_peer_details_tlv { + u32 peer_type; + u32 sw_peer_id; + u32 vdev_pdev_ast_idx; + struct htt_mac_addr mac_addr; + u32 peer_flags; + u32 qpeer_flags; +}; + +enum htt_stats_param_type { + HTT_STATS_PREAM_OFDM, + HTT_STATS_PREAM_CCK, + HTT_STATS_PREAM_HT, + HTT_STATS_PREAM_VHT, + HTT_STATS_PREAM_HE, + HTT_STATS_PREAM_RSVD, + HTT_STATS_PREAM_RSVD1, + + HTT_STATS_PREAM_COUNT, +}; + +#define HTT_TX_PEER_STATS_NUM_MCS_COUNTERS 12 +#define HTT_TX_PEER_STATS_NUM_GI_COUNTERS 4 +#define HTT_TX_PEER_STATS_NUM_DCM_COUNTERS 5 +#define HTT_TX_PEER_STATS_NUM_BW_COUNTERS 4 +#define HTT_TX_PEER_STATS_NUM_SPATIAL_STREAMS 8 +#define HTT_TX_PEER_STATS_NUM_PREAMBLE_TYPES HTT_STATS_PREAM_COUNT + +struct htt_tx_peer_rate_stats_tlv { + u32 tx_ldpc; + u32 rts_cnt; + u32 ack_rssi; + + u32 tx_mcs[HTT_TX_PEER_STATS_NUM_MCS_COUNTERS]; + u32 tx_su_mcs[HTT_TX_PEER_STATS_NUM_MCS_COUNTERS]; + u32 tx_mu_mcs[HTT_TX_PEER_STATS_NUM_MCS_COUNTERS]; + /* element 0,1, ...7 -> NSS 1,2, ...8 */ + u32 tx_nss[HTT_TX_PEER_STATS_NUM_SPATIAL_STREAMS]; + /* element 0: 20 MHz, 1: 40 MHz, 2: 80 MHz, 3: 160 and 80+80 MHz */ + u32 tx_bw[HTT_TX_PEER_STATS_NUM_BW_COUNTERS]; + u32 tx_stbc[HTT_TX_PEER_STATS_NUM_MCS_COUNTERS]; + u32 tx_pream[HTT_TX_PEER_STATS_NUM_PREAMBLE_TYPES]; + + /* Counters to track number of tx packets in each GI + * (400us, 800us, 1600us & 3200us) in each mcs (0-11) + */ + u32 tx_gi[HTT_TX_PEER_STATS_NUM_GI_COUNTERS][HTT_TX_PEER_STATS_NUM_MCS_COUNTERS]; + + /* Counters to track packets in dcm mcs (MCS 0, 1, 3, 4) */ + u32 tx_dcm[HTT_TX_PEER_STATS_NUM_DCM_COUNTERS]; + +}; + +#define HTT_RX_PEER_STATS_NUM_MCS_COUNTERS 12 +#define HTT_RX_PEER_STATS_NUM_GI_COUNTERS 4 +#define HTT_RX_PEER_STATS_NUM_DCM_COUNTERS 5 +#define HTT_RX_PEER_STATS_NUM_BW_COUNTERS 4 +#define HTT_RX_PEER_STATS_NUM_SPATIAL_STREAMS 8 +#define HTT_RX_PEER_STATS_NUM_PREAMBLE_TYPES HTT_STATS_PREAM_COUNT + +struct htt_rx_peer_rate_stats_tlv { + u32 nsts; + + /* Number of rx ldpc packets */ + u32 rx_ldpc; + /* Number of rx rts packets */ + u32 rts_cnt; + + u32 rssi_mgmt; /* units = dB above noise floor */ + u32 rssi_data; /* units = dB above noise floor */ + u32 rssi_comb; /* units = dB above noise floor */ + u32 rx_mcs[HTT_RX_PEER_STATS_NUM_MCS_COUNTERS]; + /* element 0,1, ...7 -> NSS 1,2, ...8 */ + u32 rx_nss[HTT_RX_PEER_STATS_NUM_SPATIAL_STREAMS]; + u32 rx_dcm[HTT_RX_PEER_STATS_NUM_DCM_COUNTERS]; + u32 rx_stbc[HTT_RX_PEER_STATS_NUM_MCS_COUNTERS]; + /* element 0: 20 MHz, 1: 40 MHz, 2: 80 MHz, 3: 160 and 80+80 MHz */ + u32 rx_bw[HTT_RX_PEER_STATS_NUM_BW_COUNTERS]; + u32 rx_pream[HTT_RX_PEER_STATS_NUM_PREAMBLE_TYPES]; + /* units = dB above noise floor */ + u8 rssi_chain[HTT_RX_PEER_STATS_NUM_SPATIAL_STREAMS] + [HTT_RX_PEER_STATS_NUM_BW_COUNTERS]; + + /* Counters to track number of rx packets in each GI in each mcs (0-11) */ + u32 rx_gi[HTT_RX_PEER_STATS_NUM_GI_COUNTERS] + [HTT_RX_PEER_STATS_NUM_MCS_COUNTERS]; +}; + +enum htt_peer_stats_req_mode { + HTT_PEER_STATS_REQ_MODE_NO_QUERY, + HTT_PEER_STATS_REQ_MODE_QUERY_TQM, + HTT_PEER_STATS_REQ_MODE_FLUSH_TQM, +}; + +enum htt_peer_stats_tlv_enum { + HTT_PEER_STATS_CMN_TLV = 0, + HTT_PEER_DETAILS_TLV = 1, + HTT_TX_PEER_RATE_STATS_TLV = 2, + HTT_RX_PEER_RATE_STATS_TLV = 3, + HTT_TX_TID_STATS_TLV = 4, + HTT_RX_TID_STATS_TLV = 5, + HTT_MSDU_FLOW_STATS_TLV = 6, + + HTT_PEER_STATS_MAX_TLV = 31, +}; + +/* =========== MUMIMO HWQ stats =========== */ +/* MU MIMO stats per hwQ */ +struct htt_tx_hwq_mu_mimo_sch_stats_tlv { + u32 mu_mimo_sch_posted; + u32 mu_mimo_sch_failed; + u32 mu_mimo_ppdu_posted; +}; + +struct htt_tx_hwq_mu_mimo_mpdu_stats_tlv { + u32 mu_mimo_mpdus_queued_usr; + u32 mu_mimo_mpdus_tried_usr; + u32 mu_mimo_mpdus_failed_usr; + u32 mu_mimo_mpdus_requeued_usr; + u32 mu_mimo_err_no_ba_usr; + u32 mu_mimo_mpdu_underrun_usr; + u32 mu_mimo_ampdu_underrun_usr; +}; + +struct htt_tx_hwq_mu_mimo_cmn_stats_tlv { + u32 mac_id__hwq_id__word; +}; + +/* == TX HWQ STATS == */ +struct htt_tx_hwq_stats_cmn_tlv { + u32 mac_id__hwq_id__word; + + /* PPDU level stats */ + u32 xretry; + u32 underrun_cnt; + u32 flush_cnt; + u32 filt_cnt; + u32 null_mpdu_bmap; + u32 user_ack_failure; + u32 ack_tlv_proc; + u32 sched_id_proc; + u32 null_mpdu_tx_count; + u32 mpdu_bmap_not_recvd; + + /* Selfgen stats per hwQ */ + u32 num_bar; + u32 rts; + u32 cts2self; + u32 qos_null; + + /* MPDU level stats */ + u32 mpdu_tried_cnt; + u32 mpdu_queued_cnt; + u32 mpdu_ack_fail_cnt; + u32 mpdu_filt_cnt; + u32 false_mpdu_ack_count; + + u32 txq_timeout; +}; + +/* NOTE: Variable length TLV, use length spec to infer array size */ +struct htt_tx_hwq_difs_latency_stats_tlv_v { + u32 hist_intvl; + /* histogram of ppdu post to hwsch - > cmd status received */ + u32 difs_latency_hist[]; /* HTT_TX_HWQ_MAX_DIFS_LATENCY_BINS */ +}; + +/* NOTE: Variable length TLV, use length spec to infer array size */ +struct htt_tx_hwq_cmd_result_stats_tlv_v { + /* Histogram of sched cmd result */ + u32 cmd_result[0]; /* HTT_TX_HWQ_MAX_CMD_RESULT_STATS */ +}; + +/* NOTE: Variable length TLV, use length spec to infer array size */ +struct htt_tx_hwq_cmd_stall_stats_tlv_v { + /* Histogram of various pause conitions */ + u32 cmd_stall_status[0]; /* HTT_TX_HWQ_MAX_CMD_STALL_STATS */ +}; + +/* NOTE: Variable length TLV, use length spec to infer array size */ +struct htt_tx_hwq_fes_result_stats_tlv_v { + /* Histogram of number of user fes result */ + u32 fes_result[0]; /* HTT_TX_HWQ_MAX_FES_RESULT_STATS */ +}; + +/* NOTE: Variable length TLV, use length spec to infer array size + * + * The hwq_tried_mpdu_cnt_hist is a histogram of MPDUs tries per HWQ. + * The tries here is the count of the MPDUS within a PPDU that the HW + * had attempted to transmit on air, for the HWSCH Schedule command + * submitted by FW in this HWQ .It is not the retry attempts. The + * histogram bins are 0-29, 30-59, 60-89 and so on. The are 10 bins + * in this histogram. + * they are defined in FW using the following macros + * #define WAL_MAX_TRIED_MPDU_CNT_HISTOGRAM 9 + * #define WAL_TRIED_MPDU_CNT_HISTOGRAM_INTERVAL 30 + */ +struct htt_tx_hwq_tried_mpdu_cnt_hist_tlv_v { + u32 hist_bin_size; + /* Histogram of number of mpdus on tried mpdu */ + u32 tried_mpdu_cnt_hist[]; /* HTT_TX_HWQ_TRIED_MPDU_CNT_HIST */ +}; + +/* NOTE: Variable length TLV, use length spec to infer array size + * + * The txop_used_cnt_hist is the histogram of txop per burst. After + * completing the burst, we identify the txop used in the burst and + * incr the corresponding bin. + * Each bin represents 1ms & we have 10 bins in this histogram. + * they are deined in FW using the following macros + * #define WAL_MAX_TXOP_USED_CNT_HISTOGRAM 10 + * #define WAL_TXOP_USED_HISTOGRAM_INTERVAL 1000 ( 1 ms ) + */ +struct htt_tx_hwq_txop_used_cnt_hist_tlv_v { + /* Histogram of txop used cnt */ + u32 txop_used_cnt_hist[0]; /* HTT_TX_HWQ_TXOP_USED_CNT_HIST */ +}; + +/* == TX SELFGEN STATS == */ +struct htt_tx_selfgen_cmn_stats_tlv { + u32 mac_id__word; + u32 su_bar; + u32 rts; + u32 cts2self; + u32 qos_null; + u32 delayed_bar_1; /* MU user 1 */ + u32 delayed_bar_2; /* MU user 2 */ + u32 delayed_bar_3; /* MU user 3 */ + u32 delayed_bar_4; /* MU user 4 */ + u32 delayed_bar_5; /* MU user 5 */ + u32 delayed_bar_6; /* MU user 6 */ + u32 delayed_bar_7; /* MU user 7 */ +}; + +struct htt_tx_selfgen_ac_stats_tlv { + /* 11AC */ + u32 ac_su_ndpa; + u32 ac_su_ndp; + u32 ac_mu_mimo_ndpa; + u32 ac_mu_mimo_ndp; + u32 ac_mu_mimo_brpoll_1; /* MU user 1 */ + u32 ac_mu_mimo_brpoll_2; /* MU user 2 */ + u32 ac_mu_mimo_brpoll_3; /* MU user 3 */ +}; + +struct htt_tx_selfgen_ax_stats_tlv { + /* 11AX */ + u32 ax_su_ndpa; + u32 ax_su_ndp; + u32 ax_mu_mimo_ndpa; + u32 ax_mu_mimo_ndp; + u32 ax_mu_mimo_brpoll_1; /* MU user 1 */ + u32 ax_mu_mimo_brpoll_2; /* MU user 2 */ + u32 ax_mu_mimo_brpoll_3; /* MU user 3 */ + u32 ax_mu_mimo_brpoll_4; /* MU user 4 */ + u32 ax_mu_mimo_brpoll_5; /* MU user 5 */ + u32 ax_mu_mimo_brpoll_6; /* MU user 6 */ + u32 ax_mu_mimo_brpoll_7; /* MU user 7 */ + u32 ax_basic_trigger; + u32 ax_bsr_trigger; + u32 ax_mu_bar_trigger; + u32 ax_mu_rts_trigger; +}; + +struct htt_tx_selfgen_ac_err_stats_tlv { + /* 11AC error stats */ + u32 ac_su_ndp_err; + u32 ac_su_ndpa_err; + u32 ac_mu_mimo_ndpa_err; + u32 ac_mu_mimo_ndp_err; + u32 ac_mu_mimo_brp1_err; + u32 ac_mu_mimo_brp2_err; + u32 ac_mu_mimo_brp3_err; +}; + +struct htt_tx_selfgen_ax_err_stats_tlv { + /* 11AX error stats */ + u32 ax_su_ndp_err; + u32 ax_su_ndpa_err; + u32 ax_mu_mimo_ndpa_err; + u32 ax_mu_mimo_ndp_err; + u32 ax_mu_mimo_brp1_err; + u32 ax_mu_mimo_brp2_err; + u32 ax_mu_mimo_brp3_err; + u32 ax_mu_mimo_brp4_err; + u32 ax_mu_mimo_brp5_err; + u32 ax_mu_mimo_brp6_err; + u32 ax_mu_mimo_brp7_err; + u32 ax_basic_trigger_err; + u32 ax_bsr_trigger_err; + u32 ax_mu_bar_trigger_err; + u32 ax_mu_rts_trigger_err; +}; + +/* == TX MU STATS == */ +#define HTT_TX_PDEV_STATS_NUM_AC_MUMIMO_USER_STATS 4 +#define HTT_TX_PDEV_STATS_NUM_AX_MUMIMO_USER_STATS 8 +#define HTT_TX_PDEV_STATS_NUM_OFDMA_USER_STATS 74 + +struct htt_tx_pdev_mu_mimo_sch_stats_tlv { + /* mu-mimo sw sched cmd stats */ + u32 mu_mimo_sch_posted; + u32 mu_mimo_sch_failed; + /* MU PPDU stats per hwQ */ + u32 mu_mimo_ppdu_posted; + /* + * Counts the number of users in each transmission of + * the given TX mode. + * + * Index is the number of users - 1. + */ + u32 ac_mu_mimo_sch_nusers[HTT_TX_PDEV_STATS_NUM_AC_MUMIMO_USER_STATS]; + u32 ax_mu_mimo_sch_nusers[HTT_TX_PDEV_STATS_NUM_AX_MUMIMO_USER_STATS]; + u32 ax_ofdma_sch_nusers[HTT_TX_PDEV_STATS_NUM_OFDMA_USER_STATS]; +}; + +struct htt_tx_pdev_mu_mimo_mpdu_stats_tlv { + u32 mu_mimo_mpdus_queued_usr; + u32 mu_mimo_mpdus_tried_usr; + u32 mu_mimo_mpdus_failed_usr; + u32 mu_mimo_mpdus_requeued_usr; + u32 mu_mimo_err_no_ba_usr; + u32 mu_mimo_mpdu_underrun_usr; + u32 mu_mimo_ampdu_underrun_usr; + + u32 ax_mu_mimo_mpdus_queued_usr; + u32 ax_mu_mimo_mpdus_tried_usr; + u32 ax_mu_mimo_mpdus_failed_usr; + u32 ax_mu_mimo_mpdus_requeued_usr; + u32 ax_mu_mimo_err_no_ba_usr; + u32 ax_mu_mimo_mpdu_underrun_usr; + u32 ax_mu_mimo_ampdu_underrun_usr; + + u32 ax_ofdma_mpdus_queued_usr; + u32 ax_ofdma_mpdus_tried_usr; + u32 ax_ofdma_mpdus_failed_usr; + u32 ax_ofdma_mpdus_requeued_usr; + u32 ax_ofdma_err_no_ba_usr; + u32 ax_ofdma_mpdu_underrun_usr; + u32 ax_ofdma_ampdu_underrun_usr; +}; + +#define HTT_STATS_TX_SCHED_MODE_MU_MIMO_AC 1 +#define HTT_STATS_TX_SCHED_MODE_MU_MIMO_AX 2 +#define HTT_STATS_TX_SCHED_MODE_MU_OFDMA_AX 3 + +struct htt_tx_pdev_mpdu_stats_tlv { + /* mpdu level stats */ + u32 mpdus_queued_usr; + u32 mpdus_tried_usr; + u32 mpdus_failed_usr; + u32 mpdus_requeued_usr; + u32 err_no_ba_usr; + u32 mpdu_underrun_usr; + u32 ampdu_underrun_usr; + u32 user_index; + u32 tx_sched_mode; /* HTT_STATS_TX_SCHED_MODE_xxx */ +}; + +/* == TX SCHED STATS == */ +/* NOTE: Variable length TLV, use length spec to infer array size */ +struct htt_sched_txq_cmd_posted_tlv_v { + u32 sched_cmd_posted[0]; /* HTT_TX_PDEV_SCHED_TX_MODE_MAX */ +}; + +/* NOTE: Variable length TLV, use length spec to infer array size */ +struct htt_sched_txq_cmd_reaped_tlv_v { + u32 sched_cmd_reaped[0]; /* HTT_TX_PDEV_SCHED_TX_MODE_MAX */ +}; + +/* NOTE: Variable length TLV, use length spec to infer array size */ +struct htt_sched_txq_sched_order_su_tlv_v { + u32 sched_order_su[0]; /* HTT_TX_PDEV_NUM_SCHED_ORDER_LOG */ +}; + +enum htt_sched_txq_sched_ineligibility_tlv_enum { + HTT_SCHED_TID_SKIP_SCHED_MASK_DISABLED = 0, + HTT_SCHED_TID_SKIP_NOTIFY_MPDU, + HTT_SCHED_TID_SKIP_MPDU_STATE_INVALID, + HTT_SCHED_TID_SKIP_SCHED_DISABLED, + HTT_SCHED_TID_SKIP_TQM_BYPASS_CMD_PENDING, + HTT_SCHED_TID_SKIP_SECOND_SU_SCHEDULE, + + HTT_SCHED_TID_SKIP_CMD_SLOT_NOT_AVAIL, + HTT_SCHED_TID_SKIP_NO_ENQ, + HTT_SCHED_TID_SKIP_LOW_ENQ, + HTT_SCHED_TID_SKIP_PAUSED, + HTT_SCHED_TID_SKIP_UL, + HTT_SCHED_TID_REMOVE_PAUSED, + HTT_SCHED_TID_REMOVE_NO_ENQ, + HTT_SCHED_TID_REMOVE_UL, + HTT_SCHED_TID_QUERY, + HTT_SCHED_TID_SU_ONLY, + HTT_SCHED_TID_ELIGIBLE, + HTT_SCHED_INELIGIBILITY_MAX, +}; + +/* NOTE: Variable length TLV, use length spec to infer array size */ +struct htt_sched_txq_sched_ineligibility_tlv_v { + /* indexed by htt_sched_txq_sched_ineligibility_tlv_enum */ + u32 sched_ineligibility[0]; +}; + +struct htt_tx_pdev_stats_sched_per_txq_tlv { + u32 mac_id__txq_id__word; + u32 sched_policy; + u32 last_sched_cmd_posted_timestamp; + u32 last_sched_cmd_compl_timestamp; + u32 sched_2_tac_lwm_count; + u32 sched_2_tac_ring_full; + u32 sched_cmd_post_failure; + u32 num_active_tids; + u32 num_ps_schedules; + u32 sched_cmds_pending; + u32 num_tid_register; + u32 num_tid_unregister; + u32 num_qstats_queried; + u32 qstats_update_pending; + u32 last_qstats_query_timestamp; + u32 num_tqm_cmdq_full; + u32 num_de_sched_algo_trigger; + u32 num_rt_sched_algo_trigger; + u32 num_tqm_sched_algo_trigger; + u32 notify_sched; + u32 dur_based_sendn_term; +}; + +struct htt_stats_tx_sched_cmn_tlv { + /* BIT [ 7 : 0] :- mac_id + * BIT [31 : 8] :- reserved + */ + u32 mac_id__word; + /* Current timestamp */ + u32 current_timestamp; +}; + +/* == TQM STATS == */ +#define HTT_TX_TQM_MAX_GEN_MPDU_END_REASON 16 +#define HTT_TX_TQM_MAX_LIST_MPDU_END_REASON 16 +#define HTT_TX_TQM_MAX_LIST_MPDU_CNT_HISTOGRAM_BINS 16 + +/* NOTE: Variable length TLV, use length spec to infer array size */ +struct htt_tx_tqm_gen_mpdu_stats_tlv_v { + u32 gen_mpdu_end_reason[0]; /* HTT_TX_TQM_MAX_GEN_MPDU_END_REASON */ +}; + +/* NOTE: Variable length TLV, use length spec to infer array size */ +struct htt_tx_tqm_list_mpdu_stats_tlv_v { + u32 list_mpdu_end_reason[0]; /* HTT_TX_TQM_MAX_LIST_MPDU_END_REASON */ +}; + +/* NOTE: Variable length TLV, use length spec to infer array size */ +struct htt_tx_tqm_list_mpdu_cnt_tlv_v { + u32 list_mpdu_cnt_hist[0]; + /* HTT_TX_TQM_MAX_LIST_MPDU_CNT_HISTOGRAM_BINS */ +}; + +struct htt_tx_tqm_pdev_stats_tlv_v { + u32 msdu_count; + u32 mpdu_count; + u32 remove_msdu; + u32 remove_mpdu; + u32 remove_msdu_ttl; + u32 send_bar; + u32 bar_sync; + u32 notify_mpdu; + u32 sync_cmd; + u32 write_cmd; + u32 hwsch_trigger; + u32 ack_tlv_proc; + u32 gen_mpdu_cmd; + u32 gen_list_cmd; + u32 remove_mpdu_cmd; + u32 remove_mpdu_tried_cmd; + u32 mpdu_queue_stats_cmd; + u32 mpdu_head_info_cmd; + u32 msdu_flow_stats_cmd; + u32 remove_msdu_cmd; + u32 remove_msdu_ttl_cmd; + u32 flush_cache_cmd; + u32 update_mpduq_cmd; + u32 enqueue; + u32 enqueue_notify; + u32 notify_mpdu_at_head; + u32 notify_mpdu_state_valid; + /* + * On receiving TQM_FLOW_NOT_EMPTY_STATUS from TQM, (on MSDUs being enqueued + * the flow is non empty), if the number of MSDUs is greater than the threshold, + * notify is incremented. UDP_THRESH counters are for UDP MSDUs, and NONUDP are + * for non-UDP MSDUs. + * MSDUQ_SWNOTIFY_UDP_THRESH1 threshold - sched_udp_notify1 is incremented + * MSDUQ_SWNOTIFY_UDP_THRESH2 threshold - sched_udp_notify2 is incremented + * MSDUQ_SWNOTIFY_NONUDP_THRESH1 threshold - sched_nonudp_notify1 is incremented + * MSDUQ_SWNOTIFY_NONUDP_THRESH2 threshold - sched_nonudp_notify2 is incremented + * + * Notify signifies that we trigger the scheduler. + */ + u32 sched_udp_notify1; + u32 sched_udp_notify2; + u32 sched_nonudp_notify1; + u32 sched_nonudp_notify2; +}; + +struct htt_tx_tqm_cmn_stats_tlv { + u32 mac_id__word; + u32 max_cmdq_id; + u32 list_mpdu_cnt_hist_intvl; + + /* Global stats */ + u32 add_msdu; + u32 q_empty; + u32 q_not_empty; + u32 drop_notification; + u32 desc_threshold; +}; + +struct htt_tx_tqm_error_stats_tlv { + /* Error stats */ + u32 q_empty_failure; + u32 q_not_empty_failure; + u32 add_msdu_failure; +}; + +/* == TQM CMDQ stats == */ +struct htt_tx_tqm_cmdq_status_tlv { + u32 mac_id__cmdq_id__word; + u32 sync_cmd; + u32 write_cmd; + u32 gen_mpdu_cmd; + u32 mpdu_queue_stats_cmd; + u32 mpdu_head_info_cmd; + u32 msdu_flow_stats_cmd; + u32 remove_mpdu_cmd; + u32 remove_msdu_cmd; + u32 flush_cache_cmd; + u32 update_mpduq_cmd; + u32 update_msduq_cmd; +}; + +/* == TX-DE STATS == */ +/* Structures for tx de stats */ +struct htt_tx_de_eapol_packets_stats_tlv { + u32 m1_packets; + u32 m2_packets; + u32 m3_packets; + u32 m4_packets; + u32 g1_packets; + u32 g2_packets; +}; + +struct htt_tx_de_classify_failed_stats_tlv { + u32 ap_bss_peer_not_found; + u32 ap_bcast_mcast_no_peer; + u32 sta_delete_in_progress; + u32 ibss_no_bss_peer; + u32 invalid_vdev_type; + u32 invalid_ast_peer_entry; + u32 peer_entry_invalid; + u32 ethertype_not_ip; + u32 eapol_lookup_failed; + u32 qpeer_not_allow_data; + u32 fse_tid_override; + u32 ipv6_jumbogram_zero_length; + u32 qos_to_non_qos_in_prog; +}; + +struct htt_tx_de_classify_stats_tlv { + u32 arp_packets; + u32 igmp_packets; + u32 dhcp_packets; + u32 host_inspected; + u32 htt_included; + u32 htt_valid_mcs; + u32 htt_valid_nss; + u32 htt_valid_preamble_type; + u32 htt_valid_chainmask; + u32 htt_valid_guard_interval; + u32 htt_valid_retries; + u32 htt_valid_bw_info; + u32 htt_valid_power; + u32 htt_valid_key_flags; + u32 htt_valid_no_encryption; + u32 fse_entry_count; + u32 fse_priority_be; + u32 fse_priority_high; + u32 fse_priority_low; + u32 fse_traffic_ptrn_be; + u32 fse_traffic_ptrn_over_sub; + u32 fse_traffic_ptrn_bursty; + u32 fse_traffic_ptrn_interactive; + u32 fse_traffic_ptrn_periodic; + u32 fse_hwqueue_alloc; + u32 fse_hwqueue_created; + u32 fse_hwqueue_send_to_host; + u32 mcast_entry; + u32 bcast_entry; + u32 htt_update_peer_cache; + u32 htt_learning_frame; + u32 fse_invalid_peer; + /* + * mec_notify is HTT TX WBM multicast echo check notification + * from firmware to host. FW sends SA addresses to host for all + * multicast/broadcast packets received on STA side. + */ + u32 mec_notify; +}; + +struct htt_tx_de_classify_status_stats_tlv { + u32 eok; + u32 classify_done; + u32 lookup_failed; + u32 send_host_dhcp; + u32 send_host_mcast; + u32 send_host_unknown_dest; + u32 send_host; + u32 status_invalid; +}; + +struct htt_tx_de_enqueue_packets_stats_tlv { + u32 enqueued_pkts; + u32 to_tqm; + u32 to_tqm_bypass; +}; + +struct htt_tx_de_enqueue_discard_stats_tlv { + u32 discarded_pkts; + u32 local_frames; + u32 is_ext_msdu; +}; + +struct htt_tx_de_compl_stats_tlv { + u32 tcl_dummy_frame; + u32 tqm_dummy_frame; + u32 tqm_notify_frame; + u32 fw2wbm_enq; + u32 tqm_bypass_frame; +}; + +/* + * The htt_tx_de_fw2wbm_ring_full_hist_tlv is a histogram of time we waited + * for the fw2wbm ring buffer. we are requesting a buffer in FW2WBM release + * ring,which may fail, due to non availability of buffer. Hence we sleep for + * 200us & again request for it. This is a histogram of time we wait, with + * bin of 200ms & there are 10 bin (2 seconds max) + * They are defined by the following macros in FW + * #define ENTRIES_PER_BIN_COUNT 1000 // per bin 1000 * 200us = 200ms + * #define RING_FULL_BIN_ENTRIES (WAL_TX_DE_FW2WBM_ALLOC_TIMEOUT_COUNT / + * ENTRIES_PER_BIN_COUNT) + */ +struct htt_tx_de_fw2wbm_ring_full_hist_tlv { + u32 fw2wbm_ring_full_hist[0]; +}; + +struct htt_tx_de_cmn_stats_tlv { + u32 mac_id__word; + + /* Global Stats */ + u32 tcl2fw_entry_count; + u32 not_to_fw; + u32 invalid_pdev_vdev_peer; + u32 tcl_res_invalid_addrx; + u32 wbm2fw_entry_count; + u32 invalid_pdev; +}; + +/* == RING-IF STATS == */ +#define HTT_STATS_LOW_WM_BINS 5 +#define HTT_STATS_HIGH_WM_BINS 5 + +struct htt_ring_if_stats_tlv { + u32 base_addr; /* DWORD aligned base memory address of the ring */ + u32 elem_size; + u32 num_elems__prefetch_tail_idx; + u32 head_idx__tail_idx; + u32 shadow_head_idx__shadow_tail_idx; + u32 num_tail_incr; + u32 lwm_thresh__hwm_thresh; + u32 overrun_hit_count; + u32 underrun_hit_count; + u32 prod_blockwait_count; + u32 cons_blockwait_count; + u32 low_wm_hit_count[HTT_STATS_LOW_WM_BINS]; + u32 high_wm_hit_count[HTT_STATS_HIGH_WM_BINS]; +}; + +struct htt_ring_if_cmn_tlv { + u32 mac_id__word; + u32 num_records; +}; + +/* == SFM STATS == */ +/* NOTE: Variable length TLV, use length spec to infer array size */ +struct htt_sfm_client_user_tlv_v { + /* Number of DWORDS used per user and per client */ + u32 dwords_used_by_user_n[0]; +}; + +struct htt_sfm_client_tlv { + /* Client ID */ + u32 client_id; + /* Minimum number of buffers */ + u32 buf_min; + /* Maximum number of buffers */ + u32 buf_max; + /* Number of Busy buffers */ + u32 buf_busy; + /* Number of Allocated buffers */ + u32 buf_alloc; + /* Number of Available/Usable buffers */ + u32 buf_avail; + /* Number of users */ + u32 num_users; +}; + +struct htt_sfm_cmn_tlv { + u32 mac_id__word; + /* Indicates the total number of 128 byte buffers + * in the CMEM that are available for buffer sharing + */ + u32 buf_total; + /* Indicates for certain client or all the clients + * there is no dowrd saved in SFM, refer to SFM_R1_MEM_EMPTY + */ + u32 mem_empty; + /* DEALLOCATE_BUFFERS, refer to register SFM_R0_DEALLOCATE_BUFFERS */ + u32 deallocate_bufs; + /* Number of Records */ + u32 num_records; +}; + +/* == SRNG STATS == */ +struct htt_sring_stats_tlv { + u32 mac_id__ring_id__arena__ep; + u32 base_addr_lsb; /* DWORD aligned base memory address of the ring */ + u32 base_addr_msb; + u32 ring_size; + u32 elem_size; + + u32 num_avail_words__num_valid_words; + u32 head_ptr__tail_ptr; + u32 consumer_empty__producer_full; + u32 prefetch_count__internal_tail_ptr; +}; + +struct htt_sring_cmn_tlv { + u32 num_records; +}; + +/* == PDEV TX RATE CTRL STATS == */ +#define HTT_TX_PDEV_STATS_NUM_MCS_COUNTERS 12 +#define HTT_TX_PDEV_STATS_NUM_GI_COUNTERS 4 +#define HTT_TX_PDEV_STATS_NUM_DCM_COUNTERS 5 +#define HTT_TX_PDEV_STATS_NUM_BW_COUNTERS 4 +#define HTT_TX_PDEV_STATS_NUM_SPATIAL_STREAMS 8 +#define HTT_TX_PDEV_STATS_NUM_PREAMBLE_TYPES HTT_STATS_PREAM_COUNT +#define HTT_TX_PDEV_STATS_NUM_LEGACY_CCK_STATS 4 +#define HTT_TX_PDEV_STATS_NUM_LEGACY_OFDM_STATS 8 +#define HTT_TX_PDEV_STATS_NUM_LTF 4 + +#define HTT_TX_NUM_OF_SOUNDING_STATS_WORDS \ + (HTT_TX_PDEV_STATS_NUM_BW_COUNTERS * \ + HTT_TX_PDEV_STATS_NUM_AX_MUMIMO_USER_STATS) + +struct htt_tx_pdev_rate_stats_tlv { + u32 mac_id__word; + u32 tx_ldpc; + u32 rts_cnt; + /* RSSI value of last ack packet (units = dB above noise floor) */ + u32 ack_rssi; + + u32 tx_mcs[HTT_TX_PDEV_STATS_NUM_MCS_COUNTERS]; + + u32 tx_su_mcs[HTT_TX_PDEV_STATS_NUM_MCS_COUNTERS]; + u32 tx_mu_mcs[HTT_TX_PDEV_STATS_NUM_MCS_COUNTERS]; + + /* element 0,1, ...7 -> NSS 1,2, ...8 */ + u32 tx_nss[HTT_TX_PDEV_STATS_NUM_SPATIAL_STREAMS]; + /* element 0: 20 MHz, 1: 40 MHz, 2: 80 MHz, 3: 160 and 80+80 MHz */ + u32 tx_bw[HTT_TX_PDEV_STATS_NUM_BW_COUNTERS]; + u32 tx_stbc[HTT_TX_PDEV_STATS_NUM_MCS_COUNTERS]; + u32 tx_pream[HTT_TX_PDEV_STATS_NUM_PREAMBLE_TYPES]; + + /* Counters to track number of tx packets + * in each GI (400us, 800us, 1600us & 3200us) in each mcs (0-11) + */ + u32 tx_gi[HTT_TX_PDEV_STATS_NUM_GI_COUNTERS][HTT_TX_PDEV_STATS_NUM_MCS_COUNTERS]; + + /* Counters to track packets in dcm mcs (MCS 0, 1, 3, 4) */ + u32 tx_dcm[HTT_TX_PDEV_STATS_NUM_DCM_COUNTERS]; + /* Number of CTS-acknowledged RTS packets */ + u32 rts_success; + + /* + * Counters for legacy 11a and 11b transmissions. + * + * The index corresponds to: + * + * CCK: 0: 1 Mbps, 1: 2 Mbps, 2: 5.5 Mbps, 3: 11 Mbps + * + * OFDM: 0: 6 Mbps, 1: 9 Mbps, 2: 12 Mbps, 3: 18 Mbps, + * 4: 24 Mbps, 5: 36 Mbps, 6: 48 Mbps, 7: 54 Mbps + */ + u32 tx_legacy_cck_rate[HTT_TX_PDEV_STATS_NUM_LEGACY_CCK_STATS]; + u32 tx_legacy_ofdm_rate[HTT_TX_PDEV_STATS_NUM_LEGACY_OFDM_STATS]; + + u32 ac_mu_mimo_tx_ldpc; + u32 ax_mu_mimo_tx_ldpc; + u32 ofdma_tx_ldpc; + + /* + * Counters for 11ax HE LTF selection during TX. + * + * The index corresponds to: + * + * 0: unused, 1: 1x LTF, 2: 2x LTF, 3: 4x LTF + */ + u32 tx_he_ltf[HTT_TX_PDEV_STATS_NUM_LTF]; + + u32 ac_mu_mimo_tx_mcs[HTT_TX_PDEV_STATS_NUM_MCS_COUNTERS]; + u32 ax_mu_mimo_tx_mcs[HTT_TX_PDEV_STATS_NUM_MCS_COUNTERS]; + u32 ofdma_tx_mcs[HTT_TX_PDEV_STATS_NUM_MCS_COUNTERS]; + + u32 ac_mu_mimo_tx_nss[HTT_TX_PDEV_STATS_NUM_SPATIAL_STREAMS]; + u32 ax_mu_mimo_tx_nss[HTT_TX_PDEV_STATS_NUM_SPATIAL_STREAMS]; + u32 ofdma_tx_nss[HTT_TX_PDEV_STATS_NUM_SPATIAL_STREAMS]; + + u32 ac_mu_mimo_tx_bw[HTT_TX_PDEV_STATS_NUM_BW_COUNTERS]; + u32 ax_mu_mimo_tx_bw[HTT_TX_PDEV_STATS_NUM_BW_COUNTERS]; + u32 ofdma_tx_bw[HTT_TX_PDEV_STATS_NUM_BW_COUNTERS]; + + u32 ac_mu_mimo_tx_gi[HTT_TX_PDEV_STATS_NUM_GI_COUNTERS] + [HTT_TX_PDEV_STATS_NUM_MCS_COUNTERS]; + u32 ax_mu_mimo_tx_gi[HTT_TX_PDEV_STATS_NUM_GI_COUNTERS] + [HTT_TX_PDEV_STATS_NUM_MCS_COUNTERS]; + u32 ofdma_tx_gi[HTT_TX_PDEV_STATS_NUM_GI_COUNTERS] + [HTT_TX_PDEV_STATS_NUM_MCS_COUNTERS]; +}; + +/* == PDEV RX RATE CTRL STATS == */ +#define HTT_RX_PDEV_STATS_NUM_LEGACY_CCK_STATS 4 +#define HTT_RX_PDEV_STATS_NUM_LEGACY_OFDM_STATS 8 +#define HTT_RX_PDEV_STATS_NUM_MCS_COUNTERS 12 +#define HTT_RX_PDEV_STATS_NUM_GI_COUNTERS 4 +#define HTT_RX_PDEV_STATS_NUM_DCM_COUNTERS 5 +#define HTT_RX_PDEV_STATS_NUM_BW_COUNTERS 4 +#define HTT_RX_PDEV_STATS_NUM_SPATIAL_STREAMS 8 +#define HTT_RX_PDEV_STATS_NUM_PREAMBLE_TYPES HTT_STATS_PREAM_COUNT +#define HTT_RX_PDEV_MAX_OFDMA_NUM_USER 8 +#define HTT_RX_PDEV_STATS_RXEVM_MAX_PILOTS_PER_NSS 16 + +struct htt_rx_pdev_rate_stats_tlv { + u32 mac_id__word; + u32 nsts; + + u32 rx_ldpc; + u32 rts_cnt; + + u32 rssi_mgmt; /* units = dB above noise floor */ + u32 rssi_data; /* units = dB above noise floor */ + u32 rssi_comb; /* units = dB above noise floor */ + u32 rx_mcs[HTT_RX_PDEV_STATS_NUM_MCS_COUNTERS]; + /* element 0,1, ...7 -> NSS 1,2, ...8 */ + u32 rx_nss[HTT_RX_PDEV_STATS_NUM_SPATIAL_STREAMS]; + u32 rx_dcm[HTT_RX_PDEV_STATS_NUM_DCM_COUNTERS]; + u32 rx_stbc[HTT_RX_PDEV_STATS_NUM_MCS_COUNTERS]; + /* element 0: 20 MHz, 1: 40 MHz, 2: 80 MHz, 3: 160 and 80+80 MHz */ + u32 rx_bw[HTT_RX_PDEV_STATS_NUM_BW_COUNTERS]; + u32 rx_pream[HTT_RX_PDEV_STATS_NUM_PREAMBLE_TYPES]; + u8 rssi_chain[HTT_RX_PDEV_STATS_NUM_SPATIAL_STREAMS] + [HTT_RX_PDEV_STATS_NUM_BW_COUNTERS]; + /* units = dB above noise floor */ + + /* Counters to track number of rx packets + * in each GI in each mcs (0-11) + */ + u32 rx_gi[HTT_RX_PDEV_STATS_NUM_GI_COUNTERS][HTT_RX_PDEV_STATS_NUM_MCS_COUNTERS]; + s32 rssi_in_dbm; /* rx Signal Strength value in dBm unit */ + + u32 rx_11ax_su_ext; + u32 rx_11ac_mumimo; + u32 rx_11ax_mumimo; + u32 rx_11ax_ofdma; + u32 txbf; + u32 rx_legacy_cck_rate[HTT_RX_PDEV_STATS_NUM_LEGACY_CCK_STATS]; + u32 rx_legacy_ofdm_rate[HTT_RX_PDEV_STATS_NUM_LEGACY_OFDM_STATS]; + u32 rx_active_dur_us_low; + u32 rx_active_dur_us_high; + + u32 rx_11ax_ul_ofdma; + + u32 ul_ofdma_rx_mcs[HTT_RX_PDEV_STATS_NUM_MCS_COUNTERS]; + u32 ul_ofdma_rx_gi[HTT_TX_PDEV_STATS_NUM_GI_COUNTERS] + [HTT_RX_PDEV_STATS_NUM_MCS_COUNTERS]; + u32 ul_ofdma_rx_nss[HTT_TX_PDEV_STATS_NUM_SPATIAL_STREAMS]; + u32 ul_ofdma_rx_bw[HTT_TX_PDEV_STATS_NUM_BW_COUNTERS]; + u32 ul_ofdma_rx_stbc; + u32 ul_ofdma_rx_ldpc; + + /* record the stats for each user index */ + u32 rx_ulofdma_non_data_ppdu[HTT_RX_PDEV_MAX_OFDMA_NUM_USER]; /* ppdu level */ + u32 rx_ulofdma_data_ppdu[HTT_RX_PDEV_MAX_OFDMA_NUM_USER]; /* ppdu level */ + u32 rx_ulofdma_mpdu_ok[HTT_RX_PDEV_MAX_OFDMA_NUM_USER]; /* mpdu level */ + u32 rx_ulofdma_mpdu_fail[HTT_RX_PDEV_MAX_OFDMA_NUM_USER]; /* mpdu level */ + + u32 nss_count; + u32 pilot_count; + /* RxEVM stats in dB */ + s32 rx_pilot_evm_db[HTT_RX_PDEV_STATS_NUM_SPATIAL_STREAMS] + [HTT_RX_PDEV_STATS_RXEVM_MAX_PILOTS_PER_NSS]; + /* rx_pilot_evm_db_mean: + * EVM mean across pilots, computed as + * mean(10*log10(rx_pilot_evm_linear)) = mean(rx_pilot_evm_db) + */ + s32 rx_pilot_evm_db_mean[HTT_RX_PDEV_STATS_NUM_SPATIAL_STREAMS]; + s8 rx_ul_fd_rssi[HTT_RX_PDEV_STATS_NUM_SPATIAL_STREAMS] + [HTT_RX_PDEV_MAX_OFDMA_NUM_USER]; /* dBm units */ + /* per_chain_rssi_pkt_type: + * This field shows what type of rx frame the per-chain RSSI was computed + * on, by recording the frame type and sub-type as bit-fields within this + * field: + * BIT [3 : 0] :- IEEE80211_FC0_TYPE + * BIT [7 : 4] :- IEEE80211_FC0_SUBTYPE + * BIT [31 : 8] :- Reserved + */ + u32 per_chain_rssi_pkt_type; + s8 rx_per_chain_rssi_in_dbm[HTT_RX_PDEV_STATS_NUM_SPATIAL_STREAMS] + [HTT_RX_PDEV_STATS_NUM_BW_COUNTERS]; +}; + +/* == RX PDEV/SOC STATS == */ +struct htt_rx_soc_fw_stats_tlv { + u32 fw_reo_ring_data_msdu; + u32 fw_to_host_data_msdu_bcmc; + u32 fw_to_host_data_msdu_uc; + u32 ofld_remote_data_buf_recycle_cnt; + u32 ofld_remote_free_buf_indication_cnt; + + u32 ofld_buf_to_host_data_msdu_uc; + u32 reo_fw_ring_to_host_data_msdu_uc; + + u32 wbm_sw_ring_reap; + u32 wbm_forward_to_host_cnt; + u32 wbm_target_recycle_cnt; + + u32 target_refill_ring_recycle_cnt; +}; + +/* NOTE: Variable length TLV, use length spec to infer array size */ +struct htt_rx_soc_fw_refill_ring_empty_tlv_v { + u32 refill_ring_empty_cnt[0]; /* HTT_RX_STATS_REFILL_MAX_RING */ +}; + +/* NOTE: Variable length TLV, use length spec to infer array size */ +struct htt_rx_soc_fw_refill_ring_num_refill_tlv_v { + u32 refill_ring_num_refill[0]; /* HTT_RX_STATS_REFILL_MAX_RING */ +}; + +/* RXDMA error code from WBM released packets */ +enum htt_rx_rxdma_error_code_enum { + HTT_RX_RXDMA_OVERFLOW_ERR = 0, + HTT_RX_RXDMA_MPDU_LENGTH_ERR = 1, + HTT_RX_RXDMA_FCS_ERR = 2, + HTT_RX_RXDMA_DECRYPT_ERR = 3, + HTT_RX_RXDMA_TKIP_MIC_ERR = 4, + HTT_RX_RXDMA_UNECRYPTED_ERR = 5, + HTT_RX_RXDMA_MSDU_LEN_ERR = 6, + HTT_RX_RXDMA_MSDU_LIMIT_ERR = 7, + HTT_RX_RXDMA_WIFI_PARSE_ERR = 8, + HTT_RX_RXDMA_AMSDU_PARSE_ERR = 9, + HTT_RX_RXDMA_SA_TIMEOUT_ERR = 10, + HTT_RX_RXDMA_DA_TIMEOUT_ERR = 11, + HTT_RX_RXDMA_FLOW_TIMEOUT_ERR = 12, + HTT_RX_RXDMA_FLUSH_REQUEST = 13, + HTT_RX_RXDMA_ERR_CODE_RVSD0 = 14, + HTT_RX_RXDMA_ERR_CODE_RVSD1 = 15, + + /* This MAX_ERR_CODE should not be used in any host/target messages, + * so that even though it is defined within a host/target interface + * definition header file, it isn't actually part of the host/target + * interface, and thus can be modified. + */ + HTT_RX_RXDMA_MAX_ERR_CODE +}; + +/* NOTE: Variable length TLV, use length spec to infer array size */ +struct htt_rx_soc_fw_refill_ring_num_rxdma_err_tlv_v { + u32 rxdma_err[0]; /* HTT_RX_RXDMA_MAX_ERR_CODE */ +}; + +/* REO error code from WBM released packets */ +enum htt_rx_reo_error_code_enum { + HTT_RX_REO_QUEUE_DESC_ADDR_ZERO = 0, + HTT_RX_REO_QUEUE_DESC_NOT_VALID = 1, + HTT_RX_AMPDU_IN_NON_BA = 2, + HTT_RX_NON_BA_DUPLICATE = 3, + HTT_RX_BA_DUPLICATE = 4, + HTT_RX_REGULAR_FRAME_2K_JUMP = 5, + HTT_RX_BAR_FRAME_2K_JUMP = 6, + HTT_RX_REGULAR_FRAME_OOR = 7, + HTT_RX_BAR_FRAME_OOR = 8, + HTT_RX_BAR_FRAME_NO_BA_SESSION = 9, + HTT_RX_BAR_FRAME_SN_EQUALS_SSN = 10, + HTT_RX_PN_CHECK_FAILED = 11, + HTT_RX_2K_ERROR_HANDLING_FLAG_SET = 12, + HTT_RX_PN_ERROR_HANDLING_FLAG_SET = 13, + HTT_RX_QUEUE_DESCRIPTOR_BLOCKED_SET = 14, + HTT_RX_REO_ERR_CODE_RVSD = 15, + + /* This MAX_ERR_CODE should not be used in any host/target messages, + * so that even though it is defined within a host/target interface + * definition header file, it isn't actually part of the host/target + * interface, and thus can be modified. + */ + HTT_RX_REO_MAX_ERR_CODE +}; + +/* NOTE: Variable length TLV, use length spec to infer array size */ +struct htt_rx_soc_fw_refill_ring_num_reo_err_tlv_v { + u32 reo_err[0]; /* HTT_RX_REO_MAX_ERR_CODE */ +}; + +/* == RX PDEV STATS == */ +#define HTT_STATS_SUBTYPE_MAX 16 + +struct htt_rx_pdev_fw_stats_tlv { + u32 mac_id__word; + u32 ppdu_recvd; + u32 mpdu_cnt_fcs_ok; + u32 mpdu_cnt_fcs_err; + u32 tcp_msdu_cnt; + u32 tcp_ack_msdu_cnt; + u32 udp_msdu_cnt; + u32 other_msdu_cnt; + u32 fw_ring_mpdu_ind; + u32 fw_ring_mgmt_subtype[HTT_STATS_SUBTYPE_MAX]; + u32 fw_ring_ctrl_subtype[HTT_STATS_SUBTYPE_MAX]; + u32 fw_ring_mcast_data_msdu; + u32 fw_ring_bcast_data_msdu; + u32 fw_ring_ucast_data_msdu; + u32 fw_ring_null_data_msdu; + u32 fw_ring_mpdu_drop; + u32 ofld_local_data_ind_cnt; + u32 ofld_local_data_buf_recycle_cnt; + u32 drx_local_data_ind_cnt; + u32 drx_local_data_buf_recycle_cnt; + u32 local_nondata_ind_cnt; + u32 local_nondata_buf_recycle_cnt; + + u32 fw_status_buf_ring_refill_cnt; + u32 fw_status_buf_ring_empty_cnt; + u32 fw_pkt_buf_ring_refill_cnt; + u32 fw_pkt_buf_ring_empty_cnt; + u32 fw_link_buf_ring_refill_cnt; + u32 fw_link_buf_ring_empty_cnt; + + u32 host_pkt_buf_ring_refill_cnt; + u32 host_pkt_buf_ring_empty_cnt; + u32 mon_pkt_buf_ring_refill_cnt; + u32 mon_pkt_buf_ring_empty_cnt; + u32 mon_status_buf_ring_refill_cnt; + u32 mon_status_buf_ring_empty_cnt; + u32 mon_desc_buf_ring_refill_cnt; + u32 mon_desc_buf_ring_empty_cnt; + u32 mon_dest_ring_update_cnt; + u32 mon_dest_ring_full_cnt; + + u32 rx_suspend_cnt; + u32 rx_suspend_fail_cnt; + u32 rx_resume_cnt; + u32 rx_resume_fail_cnt; + u32 rx_ring_switch_cnt; + u32 rx_ring_restore_cnt; + u32 rx_flush_cnt; + u32 rx_recovery_reset_cnt; +}; + +#define HTT_STATS_PHY_ERR_MAX 43 + +struct htt_rx_pdev_fw_stats_phy_err_tlv { + u32 mac_id__word; + u32 total_phy_err_cnt; + /* Counts of different types of phy errs + * The mapping of PHY error types to phy_err array elements is HW dependent. + * The only currently-supported mapping is shown below: + * + * 0 phyrx_err_phy_off Reception aborted due to receiving a PHY_OFF TLV + * 1 phyrx_err_synth_off + * 2 phyrx_err_ofdma_timing + * 3 phyrx_err_ofdma_signal_parity + * 4 phyrx_err_ofdma_rate_illegal + * 5 phyrx_err_ofdma_length_illegal + * 6 phyrx_err_ofdma_restart + * 7 phyrx_err_ofdma_service + * 8 phyrx_err_ppdu_ofdma_power_drop + * 9 phyrx_err_cck_blokker + * 10 phyrx_err_cck_timing + * 11 phyrx_err_cck_header_crc + * 12 phyrx_err_cck_rate_illegal + * 13 phyrx_err_cck_length_illegal + * 14 phyrx_err_cck_restart + * 15 phyrx_err_cck_service + * 16 phyrx_err_cck_power_drop + * 17 phyrx_err_ht_crc_err + * 18 phyrx_err_ht_length_illegal + * 19 phyrx_err_ht_rate_illegal + * 20 phyrx_err_ht_zlf + * 21 phyrx_err_false_radar_ext + * 22 phyrx_err_green_field + * 23 phyrx_err_bw_gt_dyn_bw + * 24 phyrx_err_leg_ht_mismatch + * 25 phyrx_err_vht_crc_error + * 26 phyrx_err_vht_siga_unsupported + * 27 phyrx_err_vht_lsig_len_invalid + * 28 phyrx_err_vht_ndp_or_zlf + * 29 phyrx_err_vht_nsym_lt_zero + * 30 phyrx_err_vht_rx_extra_symbol_mismatch + * 31 phyrx_err_vht_rx_skip_group_id0 + * 32 phyrx_err_vht_rx_skip_group_id1to62 + * 33 phyrx_err_vht_rx_skip_group_id63 + * 34 phyrx_err_ofdm_ldpc_decoder_disabled + * 35 phyrx_err_defer_nap + * 36 phyrx_err_fdomain_timeout + * 37 phyrx_err_lsig_rel_check + * 38 phyrx_err_bt_collision + * 39 phyrx_err_unsupported_mu_feedback + * 40 phyrx_err_ppdu_tx_interrupt_rx + * 41 phyrx_err_unsupported_cbf + * 42 phyrx_err_other + */ + u32 phy_err[HTT_STATS_PHY_ERR_MAX]; +}; + +/* NOTE: Variable length TLV, use length spec to infer array size */ +struct htt_rx_pdev_fw_ring_mpdu_err_tlv_v { + /* Num error MPDU for each RxDMA error type */ + u32 fw_ring_mpdu_err[0]; /* HTT_RX_STATS_RXDMA_MAX_ERR */ +}; + +/* NOTE: Variable length TLV, use length spec to infer array size */ +struct htt_rx_pdev_fw_mpdu_drop_tlv_v { + /* Num MPDU dropped */ + u32 fw_mpdu_drop[0]; /* HTT_RX_STATS_FW_DROP_REASON_MAX */ +}; + +#define HTT_PDEV_CCA_STATS_TX_FRAME_INFO_PRESENT (0x1) +#define HTT_PDEV_CCA_STATS_RX_FRAME_INFO_PRESENT (0x2) +#define HTT_PDEV_CCA_STATS_RX_CLEAR_INFO_PRESENT (0x4) +#define HTT_PDEV_CCA_STATS_MY_RX_FRAME_INFO_PRESENT (0x8) +#define HTT_PDEV_CCA_STATS_USEC_CNT_INFO_PRESENT (0x10) +#define HTT_PDEV_CCA_STATS_MED_RX_IDLE_INFO_PRESENT (0x20) +#define HTT_PDEV_CCA_STATS_MED_TX_IDLE_GLOBAL_INFO_PRESENT (0x40) +#define HTT_PDEV_CCA_STATS_CCA_OBBS_USEC_INFO_PRESENT (0x80) + +struct htt_pdev_stats_cca_counters_tlv { + /* Below values are obtained from the HW Cycles counter registers */ + u32 tx_frame_usec; + u32 rx_frame_usec; + u32 rx_clear_usec; + u32 my_rx_frame_usec; + u32 usec_cnt; + u32 med_rx_idle_usec; + u32 med_tx_idle_global_usec; + u32 cca_obss_usec; +}; + +struct htt_pdev_cca_stats_hist_v1_tlv { + u32 chan_num; + /* num of CCA records (Num of htt_pdev_stats_cca_counters_tlv)*/ + u32 num_records; + u32 valid_cca_counters_bitmap; + u32 collection_interval; + + /* This will be followed by an array which contains the CCA stats + * collected in the last N intervals, + * if the indication is for last N intervals CCA stats. + * Then the pdev_cca_stats[0] element contains the oldest CCA stats + * and pdev_cca_stats[N-1] will have the most recent CCA stats. + * htt_pdev_stats_cca_counters_tlv cca_hist_tlv[1]; + */ +}; + +struct htt_pdev_stats_twt_session_tlv { + u32 vdev_id; + struct htt_mac_addr peer_mac; + u32 flow_id_flags; + + /* TWT_DIALOG_ID_UNAVAILABLE is used + * when TWT session is not initiated by host + */ + u32 dialog_id; + u32 wake_dura_us; + u32 wake_intvl_us; + u32 sp_offset_us; +}; + +struct htt_pdev_stats_twt_sessions_tlv { + u32 pdev_id; + u32 num_sessions; + struct htt_pdev_stats_twt_session_tlv twt_session[]; +}; + +enum htt_rx_reo_resource_sample_id_enum { + /* Global link descriptor queued in REO */ + HTT_RX_REO_RESOURCE_GLOBAL_LINK_DESC_COUNT_0 = 0, + HTT_RX_REO_RESOURCE_GLOBAL_LINK_DESC_COUNT_1 = 1, + HTT_RX_REO_RESOURCE_GLOBAL_LINK_DESC_COUNT_2 = 2, + /*Number of queue descriptors of this aging group */ + HTT_RX_REO_RESOURCE_BUFFERS_USED_AC0 = 3, + HTT_RX_REO_RESOURCE_BUFFERS_USED_AC1 = 4, + HTT_RX_REO_RESOURCE_BUFFERS_USED_AC2 = 5, + HTT_RX_REO_RESOURCE_BUFFERS_USED_AC3 = 6, + /* Total number of MSDUs buffered in AC */ + HTT_RX_REO_RESOURCE_AGING_NUM_QUEUES_AC0 = 7, + HTT_RX_REO_RESOURCE_AGING_NUM_QUEUES_AC1 = 8, + HTT_RX_REO_RESOURCE_AGING_NUM_QUEUES_AC2 = 9, + HTT_RX_REO_RESOURCE_AGING_NUM_QUEUES_AC3 = 10, + + HTT_RX_REO_RESOURCE_STATS_MAX = 16 +}; + +struct htt_rx_reo_resource_stats_tlv_v { + /* Variable based on the Number of records. HTT_RX_REO_RESOURCE_STATS_MAX */ + u32 sample_id; + u32 total_max; + u32 total_avg; + u32 total_sample; + u32 non_zeros_avg; + u32 non_zeros_sample; + u32 last_non_zeros_max; + u32 last_non_zeros_min; + u32 last_non_zeros_avg; + u32 last_non_zeros_sample; +}; + +/* == TX SOUNDING STATS == */ + +enum htt_txbf_sound_steer_modes { + HTT_IMPLICIT_TXBF_STEER_STATS = 0, + HTT_EXPLICIT_TXBF_SU_SIFS_STEER_STATS = 1, + HTT_EXPLICIT_TXBF_SU_RBO_STEER_STATS = 2, + HTT_EXPLICIT_TXBF_MU_SIFS_STEER_STATS = 3, + HTT_EXPLICIT_TXBF_MU_RBO_STEER_STATS = 4, + HTT_TXBF_MAX_NUM_OF_MODES = 5 +}; + +enum htt_stats_sounding_tx_mode { + HTT_TX_AC_SOUNDING_MODE = 0, + HTT_TX_AX_SOUNDING_MODE = 1, +}; + +struct htt_tx_sounding_stats_tlv { + u32 tx_sounding_mode; /* HTT_TX_XX_SOUNDING_MODE */ + /* Counts number of soundings for all steering modes in each bw */ + u32 cbf_20[HTT_TXBF_MAX_NUM_OF_MODES]; + u32 cbf_40[HTT_TXBF_MAX_NUM_OF_MODES]; + u32 cbf_80[HTT_TXBF_MAX_NUM_OF_MODES]; + u32 cbf_160[HTT_TXBF_MAX_NUM_OF_MODES]; + /* + * The sounding array is a 2-D array stored as an 1-D array of + * u32. The stats for a particular user/bw combination is + * referenced with the following: + * + * sounding[(user* max_bw) + bw] + * + * ... where max_bw == 4 for 160mhz + */ + u32 sounding[HTT_TX_NUM_OF_SOUNDING_STATS_WORDS]; +}; + +struct htt_pdev_obss_pd_stats_tlv { + u32 num_obss_tx_ppdu_success; + u32 num_obss_tx_ppdu_failure; +}; + +struct htt_ring_backpressure_stats_tlv { + u32 pdev_id; + u32 current_head_idx; + u32 current_tail_idx; + u32 num_htt_msgs_sent; + /* Time in milliseconds for which the ring has been in + * its current backpressure condition + */ + u32 backpressure_time_ms; + /* backpressure_hist - histogram showing how many times + * different degrees of backpressure duration occurred: + * Index 0 indicates the number of times ring was + * continuously in backpressure state for 100 - 200ms. + * Index 1 indicates the number of times ring was + * continuously in backpressure state for 200 - 300ms. + * Index 2 indicates the number of times ring was + * continuously in backpressure state for 300 - 400ms. + * Index 3 indicates the number of times ring was + * continuously in backpressure state for 400 - 500ms. + * Index 4 indicates the number of times ring was + * continuously in backpressure state beyond 500ms. + */ + u32 backpressure_hist[5]; +}; + +#ifdef CONFIG_ATH11K_DEBUGFS + +void ath11k_debugfs_htt_stats_init(struct ath11k *ar); +void ath11k_debugfs_htt_ext_stats_handler(struct ath11k_base *ab, + struct sk_buff *skb); +int ath11k_debugfs_htt_stats_req(struct ath11k *ar); + +#else /* CONFIG_ATH11K_DEBUGFS */ + +static inline void ath11k_debugfs_htt_stats_init(struct ath11k *ar) +{ +} + +static inline void ath11k_debugfs_htt_ext_stats_handler(struct ath11k_base *ab, + struct sk_buff *skb) +{ +} + +static inline int ath11k_debugfs_htt_stats_req(struct ath11k *ar) +{ + return 0; +} + +#endif /* CONFIG_ATH11K_DEBUGFS */ + +#endif only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/net/wireless/ath/ath11k/debugfs_sta.c +++ linux-oem-5.6-5.6.0/drivers/net/wireless/ath/ath11k/debugfs_sta.c @@ -5,14 +5,16 @@ #include +#include "debugfs_sta.h" #include "core.h" #include "peer.h" #include "debug.h" +#include "dp_tx.h" +#include "debugfs_htt_stats.h" -void -ath11k_accumulate_per_peer_tx_stats(struct ath11k_sta *arsta, - struct ath11k_per_peer_tx_stats *peer_stats, - u8 legacy_rate_idx) +void ath11k_debugfs_sta_add_tx_stats(struct ath11k_sta *arsta, + struct ath11k_per_peer_tx_stats *peer_stats, + u8 legacy_rate_idx) { struct rate_info *txrate = &arsta->txrate; struct ath11k_htt_tx_stats *tx_stats; @@ -24,7 +26,7 @@ tx_stats = arsta->tx_stats; gi = FIELD_GET(RATE_INFO_FLAGS_SHORT_GI, arsta->txrate.flags); mcs = txrate->mcs; - bw = txrate->bw; + bw = ath11k_mac_mac80211_bw_to_ath11k_bw(txrate->bw); nss = txrate->nss - 1; #define STATS_OP_FMT(name) tx_stats->stats[ATH11K_STATS_TYPE_##name] @@ -123,9 +125,9 @@ tx_stats->tx_duration += peer_stats->duration; } -void ath11k_update_per_peer_stats_from_txcompl(struct ath11k *ar, - struct sk_buff *msdu, - struct hal_tx_status *ts) +void ath11k_debugfs_sta_update_txcompl(struct ath11k *ar, + struct sk_buff *msdu, + struct hal_tx_status *ts) { struct ath11k_base *ab = ar->ab; struct ath11k_per_peer_tx_stats *peer_stats = &ar->cached_stats; @@ -136,7 +138,7 @@ struct ath11k_sta *arsta; struct ieee80211_sta *sta; u16 rate; - u8 rate_idx; + u8 rate_idx = 0; int ret; u8 mcs; @@ -198,7 +200,8 @@ arsta->txrate.nss = arsta->last_txrate.nss; arsta->txrate.bw = ath11k_mac_bw_to_mac80211_bw(bw); - ath11k_accumulate_per_peer_tx_stats(arsta, peer_stats, rate_idx); + ath11k_debugfs_sta_add_tx_stats(arsta, peer_stats, rate_idx); + err_out: spin_unlock_bh(&ab->base_lock); rcu_read_unlock(); @@ -219,6 +222,9 @@ const int size = 2 * 4096; char *buf; + if (!arsta->tx_stats) + return -ENOENT; + buf = kzalloc(size, GFP_KERNEL); if (!buf) return -ENOMEM; @@ -379,6 +385,13 @@ len += scnprintf(buf + len, size - len, "%llu ", rx_stats->nss_count[i]); len += scnprintf(buf + len, size - len, "\nRX Duration:%llu ", rx_stats->rx_duration); + len += scnprintf(buf + len, size - len, + "\nDCM: %llu\nRU: 26 %llu 52: %llu 106: %llu 242: %llu 484: %llu 996: %llu\n", + rx_stats->dcm_count, rx_stats->ru_alloc_cnt[0], + rx_stats->ru_alloc_cnt[1], rx_stats->ru_alloc_cnt[2], + rx_stats->ru_alloc_cnt[3], rx_stats->ru_alloc_cnt[4], + rx_stats->ru_alloc_cnt[5]); + len += scnprintf(buf + len, size - len, "\n"); spin_unlock_bh(&ar->ab->base_lock); @@ -416,7 +429,7 @@ ar->debug.htt_stats.stats_req = stats_req; stats_req->type = ATH11K_DBG_HTT_EXT_STATS_PEER_INFO; memcpy(stats_req->peer_addr, sta->addr, ETH_ALEN); - ret = ath11k_dbg_htt_stats_req(ar); + ret = ath11k_debugfs_htt_stats_req(ar); mutex_unlock(&ar->conf_mutex); if (ret < 0) goto out; @@ -425,13 +438,22 @@ return 0; out: vfree(stats_req); + ar->debug.htt_stats.stats_req = NULL; return ret; } static int ath11k_dbg_sta_release_htt_peer_stats(struct inode *inode, struct file *file) { + struct ieee80211_sta *sta = inode->i_private; + struct ath11k_sta *arsta = (struct ath11k_sta *)sta->drv_priv; + struct ath11k *ar = arsta->arvif->ar; + + mutex_lock(&ar->conf_mutex); vfree(file->private_data); + ar->debug.htt_stats.stats_req = NULL; + mutex_unlock(&ar->conf_mutex); + return 0; } @@ -523,15 +545,291 @@ .llseek = default_llseek, }; -void ath11k_sta_add_debugfs(struct ieee80211_hw *hw, struct ieee80211_vif *vif, - struct ieee80211_sta *sta, struct dentry *dir) +static ssize_t ath11k_dbg_sta_write_delba(struct file *file, + const char __user *user_buf, + size_t count, loff_t *ppos) +{ + struct ieee80211_sta *sta = file->private_data; + struct ath11k_sta *arsta = (struct ath11k_sta *)sta->drv_priv; + struct ath11k *ar = arsta->arvif->ar; + u32 tid, initiator, reason; + int ret; + char buf[64] = {0}; + + ret = simple_write_to_buffer(buf, sizeof(buf) - 1, ppos, + user_buf, count); + if (ret <= 0) + return ret; + + ret = sscanf(buf, "%u %u %u", &tid, &initiator, &reason); + if (ret != 3) + return -EINVAL; + + /* Valid TID values are 0 through 15 */ + if (tid > HAL_DESC_REO_NON_QOS_TID - 1) + return -EINVAL; + + mutex_lock(&ar->conf_mutex); + if (ar->state != ATH11K_STATE_ON || + arsta->aggr_mode != ATH11K_DBG_AGGR_MODE_MANUAL) { + ret = count; + goto out; + } + + ret = ath11k_wmi_delba_send(ar, arsta->arvif->vdev_id, sta->addr, + tid, initiator, reason); + if (ret) { + ath11k_warn(ar->ab, "failed to send delba: vdev_id %u peer %pM tid %u initiator %u reason %u\n", + arsta->arvif->vdev_id, sta->addr, tid, initiator, + reason); + } + ret = count; +out: + mutex_unlock(&ar->conf_mutex); + return ret; +} + +static const struct file_operations fops_delba = { + .write = ath11k_dbg_sta_write_delba, + .open = simple_open, + .owner = THIS_MODULE, + .llseek = default_llseek, +}; + +static ssize_t ath11k_dbg_sta_write_addba_resp(struct file *file, + const char __user *user_buf, + size_t count, loff_t *ppos) +{ + struct ieee80211_sta *sta = file->private_data; + struct ath11k_sta *arsta = (struct ath11k_sta *)sta->drv_priv; + struct ath11k *ar = arsta->arvif->ar; + u32 tid, status; + int ret; + char buf[64] = {0}; + + ret = simple_write_to_buffer(buf, sizeof(buf) - 1, ppos, + user_buf, count); + if (ret <= 0) + return ret; + + ret = sscanf(buf, "%u %u", &tid, &status); + if (ret != 2) + return -EINVAL; + + /* Valid TID values are 0 through 15 */ + if (tid > HAL_DESC_REO_NON_QOS_TID - 1) + return -EINVAL; + + mutex_lock(&ar->conf_mutex); + if (ar->state != ATH11K_STATE_ON || + arsta->aggr_mode != ATH11K_DBG_AGGR_MODE_MANUAL) { + ret = count; + goto out; + } + + ret = ath11k_wmi_addba_set_resp(ar, arsta->arvif->vdev_id, sta->addr, + tid, status); + if (ret) { + ath11k_warn(ar->ab, "failed to send addba response: vdev_id %u peer %pM tid %u status%u\n", + arsta->arvif->vdev_id, sta->addr, tid, status); + } + ret = count; +out: + mutex_unlock(&ar->conf_mutex); + return ret; +} + +static const struct file_operations fops_addba_resp = { + .write = ath11k_dbg_sta_write_addba_resp, + .open = simple_open, + .owner = THIS_MODULE, + .llseek = default_llseek, +}; + +static ssize_t ath11k_dbg_sta_write_addba(struct file *file, + const char __user *user_buf, + size_t count, loff_t *ppos) +{ + struct ieee80211_sta *sta = file->private_data; + struct ath11k_sta *arsta = (struct ath11k_sta *)sta->drv_priv; + struct ath11k *ar = arsta->arvif->ar; + u32 tid, buf_size; + int ret; + char buf[64] = {0}; + + ret = simple_write_to_buffer(buf, sizeof(buf) - 1, ppos, + user_buf, count); + if (ret <= 0) + return ret; + + ret = sscanf(buf, "%u %u", &tid, &buf_size); + if (ret != 2) + return -EINVAL; + + /* Valid TID values are 0 through 15 */ + if (tid > HAL_DESC_REO_NON_QOS_TID - 1) + return -EINVAL; + + mutex_lock(&ar->conf_mutex); + if (ar->state != ATH11K_STATE_ON || + arsta->aggr_mode != ATH11K_DBG_AGGR_MODE_MANUAL) { + ret = count; + goto out; + } + + ret = ath11k_wmi_addba_send(ar, arsta->arvif->vdev_id, sta->addr, + tid, buf_size); + if (ret) { + ath11k_warn(ar->ab, "failed to send addba request: vdev_id %u peer %pM tid %u buf_size %u\n", + arsta->arvif->vdev_id, sta->addr, tid, buf_size); + } + + ret = count; +out: + mutex_unlock(&ar->conf_mutex); + return ret; +} + +static const struct file_operations fops_addba = { + .write = ath11k_dbg_sta_write_addba, + .open = simple_open, + .owner = THIS_MODULE, + .llseek = default_llseek, +}; + +static ssize_t ath11k_dbg_sta_read_aggr_mode(struct file *file, + char __user *user_buf, + size_t count, loff_t *ppos) +{ + struct ieee80211_sta *sta = file->private_data; + struct ath11k_sta *arsta = (struct ath11k_sta *)sta->drv_priv; + struct ath11k *ar = arsta->arvif->ar; + char buf[64]; + int len = 0; + + mutex_lock(&ar->conf_mutex); + len = scnprintf(buf, sizeof(buf) - len, + "aggregation mode: %s\n\n%s\n%s\n", + (arsta->aggr_mode == ATH11K_DBG_AGGR_MODE_AUTO) ? + "auto" : "manual", "auto = 0", "manual = 1"); + mutex_unlock(&ar->conf_mutex); + + return simple_read_from_buffer(user_buf, count, ppos, buf, len); +} + +static ssize_t ath11k_dbg_sta_write_aggr_mode(struct file *file, + const char __user *user_buf, + size_t count, loff_t *ppos) +{ + struct ieee80211_sta *sta = file->private_data; + struct ath11k_sta *arsta = (struct ath11k_sta *)sta->drv_priv; + struct ath11k *ar = arsta->arvif->ar; + u32 aggr_mode; + int ret; + + if (kstrtouint_from_user(user_buf, count, 0, &aggr_mode)) + return -EINVAL; + + if (aggr_mode >= ATH11K_DBG_AGGR_MODE_MAX) + return -EINVAL; + + mutex_lock(&ar->conf_mutex); + if (ar->state != ATH11K_STATE_ON || + aggr_mode == arsta->aggr_mode) { + ret = count; + goto out; + } + + ret = ath11k_wmi_addba_clear_resp(ar, arsta->arvif->vdev_id, sta->addr); + if (ret) { + ath11k_warn(ar->ab, "failed to clear addba session ret: %d\n", + ret); + goto out; + } + + arsta->aggr_mode = aggr_mode; +out: + mutex_unlock(&ar->conf_mutex); + return ret; +} + +static const struct file_operations fops_aggr_mode = { + .read = ath11k_dbg_sta_read_aggr_mode, + .write = ath11k_dbg_sta_write_aggr_mode, + .open = simple_open, + .owner = THIS_MODULE, + .llseek = default_llseek, +}; + +static ssize_t +ath11k_write_htt_peer_stats_reset(struct file *file, + const char __user *user_buf, + size_t count, loff_t *ppos) +{ + struct ieee80211_sta *sta = file->private_data; + struct ath11k_sta *arsta = (struct ath11k_sta *)sta->drv_priv; + struct ath11k *ar = arsta->arvif->ar; + struct htt_ext_stats_cfg_params cfg_params = { 0 }; + int ret; + u8 type; + + ret = kstrtou8_from_user(user_buf, count, 0, &type); + if (ret) + return ret; + + if (!type) + return ret; + + mutex_lock(&ar->conf_mutex); + cfg_params.cfg0 = HTT_STAT_PEER_INFO_MAC_ADDR; + cfg_params.cfg0 |= FIELD_PREP(GENMASK(15, 1), + HTT_PEER_STATS_REQ_MODE_FLUSH_TQM); + + cfg_params.cfg1 = HTT_STAT_DEFAULT_PEER_REQ_TYPE; + + cfg_params.cfg2 |= FIELD_PREP(GENMASK(7, 0), sta->addr[0]); + cfg_params.cfg2 |= FIELD_PREP(GENMASK(15, 8), sta->addr[1]); + cfg_params.cfg2 |= FIELD_PREP(GENMASK(23, 16), sta->addr[2]); + cfg_params.cfg2 |= FIELD_PREP(GENMASK(31, 24), sta->addr[3]); + + cfg_params.cfg3 |= FIELD_PREP(GENMASK(7, 0), sta->addr[4]); + cfg_params.cfg3 |= FIELD_PREP(GENMASK(15, 8), sta->addr[5]); + + cfg_params.cfg3 |= ATH11K_HTT_PEER_STATS_RESET; + + ret = ath11k_dp_tx_htt_h2t_ext_stats_req(ar, + ATH11K_DBG_HTT_EXT_STATS_PEER_INFO, + &cfg_params, + 0ULL); + if (ret) { + ath11k_warn(ar->ab, "failed to send htt peer stats request: %d\n", ret); + mutex_unlock(&ar->conf_mutex); + return ret; + } + + mutex_unlock(&ar->conf_mutex); + + ret = count; + + return ret; +} + +static const struct file_operations fops_htt_peer_stats_reset = { + .write = ath11k_write_htt_peer_stats_reset, + .open = simple_open, + .owner = THIS_MODULE, + .llseek = default_llseek, +}; + +void ath11k_debugfs_sta_op_add(struct ieee80211_hw *hw, struct ieee80211_vif *vif, + struct ieee80211_sta *sta, struct dentry *dir) { struct ath11k *ar = hw->priv; - if (ath11k_debug_is_extd_tx_stats_enabled(ar)) + if (ath11k_debugfs_is_extd_tx_stats_enabled(ar)) debugfs_create_file("tx_stats", 0400, dir, sta, &fops_tx_stats); - if (ath11k_debug_is_extd_rx_stats_enabled(ar)) + if (ath11k_debugfs_is_extd_rx_stats_enabled(ar)) debugfs_create_file("rx_stats", 0400, dir, sta, &fops_rx_stats); @@ -540,4 +838,14 @@ debugfs_create_file("peer_pktlog", 0644, dir, sta, &fops_peer_pktlog); + + debugfs_create_file("aggr_mode", 0644, dir, sta, &fops_aggr_mode); + debugfs_create_file("addba", 0200, dir, sta, &fops_addba); + debugfs_create_file("addba_resp", 0200, dir, sta, &fops_addba_resp); + debugfs_create_file("delba", 0200, dir, sta, &fops_delba); + + if (test_bit(WMI_TLV_SERVICE_PER_PEER_HTT_STATS_RESET, + ar->ab->wmi_ab.svc_map)) + debugfs_create_file("htt_peer_stats_reset", 0600, dir, sta, + &fops_htt_peer_stats_reset); } only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/net/wireless/ath/ath11k/debugfs_sta.h +++ linux-oem-5.6-5.6.0/drivers/net/wireless/ath/ath11k/debugfs_sta.h @@ -0,0 +1,44 @@ +/* SPDX-License-Identifier: BSD-3-Clause-Clear */ +/* + * Copyright (c) 2018-2020 The Linux Foundation. All rights reserved. + */ + +#ifndef _ATH11K_DEBUGFS_STA_H_ +#define _ATH11K_DEBUGFS_STA_H_ + +#include + +#include "core.h" +#include "hal_tx.h" + +#ifdef CONFIG_ATH11K_DEBUGFS + +void ath11k_debugfs_sta_op_add(struct ieee80211_hw *hw, struct ieee80211_vif *vif, + struct ieee80211_sta *sta, struct dentry *dir); +void ath11k_debugfs_sta_add_tx_stats(struct ath11k_sta *arsta, + struct ath11k_per_peer_tx_stats *peer_stats, + u8 legacy_rate_idx); +void ath11k_debugfs_sta_update_txcompl(struct ath11k *ar, + struct sk_buff *msdu, + struct hal_tx_status *ts); + +#else /* CONFIG_ATH11K_DEBUGFS */ + +#define ath11k_debugfs_sta_op_add NULL + +static inline void +ath11k_debugfs_sta_add_tx_stats(struct ath11k_sta *arsta, + struct ath11k_per_peer_tx_stats *peer_stats, + u8 legacy_rate_idx) +{ +} + +static inline void ath11k_debugfs_sta_update_txcompl(struct ath11k *ar, + struct sk_buff *msdu, + struct hal_tx_status *ts) +{ +} + +#endif /* CONFIG_ATH11K_DEBUGFS */ + +#endif /* _ATH11K_DEBUGFS_STA_H_ */ only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/net/wireless/ath/ath11k/dp.c +++ linux-oem-5.6-5.6.0/drivers/net/wireless/ath/ath11k/dp.c @@ -3,9 +3,11 @@ * Copyright (c) 2018-2019 The Linux Foundation. All rights reserved. */ +#include #include "core.h" #include "dp_tx.h" #include "hal_tx.h" +#include "hif.h" #include "debug.h" #include "dp_rx.h" #include "peer.h" @@ -33,14 +35,16 @@ } ath11k_peer_rx_tid_cleanup(ar, peer); + crypto_free_shash(peer->tfm_mmic); spin_unlock_bh(&ab->base_lock); } int ath11k_dp_peer_setup(struct ath11k *ar, int vdev_id, const u8 *addr) { struct ath11k_base *ab = ar->ab; + struct ath11k_peer *peer; u32 reo_dest; - int ret; + int ret = 0, tid; /* NOTE: reo_dest ring id starts from 1 unlike mac_id which starts from 0 */ reo_dest = ar->dp.mac_id + 1; @@ -54,24 +58,42 @@ return ret; } - ret = ath11k_peer_rx_tid_setup(ar, addr, vdev_id, - HAL_DESC_REO_NON_QOS_TID, 1, 0); - if (ret) { - ath11k_warn(ab, "failed to setup rxd tid queue for non-qos tid %d\n", - ret); - return ret; + for (tid = 0; tid <= IEEE80211_NUM_TIDS; tid++) { + ret = ath11k_peer_rx_tid_setup(ar, addr, vdev_id, tid, 1, 0, + HAL_PN_TYPE_NONE); + if (ret) { + ath11k_warn(ab, "failed to setup rxd tid queue for tid %d: %d\n", + tid, ret); + goto peer_clean; + } } - ret = ath11k_peer_rx_tid_setup(ar, addr, vdev_id, 0, 1, 0); + ret = ath11k_peer_rx_frag_setup(ar, addr, vdev_id); if (ret) { - ath11k_warn(ab, "failed to setup rxd tid queue for tid 0 %d\n", - ret); + ath11k_warn(ab, "failed to setup rx defrag context\n"); return ret; } /* TODO: Setup other peer specific resource used in data path */ return 0; + +peer_clean: + spin_lock_bh(&ab->base_lock); + + peer = ath11k_peer_find(ab, vdev_id, addr); + if (!peer) { + ath11k_warn(ab, "failed to find the peer to del rx tid\n"); + spin_unlock_bh(&ab->base_lock); + return -ENOENT; + } + + for (; tid >= 0; tid--) + ath11k_peer_rx_tid_delete(ar, peer, tid); + + spin_unlock_bh(&ab->base_lock); + + return ret; } void ath11k_dp_srng_cleanup(struct ath11k_base *ab, struct dp_srng *ring) @@ -85,13 +107,122 @@ ring->vaddr_unaligned = NULL; } +static int ath11k_dp_srng_find_ring_in_mask(int ring_num, const u8 *grp_mask) +{ + int ext_group_num; + u8 mask = 1 << ring_num; + + for (ext_group_num = 0; ext_group_num < ATH11K_EXT_IRQ_GRP_NUM_MAX; + ext_group_num++) { + if (mask & grp_mask[ext_group_num]) + return ext_group_num; + } + + return -ENOENT; +} + +static int ath11k_dp_srng_calculate_msi_group(struct ath11k_base *ab, + enum hal_ring_type type, int ring_num) +{ + const u8 *grp_mask; + + switch (type) { + case HAL_WBM2SW_RELEASE: + if (ring_num < 3) { + grp_mask = &ab->hw_params.ring_mask->tx[0]; + } else if (ring_num == 3) { + grp_mask = &ab->hw_params.ring_mask->rx_wbm_rel[0]; + ring_num = 0; + } else { + return -ENOENT; + } + break; + case HAL_REO_EXCEPTION: + grp_mask = &ab->hw_params.ring_mask->rx_err[0]; + break; + case HAL_REO_DST: + grp_mask = &ab->hw_params.ring_mask->rx[0]; + break; + case HAL_REO_STATUS: + grp_mask = &ab->hw_params.ring_mask->reo_status[0]; + break; + case HAL_RXDMA_MONITOR_STATUS: + case HAL_RXDMA_MONITOR_DST: + grp_mask = &ab->hw_params.ring_mask->rx_mon_status[0]; + break; + case HAL_RXDMA_DST: + grp_mask = &ab->hw_params.ring_mask->rxdma2host[0]; + break; + case HAL_RXDMA_BUF: + grp_mask = &ab->hw_params.ring_mask->host2rxdma[0]; + break; + case HAL_RXDMA_MONITOR_BUF: + case HAL_TCL_DATA: + case HAL_TCL_CMD: + case HAL_REO_CMD: + case HAL_SW2WBM_RELEASE: + case HAL_WBM_IDLE_LINK: + case HAL_TCL_STATUS: + case HAL_REO_REINJECT: + case HAL_CE_SRC: + case HAL_CE_DST: + case HAL_CE_DST_STATUS: + default: + return -ENOENT; + } + + return ath11k_dp_srng_find_ring_in_mask(ring_num, grp_mask); +} + +static void ath11k_dp_srng_msi_setup(struct ath11k_base *ab, + struct hal_srng_params *ring_params, + enum hal_ring_type type, int ring_num) +{ + int msi_group_number, msi_data_count; + u32 msi_data_start, msi_irq_start, addr_lo, addr_hi; + u32 vectors_32_capability; + int ret = -EINVAL; + + ret = ath11k_get_user_msi_vector(ab, "DP", + &msi_data_count, &msi_data_start, + &msi_irq_start); + if (ret) + return; + vectors_32_capability = ab->hif.ops->is_32_vecs_support(ab); + + msi_group_number = ath11k_dp_srng_calculate_msi_group(ab, type, + ring_num); + if (msi_group_number < 0) { + ath11k_dbg(ab, ATH11K_DBG_PCI, + "ring not part of an ext_group; ring_type: %d,ring_num %d", + type, ring_num); + ring_params->msi_addr = 0; + ring_params->msi_data = 0; + return; + } + + if (msi_group_number > msi_data_count) { + ath11k_dbg(ab, ATH11K_DBG_PCI, + "multiple msi_groups share one msi, msi_group_num %d", + msi_group_number); + } + + ath11k_get_msi_address(ab, &addr_lo, &addr_hi); + + ring_params->msi_addr = addr_lo; + ring_params->msi_addr |= (dma_addr_t)(((uint64_t)addr_hi) << 32); + ring_params->msi_data = vectors_32_capability ? + (msi_group_number % msi_data_count) + msi_data_start : msi_data_start; + ring_params->flags |= HAL_SRNG_FLAGS_MSI_INTR; +} + int ath11k_dp_srng_setup(struct ath11k_base *ab, struct dp_srng *ring, enum hal_ring_type type, int ring_num, int mac_id, int num_entries) { struct hal_srng_params params = { 0 }; - int entry_sz = ath11k_hal_srng_get_entrysize(type); - int max_entries = ath11k_hal_srng_get_max_entries(type); + int entry_sz = ath11k_hal_srng_get_entrysize(ab, type); + int max_entries = ath11k_hal_srng_get_max_entries(ab, type); int ret; if (max_entries < 0 || entry_sz < 0) @@ -114,6 +245,7 @@ params.ring_base_vaddr = ring->vaddr; params.ring_base_paddr = ring->paddr; params.num_entries = num_entries; + ath11k_dp_srng_msi_setup(ab, ¶ms, type, ring_num + mac_id); switch (type) { case HAL_REO_DST: @@ -138,7 +270,7 @@ break; } /* follow through when ring_num >= 3 */ - /* fall through */ + fallthrough; case HAL_REO_EXCEPTION: case HAL_REO_REINJECT: case HAL_REO_CMD: @@ -151,11 +283,12 @@ case HAL_RXDMA_DST: case HAL_RXDMA_MONITOR_DST: case HAL_RXDMA_MONITOR_DESC: - case HAL_RXDMA_DIR_BUF: params.intr_batch_cntr_thres_entries = HAL_SRNG_INT_BATCH_THRESHOLD_OTHER; params.intr_timer_thres_us = HAL_SRNG_INT_TIMER_THRESHOLD_OTHER; break; + case HAL_RXDMA_DIR_BUF: + break; default: ath11k_warn(ab, "Not a valid ring type in dp :%d\n", type); return -EINVAL; @@ -173,11 +306,25 @@ return 0; } +void ath11k_dp_stop_shadow_timers(struct ath11k_base *ab) +{ + int i; + + if (!ab->hw_params.supports_shadow_regs) + return; + + for (i = 0; i < DP_TCL_NUM_RING_MAX; i++) + ath11k_dp_shadow_stop_timer(ab, &ab->dp.tx_ring_timer[i]); + + ath11k_dp_shadow_stop_timer(ab, &ab->dp.reo_cmd_timer); +} + static void ath11k_dp_srng_common_cleanup(struct ath11k_base *ab) { struct ath11k_dp *dp = &ab->dp; int i; + ath11k_dp_stop_shadow_timers(ab); ath11k_dp_srng_cleanup(ab, &dp->wbm_desc_rel_ring); ath11k_dp_srng_cleanup(ab, &dp->tcl_cmd_ring); ath11k_dp_srng_cleanup(ab, &dp->tcl_status_ring); @@ -197,6 +344,7 @@ struct ath11k_dp *dp = &ab->dp; struct hal_srng *srng; int i, ret; + u32 ring_hash_map; ret = ath11k_dp_srng_setup(ab, &dp->wbm_desc_rel_ring, HAL_SW2WBM_RELEASE, 0, 0, @@ -242,6 +390,10 @@ srng = &ab->hal.srng_list[dp->tx_ring[i].tcl_data_ring.ring_id]; ath11k_hal_tx_init_data_ring(ab, srng); + + ath11k_dp_shadow_init_timer(ab, &dp->tx_ring_timer[i], + ATH11K_SHADOW_DP_TIMER_INTERVAL, + dp->tx_ring[i].tcl_data_ring.ring_id); } ret = ath11k_dp_srng_setup(ab, &dp->reo_reinject_ring, HAL_REO_REINJECT, @@ -277,6 +429,10 @@ srng = &ab->hal.srng_list[dp->reo_cmd_ring.ring_id]; ath11k_hal_reo_init_cmd_ring(ab, srng); + ath11k_dp_shadow_init_timer(ab, &dp->reo_cmd_timer, + ATH11K_SHADOW_CTRL_TIMER_INTERVAL, + dp->reo_cmd_ring.ring_id); + ret = ath11k_dp_srng_setup(ab, &dp->reo_status_ring, HAL_REO_STATUS, 0, 0, DP_REO_STATUS_RING_SIZE); if (ret) { @@ -284,7 +440,21 @@ goto err; } - ath11k_hal_reo_hw_setup(ab); + /* When hash based routing of rx packet is enabled, 32 entries to map + * the hash values to the ring will be configured. Each hash entry uses + * three bits to map to a particular ring. The ring mapping will be + * 0:TCL, 1:SW1, 2:SW2, 3:SW3, 4:SW4, 5:Release, 6:FW and 7:Not used. + */ + ring_hash_map = HAL_HASH_ROUTING_RING_SW1 << 0 | + HAL_HASH_ROUTING_RING_SW2 << 3 | + HAL_HASH_ROUTING_RING_SW3 << 6 | + HAL_HASH_ROUTING_RING_SW4 << 9 | + HAL_HASH_ROUTING_RING_SW1 << 12 | + HAL_HASH_ROUTING_RING_SW2 << 15 | + HAL_HASH_ROUTING_RING_SW3 << 18 | + HAL_HASH_ROUTING_RING_SW4 << 21; + + ath11k_hal_reo_hw_setup(ab, ring_hash_map); return 0; @@ -330,7 +500,7 @@ u32 end_offset; n_entries_per_buf = HAL_WBM_IDLE_SCATTER_BUF_SIZE / - ath11k_hal_srng_get_entrysize(HAL_WBM_IDLE_LINK); + ath11k_hal_srng_get_entrysize(ab, HAL_WBM_IDLE_LINK); num_scatter_buf = DIV_ROUND_UP(size, HAL_WBM_IDLE_SCATTER_BUF_SIZE); if (num_scatter_buf > DP_IDLE_SCATTER_BUFS_MAX) @@ -528,7 +698,7 @@ return ret; /* Setup link desc idle list for HW internal usage */ - entry_sz = ath11k_hal_srng_get_entrysize(ring_type); + entry_sz = ath11k_hal_srng_get_entrysize(ab, ring_type); tot_mem_sz = entry_sz * n_link_desc; /* Setup scatter desc list when the total memory requirement is more */ @@ -585,16 +755,16 @@ struct napi_struct *napi = &irq_grp->napi; int grp_id = irq_grp->grp_id; int work_done = 0; - int i = 0; + int i = 0, j; int tot_work_done = 0; - while (ath11k_tx_ring_mask[grp_id] >> i) { - if (ath11k_tx_ring_mask[grp_id] & BIT(i)) + while (ab->hw_params.ring_mask->tx[grp_id] >> i) { + if (ab->hw_params.ring_mask->tx[grp_id] & BIT(i)) ath11k_dp_tx_completion_handler(ab, i); i++; } - if (ath11k_rx_err_ring_mask[grp_id]) { + if (ab->hw_params.ring_mask->rx_err[grp_id]) { work_done = ath11k_dp_process_rx_err(ab, napi, budget); budget -= work_done; tot_work_done += work_done; @@ -602,7 +772,7 @@ goto done; } - if (ath11k_rx_wbm_rel_ring_mask[grp_id]) { + if (ab->hw_params.ring_mask->rx_wbm_rel[grp_id]) { work_done = ath11k_dp_rx_process_wbm_err(ab, napi, budget); @@ -613,55 +783,61 @@ goto done; } - if (ath11k_rx_ring_mask[grp_id]) { - for (i = 0; i < ab->num_radios; i++) { - if (ath11k_rx_ring_mask[grp_id] & BIT(i)) { - work_done = ath11k_dp_process_rx(ab, i, napi, - &irq_grp->pending_q, - budget); - budget -= work_done; - tot_work_done += work_done; - } - if (budget <= 0) - goto done; - } + if (ab->hw_params.ring_mask->rx[grp_id]) { + i = fls(ab->hw_params.ring_mask->rx[grp_id]) - 1; + work_done = ath11k_dp_process_rx(ab, i, napi, + budget); + budget -= work_done; + tot_work_done += work_done; + if (budget <= 0) + goto done; } - if (rx_mon_status_ring_mask[grp_id]) { - for (i = 0; i < ab->num_radios; i++) { - if (rx_mon_status_ring_mask[grp_id] & BIT(i)) { - work_done = - ath11k_dp_rx_process_mon_rings(ab, - i, napi, - budget); - budget -= work_done; - tot_work_done += work_done; + if (ab->hw_params.ring_mask->rx_mon_status[grp_id]) { + for (i = 0; i < ab->num_radios; i++) { + for (j = 0; j < ab->hw_params.num_rxmda_per_pdev; j++) { + int id = i * ab->hw_params.num_rxmda_per_pdev + j; + + if (ab->hw_params.ring_mask->rx_mon_status[grp_id] & + BIT(id)) { + work_done = + ath11k_dp_rx_process_mon_rings(ab, + id, + napi, budget); + budget -= work_done; + tot_work_done += work_done; + + if (budget <= 0) + goto done; + } } - if (budget <= 0) - goto done; } } - if (ath11k_reo_status_ring_mask[grp_id]) + if (ab->hw_params.ring_mask->reo_status[grp_id]) ath11k_dp_process_reo_status(ab); for (i = 0; i < ab->num_radios; i++) { - if (ath11k_rxdma2host_ring_mask[grp_id] & BIT(i)) { - work_done = ath11k_dp_process_rxdma_err(ab, i, budget); - budget -= work_done; - tot_work_done += work_done; - } + for (j = 0; j < ab->hw_params.num_rxmda_per_pdev; j++) { + int id = i * ab->hw_params.num_rxmda_per_pdev + j; - if (budget <= 0) - goto done; + if (ab->hw_params.ring_mask->rxdma2host[grp_id] & BIT(id)) { + work_done = ath11k_dp_process_rxdma_err(ab, id, budget); + budget -= work_done; + tot_work_done += work_done; + } - if (ath11k_host2rxdma_ring_mask[grp_id] & BIT(i)) { - struct ath11k_pdev_dp *dp = &ab->pdevs[i].ar->dp; - struct dp_rxdma_ring *rx_ring = &dp->rx_refill_buf_ring; - - ath11k_dp_rxbufs_replenish(ab, i, rx_ring, 0, - HAL_RX_BUF_RBM_SW3_BM, - GFP_ATOMIC); + if (budget <= 0) + goto done; + + if (ab->hw_params.ring_mask->host2rxdma[grp_id] & BIT(id)) { + struct ath11k *ar = ath11k_ab_to_ar(ab, id); + struct ath11k_pdev_dp *dp = &ar->dp; + struct dp_rxdma_ring *rx_ring = &dp->rx_refill_buf_ring; + + ath11k_dp_rxbufs_replenish(ab, id, rx_ring, 0, + HAL_RX_BUF_RBM_SW3_BM); + } } } /* TODO: Implement handler for other interrupts */ @@ -669,16 +845,19 @@ done: return tot_work_done; } +EXPORT_SYMBOL(ath11k_dp_service_srng); void ath11k_dp_pdev_free(struct ath11k_base *ab) { struct ath11k *ar; int i; + del_timer_sync(&ab->mon_reap_timer); + for (i = 0; i < ab->num_radios; i++) { ar = ab->pdevs[i].ar; ath11k_dp_rx_pdev_free(ab, i); - ath11k_debug_unregister(ar); + ath11k_debugfs_unregister(ar); ath11k_dp_rx_pdev_mon_detach(ar); } } @@ -688,6 +867,7 @@ struct ath11k *ar; struct ath11k_pdev_dp *dp; int i; + int j; for (i = 0; i < ab->num_radios; i++) { ar = ab->pdevs[i].ar; @@ -697,8 +877,10 @@ spin_lock_init(&dp->rx_refill_buf_ring.idr_lock); atomic_set(&dp->num_tx_pending, 0); init_waitqueue_head(&dp->tx_empty_waitq); - idr_init(&dp->rx_mon_status_refill_ring.bufs_idr); - spin_lock_init(&dp->rx_mon_status_refill_ring.idr_lock); + for (j = 0; j < ab->hw_params.num_rxmda_per_pdev; j++) { + idr_init(&dp->rx_mon_status_refill_ring[j].bufs_idr); + spin_lock_init(&dp->rx_mon_status_refill_ring[j].idr_lock); + } idr_init(&dp->rxdma_mon_buf_ring.bufs_idr); spin_lock_init(&dp->rxdma_mon_buf_ring.idr_lock); } @@ -763,13 +945,20 @@ static void ath11k_dp_update_vdev_search(struct ath11k_vif *arvif) { - /* For STA mode, enable address search index, - * tcl uses ast_hash value in the descriptor. + /* When v2_map_support is true:for STA mode, enable address + * search index, tcl uses ast_hash value in the descriptor. + * When v2_map_support is false: for STA mode, dont' enable + * address search index. */ switch (arvif->vdev_type) { case WMI_VDEV_TYPE_STA: - arvif->hal_addr_search_flags = HAL_TX_ADDRX_EN; - arvif->search_type = HAL_TX_ADDR_SEARCH_INDEX; + if (arvif->ar->ab->hw_params.htt_peer_map_v2) { + arvif->hal_addr_search_flags = HAL_TX_ADDRX_EN; + arvif->search_type = HAL_TX_ADDR_SEARCH_INDEX; + } else { + arvif->hal_addr_search_flags = HAL_TX_ADDRY_EN; + arvif->search_type = HAL_TX_ADDR_SEARCH_DEFAULT; + } break; case WMI_VDEV_TYPE_AP: case WMI_VDEV_TYPE_IBSS: @@ -848,6 +1037,8 @@ INIT_LIST_HEAD(&dp->reo_cmd_cache_flush_list); spin_lock_init(&dp->reo_cmd_lock); + dp->reo_cmd_cache_flush_count = 0; + ret = ath11k_wbm_idle_ring_setup(ab, &n_link_desc); if (ret) { ath11k_warn(ab, "failed to setup wbm_idle_ring: %d\n", ret); @@ -877,8 +1068,10 @@ dp->tx_ring[i].tx_status_head = 0; dp->tx_ring[i].tx_status_tail = DP_TX_COMP_RING_SIZE - 1; dp->tx_ring[i].tx_status = kmalloc(size, GFP_KERNEL); - if (!dp->tx_ring[i].tx_status) + if (!dp->tx_ring[i].tx_status) { + ret = -ENOMEM; goto fail_cmn_srng_cleanup; + } } for (i = 0; i < HAL_DSCP_TID_MAP_TBL_NUM_ENTRIES_MAX; i++) @@ -897,3 +1090,78 @@ return ret; } + +static void ath11k_dp_shadow_timer_handler(struct timer_list *t) +{ + struct ath11k_hp_update_timer *update_timer = from_timer(update_timer, + t, timer); + struct ath11k_base *ab = update_timer->ab; + struct hal_srng *srng = &ab->hal.srng_list[update_timer->ring_id]; + + spin_lock_bh(&srng->lock); + + /* when the timer is fired, the handler checks whether there + * are new TX happened. The handler updates HP only when there + * are no TX operations during the timeout interval, and stop + * the timer. Timer will be started again when TX happens again. + */ + if (update_timer->timer_tx_num != update_timer->tx_num) { + update_timer->timer_tx_num = update_timer->tx_num; + mod_timer(&update_timer->timer, jiffies + + msecs_to_jiffies(update_timer->interval)); + } else { + update_timer->started = false; + ath11k_hal_srng_shadow_update_hp_tp(ab, srng); + } + + spin_unlock_bh(&srng->lock); +} + +void ath11k_dp_shadow_start_timer(struct ath11k_base *ab, + struct hal_srng *srng, + struct ath11k_hp_update_timer *update_timer) +{ + lockdep_assert_held(&srng->lock); + + if (!ab->hw_params.supports_shadow_regs) + return; + + update_timer->tx_num++; + + if (update_timer->started) + return; + + update_timer->started = true; + update_timer->timer_tx_num = update_timer->tx_num; + mod_timer(&update_timer->timer, jiffies + + msecs_to_jiffies(update_timer->interval)); +} + +void ath11k_dp_shadow_stop_timer(struct ath11k_base *ab, + struct ath11k_hp_update_timer *update_timer) +{ + if (!ab->hw_params.supports_shadow_regs) + return; + + if (!update_timer->init) + return; + + del_timer_sync(&update_timer->timer); +} + +void ath11k_dp_shadow_init_timer(struct ath11k_base *ab, + struct ath11k_hp_update_timer *update_timer, + u32 interval, u32 ring_id) +{ + if (!ab->hw_params.supports_shadow_regs) + return; + + update_timer->tx_num = 0; + update_timer->timer_tx_num = 0; + update_timer->ab = ab; + update_timer->ring_id = ring_id; + update_timer->interval = interval; + update_timer->init = true; + timer_setup(&update_timer->timer, + ath11k_dp_shadow_timer_handler, 0); +} only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/net/wireless/ath/ath11k/dp.h +++ linux-oem-5.6-5.6.0/drivers/net/wireless/ath/ath11k/dp.h @@ -8,6 +8,8 @@ #include "hal_rx.h" +#define MAX_RXDMA_PER_PDEV 2 + struct ath11k_base; struct ath11k_peer; struct ath11k_dp; @@ -22,9 +24,24 @@ u32 size; u32 ba_win_sz; bool active; + + /* Info related to rx fragments */ + u32 cur_sn; + u16 last_frag_no; + u16 rx_frag_bitmap; + + struct sk_buff_head rx_frags; + struct hal_reo_dest_ring *dst_ring_desc; + + /* Timer info related to fragments */ + struct timer_list frag_timer; + struct ath11k_base *ab; }; +#define DP_REO_DESC_FREE_THRESHOLD 64 #define DP_REO_DESC_FREE_TIMEOUT_MS 1000 +#define DP_MON_PURGE_TIMEOUT_MS 100 +#define DP_MON_SERVICE_BUDGET 128 struct dp_reo_cache_flush_elem { struct list_head list; @@ -128,14 +145,14 @@ u32 mac_id; atomic_t num_tx_pending; wait_queue_head_t tx_empty_waitq; - struct dp_srng reo_dst_ring; struct dp_rxdma_ring rx_refill_buf_ring; - struct dp_srng rxdma_err_dst_ring; + struct dp_srng rx_mac_buf_ring[MAX_RXDMA_PER_PDEV]; + struct dp_srng rxdma_err_dst_ring[MAX_RXDMA_PER_PDEV]; struct dp_srng rxdma_mon_dst_ring; struct dp_srng rxdma_mon_desc_ring; struct dp_rxdma_ring rxdma_mon_buf_ring; - struct dp_rxdma_ring rx_mon_status_refill_ring; + struct dp_rxdma_ring rx_mon_status_refill_ring[MAX_RXDMA_PER_PDEV]; struct ieee80211_rx_status rx_status; struct ath11k_mon_data mon_data; }; @@ -148,7 +165,7 @@ #define DP_AVG_MPDUS_PER_TID_MAX 128 #define DP_AVG_MSDUS_PER_MPDU 4 -#define DP_RX_HASH_ENABLE 0 /* Disable hash based Rx steering */ +#define DP_RX_HASH_ENABLE 1 /* Enable hash based Rx steering */ #define DP_BA_WIN_SZ_MAX 256 @@ -158,8 +175,8 @@ #define DP_WBM_RELEASE_RING_SIZE 64 #define DP_TCL_DATA_RING_SIZE 512 -#define DP_TX_COMP_RING_SIZE 8192 -#define DP_TX_IDR_SIZE (DP_TX_COMP_RING_SIZE << 1) +#define DP_TX_COMP_RING_SIZE 32768 +#define DP_TX_IDR_SIZE DP_TX_COMP_RING_SIZE #define DP_TCL_CMD_RING_SIZE 32 #define DP_TCL_STATUS_RING_SIZE 32 #define DP_REO_DST_RING_MAX 4 @@ -168,7 +185,7 @@ #define DP_RX_RELEASE_RING_SIZE 1024 #define DP_REO_EXCEPTION_RING_SIZE 128 #define DP_REO_CMD_RING_SIZE 128 -#define DP_REO_STATUS_RING_SIZE 256 +#define DP_REO_STATUS_RING_SIZE 2048 #define DP_RXDMA_BUF_RING_SIZE 4096 #define DP_RXDMA_REFILL_RING_SIZE 2048 #define DP_RXDMA_ERR_DST_RING_SIZE 1024 @@ -190,6 +207,20 @@ #define DP_TX_DESC_ID_MSDU_ID GENMASK(18, 2) #define DP_TX_DESC_ID_POOL_ID GENMASK(20, 19) +#define ATH11K_SHADOW_DP_TIMER_INTERVAL 20 +#define ATH11K_SHADOW_CTRL_TIMER_INTERVAL 10 + +struct ath11k_hp_update_timer { + struct timer_list timer; + bool started; + bool init; + u32 tx_num; + u32 timer_tx_num; + u32 ring_id; + u32 interval; + struct ath11k_base *ab; +}; + struct ath11k_dp { struct ath11k_base *ab; enum ath11k_htc_ep_id eid; @@ -206,12 +237,21 @@ struct dp_srng reo_except_ring; struct dp_srng reo_cmd_ring; struct dp_srng reo_status_ring; + struct dp_srng reo_dst_ring[DP_REO_DST_RING_MAX]; struct dp_tx_ring tx_ring[DP_TCL_NUM_RING_MAX]; struct hal_wbm_idle_scatter_list scatter_list[DP_IDLE_SCATTER_BUFS_MAX]; struct list_head reo_cmd_list; struct list_head reo_cmd_cache_flush_list; - /* protects access to reo_cmd_list and reo_cmd_cache_flush_list */ + u32 reo_cmd_cache_flush_count; + /** + * protects access to below fields, + * - reo_cmd_list + * - reo_cmd_cache_flush_list + * - reo_cmd_cache_flush_count + */ spinlock_t reo_cmd_lock; + struct ath11k_hp_update_timer reo_cmd_timer; + struct ath11k_hp_update_timer tx_ring_timer[DP_TCL_NUM_RING_MAX]; }; /* HTT definitions */ @@ -475,7 +515,7 @@ } __packed; #define HTT_PPDU_STATS_CFG_MSG_TYPE GENMASK(7, 0) -#define HTT_PPDU_STATS_CFG_PDEV_ID GENMASK(16, 9) +#define HTT_PPDU_STATS_CFG_PDEV_ID GENMASK(15, 8) #define HTT_PPDU_STATS_CFG_TLV_TYPE_BITMASK GENMASK(31, 16) enum htt_ppdu_stats_tag_type { @@ -917,13 +957,16 @@ enum htt_t2h_msg_type { HTT_T2H_MSG_TYPE_VERSION_CONF, + HTT_T2H_MSG_TYPE_PEER_MAP = 0x3, + HTT_T2H_MSG_TYPE_PEER_UNMAP = 0x4, HTT_T2H_MSG_TYPE_RX_ADDBA = 0x5, HTT_T2H_MSG_TYPE_PKTLOG = 0x8, HTT_T2H_MSG_TYPE_SEC_IND = 0xb, - HTT_T2H_MSG_TYPE_PEER_MAP = 0x1e, - HTT_T2H_MSG_TYPE_PEER_UNMAP = 0x1f, + HTT_T2H_MSG_TYPE_PEER_MAP2 = 0x1e, + HTT_T2H_MSG_TYPE_PEER_UNMAP2 = 0x1f, HTT_T2H_MSG_TYPE_PPDU_STATS_IND = 0x1d, HTT_T2H_MSG_TYPE_EXT_STATS_CONF = 0x1c, + HTT_T2H_MSG_TYPE_BKPRESSURE_EVENT_IND = 0x24, }; #define HTT_TARGET_VERSION_MAJOR 3 @@ -972,6 +1015,55 @@ }; } __packed; +#define HTT_BACKPRESSURE_EVENT_PDEV_ID_M GENMASK(15, 8) +#define HTT_BACKPRESSURE_EVENT_RING_TYPE_M GENMASK(23, 16) +#define HTT_BACKPRESSURE_EVENT_RING_ID_M GENMASK(31, 24) + +#define HTT_BACKPRESSURE_EVENT_HP_M GENMASK(15, 0) +#define HTT_BACKPRESSURE_EVENT_TP_M GENMASK(31, 16) + +#define HTT_BACKPRESSURE_UMAC_RING_TYPE 0 +#define HTT_BACKPRESSURE_LMAC_RING_TYPE 1 + +enum htt_backpressure_umac_ringid { + HTT_SW_RING_IDX_REO_REO2SW1_RING, + HTT_SW_RING_IDX_REO_REO2SW2_RING, + HTT_SW_RING_IDX_REO_REO2SW3_RING, + HTT_SW_RING_IDX_REO_REO2SW4_RING, + HTT_SW_RING_IDX_REO_WBM2REO_LINK_RING, + HTT_SW_RING_IDX_REO_REO2TCL_RING, + HTT_SW_RING_IDX_REO_REO2FW_RING, + HTT_SW_RING_IDX_REO_REO_RELEASE_RING, + HTT_SW_RING_IDX_WBM_PPE_RELEASE_RING, + HTT_SW_RING_IDX_TCL_TCL2TQM_RING, + HTT_SW_RING_IDX_WBM_TQM_RELEASE_RING, + HTT_SW_RING_IDX_WBM_REO_RELEASE_RING, + HTT_SW_RING_IDX_WBM_WBM2SW0_RELEASE_RING, + HTT_SW_RING_IDX_WBM_WBM2SW1_RELEASE_RING, + HTT_SW_RING_IDX_WBM_WBM2SW2_RELEASE_RING, + HTT_SW_RING_IDX_WBM_WBM2SW3_RELEASE_RING, + HTT_SW_RING_IDX_REO_REO_CMD_RING, + HTT_SW_RING_IDX_REO_REO_STATUS_RING, + HTT_SW_UMAC_RING_IDX_MAX, +}; + +enum htt_backpressure_lmac_ringid { + HTT_SW_RING_IDX_FW2RXDMA_BUF_RING, + HTT_SW_RING_IDX_FW2RXDMA_STATUS_RING, + HTT_SW_RING_IDX_FW2RXDMA_LINK_RING, + HTT_SW_RING_IDX_SW2RXDMA_BUF_RING, + HTT_SW_RING_IDX_WBM2RXDMA_LINK_RING, + HTT_SW_RING_IDX_RXDMA2FW_RING, + HTT_SW_RING_IDX_RXDMA2SW_RING, + HTT_SW_RING_IDX_RXDMA2RELEASE_RING, + HTT_SW_RING_IDX_RXDMA2REO_RING, + HTT_SW_RING_IDX_MONITOR_STATUS_RING, + HTT_SW_RING_IDX_MONITOR_BUF_RING, + HTT_SW_RING_IDX_MONITOR_DESC_RING, + HTT_SW_RING_IDX_MONITOR_DEST_RING, + HTT_SW_LMAC_RING_IDX_MAX, +}; + /* ppdu stats * * @details @@ -1066,6 +1158,13 @@ u16 bw_mhz; } __packed; +enum htt_ppdu_stats_gi { + HTT_PPDU_STATS_SGI_0_8_US, + HTT_PPDU_STATS_SGI_0_4_US, + HTT_PPDU_STATS_SGI_1_6_US, + HTT_PPDU_STATS_SGI_3_2_US, +}; + #define HTT_PPDU_STATS_USER_RATE_INFO0_USER_POS_M GENMASK(3, 0) #define HTT_PPDU_STATS_USER_RATE_INFO0_MU_GROUP_ID_M GENMASK(11, 4) @@ -1094,6 +1193,8 @@ FIELD_GET(HTT_PPDU_STATS_USER_RATE_FLAGS_MCS_M, _val) #define HTT_USR_RATE_GI(_val) \ FIELD_GET(HTT_PPDU_STATS_USER_RATE_FLAGS_GI_M, _val) +#define HTT_USR_RATE_DCM(_val) \ + FIELD_GET(HTT_PPDU_STATS_USER_RATE_FLAGS_DCM_M, _val) #define HTT_PPDU_STATS_USER_RATE_RESP_FLAGS_LTF_SIZE_M GENMASK(1, 0) #define HTT_PPDU_STATS_USER_RATE_RESP_FLAGS_STBC_M BIT(2) @@ -1481,6 +1582,7 @@ * 4 bytes. */ +#define HTT_T2H_EXT_STATS_INFO1_DONE BIT(11) #define HTT_T2H_EXT_STATS_INFO1_LENGTH GENMASK(31, 16) struct ath11k_htt_extd_stats_msg { @@ -1531,5 +1633,13 @@ struct dp_link_desc_bank *link_desc_banks, u32 ring_type, struct hal_srng *srng, u32 n_link_desc); - +void ath11k_dp_shadow_start_timer(struct ath11k_base *ab, + struct hal_srng *srng, + struct ath11k_hp_update_timer *update_timer); +void ath11k_dp_shadow_stop_timer(struct ath11k_base *ab, + struct ath11k_hp_update_timer *update_timer); +void ath11k_dp_shadow_init_timer(struct ath11k_base *ab, + struct ath11k_hp_update_timer *update_timer, + u32 interval, u32 ring_id); +void ath11k_dp_stop_shadow_timers(struct ath11k_base *ab); #endif only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/net/wireless/ath/ath11k/dp_rx.c +++ linux-oem-5.6-5.6.0/drivers/net/wireless/ath/ath11k/dp_rx.c @@ -4,8 +4,13 @@ */ #include +#include +#include +#include #include "core.h" #include "debug.h" +#include "debugfs_htt_stats.h" +#include "debugfs_sta.h" #include "hal_desc.h" #include "hw.h" #include "dp_rx.h" @@ -13,6 +18,8 @@ #include "dp_tx.h" #include "peer.h" +#define ATH11K_DP_RX_FRAGMENT_TIMEOUT_MS (2 * HZ) + static u8 *ath11k_dp_rx_h_80211_hdr(struct hal_rx_desc *desc) { return desc->hdr_status; @@ -28,22 +35,56 @@ __le32_to_cpu(desc->mpdu_start.info2)); } -static u8 ath11k_dp_rx_h_mpdu_start_decap_type(struct hal_rx_desc *desc) +static u8 ath11k_dp_rx_h_msdu_start_decap_type(struct hal_rx_desc *desc) { - return FIELD_GET(RX_MPDU_START_INFO5_DECAP_TYPE, - __le32_to_cpu(desc->mpdu_start.info5)); + return FIELD_GET(RX_MSDU_START_INFO2_DECAP_FORMAT, + __le32_to_cpu(desc->msdu_start.info2)); } -static bool ath11k_dp_rx_h_attn_msdu_done(struct hal_rx_desc *desc) +static u8 ath11k_dp_rx_h_msdu_start_mesh_ctl_present(struct hal_rx_desc *desc) { - return !!FIELD_GET(RX_ATTENTION_INFO2_MSDU_DONE, - __le32_to_cpu(desc->attention.info2)); + return FIELD_GET(RX_MSDU_START_INFO2_MESH_CTRL_PRESENT, + __le32_to_cpu(desc->msdu_start.info2)); } -static bool ath11k_dp_rx_h_attn_first_mpdu(struct hal_rx_desc *desc) +static bool ath11k_dp_rx_h_mpdu_start_seq_ctrl_valid(struct hal_rx_desc *desc) { - return !!FIELD_GET(RX_ATTENTION_INFO1_FIRST_MPDU, - __le32_to_cpu(desc->attention.info1)); + return !!FIELD_GET(RX_MPDU_START_INFO1_MPDU_SEQ_CTRL_VALID, + __le32_to_cpu(desc->mpdu_start.info1)); +} + +static bool ath11k_dp_rx_h_mpdu_start_fc_valid(struct hal_rx_desc *desc) +{ + return !!FIELD_GET(RX_MPDU_START_INFO1_MPDU_FCTRL_VALID, + __le32_to_cpu(desc->mpdu_start.info1)); +} + +static bool ath11k_dp_rx_h_mpdu_start_more_frags(struct sk_buff *skb) +{ + struct ieee80211_hdr *hdr; + + hdr = (struct ieee80211_hdr *)(skb->data + HAL_RX_DESC_SIZE); + return ieee80211_has_morefrags(hdr->frame_control); +} + +static u16 ath11k_dp_rx_h_mpdu_start_frag_no(struct sk_buff *skb) +{ + struct ieee80211_hdr *hdr; + + hdr = (struct ieee80211_hdr *)(skb->data + HAL_RX_DESC_SIZE); + return le16_to_cpu(hdr->seq_ctrl) & IEEE80211_SCTL_FRAG; +} + +static u16 ath11k_dp_rx_h_mpdu_start_seq_no(struct hal_rx_desc *desc) +{ + return FIELD_GET(RX_MPDU_START_INFO1_MPDU_SEQ_NUM, + __le32_to_cpu(desc->mpdu_start.info1)); +} + +static bool ath11k_dp_rx_h_attn_msdu_done(struct hal_rx_desc *desc) +{ + return !!FIELD_GET(RX_ATTENTION_INFO2_MSDU_DONE, + __le32_to_cpu(desc->attention.info2)); } static bool ath11k_dp_rx_h_attn_l4_cksum_fail(struct hal_rx_desc *desc) @@ -137,6 +178,17 @@ return hweight8(mimo_ss_bitmap); } +static u8 ath11k_dp_rx_h_mpdu_start_tid(struct hal_rx_desc *desc) +{ + return FIELD_GET(RX_MPDU_START_INFO2_TID, + __le32_to_cpu(desc->mpdu_start.info2)); +} + +static u16 ath11k_dp_rx_h_mpdu_start_peer_id(struct hal_rx_desc *desc) +{ + return __le16_to_cpu(desc->mpdu_start.sw_peer_id); +} + static u8 ath11k_dp_rx_h_msdu_end_l3pad(struct hal_rx_desc *desc) { return FIELD_GET(RX_MSDU_END_INFO2_L3_HDR_PADDING, @@ -202,7 +254,7 @@ tlv_tag = FIELD_GET(HAL_TLV_HDR_TAG, __le32_to_cpu(rx_desc->mpdu_start_tag)); - return tlv_tag == HAL_RX_MPDU_START ? true : false; + return tlv_tag == HAL_RX_MPDU_START; } static u32 ath11k_dp_rxdesc_get_ppduid(struct hal_rx_desc *rx_desc) @@ -210,12 +262,46 @@ return __le16_to_cpu(rx_desc->mpdu_start.phy_ppdu_id); } +static void ath11k_dp_service_mon_ring(struct timer_list *t) +{ + struct ath11k_base *ab = from_timer(ab, t, mon_reap_timer); + int i; + + for (i = 0; i < ab->hw_params.num_rxmda_per_pdev; i++) + ath11k_dp_rx_process_mon_rings(ab, i, NULL, DP_MON_SERVICE_BUDGET); + + mod_timer(&ab->mon_reap_timer, jiffies + + msecs_to_jiffies(ATH11K_MON_TIMER_INTERVAL)); +} + +int ath11k_dp_purge_mon_ring(struct ath11k_base *ab) +{ + int i, buf_reaped = 0; + unsigned long ts = jiffies; + +again: + for (i = 0; i < ab->hw_params.num_rxmda_per_pdev; i++) { + buf_reaped += ath11k_dp_rx_process_mon_rings(ab, i, + NULL, + DP_MON_SERVICE_BUDGET); + } + + /* nothing more to reap */ + if (buf_reaped < DP_MON_SERVICE_BUDGET) + return 0; + + if (time_after(jiffies, ts + + msecs_to_jiffies(DP_MON_PURGE_TIMEOUT_MS))) + return -ETIMEDOUT; + + goto again; +} + /* Returns number of Rx buffers replenished */ int ath11k_dp_rxbufs_replenish(struct ath11k_base *ab, int mac_id, struct dp_rxdma_ring *rx_ring, int req_entries, - enum hal_rx_buf_return_buf_manager mgr, - gfp_t gfp) + enum hal_rx_buf_return_buf_manager mgr) { struct hal_srng *srng; u32 *desc; @@ -262,7 +348,7 @@ spin_lock_bh(&rx_ring->idr_lock); buf_id = idr_alloc(&rx_ring->bufs_idr, skb, 0, - rx_ring->bufs_max * 3, gfp); + rx_ring->bufs_max * 3, GFP_ATOMIC); spin_unlock_bh(&rx_ring->idr_lock); if (buf_id < 0) goto fail_dma_unmap; @@ -325,7 +411,13 @@ idr_destroy(&rx_ring->bufs_idr); spin_unlock_bh(&rx_ring->idr_lock); - rx_ring = &dp->rx_mon_status_refill_ring; + /* if rxdma1_enable is false, mon_status_refill_ring + * isn't setup, so don't clean. + */ + if (!ar->ab->hw_params.rxdma1_enable) + return 0; + + rx_ring = &dp->rx_mon_status_refill_ring[0]; spin_lock_bh(&rx_ring->idr_lock); idr_for_each_entry(&rx_ring->bufs_idr, skb, buf_id) { @@ -340,21 +432,27 @@ idr_destroy(&rx_ring->bufs_idr); spin_unlock_bh(&rx_ring->idr_lock); + return 0; } static int ath11k_dp_rxdma_pdev_buf_free(struct ath11k *ar) { struct ath11k_pdev_dp *dp = &ar->dp; + struct ath11k_base *ab = ar->ab; struct dp_rxdma_ring *rx_ring = &dp->rx_refill_buf_ring; + int i; ath11k_dp_rxdma_buf_ring_free(ar, rx_ring); rx_ring = &dp->rxdma_mon_buf_ring; ath11k_dp_rxdma_buf_ring_free(ar, rx_ring); - rx_ring = &dp->rx_mon_status_refill_ring; - ath11k_dp_rxdma_buf_ring_free(ar, rx_ring); + for (i = 0; i < ab->hw_params.num_rxmda_per_pdev; i++) { + rx_ring = &dp->rx_mon_status_refill_ring[i]; + ath11k_dp_rxdma_buf_ring_free(ar, rx_ring); + } + return 0; } @@ -366,26 +464,32 @@ int num_entries; num_entries = rx_ring->refill_buf_ring.size / - ath11k_hal_srng_get_entrysize(ringtype); + ath11k_hal_srng_get_entrysize(ar->ab, ringtype); rx_ring->bufs_max = num_entries; ath11k_dp_rxbufs_replenish(ar->ab, dp->mac_id, rx_ring, num_entries, - HAL_RX_BUF_RBM_SW3_BM, GFP_KERNEL); + HAL_RX_BUF_RBM_SW3_BM); return 0; } static int ath11k_dp_rxdma_pdev_buf_setup(struct ath11k *ar) { struct ath11k_pdev_dp *dp = &ar->dp; + struct ath11k_base *ab = ar->ab; struct dp_rxdma_ring *rx_ring = &dp->rx_refill_buf_ring; + int i; ath11k_dp_rxdma_ring_buf_setup(ar, rx_ring, HAL_RXDMA_BUF); - rx_ring = &dp->rxdma_mon_buf_ring; - ath11k_dp_rxdma_ring_buf_setup(ar, rx_ring, HAL_RXDMA_MONITOR_BUF); + if (ar->ab->hw_params.rxdma1_enable) { + rx_ring = &dp->rxdma_mon_buf_ring; + ath11k_dp_rxdma_ring_buf_setup(ar, rx_ring, HAL_RXDMA_MONITOR_BUF); + } - rx_ring = &dp->rx_mon_status_refill_ring; - ath11k_dp_rxdma_ring_buf_setup(ar, rx_ring, HAL_RXDMA_MONITOR_STATUS); + for (i = 0; i < ab->hw_params.num_rxmda_per_pdev; i++) { + rx_ring = &dp->rx_mon_status_refill_ring[i]; + ath11k_dp_rxdma_ring_buf_setup(ar, rx_ring, HAL_RXDMA_MONITOR_STATUS); + } return 0; } @@ -393,41 +497,44 @@ static void ath11k_dp_rx_pdev_srng_free(struct ath11k *ar) { struct ath11k_pdev_dp *dp = &ar->dp; + struct ath11k_base *ab = ar->ab; + int i; - ath11k_dp_srng_cleanup(ar->ab, &dp->rx_refill_buf_ring.refill_buf_ring); - ath11k_dp_srng_cleanup(ar->ab, &dp->rxdma_err_dst_ring); - ath11k_dp_srng_cleanup(ar->ab, &dp->rx_mon_status_refill_ring.refill_buf_ring); - ath11k_dp_srng_cleanup(ar->ab, &dp->rxdma_mon_buf_ring.refill_buf_ring); + ath11k_dp_srng_cleanup(ab, &dp->rx_refill_buf_ring.refill_buf_ring); + + for (i = 0; i < ab->hw_params.num_rxmda_per_pdev; i++) { + if (ab->hw_params.rx_mac_buf_ring) + ath11k_dp_srng_cleanup(ab, &dp->rx_mac_buf_ring[i]); + + ath11k_dp_srng_cleanup(ab, &dp->rxdma_err_dst_ring[i]); + ath11k_dp_srng_cleanup(ab, + &dp->rx_mon_status_refill_ring[i].refill_buf_ring); + } + + ath11k_dp_srng_cleanup(ab, &dp->rxdma_mon_buf_ring.refill_buf_ring); } void ath11k_dp_pdev_reo_cleanup(struct ath11k_base *ab) { - struct ath11k_pdev_dp *dp; - struct ath11k *ar; + struct ath11k_dp *dp = &ab->dp; int i; - for (i = 0; i < ab->num_radios; i++) { - ar = ab->pdevs[i].ar; - dp = &ar->dp; - ath11k_dp_srng_cleanup(ab, &dp->reo_dst_ring); - } + for (i = 0; i < DP_REO_DST_RING_MAX; i++) + ath11k_dp_srng_cleanup(ab, &dp->reo_dst_ring[i]); } int ath11k_dp_pdev_reo_setup(struct ath11k_base *ab) { - struct ath11k *ar; - struct ath11k_pdev_dp *dp; + struct ath11k_dp *dp = &ab->dp; int ret; int i; - for (i = 0; i < ab->num_radios; i++) { - ar = ab->pdevs[i].ar; - dp = &ar->dp; - ret = ath11k_dp_srng_setup(ab, &dp->reo_dst_ring, HAL_REO_DST, - dp->mac_id, dp->mac_id, + for (i = 0; i < DP_REO_DST_RING_MAX; i++) { + ret = ath11k_dp_srng_setup(ab, &dp->reo_dst_ring[i], + HAL_REO_DST, i, 0, DP_REO_DST_RING_SIZE); if (ret) { - ath11k_warn(ar->ab, "failed to setup reo_dst_ring\n"); + ath11k_warn(ab, "failed to setup reo_dst_ring\n"); goto err_reo_cleanup; } } @@ -443,7 +550,9 @@ static int ath11k_dp_rx_pdev_srng_alloc(struct ath11k *ar) { struct ath11k_pdev_dp *dp = &ar->dp; + struct ath11k_base *ab = ar->ab; struct dp_srng *srng = NULL; + int i; int ret; ret = ath11k_dp_srng_setup(ar->ab, @@ -455,24 +564,55 @@ return ret; } - ret = ath11k_dp_srng_setup(ar->ab, &dp->rxdma_err_dst_ring, - HAL_RXDMA_DST, 0, dp->mac_id, - DP_RXDMA_ERR_DST_RING_SIZE); - if (ret) { - ath11k_warn(ar->ab, "failed to setup rxdma_err_dst_ring\n"); - return ret; + if (ar->ab->hw_params.rx_mac_buf_ring) { + for (i = 0; i < ab->hw_params.num_rxmda_per_pdev; i++) { + ret = ath11k_dp_srng_setup(ar->ab, + &dp->rx_mac_buf_ring[i], + HAL_RXDMA_BUF, 1, + dp->mac_id + i, 1024); + if (ret) { + ath11k_warn(ar->ab, "failed to setup rx_mac_buf_ring %d\n", + i); + return ret; + } + } } - srng = &dp->rx_mon_status_refill_ring.refill_buf_ring; - ret = ath11k_dp_srng_setup(ar->ab, - srng, - HAL_RXDMA_MONITOR_STATUS, 0, dp->mac_id, - DP_RXDMA_MON_STATUS_RING_SIZE); - if (ret) { - ath11k_warn(ar->ab, - "failed to setup rx_mon_status_refill_ring\n"); - return ret; + for (i = 0; i < ab->hw_params.num_rxmda_per_pdev; i++) { + ret = ath11k_dp_srng_setup(ar->ab, &dp->rxdma_err_dst_ring[i], + HAL_RXDMA_DST, 0, dp->mac_id + i, + DP_RXDMA_ERR_DST_RING_SIZE); + if (ret) { + ath11k_warn(ar->ab, "failed to setup rxdma_err_dst_ring %d\n", i); + return ret; + } } + + for (i = 0; i < ab->hw_params.num_rxmda_per_pdev; i++) { + srng = &dp->rx_mon_status_refill_ring[i].refill_buf_ring; + ret = ath11k_dp_srng_setup(ar->ab, + srng, + HAL_RXDMA_MONITOR_STATUS, 0, dp->mac_id + i, + DP_RXDMA_MON_STATUS_RING_SIZE); + if (ret) { + ath11k_warn(ar->ab, + "failed to setup rx_mon_status_refill_ring %d\n", i); + return ret; + } + } + + /* if rxdma1_enable is false, then it doesn't need + * to setup rxdam_mon_buf_ring, rxdma_mon_dst_ring + * and rxdma_mon_desc_ring. + * init reap timer for QCA6390. + */ + if (!ar->ab->hw_params.rxdma1_enable) { + //init mon status buffer reap timer + timer_setup(&ar->ab->mon_reap_timer, + ath11k_dp_service_mon_ring, 0); + return 0; + } + ret = ath11k_dp_srng_setup(ar->ab, &dp->rxdma_mon_buf_ring.refill_buf_ring, HAL_RXDMA_MONITOR_BUF, 0, dp->mac_id, @@ -522,6 +662,7 @@ list_for_each_entry_safe(cmd_cache, tmp_cache, &dp->reo_cmd_cache_flush_list, list) { list_del(&cmd_cache->list); + dp->reo_cmd_cache_flush_count--; dma_unmap_single(ab->dev, cmd_cache->data.paddr, cmd_cache->data.size, DMA_BIDIRECTIONAL); kfree(cmd_cache->data.vaddr); @@ -608,15 +749,16 @@ spin_lock_bh(&dp->reo_cmd_lock); list_add_tail(&elem->list, &dp->reo_cmd_cache_flush_list); - spin_unlock_bh(&dp->reo_cmd_lock); + dp->reo_cmd_cache_flush_count++; /* Flush and invalidate aged REO desc from HW cache */ - spin_lock_bh(&dp->reo_cmd_lock); list_for_each_entry_safe(elem, tmp, &dp->reo_cmd_cache_flush_list, list) { - if (time_after(jiffies, elem->ts + + if (dp->reo_cmd_cache_flush_count > DP_REO_DESC_FREE_THRESHOLD || + time_after(jiffies, elem->ts + msecs_to_jiffies(DP_REO_DESC_FREE_TIMEOUT_MS))) { list_del(&elem->list); + dp->reo_cmd_cache_flush_count--; spin_unlock_bh(&dp->reo_cmd_lock); ath11k_dp_reo_cache_flush(ab, &elem->data); @@ -633,8 +775,8 @@ kfree(rx_tid->vaddr); } -static void ath11k_peer_rx_tid_delete(struct ath11k *ar, - struct ath11k_peer *peer, u8 tid) +void ath11k_peer_rx_tid_delete(struct ath11k *ar, + struct ath11k_peer *peer, u8 tid) { struct ath11k_hal_reo_cmd cmd = {0}; struct dp_rx_tid *rx_tid = &peer->rx_tid[tid]; @@ -661,12 +803,75 @@ rx_tid->active = false; } +static int ath11k_dp_rx_link_desc_return(struct ath11k_base *ab, + u32 *link_desc, + enum hal_wbm_rel_bm_act action) +{ + struct ath11k_dp *dp = &ab->dp; + struct hal_srng *srng; + u32 *desc; + int ret = 0; + + srng = &ab->hal.srng_list[dp->wbm_desc_rel_ring.ring_id]; + + spin_lock_bh(&srng->lock); + + ath11k_hal_srng_access_begin(ab, srng); + + desc = ath11k_hal_srng_src_get_next_entry(ab, srng); + if (!desc) { + ret = -ENOBUFS; + goto exit; + } + + ath11k_hal_rx_msdu_link_desc_set(ab, (void *)desc, (void *)link_desc, + action); + +exit: + ath11k_hal_srng_access_end(ab, srng); + + spin_unlock_bh(&srng->lock); + + return ret; +} + +static void ath11k_dp_rx_frags_cleanup(struct dp_rx_tid *rx_tid, bool rel_link_desc) +{ + struct ath11k_base *ab = rx_tid->ab; + + lockdep_assert_held(&ab->base_lock); + + if (rx_tid->dst_ring_desc) { + if (rel_link_desc) + ath11k_dp_rx_link_desc_return(ab, (u32 *)rx_tid->dst_ring_desc, + HAL_WBM_REL_BM_ACT_PUT_IN_IDLE); + kfree(rx_tid->dst_ring_desc); + rx_tid->dst_ring_desc = NULL; + } + + rx_tid->cur_sn = 0; + rx_tid->last_frag_no = 0; + rx_tid->rx_frag_bitmap = 0; + __skb_queue_purge(&rx_tid->rx_frags); +} + void ath11k_peer_rx_tid_cleanup(struct ath11k *ar, struct ath11k_peer *peer) { + struct dp_rx_tid *rx_tid; int i; - for (i = 0; i <= IEEE80211_NUM_TIDS; i++) + lockdep_assert_held(&ar->ab->base_lock); + + for (i = 0; i <= IEEE80211_NUM_TIDS; i++) { + rx_tid = &peer->rx_tid[i]; + ath11k_peer_rx_tid_delete(ar, peer, i); + ath11k_dp_rx_frags_cleanup(rx_tid, true); + + spin_unlock_bh(&ar->ab->base_lock); + del_timer_sync(&rx_tid->frag_timer); + spin_lock_bh(&ar->ab->base_lock); + } } static int ath11k_peer_rx_tid_reo_update(struct ath11k *ar, @@ -732,7 +937,8 @@ } int ath11k_peer_rx_tid_setup(struct ath11k *ar, const u8 *peer_mac, int vdev_id, - u8 tid, u32 ba_win_sz, u16 ssn) + u8 tid, u32 ba_win_sz, u16 ssn, + enum hal_pn_type pn_type) { struct ath11k_base *ab = ar->ab; struct ath11k_peer *peer; @@ -785,7 +991,7 @@ else hw_desc_sz = ath11k_hal_reo_qdesc_size(DP_BA_WIN_SZ_MAX, tid); - vaddr = kzalloc(hw_desc_sz + HAL_LINK_DESC_ALIGN - 1, GFP_KERNEL); + vaddr = kzalloc(hw_desc_sz + HAL_LINK_DESC_ALIGN - 1, GFP_ATOMIC); if (!vaddr) { spin_unlock_bh(&ab->base_lock); return -ENOMEM; @@ -793,7 +999,8 @@ addr_aligned = PTR_ALIGN(vaddr, HAL_LINK_DESC_ALIGN); - ath11k_hal_reo_qdesc_setup(addr_aligned, tid, ba_win_sz, ssn); + ath11k_hal_reo_qdesc_setup(addr_aligned, tid, ba_win_sz, + ssn, pn_type); paddr = dma_map_single(ab->dev, addr_aligned, hw_desc_sz, DMA_BIDIRECTIONAL); @@ -837,7 +1044,7 @@ ret = ath11k_peer_rx_tid_setup(ar, params->sta->addr, vdev_id, params->tid, params->buf_size, - params->ssn); + params->ssn, arsta->pn_type); if (ret) ath11k_warn(ab, "failed to setup rx tid %d\n", ret); @@ -890,8 +1097,80 @@ return ret; } -static int ath11k_get_ppdu_user_index(struct htt_ppdu_stats *ppdu_stats, - u16 peer_id) +int ath11k_dp_peer_rx_pn_replay_config(struct ath11k_vif *arvif, + const u8 *peer_addr, + enum set_key_cmd key_cmd, + struct ieee80211_key_conf *key) +{ + struct ath11k *ar = arvif->ar; + struct ath11k_base *ab = ar->ab; + struct ath11k_hal_reo_cmd cmd = {0}; + struct ath11k_peer *peer; + struct dp_rx_tid *rx_tid; + u8 tid; + int ret = 0; + + /* NOTE: Enable PN/TSC replay check offload only for unicast frames. + * We use mac80211 PN/TSC replay check functionality for bcast/mcast + * for now. + */ + if (!(key->flags & IEEE80211_KEY_FLAG_PAIRWISE)) + return 0; + + cmd.flag |= HAL_REO_CMD_FLG_NEED_STATUS; + cmd.upd0 |= HAL_REO_CMD_UPD0_PN | + HAL_REO_CMD_UPD0_PN_SIZE | + HAL_REO_CMD_UPD0_PN_VALID | + HAL_REO_CMD_UPD0_PN_CHECK | + HAL_REO_CMD_UPD0_SVLD; + + switch (key->cipher) { + case WLAN_CIPHER_SUITE_TKIP: + case WLAN_CIPHER_SUITE_CCMP: + case WLAN_CIPHER_SUITE_CCMP_256: + case WLAN_CIPHER_SUITE_GCMP: + case WLAN_CIPHER_SUITE_GCMP_256: + if (key_cmd == SET_KEY) { + cmd.upd1 |= HAL_REO_CMD_UPD1_PN_CHECK; + cmd.pn_size = 48; + } + break; + default: + break; + } + + spin_lock_bh(&ab->base_lock); + + peer = ath11k_peer_find(ab, arvif->vdev_id, peer_addr); + if (!peer) { + ath11k_warn(ab, "failed to find the peer to configure pn replay detection\n"); + spin_unlock_bh(&ab->base_lock); + return -ENOENT; + } + + for (tid = 0; tid <= IEEE80211_NUM_TIDS; tid++) { + rx_tid = &peer->rx_tid[tid]; + if (!rx_tid->active) + continue; + cmd.addr_lo = lower_32_bits(rx_tid->paddr); + cmd.addr_hi = upper_32_bits(rx_tid->paddr); + ret = ath11k_dp_tx_send_reo_cmd(ab, rx_tid, + HAL_REO_CMD_UPDATE_RX_QUEUE, + &cmd, NULL); + if (ret) { + ath11k_warn(ab, "failed to configure rx tid %d queue for pn replay detection %d\n", + tid, ret); + break; + } + } + + spin_unlock_bh(&ar->ab->base_lock); + + return ret; +} + +static inline int ath11k_get_ppdu_user_index(struct htt_ppdu_stats *ppdu_stats, + u16 peer_id) { int i; @@ -1028,23 +1307,23 @@ return 0; } -static u32 ath11k_bw_to_mac80211_bwflags(u8 bw) +static inline u32 ath11k_he_gi_to_nl80211_he_gi(u8 sgi) { - u32 bwflags = 0; + u32 ret = 0; - switch (bw) { - case ATH11K_BW_40: - bwflags = IEEE80211_TX_RC_40_MHZ_WIDTH; + switch (sgi) { + case RX_MSDU_START_SGI_0_8_US: + ret = NL80211_RATE_INFO_HE_GI_0_8; break; - case ATH11K_BW_80: - bwflags = IEEE80211_TX_RC_80_MHZ_WIDTH; + case RX_MSDU_START_SGI_1_6_US: + ret = NL80211_RATE_INFO_HE_GI_1_6; break; - case ATH11K_BW_160: - bwflags = IEEE80211_TX_RC_160_MHZ_WIDTH; + case RX_MSDU_START_SGI_3_2_US: + ret = NL80211_RATE_INFO_HE_GI_3_2; break; } - return bwflags; + return ret; } static void @@ -1056,12 +1335,11 @@ struct ieee80211_sta *sta; struct ath11k_sta *arsta; struct htt_ppdu_stats_user_rate *user_rate; - struct ieee80211_chanctx_conf *conf = NULL; struct ath11k_per_peer_tx_stats *peer_stats = &ar->peer_tx_stats; struct htt_ppdu_user_stats *usr_stats = &ppdu_stats->user_stats[user]; struct htt_ppdu_stats_common *common = &ppdu_stats->common; int ret; - u8 flags, mcs, nss, bw, sgi, rate_idx = 0; + u8 flags, mcs, nss, bw, sgi, dcm, rate_idx = 0; u32 succ_bytes = 0; u16 rate = 0, succ_pkts = 0; u32 tx_duration = 0; @@ -1096,18 +1374,29 @@ nss = HTT_USR_RATE_NSS(user_rate->rate_flags) + 1; mcs = HTT_USR_RATE_MCS(user_rate->rate_flags); sgi = HTT_USR_RATE_GI(user_rate->rate_flags); + dcm = HTT_USR_RATE_DCM(user_rate->rate_flags); /* Note: If host configured fixed rates and in some other special * cases, the broadcast/management frames are sent in different rates. * Firmware rate's control to be skipped for this? */ - if (flags == WMI_RATE_PREAMBLE_VHT && mcs > 9) { + if (flags == WMI_RATE_PREAMBLE_HE && mcs > 11) { + ath11k_warn(ab, "Invalid HE mcs %hhd peer stats", mcs); + return; + } + + if (flags == WMI_RATE_PREAMBLE_HE && mcs > ATH11K_HE_MCS_MAX) { + ath11k_warn(ab, "Invalid HE mcs %hhd peer stats", mcs); + return; + } + + if (flags == WMI_RATE_PREAMBLE_VHT && mcs > ATH11K_VHT_MCS_MAX) { ath11k_warn(ab, "Invalid VHT mcs %hhd peer stats", mcs); return; } - if (flags == WMI_RATE_PREAMBLE_HT && (mcs > 7 || nss < 1)) { + if (flags == WMI_RATE_PREAMBLE_HT && (mcs > ATH11K_HT_MCS_MAX || nss < 1)) { ath11k_warn(ab, "Invalid HT mcs %hhd nss %hhd peer stats", mcs, nss); return; @@ -1136,60 +1425,42 @@ arsta = (struct ath11k_sta *)sta->drv_priv; memset(&arsta->txrate, 0, sizeof(arsta->txrate)); - memset(&arsta->tx_info.status, 0, sizeof(arsta->tx_info.status)); switch (flags) { case WMI_RATE_PREAMBLE_OFDM: arsta->txrate.legacy = rate; - if (arsta->arvif && arsta->arvif->vif) - conf = rcu_dereference(arsta->arvif->vif->chanctx_conf); - if (conf && conf->def.chan->band == NL80211_BAND_5GHZ) - arsta->tx_info.status.rates[0].idx = rate_idx - 4; break; case WMI_RATE_PREAMBLE_CCK: arsta->txrate.legacy = rate; - arsta->tx_info.status.rates[0].idx = rate_idx; - if (mcs > ATH11K_HW_RATE_CCK_LP_1M && - mcs <= ATH11K_HW_RATE_CCK_SP_2M) - arsta->tx_info.status.rates[0].flags |= - IEEE80211_TX_RC_USE_SHORT_PREAMBLE; break; case WMI_RATE_PREAMBLE_HT: arsta->txrate.mcs = mcs + 8 * (nss - 1); - arsta->tx_info.status.rates[0].idx = arsta->txrate.mcs; arsta->txrate.flags = RATE_INFO_FLAGS_MCS; - arsta->tx_info.status.rates[0].flags |= IEEE80211_TX_RC_MCS; - if (sgi) { + if (sgi) arsta->txrate.flags |= RATE_INFO_FLAGS_SHORT_GI; - arsta->tx_info.status.rates[0].flags |= - IEEE80211_TX_RC_SHORT_GI; - } break; case WMI_RATE_PREAMBLE_VHT: arsta->txrate.mcs = mcs; - ieee80211_rate_set_vht(&arsta->tx_info.status.rates[0], mcs, nss); arsta->txrate.flags = RATE_INFO_FLAGS_VHT_MCS; - arsta->tx_info.status.rates[0].flags |= IEEE80211_TX_RC_VHT_MCS; - if (sgi) { + if (sgi) arsta->txrate.flags |= RATE_INFO_FLAGS_SHORT_GI; - arsta->tx_info.status.rates[0].flags |= - IEEE80211_TX_RC_SHORT_GI; - } + break; + case WMI_RATE_PREAMBLE_HE: + arsta->txrate.mcs = mcs; + arsta->txrate.flags = RATE_INFO_FLAGS_HE_MCS; + arsta->txrate.he_dcm = dcm; + arsta->txrate.he_gi = ath11k_he_gi_to_nl80211_he_gi(sgi); + arsta->txrate.he_ru_alloc = ath11k_he_ru_tones_to_nl80211_he_ru_alloc( + (user_rate->ru_end - + user_rate->ru_start) + 1); break; } arsta->txrate.nss = nss; arsta->txrate.bw = ath11k_mac_bw_to_mac80211_bw(bw); - arsta->tx_info.status.rates[0].flags |= ath11k_bw_to_mac80211_bwflags(bw); arsta->tx_duration += tx_duration; memcpy(&arsta->last_txrate, &arsta->txrate, sizeof(struct rate_info)); - if (succ_pkts) { - arsta->tx_info.flags = IEEE80211_TX_STAT_ACK; - arsta->tx_info.status.rates[0].count = 1; - ieee80211_tx_rate_update(ar->hw, sta, &arsta->tx_info); - } - /* PPDU stats reported for mgmt packet doesn't have valid tx bytes. * So skip peer stats update for mgmt packets. */ @@ -1203,9 +1474,8 @@ HTT_USR_CMPLTN_LONG_RETRY(usr_stats->cmpltn_cmn.flags) + HTT_USR_CMPLTN_SHORT_RETRY(usr_stats->cmpltn_cmn.flags); - if (ath11k_debug_is_extd_tx_stats_enabled(ar)) - ath11k_accumulate_per_peer_tx_stats(arsta, - peer_stats, rate_idx); + if (ath11k_debugfs_is_extd_tx_stats_enabled(ar)) + ath11k_debugfs_sta_add_tx_stats(arsta, peer_stats, rate_idx); } spin_unlock_bh(&ab->base_lock); @@ -1247,7 +1517,7 @@ } spin_unlock_bh(&ar->data_lock); - ppdu_info = kzalloc(sizeof(*ppdu_info), GFP_KERNEL); + ppdu_info = kzalloc(sizeof(*ppdu_info), GFP_ATOMIC); if (!ppdu_info) return NULL; @@ -1281,7 +1551,7 @@ goto exit; } - if (ath11k_debug_is_pktlog_lite_mode_enabled(ar)) + if (ath11k_debugfs_is_pktlog_lite_mode_enabled(ar)) trace_ath11k_htt_ppdu_stats(ar, skb->data, len); ppdu_info = ath11k_dp_htt_get_ppdu_desc(ar, ppdu_id); @@ -1308,18 +1578,10 @@ static void ath11k_htt_pktlog(struct ath11k_base *ab, struct sk_buff *skb) { struct htt_pktlog_msg *data = (struct htt_pktlog_msg *)skb->data; + struct ath_pktlog_hdr *hdr = (struct ath_pktlog_hdr *)data; struct ath11k *ar; - u32 len; u8 pdev_id; - len = FIELD_GET(HTT_T2H_PPDU_STATS_INFO_PAYLOAD_SIZE, data->hdr); - if (len > ATH11K_HTT_PKTLOG_MAX_SIZE) { - ath11k_warn(ab, "htt pktlog buffer size %d, expected < %d\n", - len, - ATH11K_HTT_PKTLOG_MAX_SIZE); - return; - } - pdev_id = FIELD_GET(HTT_T2H_PPDU_STATS_INFO_PDEV_ID, data->hdr); ar = ath11k_mac_get_ar_by_pdev_id(ab, pdev_id); if (!ar) { @@ -1327,7 +1589,57 @@ return; } - trace_ath11k_htt_pktlog(ar, data->payload, len); + trace_ath11k_htt_pktlog(ar, data->payload, hdr->size, + ar->ab->pktlog_defs_checksum); +} + +static void ath11k_htt_backpressure_event_handler(struct ath11k_base *ab, + struct sk_buff *skb) +{ + u32 *data = (u32 *)skb->data; + u8 pdev_id, ring_type, ring_id, pdev_idx; + u16 hp, tp; + u32 backpressure_time; + struct ath11k_bp_stats *bp_stats; + + pdev_id = FIELD_GET(HTT_BACKPRESSURE_EVENT_PDEV_ID_M, *data); + ring_type = FIELD_GET(HTT_BACKPRESSURE_EVENT_RING_TYPE_M, *data); + ring_id = FIELD_GET(HTT_BACKPRESSURE_EVENT_RING_ID_M, *data); + ++data; + + hp = FIELD_GET(HTT_BACKPRESSURE_EVENT_HP_M, *data); + tp = FIELD_GET(HTT_BACKPRESSURE_EVENT_TP_M, *data); + ++data; + + backpressure_time = *data; + + ath11k_dbg(ab, ATH11K_DBG_DP_HTT, "htt backpressure event, pdev %d, ring type %d,ring id %d, hp %d tp %d, backpressure time %d\n", + pdev_id, ring_type, ring_id, hp, tp, backpressure_time); + + if (ring_type == HTT_BACKPRESSURE_UMAC_RING_TYPE) { + if (ring_id >= HTT_SW_UMAC_RING_IDX_MAX) + return; + + bp_stats = &ab->soc_stats.bp_stats.umac_ring_bp_stats[ring_id]; + } else if (ring_type == HTT_BACKPRESSURE_LMAC_RING_TYPE) { + pdev_idx = DP_HW2SW_MACID(pdev_id); + + if (ring_id >= HTT_SW_LMAC_RING_IDX_MAX || pdev_idx >= MAX_RADIOS) + return; + + bp_stats = &ab->soc_stats.bp_stats.lmac_ring_bp_stats[ring_id][pdev_idx]; + } else { + ath11k_warn(ab, "unknown ring type received in htt bp event %d\n", + ring_type); + return; + } + + spin_lock_bh(&ab->base_lock); + bp_stats->hp = hp; + bp_stats->tp = tp; + bp_stats->count++; + bp_stats->jiffies = jiffies; + spin_unlock_bh(&ab->base_lock); } void ath11k_dp_htt_htc_t2h_msg_handler(struct ath11k_base *ab, @@ -1361,11 +1673,23 @@ resp->peer_map_ev.info1); ath11k_dp_get_mac_addr(resp->peer_map_ev.mac_addr_l32, peer_mac_h16, mac_addr); + ath11k_peer_map_event(ab, vdev_id, peer_id, mac_addr, 0); + break; + case HTT_T2H_MSG_TYPE_PEER_MAP2: + vdev_id = FIELD_GET(HTT_T2H_PEER_MAP_INFO_VDEV_ID, + resp->peer_map_ev.info); + peer_id = FIELD_GET(HTT_T2H_PEER_MAP_INFO_PEER_ID, + resp->peer_map_ev.info); + peer_mac_h16 = FIELD_GET(HTT_T2H_PEER_MAP_INFO1_MAC_ADDR_H16, + resp->peer_map_ev.info1); + ath11k_dp_get_mac_addr(resp->peer_map_ev.mac_addr_l32, + peer_mac_h16, mac_addr); ast_hash = FIELD_GET(HTT_T2H_PEER_MAP_INFO2_AST_HASH_VAL, resp->peer_map_ev.info2); ath11k_peer_map_event(ab, vdev_id, peer_id, mac_addr, ast_hash); break; case HTT_T2H_MSG_TYPE_PEER_UNMAP: + case HTT_T2H_MSG_TYPE_PEER_UNMAP2: peer_id = FIELD_GET(HTT_T2H_PEER_UNMAP_INFO_PEER_ID, resp->peer_unmap_ev.info); ath11k_peer_unmap_event(ab, peer_id); @@ -1374,11 +1698,14 @@ ath11k_htt_pull_ppdu_stats(ab, skb); break; case HTT_T2H_MSG_TYPE_EXT_STATS_CONF: - ath11k_dbg_htt_ext_stats_handler(ab, skb); + ath11k_debugfs_htt_ext_stats_handler(ab, skb); break; case HTT_T2H_MSG_TYPE_PKTLOG: ath11k_htt_pktlog(ab, skb); break; + case HTT_T2H_MSG_TYPE_BKPRESSURE_EVENT_IND: + ath11k_htt_backpressure_event_handler(ab, skb); + break; default: ath11k_warn(ab, "htt event %d not handled\n", type); break; @@ -1490,88 +1817,6 @@ return NULL; } -static int ath11k_dp_rx_retrieve_amsdu(struct ath11k *ar, - struct sk_buff_head *msdu_list, - struct sk_buff_head *amsdu_list) -{ - struct sk_buff *msdu = skb_peek(msdu_list); - struct sk_buff *last_buf; - struct ath11k_skb_rxcb *rxcb; - struct ieee80211_hdr *hdr; - struct hal_rx_desc *rx_desc, *lrx_desc; - u16 msdu_len; - u8 l3_pad_bytes; - u8 *hdr_status; - int ret; - - if (!msdu) - return -ENOENT; - - rx_desc = (struct hal_rx_desc *)msdu->data; - hdr_status = ath11k_dp_rx_h_80211_hdr(rx_desc); - hdr = (struct ieee80211_hdr *)hdr_status; - /* Process only data frames */ - if (!ieee80211_is_data(hdr->frame_control)) { - __skb_unlink(msdu, msdu_list); - dev_kfree_skb_any(msdu); - return -EINVAL; - } - - do { - __skb_unlink(msdu, msdu_list); - last_buf = ath11k_dp_rx_get_msdu_last_buf(msdu_list, msdu); - if (!last_buf) { - ath11k_warn(ar->ab, - "No valid Rx buffer to access Atten/MSDU_END/MPDU_END tlvs\n"); - ret = -EIO; - goto free_out; - } - - rx_desc = (struct hal_rx_desc *)msdu->data; - lrx_desc = (struct hal_rx_desc *)last_buf->data; - - if (!ath11k_dp_rx_h_attn_msdu_done(lrx_desc)) { - ath11k_warn(ar->ab, "msdu_done bit in attention is not set\n"); - ret = -EIO; - goto free_out; - } - - rxcb = ATH11K_SKB_RXCB(msdu); - rxcb->rx_desc = rx_desc; - msdu_len = ath11k_dp_rx_h_msdu_start_msdu_len(rx_desc); - l3_pad_bytes = ath11k_dp_rx_h_msdu_end_l3pad(lrx_desc); - - if (!rxcb->is_continuation) { - skb_put(msdu, HAL_RX_DESC_SIZE + l3_pad_bytes + msdu_len); - skb_pull(msdu, HAL_RX_DESC_SIZE + l3_pad_bytes); - } else { - ret = ath11k_dp_rx_msdu_coalesce(ar, msdu_list, - msdu, last_buf, - l3_pad_bytes, msdu_len); - if (ret) { - ath11k_warn(ar->ab, - "failed to coalesce msdu rx buffer%d\n", ret); - goto free_out; - } - } - __skb_queue_tail(amsdu_list, msdu); - - /* Should we also consider msdu_cnt from mpdu_meta while - * preparing amsdu list? - */ - if (rxcb->is_last_msdu) - break; - } while ((msdu = skb_peek(msdu_list)) != NULL); - - return 0; - -free_out: - dev_kfree_skb_any(msdu); - __skb_queue_purge(amsdu_list); - - return ret; -} - static void ath11k_dp_rx_h_csum_offload(struct sk_buff *msdu) { struct ath11k_skb_rxcb *rxcb = ATH11K_SKB_RXCB(msdu); @@ -1670,20 +1915,53 @@ enum hal_encrypt_type enctype, struct ieee80211_rx_status *status) { + struct ath11k_skb_rxcb *rxcb = ATH11K_SKB_RXCB(msdu); + u8 decap_hdr[DP_MAX_NWIFI_HDR_LEN]; struct ieee80211_hdr *hdr; size_t hdr_len; u8 da[ETH_ALEN]; u8 sa[ETH_ALEN]; + u16 qos_ctl = 0; + u8 *qos; - /* pull decapped header and copy SA & DA */ + /* copy SA & DA and pull decapped header */ hdr = (struct ieee80211_hdr *)msdu->data; + hdr_len = ieee80211_hdrlen(hdr->frame_control); ether_addr_copy(da, ieee80211_get_DA(hdr)); ether_addr_copy(sa, ieee80211_get_SA(hdr)); skb_pull(msdu, ieee80211_hdrlen(hdr->frame_control)); - /* push original 802.11 header */ - hdr = (struct ieee80211_hdr *)first_hdr; - hdr_len = ieee80211_hdrlen(hdr->frame_control); + if (rxcb->is_first_msdu) { + /* original 802.11 header is valid for the first msdu + * hence we can reuse the same header + */ + hdr = (struct ieee80211_hdr *)first_hdr; + hdr_len = ieee80211_hdrlen(hdr->frame_control); + + /* Each A-MSDU subframe will be reported as a separate MSDU, + * so strip the A-MSDU bit from QoS Ctl. + */ + if (ieee80211_is_data_qos(hdr->frame_control)) { + qos = ieee80211_get_qos_ctl(hdr); + qos[0] &= ~IEEE80211_QOS_CTL_A_MSDU_PRESENT; + } + } else { + /* Rebuild qos header if this is a middle/last msdu */ + hdr->frame_control |= __cpu_to_le16(IEEE80211_STYPE_QOS_DATA); + + /* Reset the order bit as the HT_Control header is stripped */ + hdr->frame_control &= ~(__cpu_to_le16(IEEE80211_FCTL_ORDER)); + + qos_ctl = rxcb->tid; + + if (ath11k_dp_rx_h_msdu_start_mesh_ctl_present(rxcb->rx_desc)) + qos_ctl |= IEEE80211_QOS_CTL_MESH_CONTROL_PRESENT; + + /* TODO Add other QoS ctl fields when required */ + + /* copy decap header before overwriting for reuse below */ + memcpy(decap_hdr, (uint8_t *)hdr, hdr_len); + } if (!(status->flag & RX_FLAG_IV_STRIPPED)) { memcpy(skb_push(msdu, @@ -1692,6 +1970,14 @@ ath11k_dp_rx_crypto_param_len(ar, enctype)); } + if (!rxcb->is_first_msdu) { + memcpy(skb_push(msdu, + IEEE80211_QOS_CTL_LEN), &qos_ctl, + IEEE80211_QOS_CTL_LEN); + memcpy(skb_push(msdu, hdr_len), decap_hdr, hdr_len); + return; + } + memcpy(skb_push(msdu, hdr_len), hdr, hdr_len); /* original 802.11 header has a different DA and in @@ -1846,7 +2132,7 @@ u8 decap; first_hdr = ath11k_dp_rx_h_80211_hdr(rx_desc); - decap = ath11k_dp_rx_h_mpdu_start_decap_type(rx_desc); + decap = ath11k_dp_rx_h_msdu_start_decap_type(rx_desc); switch (decap) { case DP_RX_DECAP_TYPE_NATIVE_WIFI: @@ -1858,6 +2144,7 @@ decrypted); break; case DP_RX_DECAP_TYPE_ETHERNET2_DIX: + /* TODO undecap support for middle/last msdu's of amsdu */ ath11k_dp_rx_h_undecap_eth(ar, msdu, first_hdr, enctype, status); break; @@ -1868,42 +2155,41 @@ } static void ath11k_dp_rx_h_mpdu(struct ath11k *ar, - struct sk_buff_head *amsdu_list, + struct sk_buff *msdu, struct hal_rx_desc *rx_desc, struct ieee80211_rx_status *rx_status) { - struct ieee80211_hdr *hdr; + bool fill_crypto_hdr, mcast; enum hal_encrypt_type enctype; - struct sk_buff *last_msdu; - struct sk_buff *msdu; - struct ath11k_skb_rxcb *last_rxcb; - bool is_decrypted; + bool is_decrypted = false; + struct ieee80211_hdr *hdr; + struct ath11k_peer *peer; u32 err_bitmap; - u8 *qos; - if (skb_queue_empty(amsdu_list)) - return; - - hdr = (struct ieee80211_hdr *)ath11k_dp_rx_h_80211_hdr(rx_desc); + hdr = (struct ieee80211_hdr *)msdu->data; - /* Each A-MSDU subframe will use the original header as the base and be - * reported as a separate MSDU so strip the A-MSDU bit from QoS Ctl. - */ - if (ieee80211_is_data_qos(hdr->frame_control)) { - qos = ieee80211_get_qos_ctl(hdr); - qos[0] &= ~IEEE80211_QOS_CTL_A_MSDU_PRESENT; - } + /* PN for multicast packets will be checked in mac80211 */ - is_decrypted = ath11k_dp_rx_h_attn_is_decrypted(rx_desc); - enctype = ath11k_dp_rx_h_mpdu_start_enctype(rx_desc); + mcast = is_multicast_ether_addr(hdr->addr1); + fill_crypto_hdr = mcast; - /* Some attention flags are valid only in the last MSDU. */ - last_msdu = skb_peek_tail(amsdu_list); - last_rxcb = ATH11K_SKB_RXCB(last_msdu); + spin_lock_bh(&ar->ab->base_lock); + peer = ath11k_peer_find_by_addr(ar->ab, hdr->addr2); + if (peer) { + if (mcast) + enctype = peer->sec_type_grp; + else + enctype = peer->sec_type; + } else { + enctype = HAL_ENCRYPT_TYPE_OPEN; + } + spin_unlock_bh(&ar->ab->base_lock); - err_bitmap = ath11k_dp_rx_h_attn_mpdu_err(last_rxcb->rx_desc); + err_bitmap = ath11k_dp_rx_h_attn_mpdu_err(rx_desc); + if (enctype != HAL_ENCRYPT_TYPE_OPEN && !err_bitmap) + is_decrypted = ath11k_dp_rx_h_attn_is_decrypted(rx_desc); - /* Clear per-MPDU flags while leaving per-PPDU flags intact. */ + /* Clear per-MPDU flags while leaving per-PPDU flags intact */ rx_status->flag &= ~(RX_FLAG_FAILED_FCS_CRC | RX_FLAG_MMIC_ERROR | RX_FLAG_DECRYPTED | @@ -1912,19 +2198,29 @@ if (err_bitmap & DP_RX_MPDU_ERR_FCS) rx_status->flag |= RX_FLAG_FAILED_FCS_CRC; - if (err_bitmap & DP_RX_MPDU_ERR_TKIP_MIC) rx_status->flag |= RX_FLAG_MMIC_ERROR; - if (is_decrypted) - rx_status->flag |= RX_FLAG_DECRYPTED | RX_FLAG_MMIC_STRIPPED | - RX_FLAG_MIC_STRIPPED | RX_FLAG_ICV_STRIPPED; - - skb_queue_walk(amsdu_list, msdu) { - ath11k_dp_rx_h_csum_offload(msdu); - ath11k_dp_rx_h_undecap(ar, msdu, rx_desc, - enctype, rx_status, is_decrypted); + if (is_decrypted) { + rx_status->flag |= RX_FLAG_DECRYPTED | RX_FLAG_MMIC_STRIPPED; + + if (fill_crypto_hdr) + rx_status->flag |= RX_FLAG_MIC_STRIPPED | + RX_FLAG_ICV_STRIPPED; + else + rx_status->flag |= RX_FLAG_IV_STRIPPED | + RX_FLAG_PN_VALIDATED; } + + ath11k_dp_rx_h_csum_offload(msdu); + ath11k_dp_rx_h_undecap(ar, msdu, rx_desc, + enctype, rx_status, is_decrypted); + + if (!is_decrypted || fill_crypto_hdr) + return; + + hdr = (void *)msdu->data; + hdr->frame_control &= ~__cpu_to_le16(IEEE80211_FCTL_PROTECTED); } static void ath11k_dp_rx_h_rate(struct ath11k *ar, struct hal_rx_desc *rx_desc, @@ -1988,6 +2284,7 @@ } rx_status->encoding = RX_ENC_HE; rx_status->nss = nss; + rx_status->he_gi = ath11k_he_gi_to_nl80211_he_gi(sgi); rx_status->bw = ath11k_mac_bw_to_mac80211_bw(bw); break; } @@ -1997,6 +2294,7 @@ struct ieee80211_rx_status *rx_status) { u8 channel_num; + u32 center_freq; rx_status->freq = 0; rx_status->rate_idx = 0; @@ -2007,15 +2305,22 @@ rx_status->flag |= RX_FLAG_NO_SIGNAL_VAL; channel_num = ath11k_dp_rx_h_msdu_start_freq(rx_desc); + center_freq = ath11k_dp_rx_h_msdu_start_freq(rx_desc) >> 16; - if (channel_num >= 1 && channel_num <= 14) { + if (center_freq >= 5935 && center_freq <= 7105) { + rx_status->band = NL80211_BAND_6GHZ; + } else if (channel_num >= 1 && channel_num <= 14) { rx_status->band = NL80211_BAND_2GHZ; } else if (channel_num >= 36 && channel_num <= 173) { rx_status->band = NL80211_BAND_5GHZ; } else { - ath11k_warn(ar->ab, "Unsupported Channel info received %d\n", - channel_num); - return; + spin_lock_bh(&ar->data_lock); + rx_status->band = ar->rx_channel->band; + channel_num = + ieee80211_frequency_to_channel(ar->rx_channel->center_freq); + spin_unlock_bh(&ar->data_lock); + ath11k_dbg_dump(ar->ab, ATH11K_DBG_DATA, NULL, "rx_desc: ", + rx_desc, sizeof(struct hal_rx_desc)); } rx_status->freq = ieee80211_channel_to_frequency(channel_num, @@ -2024,29 +2329,6 @@ ath11k_dp_rx_h_rate(ar, rx_desc, rx_status); } -static void ath11k_dp_rx_process_amsdu(struct ath11k *ar, - struct sk_buff_head *amsdu_list, - struct ieee80211_rx_status *rx_status) -{ - struct sk_buff *first; - struct ath11k_skb_rxcb *rxcb; - struct hal_rx_desc *rx_desc; - bool first_mpdu; - - if (skb_queue_empty(amsdu_list)) - return; - - first = skb_peek(amsdu_list); - rxcb = ATH11K_SKB_RXCB(first); - rx_desc = rxcb->rx_desc; - - first_mpdu = ath11k_dp_rx_h_attn_first_mpdu(rx_desc); - if (first_mpdu) - ath11k_dp_rx_h_ppdu(ar, rx_desc, rx_status); - - ath11k_dp_rx_h_mpdu(ar, amsdu_list, rx_desc, rx_status); -} - static char *ath11k_print_get_tid(struct ieee80211_hdr *hdr, char *out, size_t size) { @@ -2108,60 +2390,129 @@ !!(status->flag & RX_FLAG_MMIC_ERROR), !!(status->flag & RX_FLAG_AMSDU_MORE)); + ath11k_dbg_dump(ar->ab, ATH11K_DBG_DP_RX, NULL, "dp rx msdu: ", + msdu->data, msdu->len); + /* TODO: trace rx packet */ ieee80211_rx_napi(ar->hw, NULL, msdu, napi); } -static void ath11k_dp_rx_pre_deliver_amsdu(struct ath11k *ar, - struct sk_buff_head *amsdu_list, - struct ieee80211_rx_status *rxs) +static int ath11k_dp_rx_process_msdu(struct ath11k *ar, + struct sk_buff *msdu, + struct sk_buff_head *msdu_list) { - struct sk_buff *msdu; - struct sk_buff *first_subframe; + struct hal_rx_desc *rx_desc, *lrx_desc; + struct ieee80211_rx_status rx_status = {0}; struct ieee80211_rx_status *status; + struct ath11k_skb_rxcb *rxcb; + struct ieee80211_hdr *hdr; + struct sk_buff *last_buf; + u8 l3_pad_bytes; + u8 *hdr_status; + u16 msdu_len; + int ret; - first_subframe = skb_peek(amsdu_list); + last_buf = ath11k_dp_rx_get_msdu_last_buf(msdu_list, msdu); + if (!last_buf) { + ath11k_warn(ar->ab, + "No valid Rx buffer to access Atten/MSDU_END/MPDU_END tlvs\n"); + ret = -EIO; + goto free_out; + } - skb_queue_walk(amsdu_list, msdu) { - /* Setup per-MSDU flags */ - if (skb_queue_empty(amsdu_list)) - rxs->flag &= ~RX_FLAG_AMSDU_MORE; - else - rxs->flag |= RX_FLAG_AMSDU_MORE; + rx_desc = (struct hal_rx_desc *)msdu->data; + lrx_desc = (struct hal_rx_desc *)last_buf->data; + if (!ath11k_dp_rx_h_attn_msdu_done(lrx_desc)) { + ath11k_warn(ar->ab, "msdu_done bit in attention is not set\n"); + ret = -EIO; + goto free_out; + } - if (msdu == first_subframe) { - first_subframe = NULL; - rxs->flag &= ~RX_FLAG_ALLOW_SAME_PN; - } else { - rxs->flag |= RX_FLAG_ALLOW_SAME_PN; - } - rxs->flag |= RX_FLAG_SKIP_MONITOR; + rxcb = ATH11K_SKB_RXCB(msdu); + rxcb->rx_desc = rx_desc; + msdu_len = ath11k_dp_rx_h_msdu_start_msdu_len(rx_desc); + l3_pad_bytes = ath11k_dp_rx_h_msdu_end_l3pad(lrx_desc); - status = IEEE80211_SKB_RXCB(msdu); - *status = *rxs; + if (rxcb->is_frag) { + skb_pull(msdu, HAL_RX_DESC_SIZE); + } else if (!rxcb->is_continuation) { + if ((msdu_len + HAL_RX_DESC_SIZE) > DP_RX_BUFFER_SIZE) { + hdr_status = ath11k_dp_rx_h_80211_hdr(rx_desc); + ret = -EINVAL; + ath11k_warn(ar->ab, "invalid msdu len %u\n", msdu_len); + ath11k_dbg_dump(ar->ab, ATH11K_DBG_DATA, NULL, "", hdr_status, + sizeof(struct ieee80211_hdr)); + ath11k_dbg_dump(ar->ab, ATH11K_DBG_DATA, NULL, "", rx_desc, + sizeof(struct hal_rx_desc)); + goto free_out; + } + skb_put(msdu, HAL_RX_DESC_SIZE + l3_pad_bytes + msdu_len); + skb_pull(msdu, HAL_RX_DESC_SIZE + l3_pad_bytes); + } else { + ret = ath11k_dp_rx_msdu_coalesce(ar, msdu_list, + msdu, last_buf, + l3_pad_bytes, msdu_len); + if (ret) { + ath11k_warn(ar->ab, + "failed to coalesce msdu rx buffer%d\n", ret); + goto free_out; + } } + + hdr = (struct ieee80211_hdr *)msdu->data; + + /* Process only data frames */ + if (!ieee80211_is_data(hdr->frame_control)) + return -EINVAL; + + ath11k_dp_rx_h_ppdu(ar, rx_desc, &rx_status); + ath11k_dp_rx_h_mpdu(ar, msdu, rx_desc, &rx_status); + + rx_status.flag |= RX_FLAG_SKIP_MONITOR | RX_FLAG_DUP_VALIDATED; + + status = IEEE80211_SKB_RXCB(msdu); + *status = rx_status; + return 0; + +free_out: + return ret; } -static void ath11k_dp_rx_process_pending_packets(struct ath11k_base *ab, - struct napi_struct *napi, - struct sk_buff_head *pending_q, - int *quota, u8 mac_id) +static void ath11k_dp_rx_process_received_packets(struct ath11k_base *ab, + struct napi_struct *napi, + struct sk_buff_head *msdu_list, + int *quota, int ring_id) { - struct ath11k *ar; + struct ath11k_skb_rxcb *rxcb; struct sk_buff *msdu; - struct ath11k_pdev *pdev; + struct ath11k *ar; + u8 mac_id; + int ret; - if (skb_queue_empty(pending_q)) + if (skb_queue_empty(msdu_list)) return; - ar = ab->pdevs[mac_id].ar; - rcu_read_lock(); - pdev = rcu_dereference(ab->pdevs_active[mac_id]); - while (*quota && (msdu = __skb_dequeue(pending_q))) { - if (!pdev) { + while (*quota && (msdu = __skb_dequeue(msdu_list))) { + rxcb = ATH11K_SKB_RXCB(msdu); + mac_id = rxcb->mac_id; + ar = ab->pdevs[mac_id].ar; + if (!rcu_dereference(ab->pdevs_active[mac_id])) { + dev_kfree_skb_any(msdu); + continue; + } + + if (test_bit(ATH11K_CAC_RUNNING, &ar->dev_flags)) { + dev_kfree_skb_any(msdu); + continue; + } + + ret = ath11k_dp_rx_process_msdu(ar, msdu, msdu_list); + if (ret) { + ath11k_dbg(ab, ATH11K_DBG_DATA, + "Unable to process msdu %d", ret); dev_kfree_skb_any(msdu); continue; } @@ -2169,46 +2520,31 @@ ath11k_dp_rx_deliver_msdu(ar, napi, msdu); (*quota)--; } + rcu_read_unlock(); } -int ath11k_dp_process_rx(struct ath11k_base *ab, int mac_id, - struct napi_struct *napi, struct sk_buff_head *pending_q, - int budget) +int ath11k_dp_process_rx(struct ath11k_base *ab, int ring_id, + struct napi_struct *napi, int budget) { - struct ath11k *ar = ab->pdevs[mac_id].ar; - struct ath11k_pdev_dp *dp = &ar->dp; - struct ieee80211_rx_status *rx_status = &dp->rx_status; - struct dp_rxdma_ring *rx_ring = &dp->rx_refill_buf_ring; - struct hal_srng *srng; - struct sk_buff *msdu; + struct ath11k_dp *dp = &ab->dp; + struct dp_rxdma_ring *rx_ring; + int num_buffs_reaped[MAX_RADIOS] = {0}; struct sk_buff_head msdu_list; - struct sk_buff_head amsdu_list; struct ath11k_skb_rxcb *rxcb; - u32 *rx_desc; - int buf_id; - int num_buffs_reaped = 0; + int total_msdu_reaped = 0; + struct hal_srng *srng; + struct sk_buff *msdu; int quota = budget; - int ret; bool done = false; - - /* Process any pending packets from the previous napi poll. - * Note: All msdu's in this pending_q corresponds to the same mac id - * due to pdev based reo dest mapping and also since each irq group id - * maps to specific reo dest ring. - */ - ath11k_dp_rx_process_pending_packets(ab, napi, pending_q, "a, - mac_id); - - /* If all quota is exhausted by processing the pending_q, - * Wait for the next napi poll to reap the new info - */ - if (!quota) - goto exit; + int buf_id, mac_id; + struct ath11k *ar; + u32 *rx_desc; + int i; __skb_queue_head_init(&msdu_list); - srng = &ab->hal.srng_list[dp->reo_dst_ring.ring_id]; + srng = &ab->hal.srng_list[dp->reo_dst_ring[ring_id].ring_id]; spin_lock_bh(&srng->lock); @@ -2216,14 +2552,18 @@ try_again: while ((rx_desc = ath11k_hal_srng_dst_get_next_entry(ab, srng))) { - struct hal_reo_dest_ring *desc = (struct hal_reo_dest_ring *)rx_desc; + struct hal_reo_dest_ring desc = *(struct hal_reo_dest_ring *)rx_desc; enum hal_reo_dest_ring_push_reason push_reason; u32 cookie; cookie = FIELD_GET(BUFFER_ADDR_INFO1_SW_COOKIE, - desc->buf_addr_info.info1); + desc.buf_addr_info.info1); buf_id = FIELD_GET(DP_RXDMA_BUF_COOKIE_BUF_ID, cookie); + mac_id = FIELD_GET(DP_RXDMA_BUF_COOKIE_PDEV_ID, cookie); + + ar = ab->pdevs[mac_id].ar; + rx_ring = &ar->dp.rx_refill_buf_ring; spin_lock_bh(&rx_ring->idr_lock); msdu = idr_find(&rx_ring->bufs_idr, buf_id); if (!msdu) { @@ -2241,38 +2581,31 @@ msdu->len + skb_tailroom(msdu), DMA_FROM_DEVICE); - num_buffs_reaped++; + num_buffs_reaped[mac_id]++; + total_msdu_reaped++; push_reason = FIELD_GET(HAL_REO_DEST_RING_INFO0_PUSH_REASON, - desc->info0); + desc.info0); if (push_reason != HAL_REO_DEST_RING_PUSH_REASON_ROUTING_INSTRUCTION) { - /* TODO: Check if the msdu can be sent up for processing */ dev_kfree_skb_any(msdu); - ab->soc_stats.hal_reo_error[dp->reo_dst_ring.ring_id]++; + ab->soc_stats.hal_reo_error[dp->reo_dst_ring[ring_id].ring_id]++; continue; } - rxcb->is_first_msdu = !!(desc->rx_msdu_info.info0 & + rxcb->is_first_msdu = !!(desc.rx_msdu_info.info0 & RX_MSDU_DESC_INFO0_FIRST_MSDU_IN_MPDU); - rxcb->is_last_msdu = !!(desc->rx_msdu_info.info0 & + rxcb->is_last_msdu = !!(desc.rx_msdu_info.info0 & RX_MSDU_DESC_INFO0_LAST_MSDU_IN_MPDU); - rxcb->is_continuation = !!(desc->rx_msdu_info.info0 & + rxcb->is_continuation = !!(desc.rx_msdu_info.info0 & RX_MSDU_DESC_INFO0_MSDU_CONTINUATION); rxcb->mac_id = mac_id; + rxcb->tid = FIELD_GET(HAL_REO_DEST_RING_INFO0_RX_QUEUE_NUM, + desc.info0); + __skb_queue_tail(&msdu_list, msdu); - /* Stop reaping from the ring once quota is exhausted - * and we've received all msdu's in the the AMSDU. The - * additional msdu's reaped in excess of quota here would - * be pushed into the pending queue to be processed during - * the next napi poll. - * Note: More profiling can be done to see the impact on - * pending_q and throughput during various traffic & density - * and how use of budget instead of remaining quota affects it. - */ - if (num_buffs_reaped >= quota && rxcb->is_last_msdu && - !rxcb->is_continuation) { + if (total_msdu_reaped >= quota && !rxcb->is_continuation) { done = true; break; } @@ -2293,58 +2626,23 @@ spin_unlock_bh(&srng->lock); - if (!num_buffs_reaped) + if (!total_msdu_reaped) goto exit; - /* Should we reschedule it later if we are not able to replenish all - * the buffers? - */ - ath11k_dp_rxbufs_replenish(ab, mac_id, rx_ring, num_buffs_reaped, - HAL_RX_BUF_RBM_SW3_BM, GFP_ATOMIC); - - rcu_read_lock(); - if (!rcu_dereference(ab->pdevs_active[mac_id])) { - __skb_queue_purge(&msdu_list); - goto rcu_unlock; - } - - if (test_bit(ATH11K_CAC_RUNNING, &ar->dev_flags)) { - __skb_queue_purge(&msdu_list); - goto rcu_unlock; - } - - while (!skb_queue_empty(&msdu_list)) { - __skb_queue_head_init(&amsdu_list); - ret = ath11k_dp_rx_retrieve_amsdu(ar, &msdu_list, &amsdu_list); - if (ret) { - if (ret == -EIO) { - ath11k_err(ab, "rx ring got corrupted %d\n", ret); - __skb_queue_purge(&msdu_list); - /* Should stop processing any more rx in - * future from this ring? - */ - goto rcu_unlock; - } - - /* A-MSDU retrieval got failed due to non-fatal condition, - * continue processing with the next msdu. - */ + for (i = 0; i < ab->num_radios; i++) { + if (!num_buffs_reaped[i]) continue; - } - ath11k_dp_rx_process_amsdu(ar, &amsdu_list, rx_status); + ar = ab->pdevs[i].ar; + rx_ring = &ar->dp.rx_refill_buf_ring; - ath11k_dp_rx_pre_deliver_amsdu(ar, &amsdu_list, rx_status); - skb_queue_splice_tail(&amsdu_list, pending_q); + ath11k_dp_rxbufs_replenish(ab, i, rx_ring, num_buffs_reaped[i], + HAL_RX_BUF_RBM_SW3_BM); } - while (quota && (msdu = __skb_dequeue(pending_q))) { - ath11k_dp_rx_deliver_msdu(ar, napi, msdu); - quota--; - } + ath11k_dp_rx_process_received_packets(ab, napi, &msdu_list, + "a, ring_id); -rcu_unlock: - rcu_read_unlock(); exit: return budget - quota; } @@ -2411,6 +2709,8 @@ rx_stats->num_mpdu_fcs_ok += ppdu_info->num_mpdu_fcs_ok; rx_stats->num_mpdu_fcs_err += ppdu_info->num_mpdu_fcs_err; + rx_stats->dcm_count += ppdu_info->dcm; + rx_stats->ru_alloc_cnt[ppdu_info->ru_alloc] += num_msdu; arsta->rssi_comb = ppdu_info->rssi_comb; rx_stats->rx_duration += ppdu_info->rx_duration; @@ -2419,7 +2719,7 @@ static struct sk_buff *ath11k_dp_rx_alloc_mon_status_buf(struct ath11k_base *ab, struct dp_rxdma_ring *rx_ring, - int *buf_id, gfp_t gfp) + int *buf_id) { struct sk_buff *skb; dma_addr_t paddr; @@ -2438,13 +2738,13 @@ paddr = dma_map_single(ab->dev, skb->data, skb->len + skb_tailroom(skb), - DMA_BIDIRECTIONAL); + DMA_FROM_DEVICE); if (unlikely(dma_mapping_error(ab->dev, paddr))) goto fail_free_skb; spin_lock_bh(&rx_ring->idr_lock); *buf_id = idr_alloc(&rx_ring->bufs_idr, skb, 0, - rx_ring->bufs_max, gfp); + rx_ring->bufs_max, GFP_ATOMIC); spin_unlock_bh(&rx_ring->idr_lock); if (*buf_id < 0) goto fail_dma_unmap; @@ -2454,7 +2754,7 @@ fail_dma_unmap: dma_unmap_single(ab->dev, paddr, skb->len + skb_tailroom(skb), - DMA_BIDIRECTIONAL); + DMA_FROM_DEVICE); fail_free_skb: dev_kfree_skb_any(skb); fail_alloc_skb: @@ -2464,8 +2764,7 @@ int ath11k_dp_rx_mon_status_bufs_replenish(struct ath11k_base *ab, int mac_id, struct dp_rxdma_ring *rx_ring, int req_entries, - enum hal_rx_buf_return_buf_manager mgr, - gfp_t gfp) + enum hal_rx_buf_return_buf_manager mgr) { struct hal_srng *srng; u32 *desc; @@ -2491,7 +2790,7 @@ while (num_remain > 0) { skb = ath11k_dp_rx_alloc_mon_status_buf(ab, rx_ring, - &buf_id, gfp); + &buf_id); if (!skb) break; paddr = ATH11K_SKB_RXCB(skb)->paddr; @@ -2519,7 +2818,7 @@ idr_remove(&rx_ring->bufs_idr, buf_id); spin_unlock_bh(&rx_ring->idr_lock); dma_unmap_single(ab->dev, paddr, skb->len + skb_tailroom(skb), - DMA_BIDIRECTIONAL); + DMA_FROM_DEVICE); dev_kfree_skb_any(skb); ath11k_hal_srng_access_end(ab, srng); spin_unlock_bh(&srng->lock); @@ -2530,20 +2829,25 @@ static int ath11k_dp_rx_reap_mon_status_ring(struct ath11k_base *ab, int mac_id, int *budget, struct sk_buff_head *skb_list) { - struct ath11k *ar = ab->pdevs[mac_id].ar; - struct ath11k_pdev_dp *dp = &ar->dp; - struct dp_rxdma_ring *rx_ring = &dp->rx_mon_status_refill_ring; + struct ath11k *ar; + struct ath11k_pdev_dp *dp; + struct dp_rxdma_ring *rx_ring; struct hal_srng *srng; void *rx_mon_status_desc; struct sk_buff *skb; struct ath11k_skb_rxcb *rxcb; struct hal_tlv_hdr *tlv; u32 cookie; - int buf_id; + int buf_id, srng_id; dma_addr_t paddr; u8 rbm; int num_buffs_reaped = 0; + ar = ab->pdevs[ath11k_hw_mac_id_to_pdev_id(&ab->hw_params, mac_id)].ar; + dp = &ar->dp; + srng_id = ath11k_hw_mac_id_to_srng_id(&ab->hw_params, mac_id); + rx_ring = &dp->rx_mon_status_refill_ring[srng_id]; + srng = &ab->hal.srng_list[rx_ring->refill_buf_ring.ring_id]; spin_lock_bh(&srng->lock); @@ -2567,7 +2871,7 @@ ath11k_warn(ab, "rx monitor status with invalid buf_id %d\n", buf_id); spin_unlock_bh(&rx_ring->idr_lock); - continue; + goto move_next; } idr_remove(&rx_ring->bufs_idr, buf_id); @@ -2581,20 +2885,23 @@ dma_unmap_single(ab->dev, rxcb->paddr, skb->len + skb_tailroom(skb), - DMA_BIDIRECTIONAL); + DMA_FROM_DEVICE); tlv = (struct hal_tlv_hdr *)skb->data; if (FIELD_GET(HAL_TLV_HDR_TAG, tlv->tl) != HAL_RX_STATUS_BUFFER_DONE) { - ath11k_hal_srng_src_get_next_entry(ab, srng); - continue; + ath11k_warn(ab, "mon status DONE not set %lx\n", + FIELD_GET(HAL_TLV_HDR_TAG, + tlv->tl)); + dev_kfree_skb_any(skb); + goto move_next; } __skb_queue_tail(skb_list, skb); } - +move_next: skb = ath11k_dp_rx_alloc_mon_status_buf(ab, rx_ring, - &buf_id, GFP_ATOMIC); + &buf_id); if (!skb) { ath11k_hal_rx_buf_addr_info_set(rx_mon_status_desc, 0, 0, @@ -2621,7 +2928,7 @@ int ath11k_dp_rx_process_mon_status(struct ath11k_base *ab, int mac_id, struct napi_struct *napi, int budget) { - struct ath11k *ar = ab->pdevs[mac_id].ar; + struct ath11k *ar = ath11k_ab_to_ar(ab, mac_id); enum hal_rx_mon_status hal_status; struct sk_buff *skb; struct sk_buff_head skb_list; @@ -2641,7 +2948,7 @@ memset(&ppdu_info, 0, sizeof(ppdu_info)); ppdu_info.peer_id = HAL_INVALID_PEERID; - if (ath11k_debug_is_pktlog_rx_stats_enabled(ar)) + if (ath11k_debugfs_is_pktlog_rx_stats_enabled(ar)) trace_ath11k_htt_rxdesc(ar, skb->data, DP_RX_BUFFER_SIZE); hal_status = ath11k_hal_rx_parse_mon_status(ab, &ppdu_info, skb); @@ -2669,7 +2976,7 @@ arsta = (struct ath11k_sta *)peer->sta->drv_priv; ath11k_dp_rx_update_peer_stats(arsta, &ppdu_info); - if (ath11k_debug_is_pktlog_peer_valid(ar, peer->addr)) + if (ath11k_debugfs_is_pktlog_peer_valid(ar, peer->addr)) trace_ath11k_htt_rxdesc(ar, skb->data, DP_RX_BUFFER_SIZE); spin_unlock_bh(&ab->base_lock); @@ -2681,100 +2988,565 @@ return num_buffs_reaped; } -static int ath11k_dp_rx_link_desc_return(struct ath11k_base *ab, - u32 *link_desc, - enum hal_wbm_rel_bm_act action) +static void ath11k_dp_rx_frag_timer(struct timer_list *timer) { - struct ath11k_dp *dp = &ab->dp; - struct hal_srng *srng; - u32 *desc; - int ret = 0; + struct dp_rx_tid *rx_tid = from_timer(rx_tid, timer, frag_timer); - srng = &ab->hal.srng_list[dp->wbm_desc_rel_ring.ring_id]; + spin_lock_bh(&rx_tid->ab->base_lock); + if (rx_tid->last_frag_no && + rx_tid->rx_frag_bitmap == GENMASK(rx_tid->last_frag_no, 0)) { + spin_unlock_bh(&rx_tid->ab->base_lock); + return; + } + ath11k_dp_rx_frags_cleanup(rx_tid, true); + spin_unlock_bh(&rx_tid->ab->base_lock); +} - spin_lock_bh(&srng->lock); +int ath11k_peer_rx_frag_setup(struct ath11k *ar, const u8 *peer_mac, int vdev_id) +{ + struct ath11k_base *ab = ar->ab; + struct crypto_shash *tfm; + struct ath11k_peer *peer; + struct dp_rx_tid *rx_tid; + int i; - ath11k_hal_srng_access_begin(ab, srng); + tfm = crypto_alloc_shash("michael_mic", 0, 0); + if (IS_ERR(tfm)) + return PTR_ERR(tfm); - desc = ath11k_hal_srng_src_get_next_entry(ab, srng); - if (!desc) { - ret = -ENOBUFS; - goto exit; + spin_lock_bh(&ab->base_lock); + + peer = ath11k_peer_find(ab, vdev_id, peer_mac); + if (!peer) { + ath11k_warn(ab, "failed to find the peer to set up fragment info\n"); + spin_unlock_bh(&ab->base_lock); + return -ENOENT; } - ath11k_hal_rx_msdu_link_desc_set(ab, (void *)desc, (void *)link_desc, - action); + for (i = 0; i <= IEEE80211_NUM_TIDS; i++) { + rx_tid = &peer->rx_tid[i]; + rx_tid->ab = ab; + timer_setup(&rx_tid->frag_timer, ath11k_dp_rx_frag_timer, 0); + skb_queue_head_init(&rx_tid->rx_frags); + } -exit: - ath11k_hal_srng_access_end(ab, srng); + peer->tfm_mmic = tfm; + spin_unlock_bh(&ab->base_lock); - spin_unlock_bh(&srng->lock); + return 0; +} + +static int ath11k_dp_rx_h_michael_mic(struct crypto_shash *tfm, u8 *key, + struct ieee80211_hdr *hdr, u8 *data, + size_t data_len, u8 *mic) +{ + SHASH_DESC_ON_STACK(desc, tfm); + u8 mic_hdr[16] = {0}; + u8 tid = 0; + int ret; + if (!tfm) + return -EINVAL; + + desc->tfm = tfm; + + ret = crypto_shash_setkey(tfm, key, 8); + if (ret) + goto out; + + ret = crypto_shash_init(desc); + if (ret) + goto out; + + /* TKIP MIC header */ + memcpy(mic_hdr, ieee80211_get_DA(hdr), ETH_ALEN); + memcpy(mic_hdr + ETH_ALEN, ieee80211_get_SA(hdr), ETH_ALEN); + if (ieee80211_is_data_qos(hdr->frame_control)) + tid = ieee80211_get_tid(hdr); + mic_hdr[12] = tid; + + ret = crypto_shash_update(desc, mic_hdr, 16); + if (ret) + goto out; + ret = crypto_shash_update(desc, data, data_len); + if (ret) + goto out; + ret = crypto_shash_final(desc, mic); +out: + shash_desc_zero(desc); return ret; } -static void ath11k_dp_rx_frag_h_mpdu(struct ath11k *ar, - struct sk_buff *msdu, - struct hal_rx_desc *rx_desc, - struct ieee80211_rx_status *rx_status) +static int ath11k_dp_rx_h_verify_tkip_mic(struct ath11k *ar, struct ath11k_peer *peer, + struct sk_buff *msdu) { - u8 rx_channel; + struct hal_rx_desc *rx_desc = (struct hal_rx_desc *)msdu->data; + struct ieee80211_rx_status *rxs = IEEE80211_SKB_RXCB(msdu); + struct ieee80211_key_conf *key_conf; + struct ieee80211_hdr *hdr; + u8 mic[IEEE80211_CCMP_MIC_LEN]; + int head_len, tail_len, ret; + size_t data_len; + u32 hdr_len; + u8 *key, *data; + u8 key_idx; + + if (ath11k_dp_rx_h_mpdu_start_enctype(rx_desc) != HAL_ENCRYPT_TYPE_TKIP_MIC) + return 0; + + hdr = (struct ieee80211_hdr *)(msdu->data + HAL_RX_DESC_SIZE); + hdr_len = ieee80211_hdrlen(hdr->frame_control); + head_len = hdr_len + HAL_RX_DESC_SIZE + IEEE80211_TKIP_IV_LEN; + tail_len = IEEE80211_CCMP_MIC_LEN + IEEE80211_TKIP_ICV_LEN + FCS_LEN; + + if (!is_multicast_ether_addr(hdr->addr1)) + key_idx = peer->ucast_keyidx; + else + key_idx = peer->mcast_keyidx; + + key_conf = peer->keys[key_idx]; + + data = msdu->data + head_len; + data_len = msdu->len - head_len - tail_len; + key = &key_conf->key[NL80211_TKIP_DATA_OFFSET_RX_MIC_KEY]; + + ret = ath11k_dp_rx_h_michael_mic(peer->tfm_mmic, key, hdr, data, data_len, mic); + if (ret || memcmp(mic, data + data_len, IEEE80211_CCMP_MIC_LEN)) + goto mic_fail; + + return 0; + +mic_fail: + (ATH11K_SKB_RXCB(msdu))->is_first_msdu = true; + (ATH11K_SKB_RXCB(msdu))->is_last_msdu = true; + + rxs->flag |= RX_FLAG_MMIC_ERROR | RX_FLAG_MMIC_STRIPPED | + RX_FLAG_IV_STRIPPED | RX_FLAG_DECRYPTED; + skb_pull(msdu, HAL_RX_DESC_SIZE); + + ath11k_dp_rx_h_ppdu(ar, rx_desc, rxs); + ath11k_dp_rx_h_undecap(ar, msdu, rx_desc, + HAL_ENCRYPT_TYPE_TKIP_MIC, rxs, true); + ieee80211_rx(ar->hw, msdu); + return -EINVAL; +} + +static void ath11k_dp_rx_h_undecap_frag(struct ath11k *ar, struct sk_buff *msdu, + enum hal_encrypt_type enctype, u32 flags) +{ + struct ieee80211_hdr *hdr; + size_t hdr_len; + size_t crypto_len; + + if (!flags) + return; + + hdr = (struct ieee80211_hdr *)(msdu->data + HAL_RX_DESC_SIZE); + + if (flags & RX_FLAG_MIC_STRIPPED) + skb_trim(msdu, msdu->len - + ath11k_dp_rx_crypto_mic_len(ar, enctype)); + + if (flags & RX_FLAG_ICV_STRIPPED) + skb_trim(msdu, msdu->len - + ath11k_dp_rx_crypto_icv_len(ar, enctype)); + + if (flags & RX_FLAG_IV_STRIPPED) { + hdr_len = ieee80211_hdrlen(hdr->frame_control); + crypto_len = ath11k_dp_rx_crypto_param_len(ar, enctype); + + memmove((void *)msdu->data + HAL_RX_DESC_SIZE + crypto_len, + (void *)msdu->data + HAL_RX_DESC_SIZE, hdr_len); + skb_pull(msdu, crypto_len); + } +} + +static int ath11k_dp_rx_h_defrag(struct ath11k *ar, + struct ath11k_peer *peer, + struct dp_rx_tid *rx_tid, + struct sk_buff **defrag_skb) +{ + struct hal_rx_desc *rx_desc; + struct sk_buff *skb, *first_frag, *last_frag; + struct ieee80211_hdr *hdr; enum hal_encrypt_type enctype; - bool is_decrypted; - u32 err_bitmap; + bool is_decrypted = false; + int msdu_len = 0; + int extra_space; + u32 flags; + + first_frag = skb_peek(&rx_tid->rx_frags); + last_frag = skb_peek_tail(&rx_tid->rx_frags); + + skb_queue_walk(&rx_tid->rx_frags, skb) { + flags = 0; + rx_desc = (struct hal_rx_desc *)skb->data; + hdr = (struct ieee80211_hdr *)(skb->data + HAL_RX_DESC_SIZE); + + enctype = ath11k_dp_rx_h_mpdu_start_enctype(rx_desc); + if (enctype != HAL_ENCRYPT_TYPE_OPEN) + is_decrypted = ath11k_dp_rx_h_attn_is_decrypted(rx_desc); + + if (is_decrypted) { + if (skb != first_frag) + flags |= RX_FLAG_IV_STRIPPED; + if (skb != last_frag) + flags |= RX_FLAG_ICV_STRIPPED | + RX_FLAG_MIC_STRIPPED; + } + + /* RX fragments are always raw packets */ + if (skb != last_frag) + skb_trim(skb, skb->len - FCS_LEN); + ath11k_dp_rx_h_undecap_frag(ar, skb, enctype, flags); + + if (skb != first_frag) + skb_pull(skb, HAL_RX_DESC_SIZE + + ieee80211_hdrlen(hdr->frame_control)); + msdu_len += skb->len; + } + + extra_space = msdu_len - (DP_RX_BUFFER_SIZE + skb_tailroom(first_frag)); + if (extra_space > 0 && + (pskb_expand_head(first_frag, 0, extra_space, GFP_ATOMIC) < 0)) + return -ENOMEM; - is_decrypted = ath11k_dp_rx_h_attn_is_decrypted(rx_desc); - enctype = ath11k_dp_rx_h_mpdu_start_enctype(rx_desc); - err_bitmap = ath11k_dp_rx_h_attn_mpdu_err(rx_desc); + __skb_unlink(first_frag, &rx_tid->rx_frags); + while ((skb = __skb_dequeue(&rx_tid->rx_frags))) { + skb_put_data(first_frag, skb->data, skb->len); + dev_kfree_skb_any(skb); + } - if (err_bitmap & DP_RX_MPDU_ERR_FCS) - rx_status->flag |= RX_FLAG_FAILED_FCS_CRC; + hdr = (struct ieee80211_hdr *)(first_frag->data + HAL_RX_DESC_SIZE); + hdr->frame_control &= ~__cpu_to_le16(IEEE80211_FCTL_MOREFRAGS); + ATH11K_SKB_RXCB(first_frag)->is_frag = 1; - if (err_bitmap & DP_RX_MPDU_ERR_TKIP_MIC) - rx_status->flag |= RX_FLAG_MMIC_ERROR; + if (ath11k_dp_rx_h_verify_tkip_mic(ar, peer, first_frag)) + first_frag = NULL; - rx_status->encoding = RX_ENC_LEGACY; - rx_status->bw = RATE_INFO_BW_20; + *defrag_skb = first_frag; + return 0; +} - rx_status->flag |= RX_FLAG_NO_SIGNAL_VAL; +static int ath11k_dp_rx_h_defrag_reo_reinject(struct ath11k *ar, struct dp_rx_tid *rx_tid, + struct sk_buff *defrag_skb) +{ + struct ath11k_base *ab = ar->ab; + struct ath11k_pdev_dp *dp = &ar->dp; + struct dp_rxdma_ring *rx_refill_ring = &dp->rx_refill_buf_ring; + struct hal_rx_desc *rx_desc = (struct hal_rx_desc *)defrag_skb->data; + struct hal_reo_entrance_ring *reo_ent_ring; + struct hal_reo_dest_ring *reo_dest_ring; + struct dp_link_desc_bank *link_desc_banks; + struct hal_rx_msdu_link *msdu_link; + struct hal_rx_msdu_details *msdu0; + struct hal_srng *srng; + dma_addr_t paddr; + u32 desc_bank, msdu_info, mpdu_info; + u32 dst_idx, cookie; + u32 *msdu_len_offset; + int ret, buf_id; + + link_desc_banks = ab->dp.link_desc_banks; + reo_dest_ring = rx_tid->dst_ring_desc; + + ath11k_hal_rx_reo_ent_paddr_get(ab, reo_dest_ring, &paddr, &desc_bank); + msdu_link = (struct hal_rx_msdu_link *)(link_desc_banks[desc_bank].vaddr + + (paddr - link_desc_banks[desc_bank].paddr)); + msdu0 = &msdu_link->msdu_link[0]; + dst_idx = FIELD_GET(RX_MSDU_DESC_INFO0_REO_DEST_IND, msdu0->rx_msdu_info.info0); + memset(msdu0, 0, sizeof(*msdu0)); + + msdu_info = FIELD_PREP(RX_MSDU_DESC_INFO0_FIRST_MSDU_IN_MPDU, 1) | + FIELD_PREP(RX_MSDU_DESC_INFO0_LAST_MSDU_IN_MPDU, 1) | + FIELD_PREP(RX_MSDU_DESC_INFO0_MSDU_CONTINUATION, 0) | + FIELD_PREP(RX_MSDU_DESC_INFO0_MSDU_LENGTH, + defrag_skb->len - HAL_RX_DESC_SIZE) | + FIELD_PREP(RX_MSDU_DESC_INFO0_REO_DEST_IND, dst_idx) | + FIELD_PREP(RX_MSDU_DESC_INFO0_VALID_SA, 1) | + FIELD_PREP(RX_MSDU_DESC_INFO0_VALID_DA, 1); + msdu0->rx_msdu_info.info0 = msdu_info; + + /* change msdu len in hal rx desc */ + msdu_len_offset = (u32 *)&rx_desc->msdu_start; + *msdu_len_offset &= ~(RX_MSDU_START_INFO1_MSDU_LENGTH); + *msdu_len_offset |= defrag_skb->len - HAL_RX_DESC_SIZE; + + paddr = dma_map_single(ab->dev, defrag_skb->data, + defrag_skb->len + skb_tailroom(defrag_skb), + DMA_FROM_DEVICE); + if (dma_mapping_error(ab->dev, paddr)) + return -ENOMEM; + + spin_lock_bh(&rx_refill_ring->idr_lock); + buf_id = idr_alloc(&rx_refill_ring->bufs_idr, defrag_skb, 0, + rx_refill_ring->bufs_max * 3, GFP_ATOMIC); + spin_unlock_bh(&rx_refill_ring->idr_lock); + if (buf_id < 0) { + ret = -ENOMEM; + goto err_unmap_dma; + } - rx_channel = ath11k_dp_rx_h_msdu_start_freq(rx_desc); + ATH11K_SKB_RXCB(defrag_skb)->paddr = paddr; + cookie = FIELD_PREP(DP_RXDMA_BUF_COOKIE_PDEV_ID, dp->mac_id) | + FIELD_PREP(DP_RXDMA_BUF_COOKIE_BUF_ID, buf_id); - if (rx_channel >= 1 && rx_channel <= 14) { - rx_status->band = NL80211_BAND_2GHZ; - } else if (rx_channel >= 36 && rx_channel <= 173) { - rx_status->band = NL80211_BAND_5GHZ; - } else { - ath11k_warn(ar->ab, "Unsupported Channel info received %d\n", - rx_channel); + ath11k_hal_rx_buf_addr_info_set(msdu0, paddr, cookie, HAL_RX_BUF_RBM_SW3_BM); + + /* Fill mpdu details into reo entrace ring */ + srng = &ab->hal.srng_list[ab->dp.reo_reinject_ring.ring_id]; + + spin_lock_bh(&srng->lock); + ath11k_hal_srng_access_begin(ab, srng); + + reo_ent_ring = (struct hal_reo_entrance_ring *) + ath11k_hal_srng_src_get_next_entry(ab, srng); + if (!reo_ent_ring) { + ath11k_hal_srng_access_end(ab, srng); + spin_unlock_bh(&srng->lock); + ret = -ENOSPC; + goto err_free_idr; + } + memset(reo_ent_ring, 0, sizeof(*reo_ent_ring)); + + ath11k_hal_rx_reo_ent_paddr_get(ab, reo_dest_ring, &paddr, &desc_bank); + ath11k_hal_rx_buf_addr_info_set(reo_ent_ring, paddr, desc_bank, + HAL_RX_BUF_RBM_WBM_IDLE_DESC_LIST); + + mpdu_info = FIELD_PREP(RX_MPDU_DESC_INFO0_MSDU_COUNT, 1) | + FIELD_PREP(RX_MPDU_DESC_INFO0_SEQ_NUM, rx_tid->cur_sn) | + FIELD_PREP(RX_MPDU_DESC_INFO0_FRAG_FLAG, 0) | + FIELD_PREP(RX_MPDU_DESC_INFO0_VALID_SA, 1) | + FIELD_PREP(RX_MPDU_DESC_INFO0_VALID_DA, 1) | + FIELD_PREP(RX_MPDU_DESC_INFO0_RAW_MPDU, 1) | + FIELD_PREP(RX_MPDU_DESC_INFO0_VALID_PN, 1); + + reo_ent_ring->rx_mpdu_info.info0 = mpdu_info; + reo_ent_ring->rx_mpdu_info.meta_data = reo_dest_ring->rx_mpdu_info.meta_data; + reo_ent_ring->queue_addr_lo = reo_dest_ring->queue_addr_lo; + reo_ent_ring->info0 = FIELD_PREP(HAL_REO_ENTR_RING_INFO0_QUEUE_ADDR_HI, + FIELD_GET(HAL_REO_DEST_RING_INFO0_QUEUE_ADDR_HI, + reo_dest_ring->info0)) | + FIELD_PREP(HAL_REO_ENTR_RING_INFO0_DEST_IND, dst_idx); + ath11k_hal_srng_access_end(ab, srng); + spin_unlock_bh(&srng->lock); + + return 0; + +err_free_idr: + spin_lock_bh(&rx_refill_ring->idr_lock); + idr_remove(&rx_refill_ring->bufs_idr, buf_id); + spin_unlock_bh(&rx_refill_ring->idr_lock); +err_unmap_dma: + dma_unmap_single(ab->dev, paddr, defrag_skb->len + skb_tailroom(defrag_skb), + DMA_FROM_DEVICE); + return ret; +} + +static int ath11k_dp_rx_h_cmp_frags(struct sk_buff *a, struct sk_buff *b) +{ + int frag1, frag2; + + frag1 = ath11k_dp_rx_h_mpdu_start_frag_no(a); + frag2 = ath11k_dp_rx_h_mpdu_start_frag_no(b); + + return frag1 - frag2; +} + +static void ath11k_dp_rx_h_sort_frags(struct sk_buff_head *frag_list, + struct sk_buff *cur_frag) +{ + struct sk_buff *skb; + int cmp; + + skb_queue_walk(frag_list, skb) { + cmp = ath11k_dp_rx_h_cmp_frags(skb, cur_frag); + if (cmp < 0) + continue; + __skb_queue_before(frag_list, skb, cur_frag); return; } + __skb_queue_tail(frag_list, cur_frag); +} - rx_status->freq = ieee80211_channel_to_frequency(rx_channel, - rx_status->band); - ath11k_dp_rx_h_rate(ar, rx_desc, rx_status); +static u64 ath11k_dp_rx_h_get_pn(struct sk_buff *skb) +{ + struct ieee80211_hdr *hdr; + u64 pn = 0; + u8 *ehdr; - /* Rx fragments are received in raw mode */ - skb_trim(msdu, msdu->len - FCS_LEN); + hdr = (struct ieee80211_hdr *)(skb->data + HAL_RX_DESC_SIZE); + ehdr = skb->data + HAL_RX_DESC_SIZE + ieee80211_hdrlen(hdr->frame_control); - if (is_decrypted) { - rx_status->flag |= RX_FLAG_DECRYPTED | RX_FLAG_MIC_STRIPPED; - skb_trim(msdu, msdu->len - - ath11k_dp_rx_crypto_mic_len(ar, enctype)); + pn = ehdr[0]; + pn |= (u64)ehdr[1] << 8; + pn |= (u64)ehdr[4] << 16; + pn |= (u64)ehdr[5] << 24; + pn |= (u64)ehdr[6] << 32; + pn |= (u64)ehdr[7] << 40; + + return pn; +} + +static bool +ath11k_dp_rx_h_defrag_validate_incr_pn(struct ath11k *ar, struct dp_rx_tid *rx_tid) +{ + enum hal_encrypt_type encrypt_type; + struct sk_buff *first_frag, *skb; + struct hal_rx_desc *desc; + u64 last_pn; + u64 cur_pn; + + first_frag = skb_peek(&rx_tid->rx_frags); + desc = (struct hal_rx_desc *)first_frag->data; + + encrypt_type = ath11k_dp_rx_h_mpdu_start_enctype(desc); + if (encrypt_type != HAL_ENCRYPT_TYPE_CCMP_128 && + encrypt_type != HAL_ENCRYPT_TYPE_CCMP_256 && + encrypt_type != HAL_ENCRYPT_TYPE_GCMP_128 && + encrypt_type != HAL_ENCRYPT_TYPE_AES_GCMP_256) + return true; + + last_pn = ath11k_dp_rx_h_get_pn(first_frag); + skb_queue_walk(&rx_tid->rx_frags, skb) { + if (skb == first_frag) + continue; + + cur_pn = ath11k_dp_rx_h_get_pn(skb); + if (cur_pn != last_pn + 1) + return false; + last_pn = cur_pn; } + return true; +} + +static int ath11k_dp_rx_frag_h_mpdu(struct ath11k *ar, + struct sk_buff *msdu, + u32 *ring_desc) +{ + struct ath11k_base *ab = ar->ab; + struct hal_rx_desc *rx_desc; + struct ath11k_peer *peer; + struct dp_rx_tid *rx_tid; + struct sk_buff *defrag_skb = NULL; + u32 peer_id; + u16 seqno, frag_no; + u8 tid; + int ret = 0; + bool more_frags; + + rx_desc = (struct hal_rx_desc *)msdu->data; + peer_id = ath11k_dp_rx_h_mpdu_start_peer_id(rx_desc); + tid = ath11k_dp_rx_h_mpdu_start_tid(rx_desc); + seqno = ath11k_dp_rx_h_mpdu_start_seq_no(rx_desc); + frag_no = ath11k_dp_rx_h_mpdu_start_frag_no(msdu); + more_frags = ath11k_dp_rx_h_mpdu_start_more_frags(msdu); + + if (!ath11k_dp_rx_h_mpdu_start_seq_ctrl_valid(rx_desc) || + !ath11k_dp_rx_h_mpdu_start_fc_valid(rx_desc) || + tid > IEEE80211_NUM_TIDS) + return -EINVAL; + + /* received unfragmented packet in reo + * exception ring, this shouldn't happen + * as these packets typically come from + * reo2sw srngs. + */ + if (WARN_ON_ONCE(!frag_no && !more_frags)) + return -EINVAL; + + spin_lock_bh(&ab->base_lock); + peer = ath11k_peer_find_by_id(ab, peer_id); + if (!peer) { + ath11k_warn(ab, "failed to find the peer to de-fragment received fragment peer_id %d\n", + peer_id); + ret = -ENOENT; + goto out_unlock; + } + rx_tid = &peer->rx_tid[tid]; + + if ((!skb_queue_empty(&rx_tid->rx_frags) && seqno != rx_tid->cur_sn) || + skb_queue_empty(&rx_tid->rx_frags)) { + /* Flush stored fragments and start a new sequence */ + ath11k_dp_rx_frags_cleanup(rx_tid, true); + rx_tid->cur_sn = seqno; + } + + if (rx_tid->rx_frag_bitmap & BIT(frag_no)) { + /* Fragment already present */ + ret = -EINVAL; + goto out_unlock; + } + + if (frag_no > __fls(rx_tid->rx_frag_bitmap)) + __skb_queue_tail(&rx_tid->rx_frags, msdu); + else + ath11k_dp_rx_h_sort_frags(&rx_tid->rx_frags, msdu); + + rx_tid->rx_frag_bitmap |= BIT(frag_no); + if (!more_frags) + rx_tid->last_frag_no = frag_no; + + if (frag_no == 0) { + rx_tid->dst_ring_desc = kmemdup(ring_desc, + sizeof(*rx_tid->dst_ring_desc), + GFP_ATOMIC); + if (!rx_tid->dst_ring_desc) { + ret = -ENOMEM; + goto out_unlock; + } + } else { + ath11k_dp_rx_link_desc_return(ab, ring_desc, + HAL_WBM_REL_BM_ACT_PUT_IN_IDLE); + } + + if (!rx_tid->last_frag_no || + rx_tid->rx_frag_bitmap != GENMASK(rx_tid->last_frag_no, 0)) { + mod_timer(&rx_tid->frag_timer, jiffies + + ATH11K_DP_RX_FRAGMENT_TIMEOUT_MS); + goto out_unlock; + } + + spin_unlock_bh(&ab->base_lock); + del_timer_sync(&rx_tid->frag_timer); + spin_lock_bh(&ab->base_lock); + + peer = ath11k_peer_find_by_id(ab, peer_id); + if (!peer) + goto err_frags_cleanup; + + if (!ath11k_dp_rx_h_defrag_validate_incr_pn(ar, rx_tid)) + goto err_frags_cleanup; + + if (ath11k_dp_rx_h_defrag(ar, peer, rx_tid, &defrag_skb)) + goto err_frags_cleanup; + + if (!defrag_skb) + goto err_frags_cleanup; + + if (ath11k_dp_rx_h_defrag_reo_reinject(ar, rx_tid, defrag_skb)) + goto err_frags_cleanup; + + ath11k_dp_rx_frags_cleanup(rx_tid, false); + goto out_unlock; + +err_frags_cleanup: + dev_kfree_skb_any(defrag_skb); + ath11k_dp_rx_frags_cleanup(rx_tid, true); +out_unlock: + spin_unlock_bh(&ab->base_lock); + return ret; } static int -ath11k_dp_process_rx_err_buf(struct ath11k *ar, struct napi_struct *napi, - int buf_id, bool frag) +ath11k_dp_process_rx_err_buf(struct ath11k *ar, u32 *ring_desc, int buf_id, bool drop) { struct ath11k_pdev_dp *dp = &ar->dp; struct dp_rxdma_ring *rx_ring = &dp->rx_refill_buf_ring; - struct ieee80211_rx_status rx_status = {0}; struct sk_buff *msdu; struct ath11k_skb_rxcb *rxcb; - struct ieee80211_rx_status *status; struct hal_rx_desc *rx_desc; + u8 *hdr_status; u16 msdu_len; spin_lock_bh(&rx_ring->idr_lock); @@ -2794,10 +3566,7 @@ msdu->len + skb_tailroom(msdu), DMA_FROM_DEVICE); - if (!frag) { - /* Process only rx fragments below, and drop - * msdu's indicated due to error reasons. - */ + if (drop) { dev_kfree_skb_any(msdu); return 0; } @@ -2815,17 +3584,24 @@ rx_desc = (struct hal_rx_desc *)msdu->data; msdu_len = ath11k_dp_rx_h_msdu_start_msdu_len(rx_desc); - skb_put(msdu, HAL_RX_DESC_SIZE + msdu_len); - skb_pull(msdu, HAL_RX_DESC_SIZE); - - ath11k_dp_rx_frag_h_mpdu(ar, msdu, rx_desc, &rx_status); - - status = IEEE80211_SKB_RXCB(msdu); - - *status = rx_status; + if ((msdu_len + HAL_RX_DESC_SIZE) > DP_RX_BUFFER_SIZE) { + hdr_status = ath11k_dp_rx_h_80211_hdr(rx_desc); + ath11k_warn(ar->ab, "invalid msdu leng %u", msdu_len); + ath11k_dbg_dump(ar->ab, ATH11K_DBG_DATA, NULL, "", hdr_status, + sizeof(struct ieee80211_hdr)); + ath11k_dbg_dump(ar->ab, ATH11K_DBG_DATA, NULL, "", rx_desc, + sizeof(struct hal_rx_desc)); + dev_kfree_skb_any(msdu); + goto exit; + } - ath11k_dp_rx_deliver_msdu(ar, napi, msdu); + skb_put(msdu, HAL_RX_DESC_SIZE + msdu_len); + if (ath11k_dp_rx_frag_h_mpdu(ar, msdu, ring_desc)) { + dev_kfree_skb_any(msdu); + ath11k_dp_rx_link_desc_return(ar->ab, ring_desc, + HAL_WBM_REL_BM_ACT_PUT_IN_IDLE); + } exit: rcu_read_unlock(); return 0; @@ -2850,6 +3626,7 @@ dma_addr_t paddr; u32 *desc; bool is_frag; + u8 drop = 0; tot_n_bufs_reaped = 0; quota = budget; @@ -2891,9 +3668,15 @@ is_frag = !!(reo_desc->rx_mpdu_info.info0 & RX_MPDU_DESC_INFO0_FRAG_FLAG); - /* Return the link desc back to wbm idle list */ - ath11k_dp_rx_link_desc_return(ab, desc, - HAL_WBM_REL_BM_ACT_PUT_IN_IDLE); + /* Process only rx fragments with one msdu per link desc below, and drop + * msdu's indicated due to error reasons. + */ + if (!is_frag || num_msdus > 1) { + drop = 1; + /* Return the link desc back to wbm idle list */ + ath11k_dp_rx_link_desc_return(ab, desc, + HAL_WBM_REL_BM_ACT_PUT_IN_IDLE); + } for (i = 0; i < num_msdus; i++) { buf_id = FIELD_GET(DP_RXDMA_BUF_COOKIE_BUF_ID, @@ -2904,8 +3687,7 @@ ar = ab->pdevs[mac_id].ar; - if (!ath11k_dp_process_rx_err_buf(ar, napi, buf_id, - is_frag)) { + if (!ath11k_dp_process_rx_err_buf(ar, desc, buf_id, drop)) { n_bufs_reaped[mac_id]++; tot_n_bufs_reaped++; } @@ -2932,7 +3714,7 @@ rx_ring = &ar->dp.rx_refill_buf_ring; ath11k_dp_rxbufs_replenish(ab, i, rx_ring, n_bufs_reaped[i], - HAL_RX_BUF_RBM_SW3_BM, GFP_ATOMIC); + HAL_RX_BUF_RBM_SW3_BM); } return tot_n_bufs_reaped; @@ -2966,7 +3748,6 @@ struct ieee80211_rx_status *status, struct sk_buff_head *msdu_list) { - struct sk_buff_head amsdu_list; u16 msdu_len; struct hal_rx_desc *desc = (struct hal_rx_desc *)msdu->data; u8 l3pad_bytes; @@ -2974,7 +3755,7 @@ msdu_len = ath11k_dp_rx_h_msdu_start_msdu_len(desc); - if ((msdu_len + HAL_RX_DESC_SIZE) > DP_RX_BUFFER_SIZE) { + if (!rxcb->is_frag && ((msdu_len + HAL_RX_DESC_SIZE) > DP_RX_BUFFER_SIZE)) { /* First buffer will be freed by the caller, so deduct it's length */ msdu_len = msdu_len - (DP_RX_BUFFER_SIZE - HAL_RX_DESC_SIZE); ath11k_dp_rx_null_q_desc_sg_drop(ar, msdu_len, msdu_list); @@ -2997,24 +3778,25 @@ * This error can show up both in a REO destination or WBM release ring. */ - __skb_queue_head_init(&amsdu_list); - rxcb->is_first_msdu = ath11k_dp_rx_h_msdu_end_first_msdu(desc); rxcb->is_last_msdu = ath11k_dp_rx_h_msdu_end_last_msdu(desc); - l3pad_bytes = ath11k_dp_rx_h_msdu_end_l3pad(desc); - - if ((HAL_RX_DESC_SIZE + l3pad_bytes + msdu_len) > DP_RX_BUFFER_SIZE) - return -EINVAL; + if (rxcb->is_frag) { + skb_pull(msdu, HAL_RX_DESC_SIZE); + } else { + l3pad_bytes = ath11k_dp_rx_h_msdu_end_l3pad(desc); - skb_put(msdu, HAL_RX_DESC_SIZE + l3pad_bytes + msdu_len); - skb_pull(msdu, HAL_RX_DESC_SIZE + l3pad_bytes); + if ((HAL_RX_DESC_SIZE + l3pad_bytes + msdu_len) > DP_RX_BUFFER_SIZE) + return -EINVAL; + skb_put(msdu, HAL_RX_DESC_SIZE + l3pad_bytes + msdu_len); + skb_pull(msdu, HAL_RX_DESC_SIZE + l3pad_bytes); + } ath11k_dp_rx_h_ppdu(ar, desc, status); - __skb_queue_tail(&amsdu_list, msdu); + ath11k_dp_rx_h_mpdu(ar, msdu, desc, status); - ath11k_dp_rx_h_mpdu(ar, &amsdu_list, desc, status); + rxcb->tid = ath11k_dp_rx_h_mpdu_start_tid(desc); /* Please note that caller will having the access to msdu and completing * rx with mac80211. Need not worry about cleaning up amsdu_list. @@ -3037,6 +3819,12 @@ if (ath11k_dp_rx_h_null_q_desc(ar, msdu, status, msdu_list)) drop = true; break; + case HAL_REO_DEST_RING_ERROR_CODE_PN_CHECK_FAILED: + /* TODO: Do not drop PN failed packets in the driver; + * instead, it is good to drop such packets in mac80211 + * after incrementing the replay counters. + */ + fallthrough; default: /* TODO: Review other errors and process them to mac80211 * as appropriate. @@ -3146,7 +3934,7 @@ int total_num_buffs_reaped = 0; int ret, i; - for (i = 0; i < MAX_RADIOS; i++) + for (i = 0; i < ab->num_radios; i++) __skb_queue_head_init(&msdu_list[i]); srng = &ab->hal.srng_list[dp->rx_rel_ring.ring_id]; @@ -3222,7 +4010,7 @@ rx_ring = &ar->dp.rx_refill_buf_ring; ath11k_dp_rxbufs_replenish(ab, i, rx_ring, num_buffs_reaped[i], - HAL_RX_BUF_RBM_SW3_BM, GFP_ATOMIC); + HAL_RX_BUF_RBM_SW3_BM); } rcu_read_lock(); @@ -3249,9 +4037,9 @@ int ath11k_dp_process_rxdma_err(struct ath11k_base *ab, int mac_id, int budget) { - struct ath11k *ar = ab->pdevs[mac_id].ar; - struct dp_srng *err_ring = &ar->dp.rxdma_err_dst_ring; - struct dp_rxdma_ring *rx_ring = &ar->dp.rx_refill_buf_ring; + struct ath11k *ar; + struct dp_srng *err_ring; + struct dp_rxdma_ring *rx_ring; struct dp_link_desc_bank *link_desc_banks = ab->dp.link_desc_banks; struct hal_srng *srng; u32 msdu_cookies[HAL_NUM_RX_MSDUS_PER_LINK_DESC]; @@ -3270,6 +4058,11 @@ int i; int buf_id; + ar = ab->pdevs[ath11k_hw_mac_id_to_pdev_id(&ab->hw_params, mac_id)].ar; + err_ring = &ar->dp.rxdma_err_dst_ring[ath11k_hw_mac_id_to_srng_id(&ab->hw_params, + mac_id)]; + rx_ring = &ar->dp.rx_refill_buf_ring; + srng = &ab->hal.srng_list[err_ring->ring_id]; spin_lock_bh(&srng->lock); @@ -3326,7 +4119,7 @@ if (num_buf_freed) ath11k_dp_rxbufs_replenish(ab, mac_id, rx_ring, num_buf_freed, - HAL_RX_BUF_RBM_SW3_BM, GFP_ATOMIC); + HAL_RX_BUF_RBM_SW3_BM); return budget - quota; } @@ -3423,6 +4216,7 @@ struct ath11k *ar = ab->pdevs[mac_id].ar; struct ath11k_pdev_dp *dp = &ar->dp; u32 ring_id; + int i; int ret; ret = ath11k_dp_rx_pdev_srng_alloc(ar); @@ -3445,14 +4239,33 @@ return ret; } - ring_id = dp->rxdma_err_dst_ring.ring_id; - ret = ath11k_dp_tx_htt_srng_setup(ab, ring_id, mac_id, HAL_RXDMA_DST); - if (ret) { - ath11k_warn(ab, "failed to configure rxdma_err_dest_ring %d\n", - ret); - return ret; + if (ab->hw_params.rx_mac_buf_ring) { + for (i = 0; i < ab->hw_params.num_rxmda_per_pdev; i++) { + ring_id = dp->rx_mac_buf_ring[i].ring_id; + ret = ath11k_dp_tx_htt_srng_setup(ab, ring_id, + mac_id + i, HAL_RXDMA_BUF); + if (ret) { + ath11k_warn(ab, "failed to configure rx_mac_buf_ring%d %d\n", + i, ret); + return ret; + } + } + } + + for (i = 0; i < ab->hw_params.num_rxmda_per_pdev; i++) { + ring_id = dp->rxdma_err_dst_ring[i].ring_id; + ret = ath11k_dp_tx_htt_srng_setup(ab, ring_id, + mac_id + i, HAL_RXDMA_DST); + if (ret) { + ath11k_warn(ab, "failed to configure rxdma_err_dest_ring%d %d\n", + i, ret); + return ret; + } } + if (!ab->hw_params.rxdma1_enable) + goto config_refill_ring; + ring_id = dp->rxdma_mon_buf_ring.refill_buf_ring.ring_id; ret = ath11k_dp_tx_htt_srng_setup(ab, ring_id, mac_id, HAL_RXDMA_MONITOR_BUF); @@ -3477,15 +4290,20 @@ ret); return ret; } - ring_id = dp->rx_mon_status_refill_ring.refill_buf_ring.ring_id; - ret = ath11k_dp_tx_htt_srng_setup(ab, ring_id, mac_id, - HAL_RXDMA_MONITOR_STATUS); - if (ret) { - ath11k_warn(ab, - "failed to configure mon_status_refill_ring %d\n", - ret); - return ret; + +config_refill_ring: + for (i = 0; i < ab->hw_params.num_rxmda_per_pdev; i++) { + ring_id = dp->rx_mon_status_refill_ring[i].refill_buf_ring.ring_id; + ret = ath11k_dp_tx_htt_srng_setup(ab, ring_id, mac_id + i, + HAL_RXDMA_MONITOR_STATUS); + if (ret) { + ath11k_warn(ab, + "failed to configure mon_status_refill_ring%d %d\n", + i, ret); + return ret; + } } + return 0; } @@ -3511,8 +4329,13 @@ void *src_srng_desc; int ret = 0; - dp_srng = &dp->rxdma_mon_desc_ring; - hal_srng = &ar->ab->hal.srng_list[dp_srng->ring_id]; + if (ar->ab->hw_params.rxdma1_enable) { + dp_srng = &dp->rxdma_mon_desc_ring; + hal_srng = &ar->ab->hal.srng_list[dp_srng->ring_id]; + } else { + dp_srng = &ar->ab->dp.wbm_desc_rel_ring; + hal_srng = &ar->ab->hal.srng_list[dp_srng->ring_id]; + } ath11k_hal_srng_access_begin(ar->ab, hal_srng); @@ -3536,16 +4359,16 @@ static void ath11k_dp_rx_mon_next_link_desc_get(void *rx_msdu_link_desc, dma_addr_t *paddr, u32 *sw_cookie, + u8 *rbm, void **pp_buf_addr_info) { struct hal_rx_msdu_link *msdu_link = (struct hal_rx_msdu_link *)rx_msdu_link_desc; struct ath11k_buffer_addr *buf_addr_info; - u8 rbm = 0; buf_addr_info = (struct ath11k_buffer_addr *)&msdu_link->buf_addr_info; - ath11k_hal_rx_buf_addr_info_get(buf_addr_info, paddr, sw_cookie, &rbm); + ath11k_hal_rx_buf_addr_info_get(buf_addr_info, paddr, sw_cookie, rbm); *pp_buf_addr_info = (void *)buf_addr_info; } @@ -3656,7 +4479,7 @@ } static u32 -ath11k_dp_rx_mon_mpdu_pop(struct ath11k *ar, +ath11k_dp_rx_mon_mpdu_pop(struct ath11k *ar, int mac_id, void *ring_entry, struct sk_buff **head_msdu, struct sk_buff **tail_msdu, u32 *npackets, u32 *ppdu_id) @@ -3681,9 +4504,15 @@ struct hal_reo_entrance_ring *ent_desc = (struct hal_reo_entrance_ring *)ring_entry; int buf_id; + u32 rx_link_buf_info[2]; + u8 rbm; + + if (!ar->ab->hw_params.rxdma1_enable) + rx_ring = &dp->rx_refill_buf_ring; ath11k_hal_rx_reo_ent_buf_paddr_get(ring_entry, &paddr, - &sw_cookie, &p_last_buf_addr_info, + &sw_cookie, + &p_last_buf_addr_info, &rbm, &msdu_cnt); if (FIELD_GET(HAL_REO_ENTR_RING_INFO1_RXDMA_PUSH_REASON, @@ -3709,9 +4538,14 @@ return rx_bufs_used; } - rx_msdu_link_desc = - (void *)pmon->link_desc_banks[sw_cookie].vaddr + - (paddr - pmon->link_desc_banks[sw_cookie].paddr); + if (ar->ab->hw_params.rxdma1_enable) + rx_msdu_link_desc = + (void *)pmon->link_desc_banks[sw_cookie].vaddr + + (paddr - pmon->link_desc_banks[sw_cookie].paddr); + else + rx_msdu_link_desc = + (void *)ar->ab->dp.link_desc_banks[sw_cookie].vaddr + + (paddr - ar->ab->dp.link_desc_banks[sw_cookie].paddr); ath11k_hal_rx_msdu_list_get(ar, rx_msdu_link_desc, &msdu_list, &num_msdus); @@ -3807,15 +4641,22 @@ spin_unlock_bh(&rx_ring->idr_lock); } + ath11k_hal_rx_buf_addr_info_set(rx_link_buf_info, paddr, sw_cookie, rbm); + ath11k_dp_rx_mon_next_link_desc_get(rx_msdu_link_desc, &paddr, - &sw_cookie, + &sw_cookie, &rbm, &p_buf_addr_info); - if (ath11k_dp_rx_monitor_link_desc_return(ar, - p_last_buf_addr_info, - dp->mac_id)) - ath11k_dbg(ar->ab, ATH11K_DBG_DATA, - "dp_rx_monitor_link_desc_return failed"); + if (ar->ab->hw_params.rxdma1_enable) { + if (ath11k_dp_rx_monitor_link_desc_return(ar, + p_last_buf_addr_info, + dp->mac_id)) + ath11k_dbg(ar->ab, ATH11K_DBG_DATA, + "dp_rx_monitor_link_desc_return failed"); + } else { + ath11k_dp_rx_link_desc_return(ar->ab, rx_link_buf_info, + HAL_WBM_REL_BM_ACT_PUT_IN_IDLE); + } p_last_buf_addr_info = p_buf_addr_info; @@ -3999,8 +4840,8 @@ return -EINVAL; } -static void ath11k_dp_rx_mon_dest_process(struct ath11k *ar, u32 quota, - struct napi_struct *napi) +static void ath11k_dp_rx_mon_dest_process(struct ath11k *ar, int mac_id, + u32 quota, struct napi_struct *napi) { struct ath11k_pdev_dp *dp = &ar->dp; struct ath11k_mon_data *pmon = (struct ath11k_mon_data *)&dp->mon_data; @@ -4008,10 +4849,16 @@ void *mon_dst_srng; u32 ppdu_id; u32 rx_bufs_used; + u32 ring_id; struct ath11k_pdev_mon_stats *rx_mon_stats; u32 npackets = 0; - mon_dst_srng = &ar->ab->hal.srng_list[dp->rxdma_mon_dst_ring.ring_id]; + if (ar->ab->hw_params.rxdma1_enable) + ring_id = dp->rxdma_mon_dst_ring.ring_id; + else + ring_id = dp->rxdma_err_dst_ring[mac_id].ring_id; + + mon_dst_srng = &ar->ab->hal.srng_list[ring_id]; if (!mon_dst_srng) { ath11k_warn(ar->ab, @@ -4034,7 +4881,7 @@ head_msdu = NULL; tail_msdu = NULL; - rx_bufs_used += ath11k_dp_rx_mon_mpdu_pop(ar, ring_entry, + rx_bufs_used += ath11k_dp_rx_mon_mpdu_pop(ar, mac_id, ring_entry, &head_msdu, &tail_msdu, &npackets, &ppdu_id); @@ -4061,15 +4908,21 @@ if (rx_bufs_used) { rx_mon_stats->dest_ppdu_done++; - ath11k_dp_rxbufs_replenish(ar->ab, dp->mac_id, - &dp->rxdma_mon_buf_ring, - rx_bufs_used, - HAL_RX_BUF_RBM_SW3_BM, GFP_ATOMIC); + if (ar->ab->hw_params.rxdma1_enable) + ath11k_dp_rxbufs_replenish(ar->ab, dp->mac_id, + &dp->rxdma_mon_buf_ring, + rx_bufs_used, + HAL_RX_BUF_RBM_SW3_BM); + else + ath11k_dp_rxbufs_replenish(ar->ab, dp->mac_id, + &dp->rx_refill_buf_ring, + rx_bufs_used, + HAL_RX_BUF_RBM_SW3_BM); } } static void ath11k_dp_rx_mon_status_process_tlv(struct ath11k *ar, - u32 quota, + int mac_id, u32 quota, struct napi_struct *napi) { struct ath11k_pdev_dp *dp = &ar->dp; @@ -4093,7 +4946,7 @@ if (tlv_status == HAL_TLV_STATUS_PPDU_DONE) { rx_mon_stats->status_ppdu_done++; pmon->mon_ppdu_status = DP_PPDU_STATUS_DONE; - ath11k_dp_rx_mon_dest_process(ar, quota, napi); + ath11k_dp_rx_mon_dest_process(ar, mac_id, quota, napi); pmon->mon_ppdu_status = DP_PPDU_STATUS_START; } dev_kfree_skb_any(status_skb); @@ -4103,15 +4956,15 @@ static int ath11k_dp_mon_process_rx(struct ath11k_base *ab, int mac_id, struct napi_struct *napi, int budget) { - struct ath11k *ar = ab->pdevs[mac_id].ar; + struct ath11k *ar = ath11k_ab_to_ar(ab, mac_id); struct ath11k_pdev_dp *dp = &ar->dp; struct ath11k_mon_data *pmon = (struct ath11k_mon_data *)&dp->mon_data; int num_buffs_reaped = 0; - num_buffs_reaped = ath11k_dp_rx_reap_mon_status_ring(ar->ab, dp->mac_id, &budget, + num_buffs_reaped = ath11k_dp_rx_reap_mon_status_ring(ar->ab, mac_id, &budget, &pmon->rx_status_q); if (num_buffs_reaped) - ath11k_dp_rx_mon_status_process_tlv(ar, budget, napi); + ath11k_dp_rx_mon_status_process_tlv(ar, mac_id, budget, napi); return num_buffs_reaped; } @@ -4119,7 +4972,7 @@ int ath11k_dp_rx_process_mon_rings(struct ath11k_base *ab, int mac_id, struct napi_struct *napi, int budget) { - struct ath11k *ar = ab->pdevs[mac_id].ar; + struct ath11k *ar = ath11k_ab_to_ar(ab, mac_id); int ret = 0; if (test_bit(ATH11K_FLAG_MONITOR_ENABLED, &ar->monitor_flags)) @@ -4158,9 +5011,15 @@ return ret; } + /* if rxdma1_enable is false, no need to setup + * rxdma_mon_desc_ring. + */ + if (!ar->ab->hw_params.rxdma1_enable) + return 0; + dp_srng = &dp->rxdma_mon_desc_ring; n_link_desc = dp_srng->size / - ath11k_hal_srng_get_entrysize(HAL_RXDMA_MONITOR_DESC); + ath11k_hal_srng_get_entrysize(ar->ab, HAL_RXDMA_MONITOR_DESC); mon_desc_srng = &ar->ab->hal.srng_list[dp->rxdma_mon_desc_ring.ring_id]; @@ -4174,6 +5033,7 @@ pmon->mon_last_linkdesc_paddr = 0; pmon->mon_last_buf_cookie = DP_RX_DESC_COOKIE_MAX + 1; spin_lock_init(&pmon->mon_lock); + return 0; } only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/net/wireless/ath/ath11k/dp_rx.h +++ linux-oem-5.6-5.6.0/drivers/net/wireless/ath/ath11k/dp_rx.h @@ -9,6 +9,8 @@ #include "rx_desc.h" #include "debug.h" +#define DP_MAX_NWIFI_HDR_LEN 30 + #define DP_RX_MPDU_ERR_FCS BIT(0) #define DP_RX_MPDU_ERR_DECRYPT BIT(1) #define DP_RX_MPDU_ERR_TKIP_MIC BIT(2) @@ -43,9 +45,16 @@ struct ieee80211_ampdu_params *params); int ath11k_dp_rx_ampdu_stop(struct ath11k *ar, struct ieee80211_ampdu_params *params); +int ath11k_dp_peer_rx_pn_replay_config(struct ath11k_vif *arvif, + const u8 *peer_addr, + enum set_key_cmd key_cmd, + struct ieee80211_key_conf *key); void ath11k_peer_rx_tid_cleanup(struct ath11k *ar, struct ath11k_peer *peer); +void ath11k_peer_rx_tid_delete(struct ath11k *ar, + struct ath11k_peer *peer, u8 tid); int ath11k_peer_rx_tid_setup(struct ath11k *ar, const u8 *peer_mac, int vdev_id, - u8 tid, u32 ba_win_sz, u16 ssn); + u8 tid, u32 ba_win_sz, u16 ssn, + enum hal_pn_type pn_type); void ath11k_dp_htt_htc_t2h_msg_handler(struct ath11k_base *ab, struct sk_buff *skb); int ath11k_dp_pdev_reo_setup(struct ath11k_base *ab); @@ -60,13 +69,12 @@ int ath11k_dp_process_rx_err(struct ath11k_base *ab, struct napi_struct *napi, int budget); int ath11k_dp_process_rx(struct ath11k_base *ab, int mac_id, - struct napi_struct *napi, struct sk_buff_head *pending_q, + struct napi_struct *napi, int budget); int ath11k_dp_rxbufs_replenish(struct ath11k_base *ab, int mac_id, struct dp_rxdma_ring *rx_ring, int req_entries, - enum hal_rx_buf_return_buf_manager mgr, - gfp_t gfp); + enum hal_rx_buf_return_buf_manager mgr); int ath11k_dp_htt_tlv_iter(struct ath11k_base *ab, const void *ptr, size_t len, int (*iter)(struct ath11k_base *ar, u16 tag, u16 len, const void *ptr, void *data), @@ -78,9 +86,9 @@ int ath11k_dp_rx_mon_status_bufs_replenish(struct ath11k_base *ab, int mac_id, struct dp_rxdma_ring *rx_ring, int req_entries, - enum hal_rx_buf_return_buf_manager mgr, - gfp_t gfp); + enum hal_rx_buf_return_buf_manager mgr); int ath11k_dp_rx_pdev_mon_detach(struct ath11k *ar); int ath11k_dp_rx_pdev_mon_attach(struct ath11k *ar); - +int ath11k_peer_rx_frag_setup(struct ath11k *ar, const u8 *peer_mac, int vdev_id); +int ath11k_dp_purge_mon_ring(struct ath11k_base *ab); #endif /* ATH11K_DP_RX_H */ only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/net/wireless/ath/ath11k/dp_tx.c +++ linux-oem-5.6-5.6.0/drivers/net/wireless/ath/ath11k/dp_tx.c @@ -6,16 +6,22 @@ #include "core.h" #include "dp_tx.h" #include "debug.h" +#include "debugfs_sta.h" #include "hw.h" - -/* NOTE: Any of the mapped ring id value must not exceed DP_TCL_NUM_RING_MAX */ -static const u8 -ath11k_txq_tcl_ring_map[ATH11K_HW_MAX_QUEUES] = { 0x0, 0x1, 0x2, 0x2 }; +#include "peer.h" static enum hal_tcl_encap_type ath11k_dp_tx_get_encap_type(struct ath11k_vif *arvif, struct sk_buff *skb) { - /* TODO: Determine encap type based on vif_type and configuration */ + struct ieee80211_tx_info *tx_info = IEEE80211_SKB_CB(skb); + struct ath11k_base *ab = arvif->ar->ab; + + if (test_bit(ATH11K_FLAG_RAW_MODE, &ab->dev_flags)) + return HAL_TCL_ENCAP_TYPE_RAW; + + if (tx_info->flags & IEEE80211_TX_CTL_HW_80211_ENCAP) + return HAL_TCL_ENCAP_TYPE_ETHERNET; + return HAL_TCL_ENCAP_TYPE_NATIVE_WIFI; } @@ -39,14 +45,17 @@ static u8 ath11k_dp_tx_get_tid(struct sk_buff *skb) { struct ieee80211_hdr *hdr = (void *)skb->data; + struct ath11k_skb_cb *cb = ATH11K_SKB_CB(skb); - if (!ieee80211_is_data_qos(hdr->frame_control)) + if (cb->flags & ATH11K_SKB_HW_80211_ENCAP) + return skb->priority & IEEE80211_QOS_CTL_TID_MASK; + else if (!ieee80211_is_data_qos(hdr->frame_control)) return HAL_DESC_REO_NON_QOS_TID; else return skb->priority & IEEE80211_QOS_CTL_TID_MASK; } -static enum hal_encrypt_type ath11k_dp_tx_get_encrypt_type(u32 cipher) +enum hal_encrypt_type ath11k_dp_tx_get_encrypt_type(u32 cipher) { switch (cipher) { case WLAN_CIPHER_SUITE_WEP40: @@ -75,6 +84,7 @@ struct ath11k_dp *dp = &ab->dp; struct hal_tx_info ti = {0}; struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb); + struct ieee80211_key_conf *key = info->control.hw_key; struct ath11k_skb_cb *skb_cb = ATH11K_SKB_CB(skb); struct hal_srng *tcl_ring; struct ieee80211_hdr *hdr = (void *)skb->data; @@ -83,15 +93,36 @@ u8 pool_id; u8 hal_ring_id; int ret; + u8 ring_selector = 0, ring_map = 0; + bool tcl_ring_retry; if (test_bit(ATH11K_FLAG_CRASH_FLUSH, &ar->ab->dev_flags)) return -ESHUTDOWN; - if (!ieee80211_is_data(hdr->frame_control)) + if (!(info->flags & IEEE80211_TX_CTL_HW_80211_ENCAP) && + !ieee80211_is_data(hdr->frame_control)) return -ENOTSUPP; pool_id = skb_get_queue_mapping(skb) & (ATH11K_HW_MAX_QUEUES - 1); - ti.ring_id = ath11k_txq_tcl_ring_map[pool_id]; + + /* Let the default ring selection be based on a round robin + * fashion where one of the 3 tcl rings are selected based on + * the tcl_ring_selector counter. In case that ring + * is full/busy, we resort to other available rings. + * If all rings are full, we drop the packet. + * //TODO Add throttling logic when all rings are full + */ + ring_selector = atomic_inc_return(&ab->tcl_ring_selector); + +tcl_ring_sel: + tcl_ring_retry = false; + /* For some chip, it can only use tcl0 to tx */ + if (ar->ab->hw_params.tcl_0_only) + ti.ring_id = 0; + else + ti.ring_id = ring_selector % DP_TCL_NUM_RING_MAX; + + ring_map |= BIT(ti.ring_id); tx_ring = &dp->tx_ring[ti.ring_id]; @@ -100,8 +131,16 @@ DP_TX_IDR_SIZE - 1, GFP_ATOMIC); spin_unlock_bh(&tx_ring->tx_idr_lock); - if (ret < 0) - return -ENOSPC; + if (ret < 0) { + if (ring_map == (BIT(DP_TCL_NUM_RING_MAX) - 1)) { + atomic_inc(&ab->soc_stats.tx_err.misc_fail); + return -ENOSPC; + } + + /* Check if the next ring is available */ + ring_selector++; + goto tcl_ring_sel; + } ti.desc_id = FIELD_PREP(DP_TX_DESC_ID_MAC_ID, ar->pdev_idx) | FIELD_PREP(DP_TX_DESC_ID_MSDU_ID, ret) | @@ -109,11 +148,17 @@ ti.encap_type = ath11k_dp_tx_get_encap_type(arvif, skb); ti.meta_data_flags = arvif->tcl_metadata; - if (info->control.hw_key) - ti.encrypt_type = - ath11k_dp_tx_get_encrypt_type(info->control.hw_key->cipher); - else - ti.encrypt_type = HAL_ENCRYPT_TYPE_OPEN; + if (ti.encap_type == HAL_TCL_ENCAP_TYPE_RAW) { + if (key) { + ti.encrypt_type = + ath11k_dp_tx_get_encrypt_type(key->cipher); + + if (ieee80211_has_protected(hdr->frame_control)) + skb_put(skb, IEEE80211_CCMP_MIC_LEN); + } else { + ti.encrypt_type = HAL_ENCRYPT_TYPE_OPEN; + } + } ti.addr_search_flags = arvif->hal_addr_search_flags; ti.search_type = arvif->search_type; @@ -123,7 +168,8 @@ ti.bss_ast_hash = arvif->ast_hash; ti.dscp_tid_tbl_idx = 0; - if (skb->ip_summed == CHECKSUM_PARTIAL) { + if (skb->ip_summed == CHECKSUM_PARTIAL && + ti.encap_type != HAL_TCL_ENCAP_TYPE_RAW) { ti.flags0 |= FIELD_PREP(HAL_TCL_DATA_CMD_INFO1_IP4_CKSUM_EN, 1) | FIELD_PREP(HAL_TCL_DATA_CMD_INFO1_UDP4_CKSUM_EN, 1) | FIELD_PREP(HAL_TCL_DATA_CMD_INFO1_UDP6_CKSUM_EN, 1) | @@ -143,19 +189,25 @@ ath11k_dp_tx_encap_nwifi(skb); break; case HAL_TCL_ENCAP_TYPE_RAW: - /* TODO: for CHECKSUM_PARTIAL case in raw mode, HW checksum offload - * is not applicable, hence manual checksum calculation using - * skb_checksum_help() is needed - */ + if (!test_bit(ATH11K_FLAG_RAW_MODE, &ab->dev_flags)) { + ret = -EINVAL; + goto fail_remove_idr; + } + break; case HAL_TCL_ENCAP_TYPE_ETHERNET: + /* no need to encap */ + break; case HAL_TCL_ENCAP_TYPE_802_3: + default: /* TODO: Take care of other encap modes as well */ ret = -EINVAL; + atomic_inc(&ab->soc_stats.tx_err.misc_fail); goto fail_remove_idr; } ti.paddr = dma_map_single(ab->dev, skb->data, skb->len, DMA_TO_DEVICE); if (dma_mapping_error(ab->dev, ti.paddr)) { + atomic_inc(&ab->soc_stats.tx_err.misc_fail); ath11k_warn(ab, "failed to DMA map data Tx buffer\n"); ret = -ENOMEM; goto fail_remove_idr; @@ -177,11 +229,23 @@ if (!hal_tcl_desc) { /* NOTE: It is highly unlikely we'll be running out of tcl_ring * desc because the desc is directly enqueued onto hw queue. - * So add tx packet throttling logic in future if required. */ ath11k_hal_srng_access_end(ab, tcl_ring); + ab->soc_stats.tx_err.desc_na[ti.ring_id]++; spin_unlock_bh(&tcl_ring->lock); ret = -ENOMEM; + + /* Checking for available tcl descritors in another ring in + * case of failure due to full tcl ring now, is better than + * checking this ring earlier for each pkt tx. + * Restart ring selection if some rings are not checked yet. + */ + if (ring_map != (BIT(DP_TCL_NUM_RING_MAX) - 1) && + !ar->ab->hw_params.tcl_0_only) { + tcl_ring_retry = true; + ring_selector++; + } + goto fail_unmap_dma; } @@ -190,8 +254,13 @@ ath11k_hal_srng_access_end(ab, tcl_ring); + ath11k_dp_shadow_start_timer(ab, tcl_ring, &dp->tx_ring_timer[ti.ring_id]); + spin_unlock_bh(&tcl_ring->lock); + ath11k_dbg_dump(ab, ATH11K_DBG_DP_TX, NULL, "dp tx msdu: ", + skb->data, skb->len); + atomic_inc(&ar->dp.num_tx_pending); return 0; @@ -205,6 +274,9 @@ FIELD_GET(DP_TX_DESC_ID_MSDU_ID, ti.desc_id)); spin_unlock_bh(&tx_ring->tx_idr_lock); + if (tcl_ring_retry) + goto tcl_ring_sel; + return ret; } @@ -299,7 +371,6 @@ wbm_status = FIELD_GET(HTT_TX_WBM_COMP_INFO0_STATUS, status_desc->info0); - switch (wbm_status) { case HAL_WBM_REL_HTT_TX_COMP_STATUS_OK: case HAL_WBM_REL_HTT_TX_COMP_STATUS_DROP: @@ -389,7 +460,7 @@ (info->flags & IEEE80211_TX_CTL_NO_ACK)) info->flags |= IEEE80211_TX_STAT_NOACK_TRANSMITTED; - if (ath11k_debug_is_extd_tx_stats_enabled(ar)) { + if (ath11k_debugfs_is_extd_tx_stats_enabled(ar)) { if (ts->flags & HAL_TX_STATUS_FLAGS_FIRST_MSDU) { if (ar->last_ppdu_id == 0) { ar->last_ppdu_id = ts->ppdu_id; @@ -397,12 +468,12 @@ ar->cached_ppdu_id == ar->last_ppdu_id) { ar->cached_ppdu_id = ar->last_ppdu_id; ar->cached_stats.is_ampdu = true; - ath11k_update_per_peer_stats_from_txcompl(ar, msdu, ts); + ath11k_debugfs_sta_update_txcompl(ar, msdu, ts); memset(&ar->cached_stats, 0, sizeof(struct ath11k_per_peer_tx_stats)); } else { ar->cached_stats.is_ampdu = false; - ath11k_update_per_peer_stats_from_txcompl(ar, msdu, ts); + ath11k_debugfs_sta_update_txcompl(ar, msdu, ts); memset(&ar->cached_stats, 0, sizeof(struct ath11k_per_peer_tx_stats)); } @@ -467,6 +538,8 @@ u32 msdu_id; u8 mac_id; + spin_lock_bh(&status_ring->lock); + ath11k_hal_srng_access_begin(ab, status_ring); while ((ATH11K_TX_COMPL_NEXT(tx_ring->tx_status_head) != @@ -486,6 +559,8 @@ ath11k_hal_srng_access_end(ab, status_ring); + spin_unlock_bh(&status_ring->lock); + while (ATH11K_TX_COMPL_NEXT(tx_ring->tx_status_tail) != tx_ring->tx_status_head) { struct hal_wbm_release_ring *tx_status; u32 desc_id; @@ -542,8 +617,12 @@ cmd_ring = &ab->hal.srng_list[dp->reo_cmd_ring.ring_id]; cmd_num = ath11k_hal_reo_cmd_send(ab, cmd_ring, type, cmd); + /* cmd_num should start from 1, during failure return the error code */ + if (cmd_num < 0) + return cmd_num; + /* reo cmd ring descriptors has cmd_num starting from 1 */ - if (cmd_num <= 0) + if (cmd_num == 0) return -EINVAL; if (!cb) @@ -582,14 +661,28 @@ switch (ring_type) { case HAL_RXDMA_BUF: lmac_ring_id_offset = mac_id * HAL_SRNG_RINGS_PER_LMAC; - if (!(ring_id == (HAL_SRNG_RING_ID_WMAC1_SW2RXDMA0_BUF + - lmac_ring_id_offset) || - ring_id == (HAL_SRNG_RING_ID_WMAC1_SW2RXDMA1_BUF + - lmac_ring_id_offset))) { - ret = -EINVAL; + + /* for QCA6390, host fills rx buffer to fw and fw fills to + * rxbuf ring for each rxdma + */ + if (!ab->hw_params.rx_mac_buf_ring) { + if (!(ring_id == (HAL_SRNG_RING_ID_WMAC1_SW2RXDMA0_BUF + + lmac_ring_id_offset) || + ring_id == (HAL_SRNG_RING_ID_WMAC1_SW2RXDMA1_BUF + + lmac_ring_id_offset))) { + ret = -EINVAL; + } + *htt_ring_id = HTT_RXDMA_HOST_BUF_RING; + *htt_ring_type = HTT_SW_TO_HW_RING; + } else { + if (ring_id == HAL_SRNG_RING_ID_WMAC1_SW2RXDMA0_BUF) { + *htt_ring_id = HTT_HOST1_TO_FW_RXBUF_RING; + *htt_ring_type = HTT_SW_TO_SW_RING; + } else { + *htt_ring_id = HTT_RXDMA_HOST_BUF_RING; + *htt_ring_type = HTT_SW_TO_HW_RING; + } } - *htt_ring_id = HTT_RXDMA_HOST_BUF_RING; - *htt_ring_type = HTT_SW_TO_HW_RING; break; case HAL_RXDMA_DST: *htt_ring_id = HTT_RXDMA_NON_MONITOR_DEST_RING; @@ -669,7 +762,7 @@ cmd->ring_base_addr_hi = (u64)params.ring_base_paddr >> HAL_ADDR_MSB_REG_SHIFT; - ret = ath11k_hal_srng_get_entrysize(ring_type); + ret = ath11k_hal_srng_get_entrysize(ab, ring_type); if (ret < 0) goto err_free; @@ -699,9 +792,9 @@ cmd->ring_tail_off32_remote_addr_hi = (u64)tp_addr >> HAL_ADDR_MSB_REG_SHIFT; - cmd->ring_msi_addr_lo = 0; - cmd->ring_msi_addr_hi = 0; - cmd->msi_data = 0; + cmd->ring_msi_addr_lo = params.msi_addr & 0xffffffff; + cmd->ring_msi_addr_hi = ((uint64_t)(params.msi_addr) >> 32) & 0xffffffff; + cmd->msi_data = params.msi_data; cmd->intr_info = FIELD_PREP( HTT_SRNG_SETUP_CMD_INTR_INFO_BATCH_COUNTER_THRESH, @@ -717,6 +810,15 @@ params.low_threshold); } + ath11k_dbg(ab, ATH11k_DBG_HAL, + "%s msi_addr_lo:0x%x, msi_addr_hi:0x%x, msi_data:0x%x\n", + __func__, cmd->ring_msi_addr_lo, cmd->ring_msi_addr_hi, + cmd->msi_data); + + ath11k_dbg(ab, ATH11k_DBG_HAL, + "ring_id:%d, ring_type:%d, intr_info:0x%x, flags:0x%x\n", + ring_id, ring_type, cmd->intr_info, cmd->info2); + ret = ath11k_htc_send(&ab->htc, ab->dp.eid, skb); if (ret) goto err_free; @@ -781,24 +883,27 @@ int len = sizeof(*cmd); u8 pdev_mask; int ret; + int i; - skb = ath11k_htc_alloc_skb(ab, len); - if (!skb) - return -ENOMEM; - - skb_put(skb, len); - cmd = (struct htt_ppdu_stats_cfg_cmd *)skb->data; - cmd->msg = FIELD_PREP(HTT_PPDU_STATS_CFG_MSG_TYPE, - HTT_H2T_MSG_TYPE_PPDU_STATS_CFG); - - pdev_mask = 1 << (ar->pdev_idx); - cmd->msg |= FIELD_PREP(HTT_PPDU_STATS_CFG_PDEV_ID, pdev_mask); - cmd->msg |= FIELD_PREP(HTT_PPDU_STATS_CFG_TLV_TYPE_BITMASK, mask); - - ret = ath11k_htc_send(&ab->htc, dp->eid, skb); - if (ret) { - dev_kfree_skb_any(skb); - return ret; + for (i = 0; i < ab->hw_params.num_rxmda_per_pdev; i++) { + skb = ath11k_htc_alloc_skb(ab, len); + if (!skb) + return -ENOMEM; + + skb_put(skb, len); + cmd = (struct htt_ppdu_stats_cfg_cmd *)skb->data; + cmd->msg = FIELD_PREP(HTT_PPDU_STATS_CFG_MSG_TYPE, + HTT_H2T_MSG_TYPE_PPDU_STATS_CFG); + + pdev_mask = 1 << (i + 1); + cmd->msg |= FIELD_PREP(HTT_PPDU_STATS_CFG_PDEV_ID, pdev_mask); + cmd->msg |= FIELD_PREP(HTT_PPDU_STATS_CFG_TLV_TYPE_BITMASK, mask); + + ret = ath11k_htc_send(&ab->htc, dp->eid, skb); + if (ret) { + dev_kfree_skb_any(skb); + return ret; + } } return 0; @@ -917,8 +1022,9 @@ int ath11k_dp_tx_htt_monitor_mode_ring_config(struct ath11k *ar, bool reset) { struct ath11k_pdev_dp *dp = &ar->dp; + struct ath11k_base *ab = ar->ab; struct htt_rx_ring_tlv_filter tlv_filter = {0}; - int ret = 0, ring_id = 0; + int ret = 0, ring_id = 0, i; ring_id = dp->rxdma_mon_buf_ring.refill_buf_ring.ring_id; @@ -940,23 +1046,44 @@ HTT_RX_MON_MO_DATA_FILTER_FLASG3; } - ret = ath11k_dp_tx_htt_rx_filter_setup(ar->ab, ring_id, dp->mac_id, - HAL_RXDMA_MONITOR_BUF, - DP_RXDMA_REFILL_RING_SIZE, - &tlv_filter); + if (ab->hw_params.rxdma1_enable) { + ret = ath11k_dp_tx_htt_rx_filter_setup(ar->ab, ring_id, dp->mac_id, + HAL_RXDMA_MONITOR_BUF, + DP_RXDMA_REFILL_RING_SIZE, + &tlv_filter); + } else if (!reset) { + /* set in monitor mode only */ + for (i = 0; i < ab->hw_params.num_rxmda_per_pdev; i++) { + ring_id = dp->rx_mac_buf_ring[i].ring_id; + ret = ath11k_dp_tx_htt_rx_filter_setup(ar->ab, ring_id, + dp->mac_id + i, + HAL_RXDMA_BUF, + 1024, + &tlv_filter); + } + } + if (ret) return ret; - ring_id = dp->rx_mon_status_refill_ring.refill_buf_ring.ring_id; - if (!reset) - tlv_filter.rx_filter = - HTT_RX_MON_FILTER_TLV_FLAGS_MON_STATUS_RING; - else - tlv_filter = ath11k_mac_mon_status_filter_default; + for (i = 0; i < ab->hw_params.num_rxmda_per_pdev; i++) { + ring_id = dp->rx_mon_status_refill_ring[i].refill_buf_ring.ring_id; + if (!reset) + tlv_filter.rx_filter = + HTT_RX_MON_FILTER_TLV_FLAGS_MON_STATUS_RING; + else + tlv_filter = ath11k_mac_mon_status_filter_default; + + ret = ath11k_dp_tx_htt_rx_filter_setup(ab, ring_id, + dp->mac_id + i, + HAL_RXDMA_MONITOR_STATUS, + DP_RXDMA_REFILL_RING_SIZE, + &tlv_filter); + } + + if (!ar->ab->hw_params.rxdma1_enable) + mod_timer(&ar->ab->mon_reap_timer, jiffies + + msecs_to_jiffies(ATH11K_MON_TIMER_INTERVAL)); - ret = ath11k_dp_tx_htt_rx_filter_setup(ar->ab, ring_id, dp->mac_id, - HAL_RXDMA_MONITOR_STATUS, - DP_RXDMA_REFILL_RING_SIZE, - &tlv_filter); return ret; } only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/net/wireless/ath/ath11k/hal.c +++ linux-oem-5.6-5.6.0/drivers/net/wireless/ath/ath11k/hal.c @@ -3,12 +3,12 @@ * Copyright (c) 2018-2019 The Linux Foundation. All rights reserved. */ #include -#include "ahb.h" #include "hal_tx.h" #include "debug.h" #include "hal_desc.h" +#include "hif.h" -static const struct hal_srng_config hw_srng_config[] = { +static const struct hal_srng_config hw_srng_config_template[] = { /* TODO: max_rings can populated by querying HW capabilities */ { /* REO_DST */ .start_ring_id = HAL_SRNG_RING_ID_REO2SW1, @@ -16,14 +16,6 @@ .entry_size = sizeof(struct hal_reo_dest_ring) >> 2, .lmac_ring = false, .ring_dir = HAL_SRNG_DIR_DST, - .reg_start = { - HAL_SEQ_WCSS_UMAC_REO_REG + HAL_REO1_RING_BASE_LSB, - HAL_SEQ_WCSS_UMAC_REO_REG + HAL_REO1_RING_HP, - }, - .reg_size = { - HAL_REO2_RING_BASE_LSB - HAL_REO1_RING_BASE_LSB, - HAL_REO2_RING_HP - HAL_REO1_RING_HP, - }, .max_size = HAL_REO_REO2SW1_RING_BASE_MSB_RING_SIZE, }, { /* REO_EXCEPTION */ @@ -36,10 +28,6 @@ .entry_size = sizeof(struct hal_reo_dest_ring) >> 2, .lmac_ring = false, .ring_dir = HAL_SRNG_DIR_DST, - .reg_start = { - HAL_SEQ_WCSS_UMAC_REO_REG + HAL_REO_TCL_RING_BASE_LSB, - HAL_SEQ_WCSS_UMAC_REO_REG + HAL_REO_TCL_RING_HP, - }, .max_size = HAL_REO_REO2TCL_RING_BASE_MSB_RING_SIZE, }, { /* REO_REINJECT */ @@ -48,10 +36,6 @@ .entry_size = sizeof(struct hal_reo_entrance_ring) >> 2, .lmac_ring = false, .ring_dir = HAL_SRNG_DIR_SRC, - .reg_start = { - HAL_SEQ_WCSS_UMAC_REO_REG + HAL_SW2REO_RING_BASE_LSB, - HAL_SEQ_WCSS_UMAC_REO_REG + HAL_SW2REO_RING_HP, - }, .max_size = HAL_REO_SW2REO_RING_BASE_MSB_RING_SIZE, }, { /* REO_CMD */ @@ -61,10 +45,6 @@ sizeof(struct hal_reo_get_queue_stats)) >> 2, .lmac_ring = false, .ring_dir = HAL_SRNG_DIR_SRC, - .reg_start = { - HAL_SEQ_WCSS_UMAC_REO_REG + HAL_REO_CMD_RING_BASE_LSB, - HAL_SEQ_WCSS_UMAC_REO_REG + HAL_REO_CMD_HP, - }, .max_size = HAL_REO_CMD_RING_BASE_MSB_RING_SIZE, }, { /* REO_STATUS */ @@ -74,11 +54,6 @@ sizeof(struct hal_reo_get_queue_stats_status)) >> 2, .lmac_ring = false, .ring_dir = HAL_SRNG_DIR_DST, - .reg_start = { - HAL_SEQ_WCSS_UMAC_REO_REG + - HAL_REO_STATUS_RING_BASE_LSB, - HAL_SEQ_WCSS_UMAC_REO_REG + HAL_REO_STATUS_HP, - }, .max_size = HAL_REO_STATUS_RING_BASE_MSB_RING_SIZE, }, { /* TCL_DATA */ @@ -88,14 +63,6 @@ sizeof(struct hal_tcl_data_cmd)) >> 2, .lmac_ring = false, .ring_dir = HAL_SRNG_DIR_SRC, - .reg_start = { - HAL_SEQ_WCSS_UMAC_TCL_REG + HAL_TCL1_RING_BASE_LSB, - HAL_SEQ_WCSS_UMAC_TCL_REG + HAL_TCL1_RING_HP, - }, - .reg_size = { - HAL_TCL2_RING_BASE_LSB - HAL_TCL1_RING_BASE_LSB, - HAL_TCL2_RING_HP - HAL_TCL1_RING_HP, - }, .max_size = HAL_SW2TCL1_RING_BASE_MSB_RING_SIZE, }, { /* TCL_CMD */ @@ -105,10 +72,6 @@ sizeof(struct hal_tcl_gse_cmd)) >> 2, .lmac_ring = false, .ring_dir = HAL_SRNG_DIR_SRC, - .reg_start = { - HAL_SEQ_WCSS_UMAC_TCL_REG + HAL_TCL_RING_BASE_LSB, - HAL_SEQ_WCSS_UMAC_TCL_REG + HAL_TCL_RING_HP, - }, .max_size = HAL_SW2TCL1_CMD_RING_BASE_MSB_RING_SIZE, }, { /* TCL_STATUS */ @@ -118,11 +81,6 @@ sizeof(struct hal_tcl_status_ring)) >> 2, .lmac_ring = false, .ring_dir = HAL_SRNG_DIR_DST, - .reg_start = { - HAL_SEQ_WCSS_UMAC_TCL_REG + - HAL_TCL_STATUS_RING_BASE_LSB, - HAL_SEQ_WCSS_UMAC_TCL_REG + HAL_TCL_STATUS_RING_HP, - }, .max_size = HAL_TCL_STATUS_RING_BASE_MSB_RING_SIZE, }, { /* CE_SRC */ @@ -344,18 +302,19 @@ static void ath11k_hal_ce_dst_setup(struct ath11k_base *ab, struct hal_srng *srng, int ring_num) { - const struct hal_srng_config *srng_config = &hw_srng_config[HAL_CE_DST]; + struct hal_srng_config *srng_config = &ab->hal.srng_config[HAL_CE_DST]; u32 addr; u32 val; addr = HAL_CE_DST_RING_CTRL + srng_config->reg_start[HAL_SRNG_REG_GRP_R0] + ring_num * srng_config->reg_size[HAL_SRNG_REG_GRP_R0]; - val = ath11k_ahb_read32(ab, addr); + + val = ath11k_hif_read32(ab, addr); val &= ~HAL_CE_DST_R0_DEST_CTRL_MAX_LEN; val |= FIELD_PREP(HAL_CE_DST_R0_DEST_CTRL_MAX_LEN, srng->u.dst_ring.max_buffer_length); - ath11k_ahb_write32(ab, addr, val); + ath11k_hif_write32(ab, addr, val); } static void ath11k_hal_srng_dst_hw_init(struct ath11k_base *ab, @@ -369,34 +328,34 @@ reg_base = srng->hwreg_base[HAL_SRNG_REG_GRP_R0]; if (srng->flags & HAL_SRNG_FLAGS_MSI_INTR) { - ath11k_ahb_write32(ab, reg_base + - HAL_REO1_RING_MSI1_BASE_LSB_OFFSET, - (u32)srng->msi_addr); + ath11k_hif_write32(ab, reg_base + + HAL_REO1_RING_MSI1_BASE_LSB_OFFSET(ab), + srng->msi_addr); val = FIELD_PREP(HAL_REO1_RING_MSI1_BASE_MSB_ADDR, ((u64)srng->msi_addr >> HAL_ADDR_MSB_REG_SHIFT)) | HAL_REO1_RING_MSI1_BASE_MSB_MSI1_ENABLE; - ath11k_ahb_write32(ab, reg_base + - HAL_REO1_RING_MSI1_BASE_MSB_OFFSET, val); + ath11k_hif_write32(ab, reg_base + + HAL_REO1_RING_MSI1_BASE_MSB_OFFSET(ab), val); - ath11k_ahb_write32(ab, - reg_base + HAL_REO1_RING_MSI1_DATA_OFFSET, + ath11k_hif_write32(ab, + reg_base + HAL_REO1_RING_MSI1_DATA_OFFSET(ab), srng->msi_data); } - ath11k_ahb_write32(ab, reg_base, (u32)srng->ring_base_paddr); + ath11k_hif_write32(ab, reg_base, srng->ring_base_paddr); val = FIELD_PREP(HAL_REO1_RING_BASE_MSB_RING_BASE_ADDR_MSB, ((u64)srng->ring_base_paddr >> HAL_ADDR_MSB_REG_SHIFT)) | FIELD_PREP(HAL_REO1_RING_BASE_MSB_RING_SIZE, (srng->entry_size * srng->num_entries)); - ath11k_ahb_write32(ab, reg_base + HAL_REO1_RING_BASE_MSB_OFFSET, val); + ath11k_hif_write32(ab, reg_base + HAL_REO1_RING_BASE_MSB_OFFSET(ab), val); val = FIELD_PREP(HAL_REO1_RING_ID_RING_ID, srng->ring_id) | FIELD_PREP(HAL_REO1_RING_ID_ENTRY_SIZE, srng->entry_size); - ath11k_ahb_write32(ab, reg_base + HAL_REO1_RING_ID_OFFSET, val); + ath11k_hif_write32(ab, reg_base + HAL_REO1_RING_ID_OFFSET(ab), val); /* interrupt setup */ val = FIELD_PREP(HAL_REO1_RING_PRDR_INT_SETUP_INTR_TMR_THOLD, @@ -406,22 +365,22 @@ (srng->intr_batch_cntr_thres_entries * srng->entry_size)); - ath11k_ahb_write32(ab, - reg_base + HAL_REO1_RING_PRODUCER_INT_SETUP_OFFSET, + ath11k_hif_write32(ab, + reg_base + HAL_REO1_RING_PRODUCER_INT_SETUP_OFFSET(ab), val); hp_addr = hal->rdp.paddr + ((unsigned long)srng->u.dst_ring.hp_addr - (unsigned long)hal->rdp.vaddr); - ath11k_ahb_write32(ab, reg_base + HAL_REO1_RING_HP_ADDR_LSB_OFFSET, + ath11k_hif_write32(ab, reg_base + HAL_REO1_RING_HP_ADDR_LSB_OFFSET(ab), hp_addr & HAL_ADDR_LSB_REG_MASK); - ath11k_ahb_write32(ab, reg_base + HAL_REO1_RING_HP_ADDR_MSB_OFFSET, + ath11k_hif_write32(ab, reg_base + HAL_REO1_RING_HP_ADDR_MSB_OFFSET(ab), hp_addr >> HAL_ADDR_MSB_REG_SHIFT); /* Initialize head and tail pointers to indicate ring is empty */ reg_base = srng->hwreg_base[HAL_SRNG_REG_GRP_R2]; - ath11k_ahb_write32(ab, reg_base, 0); - ath11k_ahb_write32(ab, reg_base + HAL_REO1_RING_TP_OFFSET, 0); + ath11k_hif_write32(ab, reg_base, 0); + ath11k_hif_write32(ab, reg_base + HAL_REO1_RING_TP_OFFSET(ab), 0); *srng->u.dst_ring.hp_addr = 0; reg_base = srng->hwreg_base[HAL_SRNG_REG_GRP_R0]; @@ -434,7 +393,7 @@ val |= HAL_REO1_RING_MISC_MSI_SWAP; val |= HAL_REO1_RING_MISC_SRNG_ENABLE; - ath11k_ahb_write32(ab, reg_base + HAL_REO1_RING_MISC_OFFSET, val); + ath11k_hif_write32(ab, reg_base + HAL_REO1_RING_MISC_OFFSET(ab), val); } static void ath11k_hal_srng_src_hw_init(struct ath11k_base *ab, @@ -448,34 +407,34 @@ reg_base = srng->hwreg_base[HAL_SRNG_REG_GRP_R0]; if (srng->flags & HAL_SRNG_FLAGS_MSI_INTR) { - ath11k_ahb_write32(ab, reg_base + - HAL_TCL1_RING_MSI1_BASE_LSB_OFFSET, - (u32)srng->msi_addr); + ath11k_hif_write32(ab, reg_base + + HAL_TCL1_RING_MSI1_BASE_LSB_OFFSET(ab), + srng->msi_addr); val = FIELD_PREP(HAL_TCL1_RING_MSI1_BASE_MSB_ADDR, ((u64)srng->msi_addr >> HAL_ADDR_MSB_REG_SHIFT)) | HAL_TCL1_RING_MSI1_BASE_MSB_MSI1_ENABLE; - ath11k_ahb_write32(ab, reg_base + - HAL_TCL1_RING_MSI1_BASE_MSB_OFFSET, + ath11k_hif_write32(ab, reg_base + + HAL_TCL1_RING_MSI1_BASE_MSB_OFFSET(ab), val); - ath11k_ahb_write32(ab, reg_base + - HAL_TCL1_RING_MSI1_DATA_OFFSET, + ath11k_hif_write32(ab, reg_base + + HAL_TCL1_RING_MSI1_DATA_OFFSET(ab), srng->msi_data); } - ath11k_ahb_write32(ab, reg_base, (u32)srng->ring_base_paddr); + ath11k_hif_write32(ab, reg_base, srng->ring_base_paddr); val = FIELD_PREP(HAL_TCL1_RING_BASE_MSB_RING_BASE_ADDR_MSB, ((u64)srng->ring_base_paddr >> HAL_ADDR_MSB_REG_SHIFT)) | FIELD_PREP(HAL_TCL1_RING_BASE_MSB_RING_SIZE, (srng->entry_size * srng->num_entries)); - ath11k_ahb_write32(ab, reg_base + HAL_TCL1_RING_BASE_MSB_OFFSET, val); + ath11k_hif_write32(ab, reg_base + HAL_TCL1_RING_BASE_MSB_OFFSET(ab), val); val = FIELD_PREP(HAL_REO1_RING_ID_ENTRY_SIZE, srng->entry_size); - ath11k_ahb_write32(ab, reg_base + HAL_TCL1_RING_ID_OFFSET, val); + ath11k_hif_write32(ab, reg_base + HAL_TCL1_RING_ID_OFFSET(ab), val); /* interrupt setup */ /* NOTE: IPQ8074 v2 requires the interrupt timer threshold in the @@ -488,8 +447,8 @@ (srng->intr_batch_cntr_thres_entries * srng->entry_size)); - ath11k_ahb_write32(ab, - reg_base + HAL_TCL1_RING_CONSR_INT_SETUP_IX0_OFFSET, + ath11k_hif_write32(ab, + reg_base + HAL_TCL1_RING_CONSR_INT_SETUP_IX0_OFFSET(ab), val); val = 0; @@ -497,26 +456,26 @@ val |= FIELD_PREP(HAL_TCL1_RING_CONSR_INT_SETUP_IX1_LOW_THOLD, srng->u.src_ring.low_threshold); } - ath11k_ahb_write32(ab, - reg_base + HAL_TCL1_RING_CONSR_INT_SETUP_IX1_OFFSET, + ath11k_hif_write32(ab, + reg_base + HAL_TCL1_RING_CONSR_INT_SETUP_IX1_OFFSET(ab), val); if (srng->ring_id != HAL_SRNG_RING_ID_WBM_IDLE_LINK) { tp_addr = hal->rdp.paddr + ((unsigned long)srng->u.src_ring.tp_addr - (unsigned long)hal->rdp.vaddr); - ath11k_ahb_write32(ab, - reg_base + HAL_TCL1_RING_TP_ADDR_LSB_OFFSET, + ath11k_hif_write32(ab, + reg_base + HAL_TCL1_RING_TP_ADDR_LSB_OFFSET(ab), tp_addr & HAL_ADDR_LSB_REG_MASK); - ath11k_ahb_write32(ab, - reg_base + HAL_TCL1_RING_TP_ADDR_MSB_OFFSET, + ath11k_hif_write32(ab, + reg_base + HAL_TCL1_RING_TP_ADDR_MSB_OFFSET(ab), tp_addr >> HAL_ADDR_MSB_REG_SHIFT); } /* Initialize head and tail pointers to indicate ring is empty */ reg_base = srng->hwreg_base[HAL_SRNG_REG_GRP_R2]; - ath11k_ahb_write32(ab, reg_base, 0); - ath11k_ahb_write32(ab, reg_base + HAL_TCL1_RING_TP_OFFSET, 0); + ath11k_hif_write32(ab, reg_base, 0); + ath11k_hif_write32(ab, reg_base + HAL_TCL1_RING_TP_OFFSET, 0); *srng->u.src_ring.tp_addr = 0; reg_base = srng->hwreg_base[HAL_SRNG_REG_GRP_R0]; @@ -533,7 +492,7 @@ val |= HAL_TCL1_RING_MISC_SRNG_ENABLE; - ath11k_ahb_write32(ab, reg_base + HAL_TCL1_RING_MISC_OFFSET, val); + ath11k_hif_write32(ab, reg_base + HAL_TCL1_RING_MISC_OFFSET(ab), val); } static void ath11k_hal_srng_hw_init(struct ath11k_base *ab, @@ -549,7 +508,7 @@ enum hal_ring_type type, int ring_num, int mac_id) { - const struct hal_srng_config *srng_config = &hw_srng_config[type]; + struct hal_srng_config *srng_config = &ab->hal.srng_config[type]; int ring_id; if (ring_num >= srng_config->max_rings) { @@ -567,26 +526,26 @@ return ring_id; } -int ath11k_hal_srng_get_entrysize(u32 ring_type) +int ath11k_hal_srng_get_entrysize(struct ath11k_base *ab, u32 ring_type) { - const struct hal_srng_config *srng_config; + struct hal_srng_config *srng_config; if (WARN_ON(ring_type >= HAL_MAX_RING_TYPES)) return -EINVAL; - srng_config = &hw_srng_config[ring_type]; + srng_config = &ab->hal.srng_config[ring_type]; return (srng_config->entry_size << 2); } -int ath11k_hal_srng_get_max_entries(u32 ring_type) +int ath11k_hal_srng_get_max_entries(struct ath11k_base *ab, u32 ring_type) { - const struct hal_srng_config *srng_config; + struct hal_srng_config *srng_config; if (WARN_ON(ring_type >= HAL_MAX_RING_TYPES)) return -EINVAL; - srng_config = &hw_srng_config[ring_type]; + srng_config = &ab->hal.srng_config[ring_type]; return (srng_config->max_size / srng_config->entry_size); } @@ -601,6 +560,8 @@ params->intr_batch_cntr_thres_entries = srng->intr_batch_cntr_thres_entries; params->low_threshold = srng->u.src_ring.low_threshold; + params->msi_addr = srng->msi_addr; + params->msi_data = srng->msi_data; params->flags = srng->flags; } @@ -877,23 +838,32 @@ /* For LMAC rings, ring pointer updates are done through FW and * hence written to a shared memory location that is read by FW */ - if (srng->ring_dir == HAL_SRNG_DIR_SRC) + if (srng->ring_dir == HAL_SRNG_DIR_SRC) { + srng->u.src_ring.last_tp = + *(volatile u32 *)srng->u.src_ring.tp_addr; *srng->u.src_ring.hp_addr = srng->u.src_ring.hp; - else + } else { + srng->u.dst_ring.last_hp = *srng->u.dst_ring.hp_addr; *srng->u.dst_ring.tp_addr = srng->u.dst_ring.tp; + } } else { if (srng->ring_dir == HAL_SRNG_DIR_SRC) { - ath11k_ahb_write32(ab, + srng->u.src_ring.last_tp = + *(volatile u32 *)srng->u.src_ring.tp_addr; + ath11k_hif_write32(ab, (unsigned long)srng->u.src_ring.hp_addr - (unsigned long)ab->mem, srng->u.src_ring.hp); } else { - ath11k_ahb_write32(ab, + srng->u.dst_ring.last_hp = *srng->u.dst_ring.hp_addr; + ath11k_hif_write32(ab, (unsigned long)srng->u.dst_ring.tp_addr - (unsigned long)ab->mem, srng->u.dst_ring.tp); } } + + srng->timestamp = jiffies; } void ath11k_hal_setup_link_idle_list(struct ath11k_base *ab, @@ -920,20 +890,20 @@ HAL_WBM_IDLE_SCATTER_BUF_SIZE; } - ath11k_ahb_write32(ab, + ath11k_hif_write32(ab, HAL_SEQ_WCSS_UMAC_WBM_REG + HAL_WBM_R0_IDLE_LIST_CONTROL_ADDR, FIELD_PREP(HAL_WBM_SCATTER_BUFFER_SIZE, reg_scatter_buf_sz) | FIELD_PREP(HAL_WBM_LINK_DESC_IDLE_LIST_MODE, 0x1)); - ath11k_ahb_write32(ab, + ath11k_hif_write32(ab, HAL_SEQ_WCSS_UMAC_WBM_REG + HAL_WBM_R0_IDLE_LIST_SIZE_ADDR, FIELD_PREP(HAL_WBM_SCATTER_RING_SIZE_OF_IDLE_LINK_DESC_LIST, reg_scatter_buf_sz * nsbufs)); - ath11k_ahb_write32(ab, + ath11k_hif_write32(ab, HAL_SEQ_WCSS_UMAC_WBM_REG + HAL_WBM_SCATTERED_RING_BASE_LSB, FIELD_PREP(BUFFER_ADDR_INFO0_ADDR, sbuf[0].paddr & HAL_ADDR_LSB_REG_MASK)); - ath11k_ahb_write32(ab, + ath11k_hif_write32(ab, HAL_SEQ_WCSS_UMAC_WBM_REG + HAL_WBM_SCATTERED_RING_BASE_MSB, FIELD_PREP( @@ -944,12 +914,12 @@ BASE_ADDR_MATCH_TAG_VAL)); /* Setup head and tail pointers for the idle list */ - ath11k_ahb_write32(ab, + ath11k_hif_write32(ab, HAL_SEQ_WCSS_UMAC_WBM_REG + HAL_WBM_SCATTERED_DESC_PTR_HEAD_INFO_IX0, FIELD_PREP(BUFFER_ADDR_INFO0_ADDR, sbuf[nsbufs - 1].paddr)); - ath11k_ahb_write32(ab, + ath11k_hif_write32(ab, HAL_SEQ_WCSS_UMAC_WBM_REG + HAL_WBM_SCATTERED_DESC_PTR_HEAD_INFO_IX1, FIELD_PREP( @@ -958,18 +928,18 @@ HAL_ADDR_MSB_REG_SHIFT)) | FIELD_PREP(HAL_WBM_SCATTERED_DESC_HEAD_P_OFFSET_IX1, (end_offset >> 2))); - ath11k_ahb_write32(ab, + ath11k_hif_write32(ab, HAL_SEQ_WCSS_UMAC_WBM_REG + HAL_WBM_SCATTERED_DESC_PTR_HEAD_INFO_IX0, FIELD_PREP(BUFFER_ADDR_INFO0_ADDR, sbuf[0].paddr)); - ath11k_ahb_write32(ab, + ath11k_hif_write32(ab, HAL_SEQ_WCSS_UMAC_WBM_REG + HAL_WBM_SCATTERED_DESC_PTR_TAIL_INFO_IX0, FIELD_PREP(BUFFER_ADDR_INFO0_ADDR, sbuf[0].paddr)); - ath11k_ahb_write32(ab, + ath11k_hif_write32(ab, HAL_SEQ_WCSS_UMAC_WBM_REG + HAL_WBM_SCATTERED_DESC_PTR_TAIL_INFO_IX1, FIELD_PREP( @@ -977,13 +947,13 @@ ((u64)sbuf[0].paddr >> HAL_ADDR_MSB_REG_SHIFT)) | FIELD_PREP(HAL_WBM_SCATTERED_DESC_TAIL_P_OFFSET_IX1, 0)); - ath11k_ahb_write32(ab, + ath11k_hif_write32(ab, HAL_SEQ_WCSS_UMAC_WBM_REG + HAL_WBM_SCATTERED_DESC_PTR_HP_ADDR, 2 * tot_link_desc); /* Enable the SRNG */ - ath11k_ahb_write32(ab, + ath11k_hif_write32(ab, HAL_SEQ_WCSS_UMAC_WBM_REG + HAL_WBM_IDLE_LINK_RING_MISC_ADDR, 0x40); } @@ -993,7 +963,7 @@ struct hal_srng_params *params) { struct ath11k_hal *hal = &ab->hal; - const struct hal_srng_config *srng_config = &hw_srng_config[type]; + struct hal_srng_config *srng_config = &ab->hal.srng_config[type]; struct hal_srng *srng; int ring_id; u32 lmac_idx; @@ -1017,6 +987,9 @@ params->intr_batch_cntr_thres_entries; srng->intr_timer_thres_us = params->intr_timer_thres_us; srng->flags = params->flags; + srng->msi_addr = params->msi_addr; + srng->msi_data = params->msi_data; + srng->initialized = 1; spin_lock_init(&srng->lock); for (i = 0; i < HAL_SRNG_NUM_REG_GRP; i++) { @@ -1047,8 +1020,16 @@ lmac_idx); srng->flags |= HAL_SRNG_FLAGS_LMAC_RING; } else { - srng->u.src_ring.hp_addr = + if (!ab->hw_params.supports_shadow_regs) + srng->u.src_ring.hp_addr = (u32 *)((unsigned long)ab->mem + reg_base); + else + ath11k_dbg(ab, ATH11k_DBG_HAL, + "hal type %d ring_num %d reg_base 0x%x shadow 0x%lx\n", + type, ring_num, + reg_base, + (unsigned long)srng->u.src_ring.hp_addr - + (unsigned long)ab->mem); } } else { /* During initialization loop count in all the descriptors @@ -1072,9 +1053,18 @@ lmac_idx); srng->flags |= HAL_SRNG_FLAGS_LMAC_RING; } else { - srng->u.dst_ring.tp_addr = + if (!ab->hw_params.supports_shadow_regs) + srng->u.dst_ring.tp_addr = (u32 *)((unsigned long)ab->mem + reg_base + - (HAL_REO1_RING_TP - HAL_REO1_RING_HP)); + (HAL_REO1_RING_TP(ab) - HAL_REO1_RING_HP(ab))); + else + ath11k_dbg(ab, ATH11k_DBG_HAL, + "type %d ring_num %d target_reg 0x%x shadow 0x%lx\n", + type, ring_num, + reg_base + (HAL_REO1_RING_TP(ab) - + HAL_REO1_RING_HP(ab)), + (unsigned long)srng->u.dst_ring.tp_addr - + (unsigned long)ab->mem); } } @@ -1091,6 +1081,162 @@ return ring_id; } +static void ath11k_hal_srng_update_hp_tp_addr(struct ath11k_base *ab, + int shadow_cfg_idx, + enum hal_ring_type ring_type, + int ring_num) +{ + struct hal_srng *srng; + struct ath11k_hal *hal = &ab->hal; + int ring_id; + struct hal_srng_config *srng_config = &hal->srng_config[ring_type]; + + ring_id = ath11k_hal_srng_get_ring_id(ab, ring_type, ring_num, 0); + if (ring_id < 0) + return; + + srng = &hal->srng_list[ring_id]; + + if (srng_config->ring_dir == HAL_SRNG_DIR_DST) + srng->u.dst_ring.tp_addr = (u32 *)(HAL_SHADOW_REG(shadow_cfg_idx) + + (unsigned long)ab->mem); + else + srng->u.src_ring.hp_addr = (u32 *)(HAL_SHADOW_REG(shadow_cfg_idx) + + (unsigned long)ab->mem); +} + +int ath11k_hal_srng_update_shadow_config(struct ath11k_base *ab, + enum hal_ring_type ring_type, + int ring_num) +{ + struct ath11k_hal *hal = &ab->hal; + struct hal_srng_config *srng_config = &hal->srng_config[ring_type]; + int shadow_cfg_idx = hal->num_shadow_reg_configured; + u32 target_reg; + + if (shadow_cfg_idx >= HAL_SHADOW_NUM_REGS) + return -EINVAL; + + hal->num_shadow_reg_configured++; + + target_reg = srng_config->reg_start[HAL_HP_OFFSET_IN_REG_START]; + target_reg += srng_config->reg_size[HAL_HP_OFFSET_IN_REG_START] * + ring_num; + + /* For destination ring, shadow the TP */ + if (srng_config->ring_dir == HAL_SRNG_DIR_DST) + target_reg += HAL_OFFSET_FROM_HP_TO_TP; + + hal->shadow_reg_addr[shadow_cfg_idx] = target_reg; + + /* update hp/tp addr to hal structure*/ + ath11k_hal_srng_update_hp_tp_addr(ab, shadow_cfg_idx, ring_type, + ring_num); + + ath11k_dbg(ab, ATH11k_DBG_HAL, + "target_reg %x, shadow reg 0x%x shadow_idx 0x%x, ring_type %d, ring num %d", + target_reg, + HAL_SHADOW_REG(shadow_cfg_idx), + shadow_cfg_idx, + ring_type, ring_num); + + return 0; +} + +void ath11k_hal_srng_shadow_config(struct ath11k_base *ab) +{ + struct ath11k_hal *hal = &ab->hal; + int ring_type, ring_num; + + /* update all the non-CE srngs. */ + for (ring_type = 0; ring_type < HAL_MAX_RING_TYPES; ring_type++) { + struct hal_srng_config *srng_config = &hal->srng_config[ring_type]; + + if (ring_type == HAL_CE_SRC || + ring_type == HAL_CE_DST || + ring_type == HAL_CE_DST_STATUS) + continue; + + if (srng_config->lmac_ring) + continue; + + for (ring_num = 0; ring_num < srng_config->max_rings; ring_num++) + ath11k_hal_srng_update_shadow_config(ab, ring_type, ring_num); + } +} + +void ath11k_hal_srng_get_shadow_config(struct ath11k_base *ab, + u32 **cfg, u32 *len) +{ + struct ath11k_hal *hal = &ab->hal; + + *len = hal->num_shadow_reg_configured; + *cfg = hal->shadow_reg_addr; +} + +void ath11k_hal_srng_shadow_update_hp_tp(struct ath11k_base *ab, + struct hal_srng *srng) +{ + lockdep_assert_held(&srng->lock); + + /* check whether the ring is emptry. Update the shadow + * HP only when then ring isn't' empty. + */ + if (srng->ring_dir == HAL_SRNG_DIR_SRC && + *srng->u.src_ring.tp_addr != srng->u.src_ring.hp) + ath11k_hal_srng_access_end(ab, srng); +} + +static int ath11k_hal_srng_create_config(struct ath11k_base *ab) +{ + struct ath11k_hal *hal = &ab->hal; + struct hal_srng_config *s; + + hal->srng_config = kmemdup(hw_srng_config_template, + sizeof(hw_srng_config_template), + GFP_KERNEL); + if (!hal->srng_config) + return -ENOMEM; + + s = &hal->srng_config[HAL_REO_DST]; + s->reg_start[0] = HAL_SEQ_WCSS_UMAC_REO_REG + HAL_REO1_RING_BASE_LSB(ab); + s->reg_start[1] = HAL_SEQ_WCSS_UMAC_REO_REG + HAL_REO1_RING_HP(ab); + s->reg_size[0] = HAL_REO2_RING_BASE_LSB(ab) - HAL_REO1_RING_BASE_LSB(ab); + s->reg_size[1] = HAL_REO2_RING_HP(ab) - HAL_REO1_RING_HP(ab); + + s = &hal->srng_config[HAL_REO_EXCEPTION]; + s->reg_start[0] = HAL_SEQ_WCSS_UMAC_REO_REG + HAL_REO_TCL_RING_BASE_LSB(ab); + s->reg_start[1] = HAL_SEQ_WCSS_UMAC_REO_REG + HAL_REO_TCL_RING_HP(ab); + + s = &hal->srng_config[HAL_REO_REINJECT]; + s->reg_start[0] = HAL_SEQ_WCSS_UMAC_REO_REG + HAL_SW2REO_RING_BASE_LSB; + s->reg_start[1] = HAL_SEQ_WCSS_UMAC_REO_REG + HAL_SW2REO_RING_HP; + + s = &hal->srng_config[HAL_REO_CMD]; + s->reg_start[0] = HAL_SEQ_WCSS_UMAC_REO_REG + HAL_REO_CMD_RING_BASE_LSB; + s->reg_start[1] = HAL_SEQ_WCSS_UMAC_REO_REG + HAL_REO_CMD_HP; + + s = &hal->srng_config[HAL_REO_STATUS]; + s->reg_start[0] = HAL_SEQ_WCSS_UMAC_REO_REG + HAL_REO_STATUS_RING_BASE_LSB(ab); + s->reg_start[1] = HAL_SEQ_WCSS_UMAC_REO_REG + HAL_REO_STATUS_HP(ab); + + s = &hal->srng_config[HAL_TCL_DATA]; + s->reg_start[0] = HAL_SEQ_WCSS_UMAC_TCL_REG + HAL_TCL1_RING_BASE_LSB(ab); + s->reg_start[1] = HAL_SEQ_WCSS_UMAC_TCL_REG + HAL_TCL1_RING_HP; + s->reg_size[0] = HAL_TCL2_RING_BASE_LSB(ab) - HAL_TCL1_RING_BASE_LSB(ab); + s->reg_size[1] = HAL_TCL2_RING_HP - HAL_TCL1_RING_HP; + + s = &hal->srng_config[HAL_TCL_CMD]; + s->reg_start[0] = HAL_SEQ_WCSS_UMAC_TCL_REG + HAL_TCL_RING_BASE_LSB(ab); + s->reg_start[1] = HAL_SEQ_WCSS_UMAC_TCL_REG + HAL_TCL_RING_HP; + + s = &hal->srng_config[HAL_TCL_STATUS]; + s->reg_start[0] = HAL_SEQ_WCSS_UMAC_TCL_REG + HAL_TCL_STATUS_RING_BASE_LSB(ab); + s->reg_start[1] = HAL_SEQ_WCSS_UMAC_TCL_REG + HAL_TCL_STATUS_RING_HP; + + return 0; +} + int ath11k_hal_srng_init(struct ath11k_base *ab) { struct ath11k_hal *hal = &ab->hal; @@ -1098,7 +1244,9 @@ memset(hal, 0, sizeof(*hal)); - hal->srng_config = hw_srng_config; + ret = ath11k_hal_srng_create_config(ab); + if (ret) + goto err_hal; ret = ath11k_hal_alloc_cont_rdp(ab); if (ret) @@ -1116,9 +1264,66 @@ err_hal: return ret; } +EXPORT_SYMBOL(ath11k_hal_srng_init); void ath11k_hal_srng_deinit(struct ath11k_base *ab) { + struct ath11k_hal *hal = &ab->hal; + ath11k_hal_free_cont_rdp(ab); ath11k_hal_free_cont_wrp(ab); + kfree(hal->srng_config); +} +EXPORT_SYMBOL(ath11k_hal_srng_deinit); + +void ath11k_hal_dump_srng_stats(struct ath11k_base *ab) +{ + struct hal_srng *srng; + struct ath11k_ext_irq_grp *irq_grp; + struct ath11k_ce_pipe *ce_pipe; + int i; + + ath11k_err(ab, "Last interrupt received for each CE:\n"); + for (i = 0; i < ab->hw_params.ce_count; i++) { + ce_pipe = &ab->ce.ce_pipe[i]; + + if (ath11k_ce_get_attr_flags(ab, i) & CE_ATTR_DIS_INTR) + continue; + + ath11k_err(ab, "CE_id %d pipe_num %d %ums before\n", + i, ce_pipe->pipe_num, + jiffies_to_msecs(jiffies - ce_pipe->timestamp)); + } + + ath11k_err(ab, "\nLast interrupt received for each group:\n"); + for (i = 0; i < ATH11K_EXT_IRQ_GRP_NUM_MAX; i++) { + irq_grp = &ab->ext_irq_grp[i]; + ath11k_err(ab, "group_id %d %ums before\n", + irq_grp->grp_id, + jiffies_to_msecs(jiffies - irq_grp->timestamp)); + } + + for (i = 0; i < HAL_SRNG_RING_ID_MAX; i++) { + srng = &ab->hal.srng_list[i]; + + if (!srng->initialized) + continue; + + if (srng->ring_dir == HAL_SRNG_DIR_SRC) + ath11k_err(ab, + "src srng id %u hp %u, reap_hp %u, cur tp %u, cached tp %u last tp %u napi processed before %ums\n", + srng->ring_id, srng->u.src_ring.hp, + srng->u.src_ring.reap_hp, + *srng->u.src_ring.tp_addr, srng->u.src_ring.cached_tp, + srng->u.src_ring.last_tp, + jiffies_to_msecs(jiffies - srng->timestamp)); + else if (srng->ring_dir == HAL_SRNG_DIR_DST) + ath11k_err(ab, + "dst srng id %u tp %u, cur hp %u, cached hp %u last hp %u napi processed before %ums\n", + srng->ring_id, srng->u.dst_ring.tp, + *srng->u.dst_ring.hp_addr, + srng->u.dst_ring.cached_hp, + srng->u.dst_ring.last_hp, + jiffies_to_msecs(jiffies - srng->timestamp)); + } } only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/net/wireless/ath/ath11k/hal.h +++ linux-oem-5.6-5.6.0/drivers/net/wireless/ath/ath11k/hal.h @@ -31,8 +31,12 @@ #define HAL_DSCP_TID_TBL_SIZE 24 /* calculate the register address from bar0 of shadow register x */ -#define SHADOW_BASE_ADDRESS 0x00003024 -#define SHADOW_NUM_REGISTERS 36 +#define HAL_SHADOW_BASE_ADDR 0x000008fc +#define HAL_SHADOW_NUM_REGS 36 +#define HAL_HP_OFFSET_IN_REG_START 1 +#define HAL_OFFSET_FROM_HP_TO_TP 4 + +#define HAL_SHADOW_REG(x) (HAL_SHADOW_BASE_ADDR + (4 * (x))) /* WCSS Relative address */ #define HAL_SEQ_WCSS_UMAC_REO_REG 0x00a38000 @@ -46,40 +50,47 @@ /* SW2TCL(x) R0 ring configuration address */ #define HAL_TCL1_RING_CMN_CTRL_REG 0x00000014 #define HAL_TCL1_RING_DSCP_TID_MAP 0x0000002c -#define HAL_TCL1_RING_BASE_LSB 0x00000510 -#define HAL_TCL1_RING_BASE_MSB 0x00000514 -#define HAL_TCL1_RING_ID 0x00000518 -#define HAL_TCL1_RING_MISC 0x00000520 -#define HAL_TCL1_RING_TP_ADDR_LSB 0x0000052c -#define HAL_TCL1_RING_TP_ADDR_MSB 0x00000530 -#define HAL_TCL1_RING_CONSUMER_INT_SETUP_IX0 0x00000540 -#define HAL_TCL1_RING_CONSUMER_INT_SETUP_IX1 0x00000544 -#define HAL_TCL1_RING_MSI1_BASE_LSB 0x00000558 -#define HAL_TCL1_RING_MSI1_BASE_MSB 0x0000055c -#define HAL_TCL1_RING_MSI1_DATA 0x00000560 -#define HAL_TCL2_RING_BASE_LSB 0x00000568 -#define HAL_TCL_RING_BASE_LSB 0x00000618 - -#define HAL_TCL1_RING_MSI1_BASE_LSB_OFFSET \ - (HAL_TCL1_RING_MSI1_BASE_LSB - HAL_TCL1_RING_BASE_LSB) -#define HAL_TCL1_RING_MSI1_BASE_MSB_OFFSET \ - (HAL_TCL1_RING_MSI1_BASE_MSB - HAL_TCL1_RING_BASE_LSB) -#define HAL_TCL1_RING_MSI1_DATA_OFFSET \ - (HAL_TCL1_RING_MSI1_DATA - HAL_TCL1_RING_BASE_LSB) -#define HAL_TCL1_RING_BASE_MSB_OFFSET \ - (HAL_TCL1_RING_BASE_MSB - HAL_TCL1_RING_BASE_LSB) -#define HAL_TCL1_RING_ID_OFFSET \ - (HAL_TCL1_RING_ID - HAL_TCL1_RING_BASE_LSB) -#define HAL_TCL1_RING_CONSR_INT_SETUP_IX0_OFFSET \ - (HAL_TCL1_RING_CONSUMER_INT_SETUP_IX0 - HAL_TCL1_RING_BASE_LSB) -#define HAL_TCL1_RING_CONSR_INT_SETUP_IX1_OFFSET \ - (HAL_TCL1_RING_CONSUMER_INT_SETUP_IX1 - HAL_TCL1_RING_BASE_LSB) -#define HAL_TCL1_RING_TP_ADDR_LSB_OFFSET \ - (HAL_TCL1_RING_TP_ADDR_LSB - HAL_TCL1_RING_BASE_LSB) -#define HAL_TCL1_RING_TP_ADDR_MSB_OFFSET \ - (HAL_TCL1_RING_TP_ADDR_MSB - HAL_TCL1_RING_BASE_LSB) -#define HAL_TCL1_RING_MISC_OFFSET \ - (HAL_TCL1_RING_MISC - HAL_TCL1_RING_BASE_LSB) +#define HAL_TCL1_RING_BASE_LSB(ab) ab->hw_params.regs->hal_tcl1_ring_base_lsb +#define HAL_TCL1_RING_BASE_MSB(ab) ab->hw_params.regs->hal_tcl1_ring_base_msb +#define HAL_TCL1_RING_ID(ab) ab->hw_params.regs->hal_tcl1_ring_id +#define HAL_TCL1_RING_MISC(ab) ab->hw_params.regs->hal_tcl1_ring_misc +#define HAL_TCL1_RING_TP_ADDR_LSB(ab) \ + ab->hw_params.regs->hal_tcl1_ring_tp_addr_lsb +#define HAL_TCL1_RING_TP_ADDR_MSB(ab) \ + ab->hw_params.regs->hal_tcl1_ring_tp_addr_msb +#define HAL_TCL1_RING_CONSUMER_INT_SETUP_IX0(ab) \ + ab->hw_params.regs->hal_tcl1_ring_consumer_int_setup_ix0 +#define HAL_TCL1_RING_CONSUMER_INT_SETUP_IX1(ab) \ + ab->hw_params.regs->hal_tcl1_ring_consumer_int_setup_ix1 +#define HAL_TCL1_RING_MSI1_BASE_LSB(ab) \ + ab->hw_params.regs->hal_tcl1_ring_msi1_base_lsb +#define HAL_TCL1_RING_MSI1_BASE_MSB(ab) \ + ab->hw_params.regs->hal_tcl1_ring_msi1_base_msb +#define HAL_TCL1_RING_MSI1_DATA(ab) \ + ab->hw_params.regs->hal_tcl1_ring_msi1_data +#define HAL_TCL2_RING_BASE_LSB(ab) ab->hw_params.regs->hal_tcl2_ring_base_lsb +#define HAL_TCL_RING_BASE_LSB(ab) ab->hw_params.regs->hal_tcl_ring_base_lsb + +#define HAL_TCL1_RING_MSI1_BASE_LSB_OFFSET(ab) \ + (HAL_TCL1_RING_MSI1_BASE_LSB(ab) - HAL_TCL1_RING_BASE_LSB(ab)) +#define HAL_TCL1_RING_MSI1_BASE_MSB_OFFSET(ab) \ + (HAL_TCL1_RING_MSI1_BASE_MSB(ab) - HAL_TCL1_RING_BASE_LSB(ab)) +#define HAL_TCL1_RING_MSI1_DATA_OFFSET(ab) \ + (HAL_TCL1_RING_MSI1_DATA(ab) - HAL_TCL1_RING_BASE_LSB(ab)) +#define HAL_TCL1_RING_BASE_MSB_OFFSET(ab) \ + (HAL_TCL1_RING_BASE_MSB(ab) - HAL_TCL1_RING_BASE_LSB(ab)) +#define HAL_TCL1_RING_ID_OFFSET(ab) \ + (HAL_TCL1_RING_ID(ab) - HAL_TCL1_RING_BASE_LSB(ab)) +#define HAL_TCL1_RING_CONSR_INT_SETUP_IX0_OFFSET(ab) \ + (HAL_TCL1_RING_CONSUMER_INT_SETUP_IX0(ab) - HAL_TCL1_RING_BASE_LSB(ab)) +#define HAL_TCL1_RING_CONSR_INT_SETUP_IX1_OFFSET(ab) \ + (HAL_TCL1_RING_CONSUMER_INT_SETUP_IX1(ab) - HAL_TCL1_RING_BASE_LSB(ab)) +#define HAL_TCL1_RING_TP_ADDR_LSB_OFFSET(ab) \ + (HAL_TCL1_RING_TP_ADDR_LSB(ab) - HAL_TCL1_RING_BASE_LSB(ab)) +#define HAL_TCL1_RING_TP_ADDR_MSB_OFFSET(ab) \ + (HAL_TCL1_RING_TP_ADDR_MSB(ab) - HAL_TCL1_RING_BASE_LSB(ab)) +#define HAL_TCL1_RING_MISC_OFFSET(ab) \ + (HAL_TCL1_RING_MISC(ab) - HAL_TCL1_RING_BASE_LSB(ab)) /* SW2TCL(x) R2 ring pointers (head/tail) address */ #define HAL_TCL1_RING_HP 0x00002000 @@ -91,58 +102,73 @@ (HAL_TCL1_RING_TP - HAL_TCL1_RING_HP) /* TCL STATUS ring address */ -#define HAL_TCL_STATUS_RING_BASE_LSB 0x00000720 +#define HAL_TCL_STATUS_RING_BASE_LSB(ab) \ + ab->hw_params.regs->hal_tcl_status_ring_base_lsb #define HAL_TCL_STATUS_RING_HP 0x00002030 /* REO2SW(x) R0 ring configuration address */ #define HAL_REO1_GEN_ENABLE 0x00000000 +#define HAL_REO1_DEST_RING_CTRL_IX_0 0x00000004 +#define HAL_REO1_DEST_RING_CTRL_IX_1 0x00000008 #define HAL_REO1_DEST_RING_CTRL_IX_2 0x0000000c #define HAL_REO1_DEST_RING_CTRL_IX_3 0x00000010 -#define HAL_REO1_RING_BASE_LSB 0x0000029c -#define HAL_REO1_RING_BASE_MSB 0x000002a0 -#define HAL_REO1_RING_ID 0x000002a4 -#define HAL_REO1_RING_MISC 0x000002ac -#define HAL_REO1_RING_HP_ADDR_LSB 0x000002b0 -#define HAL_REO1_RING_HP_ADDR_MSB 0x000002b4 -#define HAL_REO1_RING_PRODUCER_INT_SETUP 0x000002c0 -#define HAL_REO1_RING_MSI1_BASE_LSB 0x000002e4 -#define HAL_REO1_RING_MSI1_BASE_MSB 0x000002e8 -#define HAL_REO1_RING_MSI1_DATA 0x000002ec -#define HAL_REO2_RING_BASE_LSB 0x000002f4 -#define HAL_REO1_AGING_THRESH_IX_0 0x00000564 -#define HAL_REO1_AGING_THRESH_IX_1 0x00000568 -#define HAL_REO1_AGING_THRESH_IX_2 0x0000056c -#define HAL_REO1_AGING_THRESH_IX_3 0x00000570 - -#define HAL_REO1_RING_MSI1_BASE_LSB_OFFSET \ - (HAL_REO1_RING_MSI1_BASE_LSB - HAL_REO1_RING_BASE_LSB) -#define HAL_REO1_RING_MSI1_BASE_MSB_OFFSET \ - (HAL_REO1_RING_MSI1_BASE_MSB - HAL_REO1_RING_BASE_LSB) -#define HAL_REO1_RING_MSI1_DATA_OFFSET \ - (HAL_REO1_RING_MSI1_DATA - HAL_REO1_RING_BASE_LSB) -#define HAL_REO1_RING_BASE_MSB_OFFSET \ - (HAL_REO1_RING_BASE_MSB - HAL_REO1_RING_BASE_LSB) -#define HAL_REO1_RING_ID_OFFSET (HAL_REO1_RING_ID - HAL_REO1_RING_BASE_LSB) -#define HAL_REO1_RING_PRODUCER_INT_SETUP_OFFSET \ - (HAL_REO1_RING_PRODUCER_INT_SETUP - HAL_REO1_RING_BASE_LSB) -#define HAL_REO1_RING_HP_ADDR_LSB_OFFSET \ - (HAL_REO1_RING_HP_ADDR_LSB - HAL_REO1_RING_BASE_LSB) -#define HAL_REO1_RING_HP_ADDR_MSB_OFFSET \ - (HAL_REO1_RING_HP_ADDR_MSB - HAL_REO1_RING_BASE_LSB) -#define HAL_REO1_RING_MISC_OFFSET (HAL_REO1_RING_MISC - HAL_REO1_RING_BASE_LSB) +#define HAL_REO1_RING_BASE_LSB(ab) ab->hw_params.regs->hal_reo1_ring_base_lsb +#define HAL_REO1_RING_BASE_MSB(ab) ab->hw_params.regs->hal_reo1_ring_base_msb +#define HAL_REO1_RING_ID(ab) ab->hw_params.regs->hal_reo1_ring_id +#define HAL_REO1_RING_MISC(ab) ab->hw_params.regs->hal_reo1_ring_misc +#define HAL_REO1_RING_HP_ADDR_LSB(ab) \ + ab->hw_params.regs->hal_reo1_ring_hp_addr_lsb +#define HAL_REO1_RING_HP_ADDR_MSB(ab) \ + ab->hw_params.regs->hal_reo1_ring_hp_addr_msb +#define HAL_REO1_RING_PRODUCER_INT_SETUP(ab) \ + ab->hw_params.regs->hal_reo1_ring_producer_int_setup +#define HAL_REO1_RING_MSI1_BASE_LSB(ab) \ + ab->hw_params.regs->hal_reo1_ring_msi1_base_lsb +#define HAL_REO1_RING_MSI1_BASE_MSB(ab) \ + ab->hw_params.regs->hal_reo1_ring_msi1_base_msb +#define HAL_REO1_RING_MSI1_DATA(ab) \ + ab->hw_params.regs->hal_reo1_ring_msi1_data +#define HAL_REO2_RING_BASE_LSB(ab) ab->hw_params.regs->hal_reo2_ring_base_lsb +#define HAL_REO1_AGING_THRESH_IX_0(ab) \ + ab->hw_params.regs->hal_reo1_aging_thresh_ix_0 +#define HAL_REO1_AGING_THRESH_IX_1(ab) \ + ab->hw_params.regs->hal_reo1_aging_thresh_ix_1 +#define HAL_REO1_AGING_THRESH_IX_2(ab) \ + ab->hw_params.regs->hal_reo1_aging_thresh_ix_2 +#define HAL_REO1_AGING_THRESH_IX_3(ab) \ + ab->hw_params.regs->hal_reo1_aging_thresh_ix_3 + +#define HAL_REO1_RING_MSI1_BASE_LSB_OFFSET(ab) \ + (HAL_REO1_RING_MSI1_BASE_LSB(ab) - HAL_REO1_RING_BASE_LSB(ab)) +#define HAL_REO1_RING_MSI1_BASE_MSB_OFFSET(ab) \ + (HAL_REO1_RING_MSI1_BASE_MSB(ab) - HAL_REO1_RING_BASE_LSB(ab)) +#define HAL_REO1_RING_MSI1_DATA_OFFSET(ab) \ + (HAL_REO1_RING_MSI1_DATA(ab) - HAL_REO1_RING_BASE_LSB(ab)) +#define HAL_REO1_RING_BASE_MSB_OFFSET(ab) \ + (HAL_REO1_RING_BASE_MSB(ab) - HAL_REO1_RING_BASE_LSB(ab)) +#define HAL_REO1_RING_ID_OFFSET(ab) (HAL_REO1_RING_ID(ab) - HAL_REO1_RING_BASE_LSB(ab)) +#define HAL_REO1_RING_PRODUCER_INT_SETUP_OFFSET(ab) \ + (HAL_REO1_RING_PRODUCER_INT_SETUP(ab) - HAL_REO1_RING_BASE_LSB(ab)) +#define HAL_REO1_RING_HP_ADDR_LSB_OFFSET(ab) \ + (HAL_REO1_RING_HP_ADDR_LSB(ab) - HAL_REO1_RING_BASE_LSB(ab)) +#define HAL_REO1_RING_HP_ADDR_MSB_OFFSET(ab) \ + (HAL_REO1_RING_HP_ADDR_MSB(ab) - HAL_REO1_RING_BASE_LSB(ab)) +#define HAL_REO1_RING_MISC_OFFSET(ab) \ + (HAL_REO1_RING_MISC(ab) - HAL_REO1_RING_BASE_LSB(ab)) /* REO2SW(x) R2 ring pointers (head/tail) address */ -#define HAL_REO1_RING_HP 0x00003038 -#define HAL_REO1_RING_TP 0x0000303c -#define HAL_REO2_RING_HP 0x00003040 +#define HAL_REO1_RING_HP(ab) ab->hw_params.regs->hal_reo1_ring_hp +#define HAL_REO1_RING_TP(ab) ab->hw_params.regs->hal_reo1_ring_tp +#define HAL_REO2_RING_HP(ab) ab->hw_params.regs->hal_reo2_ring_hp -#define HAL_REO1_RING_TP_OFFSET (HAL_REO1_RING_TP - HAL_REO1_RING_HP) +#define HAL_REO1_RING_TP_OFFSET(ab) (HAL_REO1_RING_TP(ab) - HAL_REO1_RING_HP(ab)) /* REO2TCL R0 ring configuration address */ -#define HAL_REO_TCL_RING_BASE_LSB 0x000003fc +#define HAL_REO_TCL_RING_BASE_LSB(ab) \ + ab->hw_params.regs->hal_reo_tcl_ring_base_lsb /* REO2TCL R2 ring pointer (head/tail) address */ -#define HAL_REO_TCL_RING_HP 0x00003058 +#define HAL_REO_TCL_RING_HP(ab) ab->hw_params.regs->hal_reo_tcl_ring_hp /* REO CMD R0 address */ #define HAL_REO_CMD_RING_BASE_LSB 0x00000194 @@ -166,8 +192,9 @@ #define HAL_CE_DST_STATUS_RING_HP 0x00000408 /* REO status address */ -#define HAL_REO_STATUS_RING_BASE_LSB 0x00000504 -#define HAL_REO_STATUS_HP 0x00003070 +#define HAL_REO_STATUS_RING_BASE_LSB(ab) \ + ab->hw_params.regs->hal_reo_status_ring_base_lsb +#define HAL_REO_STATUS_HP(ab) ab->hw_params.regs->hal_reo_status_hp /* WBM Idle R0 address */ #define HAL_WBM_IDLE_LINK_RING_BASE_LSB 0x00000860 @@ -456,6 +483,8 @@ u32 flags; u32 max_buffer_len; u32 low_threshold; + dma_addr_t msi_addr; + u32 msi_data; /* Add more params as needed */ }; @@ -529,6 +558,8 @@ */ u32 hwreg_base[HAL_SRNG_NUM_REG_GRP]; + u64 timestamp; + /* Source or Destination ring */ enum hal_srng_dir ring_dir; @@ -554,6 +585,9 @@ /* max transfer size */ u16 max_buffer_length; + + /* head pointer at access end */ + u32 last_hp; } dst_ring; struct { @@ -577,6 +611,9 @@ /* Low threshold - in number of ring entries */ u32 low_threshold; + + /* tail pointer at access end */ + u32 last_tp; } src_ring; } u; }; @@ -589,7 +626,7 @@ /* Interrupt mitigation - timer threshold in us */ #define HAL_SRNG_INT_TIMER_THRESHOLD_TX 1000 #define HAL_SRNG_INT_TIMER_THRESHOLD_RX 500 -#define HAL_SRNG_INT_TIMER_THRESHOLD_OTHER 1000 +#define HAL_SRNG_INT_TIMER_THRESHOLD_OTHER 256 /* HW SRNG configuration table */ struct hal_srng_config { @@ -717,6 +754,14 @@ HAL_CE_DESC_DST_STATUS, }; +#define HAL_HASH_ROUTING_RING_TCL 0 +#define HAL_HASH_ROUTING_RING_SW1 1 +#define HAL_HASH_ROUTING_RING_SW2 2 +#define HAL_HASH_ROUTING_RING_SW3 3 +#define HAL_HASH_ROUTING_RING_SW4 4 +#define HAL_HASH_ROUTING_RING_REL 5 +#define HAL_HASH_ROUTING_RING_FW 6 + struct hal_reo_status_header { u16 cmd_num; enum hal_reo_cmd_status cmd_status; @@ -821,7 +866,7 @@ struct hal_srng srng_list[HAL_SRNG_RING_ID_MAX]; /* SRNG configuration table */ - const struct hal_srng_config *srng_config; + struct hal_srng_config *srng_config; /* Remote pointer memory for HW/FW updates */ struct { @@ -841,16 +886,16 @@ u8 current_blk_index; /* shadow register configuration */ - u32 shadow_reg_addr[SHADOW_NUM_REGISTERS]; + u32 shadow_reg_addr[HAL_SHADOW_NUM_REGS]; int num_shadow_reg_configured; }; u32 ath11k_hal_reo_qdesc_size(u32 ba_window_size, u8 tid); void ath11k_hal_reo_qdesc_setup(void *vaddr, int tid, u32 ba_window_size, - u32 start_seqtype); + u32 start_seq, enum hal_pn_type type); void ath11k_hal_reo_init_cmd_ring(struct ath11k_base *ab, struct hal_srng *srng); -void ath11k_hal_reo_hw_setup(struct ath11k_base *ab); +void ath11k_hal_reo_hw_setup(struct ath11k_base *ab, u32 ring_hash_map); void ath11k_hal_setup_link_idle_list(struct ath11k_base *ab, struct hal_wbm_idle_scatter_list *sbuf, u32 nsbufs, u32 tot_link_desc, @@ -867,8 +912,8 @@ u8 byte_swap_data); void ath11k_hal_ce_dst_set_desc(void *buf, dma_addr_t paddr); u32 ath11k_hal_ce_dst_status_get_length(void *buf); -int ath11k_hal_srng_get_entrysize(u32 ring_type); -int ath11k_hal_srng_get_max_entries(u32 ring_type); +int ath11k_hal_srng_get_entrysize(struct ath11k_base *ab, u32 ring_type); +int ath11k_hal_srng_get_max_entries(struct ath11k_base *ab, u32 ring_type); void ath11k_hal_srng_get_params(struct ath11k_base *ab, struct hal_srng *srng, struct hal_srng_params *params); u32 *ath11k_hal_srng_dst_get_next_entry(struct ath11k_base *ab, @@ -893,5 +938,13 @@ struct hal_srng_params *params); int ath11k_hal_srng_init(struct ath11k_base *ath11k); void ath11k_hal_srng_deinit(struct ath11k_base *ath11k); - +void ath11k_hal_dump_srng_stats(struct ath11k_base *ab); +void ath11k_hal_srng_get_shadow_config(struct ath11k_base *ab, + u32 **cfg, u32 *len); +int ath11k_hal_srng_update_shadow_config(struct ath11k_base *ab, + enum hal_ring_type ring_type, + int ring_num); +void ath11k_hal_srng_shadow_config(struct ath11k_base *ab); +void ath11k_hal_srng_shadow_update_hp_tp(struct ath11k_base *ab, + struct hal_srng *srng); #endif only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/net/wireless/ath/ath11k/hal_desc.h +++ linux-oem-5.6-5.6.0/drivers/net/wireless/ath/ath11k/hal_desc.h @@ -2,6 +2,8 @@ /* * Copyright (c) 2018-2019 The Linux Foundation. All rights reserved. */ +#include "core.h" + #ifndef ATH11K_HAL_DESC_H #define ATH11K_HAL_DESC_H @@ -477,7 +479,7 @@ struct hal_tlv_hdr { u32 tl; - u8 value[0]; + u8 value[]; } __packed; #define RX_MPDU_DESC_INFO0_MSDU_COUNT GENMASK(7, 0) @@ -1972,7 +1974,7 @@ u32 processed_total_bytes; u32 info5; u32 rsvd[3]; - struct hal_rx_reo_queue_ext ext_desc[0]; + struct hal_rx_reo_queue_ext ext_desc[]; } __packed; /* hal_rx_reo_queue only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/net/wireless/ath/ath11k/hal_rx.c +++ linux-oem-5.6-5.6.0/drivers/net/wireless/ath/ath11k/hal_rx.c @@ -3,12 +3,12 @@ * Copyright (c) 2018-2019 The Linux Foundation. All rights reserved. */ -#include "ahb.h" #include "debug.h" #include "hal.h" #include "hal_tx.h" #include "hal_rx.h" #include "hal_desc.h" +#include "hif.h" static void ath11k_hal_reo_set_desc_hdr(struct hal_desc_header *hdr, u8 owner, u8 buffer_type, u32 magic) @@ -256,6 +256,8 @@ break; } + ath11k_dp_shadow_start_timer(ab, srng, &ab->dp.reo_cmd_timer); + out: ath11k_hal_srng_access_end(ab, srng); spin_unlock_bh(&srng->lock); @@ -694,7 +696,7 @@ } void ath11k_hal_reo_qdesc_setup(void *vaddr, int tid, u32 ba_window_size, - u32 start_seq) + u32 start_seq, enum hal_pn_type type) { struct hal_rx_reo_queue *qdesc = (struct hal_rx_reo_queue *)vaddr; struct hal_rx_reo_queue_ext *ext_desc; @@ -723,6 +725,18 @@ qdesc->info0 |= FIELD_PREP(HAL_RX_REO_QUEUE_INFO0_BA_WINDOW_SIZE, ba_window_size - 1); + switch (type) { + case HAL_PN_TYPE_NONE: + case HAL_PN_TYPE_WAPI_EVEN: + case HAL_PN_TYPE_WAPI_UNEVEN: + break; + case HAL_PN_TYPE_WPA: + qdesc->info0 |= + FIELD_PREP(HAL_RX_REO_QUEUE_INFO0_PN_CHECK, 1) | + FIELD_PREP(HAL_RX_REO_QUEUE_INFO0_PN_SIZE, + HAL_RX_REO_QUEUE_PN_SIZE_48); + break; + } /* TODO: Set Ignore ampdu flags based on BA window size and/or * AMPDU capabilities @@ -774,7 +788,7 @@ memset(¶ms, 0, sizeof(params)); - entry_size = ath11k_hal_srng_get_entrysize(HAL_REO_CMD); + entry_size = ath11k_hal_srng_get_entrysize(ab, HAL_REO_CMD); ath11k_hal_srng_get_params(ab, srng, ¶ms); entry = (u8 *)params.ring_base_vaddr; @@ -787,28 +801,41 @@ } } -void ath11k_hal_reo_hw_setup(struct ath11k_base *ab) +void ath11k_hal_reo_hw_setup(struct ath11k_base *ab, u32 ring_hash_map) { u32 reo_base = HAL_SEQ_WCSS_UMAC_REO_REG; u32 val; - val = ath11k_ahb_read32(ab, reo_base + HAL_REO1_GEN_ENABLE); + val = ath11k_hif_read32(ab, reo_base + HAL_REO1_GEN_ENABLE); val &= ~HAL_REO1_GEN_ENABLE_FRAG_DST_RING; val |= FIELD_PREP(HAL_REO1_GEN_ENABLE_FRAG_DST_RING, HAL_SRNG_RING_ID_REO2SW1) | FIELD_PREP(HAL_REO1_GEN_ENABLE_AGING_LIST_ENABLE, 1) | FIELD_PREP(HAL_REO1_GEN_ENABLE_AGING_FLUSH_ENABLE, 1); - ath11k_ahb_write32(ab, reo_base + HAL_REO1_GEN_ENABLE, val); + ath11k_hif_write32(ab, reo_base + HAL_REO1_GEN_ENABLE, val); - ath11k_ahb_write32(ab, reo_base + HAL_REO1_AGING_THRESH_IX_0, + ath11k_hif_write32(ab, reo_base + HAL_REO1_AGING_THRESH_IX_0(ab), HAL_DEFAULT_REO_TIMEOUT_USEC); - ath11k_ahb_write32(ab, reo_base + HAL_REO1_AGING_THRESH_IX_1, + ath11k_hif_write32(ab, reo_base + HAL_REO1_AGING_THRESH_IX_1(ab), HAL_DEFAULT_REO_TIMEOUT_USEC); - ath11k_ahb_write32(ab, reo_base + HAL_REO1_AGING_THRESH_IX_2, + ath11k_hif_write32(ab, reo_base + HAL_REO1_AGING_THRESH_IX_2(ab), HAL_DEFAULT_REO_TIMEOUT_USEC); - ath11k_ahb_write32(ab, reo_base + HAL_REO1_AGING_THRESH_IX_3, + ath11k_hif_write32(ab, reo_base + HAL_REO1_AGING_THRESH_IX_3(ab), HAL_DEFAULT_REO_TIMEOUT_USEC); + + ath11k_hif_write32(ab, reo_base + HAL_REO1_DEST_RING_CTRL_IX_0, + FIELD_PREP(HAL_REO_DEST_RING_CTRL_HASH_RING_MAP, + ring_hash_map)); + ath11k_hif_write32(ab, reo_base + HAL_REO1_DEST_RING_CTRL_IX_1, + FIELD_PREP(HAL_REO_DEST_RING_CTRL_HASH_RING_MAP, + ring_hash_map)); + ath11k_hif_write32(ab, reo_base + HAL_REO1_DEST_RING_CTRL_IX_2, + FIELD_PREP(HAL_REO_DEST_RING_CTRL_HASH_RING_MAP, + ring_hash_map)); + ath11k_hif_write32(ab, reo_base + HAL_REO1_DEST_RING_CTRL_IX_3, + FIELD_PREP(HAL_REO_DEST_RING_CTRL_HASH_RING_MAP, + ring_hash_map)); } static enum hal_rx_mon_status @@ -1001,6 +1028,7 @@ } ppdu_info->nss = nsts + 1; + ppdu_info->dcm = dcm; ppdu_info->reception_type = HAL_RX_RECEPTION_TYPE_SU; break; } @@ -1038,9 +1066,15 @@ break; } case HAL_PHYRX_HE_SIG_B1_MU: { - /* TODO: Check if resource unit(RU) allocation stats - * are required - */ + struct hal_rx_he_sig_b1_mu_info *he_sig_b1_mu = + (struct hal_rx_he_sig_b1_mu_info *)tlv_data; + u16 ru_tones; + + info0 = __le32_to_cpu(he_sig_b1_mu->info0); + + ru_tones = FIELD_GET(HAL_RX_HE_SIG_B1_MU_INFO_INFO0_RU_ALLOCATION, + info0); + ppdu_info->ru_alloc = ath11k_he_ru_tones_to_nl80211_he_ru_alloc(ru_tones); ppdu_info->reception_type = HAL_RX_RECEPTION_TYPE_MU_MIMO; break; } @@ -1163,7 +1197,7 @@ void ath11k_hal_rx_reo_ent_buf_paddr_get(void *rx_desc, dma_addr_t *paddr, u32 *sw_cookie, void **pp_buf_addr, - u32 *msdu_cnt) + u8 *rbm, u32 *msdu_cnt) { struct hal_reo_entrance_ring *reo_ent_ring = (struct hal_reo_entrance_ring *)rx_desc; @@ -1185,6 +1219,8 @@ *sw_cookie = FIELD_GET(BUFFER_ADDR_INFO1_SW_COOKIE, buf_addr_info->info1); + *rbm = FIELD_GET(BUFFER_ADDR_INFO1_RET_BUF_MGR, + buf_addr_info->info1); *pp_buf_addr = (void *)buf_addr_info; } only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/net/wireless/ath/ath11k/hal_rx.h +++ linux-oem-5.6-5.6.0/drivers/net/wireless/ath/ath11k/hal_rx.h @@ -23,7 +23,7 @@ struct hal_rx_mon_status_tlv_hdr { u32 hdr; - u8 value[0]; + u8 value[]; }; enum hal_rx_su_mu_coding { @@ -99,6 +99,8 @@ u8 beamformed; u8 rssi_comb; u8 tid; + u8 dcm; + u8 ru_alloc; u8 reception_type; u64 rx_duration; }; @@ -319,12 +321,40 @@ dma_addr_t *paddr, u32 *desc_bank); void ath11k_hal_rx_reo_ent_buf_paddr_get(void *rx_desc, dma_addr_t *paddr, u32 *sw_cookie, - void **pp_buf_addr_info, + void **pp_buf_addr_info, u8 *rbm, u32 *msdu_cnt); enum hal_rx_mon_status ath11k_hal_rx_parse_mon_status(struct ath11k_base *ab, struct hal_rx_mon_ppdu_info *ppdu_info, struct sk_buff *skb); + +static inline u32 ath11k_he_ru_tones_to_nl80211_he_ru_alloc(u16 ru_tones) +{ + u32 ret = 0; + + switch (ru_tones) { + case RU_26: + ret = NL80211_RATE_INFO_HE_RU_ALLOC_26; + break; + case RU_52: + ret = NL80211_RATE_INFO_HE_RU_ALLOC_52; + break; + case RU_106: + ret = NL80211_RATE_INFO_HE_RU_ALLOC_106; + break; + case RU_242: + ret = NL80211_RATE_INFO_HE_RU_ALLOC_242; + break; + case RU_484: + ret = NL80211_RATE_INFO_HE_RU_ALLOC_484; + break; + case RU_996: + ret = NL80211_RATE_INFO_HE_RU_ALLOC_996; + break; + } + return ret; +} + #define REO_QUEUE_DESC_MAGIC_DEBUG_PATTERN_0 0xDDBEEF #define REO_QUEUE_DESC_MAGIC_DEBUG_PATTERN_1 0xADBEEF #define REO_QUEUE_DESC_MAGIC_DEBUG_PATTERN_2 0xBDBEEF only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/net/wireless/ath/ath11k/hal_tx.c +++ linux-oem-5.6-5.6.0/drivers/net/wireless/ath/ath11k/hal_tx.c @@ -3,9 +3,10 @@ * Copyright (c) 2018-2019 The Linux Foundation. All rights reserved. */ -#include "ahb.h" +#include "hal_desc.h" #include "hal.h" #include "hal_tx.h" +#include "hif.h" #define DSCP_TID_MAP_TBL_ENTRY_SIZE 64 @@ -83,11 +84,11 @@ u32 value; int cnt = 0; - ctrl_reg_val = ath11k_ahb_read32(ab, HAL_SEQ_WCSS_UMAC_TCL_REG + + ctrl_reg_val = ath11k_hif_read32(ab, HAL_SEQ_WCSS_UMAC_TCL_REG + HAL_TCL1_RING_CMN_CTRL_REG); /* Enable read/write access */ ctrl_reg_val |= HAL_TCL1_RING_CMN_CTRL_DSCP_TID_MAP_PROG_EN; - ath11k_ahb_write32(ab, HAL_SEQ_WCSS_UMAC_TCL_REG + + ath11k_hif_write32(ab, HAL_SEQ_WCSS_UMAC_TCL_REG + HAL_TCL1_RING_CMN_CTRL_REG, ctrl_reg_val); addr = HAL_SEQ_WCSS_UMAC_TCL_REG + HAL_TCL1_RING_DSCP_TID_MAP + @@ -118,15 +119,15 @@ } for (i = 0; i < HAL_DSCP_TID_TBL_SIZE; i += 4) { - ath11k_ahb_write32(ab, addr, *(u32 *)&hw_map_val[i]); + ath11k_hif_write32(ab, addr, *(u32 *)&hw_map_val[i]); addr += 4; } /* Disable read/write access */ - ctrl_reg_val = ath11k_ahb_read32(ab, HAL_SEQ_WCSS_UMAC_TCL_REG + + ctrl_reg_val = ath11k_hif_read32(ab, HAL_SEQ_WCSS_UMAC_TCL_REG + HAL_TCL1_RING_CMN_CTRL_REG); ctrl_reg_val &= ~HAL_TCL1_RING_CMN_CTRL_DSCP_TID_MAP_PROG_EN; - ath11k_ahb_write32(ab, HAL_SEQ_WCSS_UMAC_TCL_REG + + ath11k_hif_write32(ab, HAL_SEQ_WCSS_UMAC_TCL_REG + HAL_TCL1_RING_CMN_CTRL_REG, ctrl_reg_val); } @@ -140,7 +141,7 @@ memset(¶ms, 0, sizeof(params)); - entry_size = ath11k_hal_srng_get_entrysize(HAL_TCL_DATA); + entry_size = ath11k_hal_srng_get_entrysize(ab, HAL_TCL_DATA); ath11k_hal_srng_get_params(ab, srng, ¶ms); desc = (u8 *)params.ring_base_vaddr; only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/net/wireless/ath/ath11k/hal_tx.h +++ linux-oem-5.6-5.6.0/drivers/net/wireless/ath/ath11k/hal_tx.h @@ -7,6 +7,7 @@ #define ATH11K_HAL_TX_H #include "hal_desc.h" +#include "core.h" #define HAL_TX_ADDRX_EN 1 #define HAL_TX_ADDRY_EN 2 only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/net/wireless/ath/ath11k/hif.h +++ linux-oem-5.6-5.6.0/drivers/net/wireless/ath/ath11k/hif.h @@ -0,0 +1,128 @@ +/* SPDX-License-Identifier: BSD-3-Clause-Clear */ +/* + * Copyright (c) 2019-2020 The Linux Foundation. All rights reserved. + */ + +#ifndef _HIF_H_ +#define _HIF_H_ + +#include "core.h" + +struct ath11k_hif_ops { + u32 (*read32)(struct ath11k_base *sc, u32 address); + void (*write32)(struct ath11k_base *sc, u32 address, u32 data); + void (*irq_enable)(struct ath11k_base *sc); + void (*irq_disable)(struct ath11k_base *sc); + int (*start)(struct ath11k_base *sc); + void (*stop)(struct ath11k_base *sc); + int (*power_up)(struct ath11k_base *sc); + void (*power_down)(struct ath11k_base *sc); + void (*target_crash)(struct ath11k_base *sc); + int (*suspend)(struct ath11k_base *ab); + int (*resume)(struct ath11k_base *ab); + int (*map_service_to_pipe)(struct ath11k_base *sc, u16 service_id, + u8 *ul_pipe, u8 *dl_pipe); + int (*get_user_msi_vector)(struct ath11k_base *ab, char *user_name, + int *num_vectors, u32 *user_base_data, + u32 *base_vector); + void (*get_msi_address)(struct ath11k_base *ab, u32 *msi_addr_lo, + u32 *msi_addr_hi); + int (*is_32_vecs_support)(struct ath11k_base *ab); + void (*ce_irq_enable)(struct ath11k_base *ab); + void (*ce_irq_disable)(struct ath11k_base *ab); +}; + +static inline void ath11k_hif_ce_irq_enable(struct ath11k_base *ab) +{ + if (ab->hif.ops->ce_irq_enable) + ab->hif.ops->ce_irq_enable(ab); +} + +static inline void ath11k_hif_ce_irq_disable(struct ath11k_base *ab) +{ + if (ab->hif.ops->ce_irq_disable) + ab->hif.ops->ce_irq_disable(ab); +} + +static inline int ath11k_hif_start(struct ath11k_base *sc) +{ + return sc->hif.ops->start(sc); +} + +static inline void ath11k_hif_stop(struct ath11k_base *sc) +{ + sc->hif.ops->stop(sc); +} + +static inline void ath11k_hif_irq_enable(struct ath11k_base *sc) +{ + sc->hif.ops->irq_enable(sc); +} + +static inline void ath11k_hif_irq_disable(struct ath11k_base *sc) +{ + sc->hif.ops->irq_disable(sc); +} + +static inline int ath11k_hif_power_up(struct ath11k_base *sc) +{ + return sc->hif.ops->power_up(sc); +} + +static inline void ath11k_hif_power_down(struct ath11k_base *sc) +{ + sc->hif.ops->power_down(sc); +} + +static inline int ath11k_hif_suspend(struct ath11k_base *sc) +{ + return sc->hif.ops->suspend(sc); +} + +static inline int ath11k_hif_resume(struct ath11k_base *ab) +{ + return ab->hif.ops->resume(ab); +} + +static inline void ath11k_hif_force_crash(struct ath11k_base *ab) +{ + ab->hif.ops->target_crash(ab); +} + +static inline u32 ath11k_hif_read32(struct ath11k_base *sc, u32 address) +{ + return sc->hif.ops->read32(sc, address); +} + +static inline void ath11k_hif_write32(struct ath11k_base *sc, u32 address, u32 data) +{ + sc->hif.ops->write32(sc, address, data); +} + +static inline int ath11k_hif_map_service_to_pipe(struct ath11k_base *sc, u16 service_id, + u8 *ul_pipe, u8 *dl_pipe) +{ + return sc->hif.ops->map_service_to_pipe(sc, service_id, ul_pipe, dl_pipe); +} + +static inline int ath11k_get_user_msi_vector(struct ath11k_base *ab, char *user_name, + int *num_vectors, u32 *user_base_data, + u32 *base_vector) +{ + if (!ab->hif.ops->get_user_msi_vector) + return -EOPNOTSUPP; + + return ab->hif.ops->get_user_msi_vector(ab, user_name, num_vectors, + user_base_data, + base_vector); +} + +static inline void ath11k_get_msi_address(struct ath11k_base *ab, u32 *msi_addr_lo, + u32 *msi_addr_hi) +{ + if (!ab->hif.ops->get_msi_address) + return; + + ab->hif.ops->get_msi_address(ab, msi_addr_lo, msi_addr_hi); +} +#endif /* _HIF_H_ */ only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/net/wireless/ath/ath11k/htc.c +++ linux-oem-5.6-5.6.0/drivers/net/wireless/ath/ath11k/htc.c @@ -5,8 +5,8 @@ #include #include -#include "ahb.h" #include "debug.h" +#include "hif.h" struct sk_buff *ath11k_htc_alloc_skb(struct ath11k_base *ab, int size) { @@ -50,15 +50,6 @@ return skb; } -static inline void ath11k_htc_restore_tx_skb(struct ath11k_htc *htc, - struct sk_buff *skb) -{ - struct ath11k_skb_cb *skb_cb = ATH11K_SKB_CB(skb); - - dma_unmap_single(htc->ab->dev, skb_cb->paddr, skb->len, DMA_TO_DEVICE); - skb_pull(skb, sizeof(struct ath11k_htc_hdr)); -} - static void ath11k_htc_prepare_tx_skb(struct ath11k_htc_ep *ep, struct sk_buff *skb) { @@ -69,9 +60,11 @@ memset(hdr, 0, sizeof(*hdr)); hdr->htc_info = FIELD_PREP(HTC_HDR_ENDPOINTID, ep->eid) | FIELD_PREP(HTC_HDR_PAYLOADLEN, - (skb->len - sizeof(*hdr))) | - FIELD_PREP(HTC_HDR_FLAGS, - ATH11K_HTC_FLAG_NEED_CREDIT_UPDATE); + (skb->len - sizeof(*hdr))); + + if (ep->tx_credit_flow_enabled) + hdr->htc_info |= FIELD_PREP(HTC_HDR_FLAGS, + ATH11K_HTC_FLAG_NEED_CREDIT_UPDATE); spin_lock_bh(&ep->htc->tx_lock); hdr->ctrl_info = FIELD_PREP(HTC_HDR_CONTROLBYTES1, ep->seq_no++); @@ -337,8 +330,18 @@ complete(&htc->ctl_resp); break; + case ATH11K_HTC_MSG_SEND_SUSPEND_COMPLETE: + htc->htc_ops.target_send_suspend_complete(ab->pdevs[0].ar, true); + break; + case ATH11K_HTC_MSG_NACK_SUSPEND: + htc->htc_ops.target_send_suspend_complete(ab->pdevs[0].ar, false); + break; + case ATH11K_HTC_MSG_WAKEUP_FROM_SUSPEND_ID: + htc->htc_ops.target_wakeup_from_suspend(ab->pdevs[0].ar); + break; default: - ath11k_warn(ab, "ignoring unsolicited htc ep0 event\n"); + ath11k_warn(ab, "ignoring unsolicited htc ep0 event %ld\n", + FIELD_GET(HTC_MSG_MESSAGEID, msg->msg_svc_id)); break; } goto out; @@ -478,7 +481,7 @@ if (!time_left) { ath11k_warn(ab, "failed to receive control response completion, polling..\n"); - for (i = 0; i < CE_COUNT; i++) + for (i = 0; i < ab->hw_params.ce_count; i++) ath11k_ce_per_engine_service(htc->ab, i); time_left = @@ -524,6 +527,12 @@ return -ECOMM; } + /* For QCA6390, wmi endpoint uses 1 credit to avoid + * back-to-back write. + */ + if (ab->hw_params.supports_shadow_regs) + htc->total_transmit_credits = 1; + ath11k_htc_setup_target_buffer_assignments(htc); return 0; @@ -672,7 +681,7 @@ /* copy all the callbacks */ ep->ep_ops = conn_req->ep_ops; - status = ath11k_ahb_map_service_to_pipe(htc->ab, + status = ath11k_hif_map_service_to_pipe(htc->ab, ep->service_id, &ep->ul_pipe_id, &ep->dl_pipe_id); @@ -723,6 +732,19 @@ return 0; } +static void ath11k_send_suspend_complete(struct ath11k *ar, bool ack) +{ + ath11k_dbg(ar->ab, ATH11K_DBG_BOOT, "boot suspend complete %d\n", ack); + + ar->target_suspend_ack = ack; + complete(&ar->target_suspend); +} + +static void ath11k_wakeup_from_suspend(struct ath11k *ar) +{ + ath11k_dbg(ar->ab, ATH11K_DBG_BOOT, "wakeup from suspend is received\n"); +} + int ath11k_htc_init(struct ath11k_base *ab) { struct ath11k_htc *htc = &ab->htc; @@ -734,6 +756,11 @@ ath11k_htc_reset_endpoint_states(htc); + htc->htc_ops.target_send_suspend_complete = + ath11k_send_suspend_complete; + htc->htc_ops.target_wakeup_from_suspend = + ath11k_wakeup_from_suspend; + htc->ab = ab; switch (ab->wmi_ab.preferred_hw_mode) { @@ -748,7 +775,7 @@ htc->wmi_ep_count = 3; break; default: - htc->wmi_ep_count = 3; + htc->wmi_ep_count = ab->hw_params.max_radios; break; } only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/net/wireless/ath/ath11k/htc.h +++ linux-oem-5.6-5.6.0/drivers/net/wireless/ath/ath11k/htc.h @@ -13,6 +13,7 @@ #include struct ath11k_base; +struct ath11k; #define HTC_HDR_ENDPOINTID GENMASK(7, 0) #define HTC_HDR_FLAGS GENMASK(15, 8) @@ -65,7 +66,10 @@ ATH11K_HTC_MSG_CONNECT_SERVICE_RESP_ID = 3, ATH11K_HTC_MSG_SETUP_COMPLETE_ID = 4, ATH11K_HTC_MSG_SETUP_COMPLETE_EX_ID = 5, - ATH11K_HTC_MSG_SEND_SUSPEND_COMPLETE = 6 + ATH11K_HTC_MSG_SEND_SUSPEND_COMPLETE = 6, + ATH11K_HTC_MSG_NACK_SUSPEND = 7, + ATH11K_HTC_MSG_WAKEUP_FROM_SUSPEND_ID = 8 + }; enum ath11k_htc_version { @@ -222,7 +226,8 @@ }; struct ath11k_htc_ops { - void (*target_send_suspend_complete)(struct ath11k_base *ar); + void (*target_send_suspend_complete)(struct ath11k *ar, bool ack); + void (*target_wakeup_from_suspend)(struct ath11k *ar); }; struct ath11k_htc_ep_ops { only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/net/wireless/ath/ath11k/hw.c +++ linux-oem-5.6-5.6.0/drivers/net/wireless/ath/ath11k/hw.c @@ -0,0 +1,894 @@ +// SPDX-License-Identifier: BSD-3-Clause-Clear +/* + * Copyright (c) 2018-2020 The Linux Foundation. All rights reserved. + */ + +#include +#include +#include + +#include "hw.h" +#include "core.h" +#include "ce.h" + +/* Map from pdev index to hw mac index */ +static u8 ath11k_hw_ipq8074_mac_from_pdev_id(int pdev_idx) +{ + switch (pdev_idx) { + case 0: + return 0; + case 1: + return 2; + case 2: + return 1; + default: + return ATH11K_INVALID_HW_MAC_ID; + } +} + +static u8 ath11k_hw_ipq6018_mac_from_pdev_id(int pdev_idx) +{ + return pdev_idx; +} + +static void ath11k_init_wmi_config_qca6390(struct ath11k_base *ab, + struct target_resource_config *config) +{ + config->num_vdevs = 4; + config->num_peers = 16; + config->num_tids = 32; + + config->num_offload_peers = 3; + config->num_offload_reorder_buffs = 3; + config->num_peer_keys = TARGET_NUM_PEER_KEYS; + config->ast_skid_limit = TARGET_AST_SKID_LIMIT; + config->tx_chain_mask = (1 << ab->target_caps.num_rf_chains) - 1; + config->rx_chain_mask = (1 << ab->target_caps.num_rf_chains) - 1; + config->rx_timeout_pri[0] = TARGET_RX_TIMEOUT_LO_PRI; + config->rx_timeout_pri[1] = TARGET_RX_TIMEOUT_LO_PRI; + config->rx_timeout_pri[2] = TARGET_RX_TIMEOUT_LO_PRI; + config->rx_timeout_pri[3] = TARGET_RX_TIMEOUT_HI_PRI; + config->rx_decap_mode = TARGET_DECAP_MODE_NATIVE_WIFI; + config->scan_max_pending_req = TARGET_SCAN_MAX_PENDING_REQS; + config->bmiss_offload_max_vdev = TARGET_BMISS_OFFLOAD_MAX_VDEV; + config->roam_offload_max_vdev = TARGET_ROAM_OFFLOAD_MAX_VDEV; + config->roam_offload_max_ap_profiles = TARGET_ROAM_OFFLOAD_MAX_AP_PROFILES; + config->num_mcast_groups = 0; + config->num_mcast_table_elems = 0; + config->mcast2ucast_mode = 0; + config->tx_dbg_log_size = TARGET_TX_DBG_LOG_SIZE; + config->num_wds_entries = 0; + config->dma_burst_size = 0; + config->rx_skip_defrag_timeout_dup_detection_check = 0; + config->vow_config = TARGET_VOW_CONFIG; + config->gtk_offload_max_vdev = 2; + config->num_msdu_desc = 0x400; + config->beacon_tx_offload_max_vdev = 2; + config->rx_batchmode = TARGET_RX_BATCHMODE; + + config->peer_map_unmap_v2_support = 0; + config->use_pdev_id = 1; + config->max_frag_entries = 0xa; + config->num_tdls_vdevs = 0x1; + config->num_tdls_conn_table_entries = 8; + config->beacon_tx_offload_max_vdev = 0x2; + config->num_multicast_filter_entries = 0x20; + config->num_wow_filters = 0x16; + config->num_keep_alive_pattern = 0; +} + +static void ath11k_init_wmi_config_ipq8074(struct ath11k_base *ab, + struct target_resource_config *config) +{ + config->num_vdevs = ab->num_radios * TARGET_NUM_VDEVS; + + if (ab->num_radios == 2) { + config->num_peers = TARGET_NUM_PEERS(DBS); + config->num_tids = TARGET_NUM_TIDS(DBS); + } else if (ab->num_radios == 3) { + config->num_peers = TARGET_NUM_PEERS(DBS_SBS); + config->num_tids = TARGET_NUM_TIDS(DBS_SBS); + } else { + /* Control should not reach here */ + config->num_peers = TARGET_NUM_PEERS(SINGLE); + config->num_tids = TARGET_NUM_TIDS(SINGLE); + } + config->num_offload_peers = TARGET_NUM_OFFLD_PEERS; + config->num_offload_reorder_buffs = TARGET_NUM_OFFLD_REORDER_BUFFS; + config->num_peer_keys = TARGET_NUM_PEER_KEYS; + config->ast_skid_limit = TARGET_AST_SKID_LIMIT; + config->tx_chain_mask = (1 << ab->target_caps.num_rf_chains) - 1; + config->rx_chain_mask = (1 << ab->target_caps.num_rf_chains) - 1; + config->rx_timeout_pri[0] = TARGET_RX_TIMEOUT_LO_PRI; + config->rx_timeout_pri[1] = TARGET_RX_TIMEOUT_LO_PRI; + config->rx_timeout_pri[2] = TARGET_RX_TIMEOUT_LO_PRI; + config->rx_timeout_pri[3] = TARGET_RX_TIMEOUT_HI_PRI; + + if (test_bit(ATH11K_FLAG_RAW_MODE, &ab->dev_flags)) + config->rx_decap_mode = TARGET_DECAP_MODE_RAW; + else + config->rx_decap_mode = TARGET_DECAP_MODE_NATIVE_WIFI; + + config->scan_max_pending_req = TARGET_SCAN_MAX_PENDING_REQS; + config->bmiss_offload_max_vdev = TARGET_BMISS_OFFLOAD_MAX_VDEV; + config->roam_offload_max_vdev = TARGET_ROAM_OFFLOAD_MAX_VDEV; + config->roam_offload_max_ap_profiles = TARGET_ROAM_OFFLOAD_MAX_AP_PROFILES; + config->num_mcast_groups = TARGET_NUM_MCAST_GROUPS; + config->num_mcast_table_elems = TARGET_NUM_MCAST_TABLE_ELEMS; + config->mcast2ucast_mode = TARGET_MCAST2UCAST_MODE; + config->tx_dbg_log_size = TARGET_TX_DBG_LOG_SIZE; + config->num_wds_entries = TARGET_NUM_WDS_ENTRIES; + config->dma_burst_size = TARGET_DMA_BURST_SIZE; + config->rx_skip_defrag_timeout_dup_detection_check = + TARGET_RX_SKIP_DEFRAG_TIMEOUT_DUP_DETECTION_CHECK; + config->vow_config = TARGET_VOW_CONFIG; + config->gtk_offload_max_vdev = TARGET_GTK_OFFLOAD_MAX_VDEV; + config->num_msdu_desc = TARGET_NUM_MSDU_DESC; + config->beacon_tx_offload_max_vdev = ab->num_radios * TARGET_MAX_BCN_OFFLD; + config->rx_batchmode = TARGET_RX_BATCHMODE; + config->peer_map_unmap_v2_support = 1; + config->twt_ap_pdev_count = 2; + config->twt_ap_sta_count = 1000; +} + +static int ath11k_hw_mac_id_to_pdev_id_ipq8074(struct ath11k_hw_params *hw, + int mac_id) +{ + return mac_id; +} + +static int ath11k_hw_mac_id_to_srng_id_ipq8074(struct ath11k_hw_params *hw, + int mac_id) +{ + return 0; +} + +static int ath11k_hw_mac_id_to_pdev_id_qca6390(struct ath11k_hw_params *hw, + int mac_id) +{ + return 0; +} + +static int ath11k_hw_mac_id_to_srng_id_qca6390(struct ath11k_hw_params *hw, + int mac_id) +{ + return mac_id; +} + +const struct ath11k_hw_ops ipq8074_ops = { + .get_hw_mac_from_pdev_id = ath11k_hw_ipq8074_mac_from_pdev_id, + .wmi_init_config = ath11k_init_wmi_config_qca6390, + .mac_id_to_pdev_id = ath11k_hw_mac_id_to_pdev_id_ipq8074, + .mac_id_to_srng_id = ath11k_hw_mac_id_to_srng_id_ipq8074, +}; + +const struct ath11k_hw_ops ipq6018_ops = { + .get_hw_mac_from_pdev_id = ath11k_hw_ipq6018_mac_from_pdev_id, + .wmi_init_config = ath11k_init_wmi_config_ipq8074, + .mac_id_to_pdev_id = ath11k_hw_mac_id_to_pdev_id_ipq8074, + .mac_id_to_srng_id = ath11k_hw_mac_id_to_srng_id_ipq8074, +}; + +const struct ath11k_hw_ops qca6390_ops = { + .get_hw_mac_from_pdev_id = ath11k_hw_ipq8074_mac_from_pdev_id, + .wmi_init_config = ath11k_init_wmi_config_qca6390, + .mac_id_to_pdev_id = ath11k_hw_mac_id_to_pdev_id_qca6390, + .mac_id_to_srng_id = ath11k_hw_mac_id_to_srng_id_qca6390, +}; + +#define ATH11K_TX_RING_MASK_0 0x1 +#define ATH11K_TX_RING_MASK_1 0x2 +#define ATH11K_TX_RING_MASK_2 0x4 + +#define ATH11K_RX_RING_MASK_0 0x1 +#define ATH11K_RX_RING_MASK_1 0x2 +#define ATH11K_RX_RING_MASK_2 0x4 +#define ATH11K_RX_RING_MASK_3 0x8 + +#define ATH11K_RX_ERR_RING_MASK_0 0x1 + +#define ATH11K_RX_WBM_REL_RING_MASK_0 0x1 + +#define ATH11K_REO_STATUS_RING_MASK_0 0x1 + +#define ATH11K_RXDMA2HOST_RING_MASK_0 0x1 +#define ATH11K_RXDMA2HOST_RING_MASK_1 0x2 +#define ATH11K_RXDMA2HOST_RING_MASK_2 0x4 + +#define ATH11K_HOST2RXDMA_RING_MASK_0 0x1 +#define ATH11K_HOST2RXDMA_RING_MASK_1 0x2 +#define ATH11K_HOST2RXDMA_RING_MASK_2 0x4 + +#define ATH11K_RX_MON_STATUS_RING_MASK_0 0x1 +#define ATH11K_RX_MON_STATUS_RING_MASK_1 0x2 +#define ATH11K_RX_MON_STATUS_RING_MASK_2 0x4 + +const struct ath11k_hw_ring_mask ath11k_hw_ring_mask_ipq8074 = { + .tx = { + ATH11K_TX_RING_MASK_0, + ATH11K_TX_RING_MASK_1, + ATH11K_TX_RING_MASK_2, + }, + .rx_mon_status = { + 0, 0, 0, 0, + ATH11K_RX_MON_STATUS_RING_MASK_0, + ATH11K_RX_MON_STATUS_RING_MASK_1, + ATH11K_RX_MON_STATUS_RING_MASK_2, + }, + .rx = { + 0, 0, 0, 0, 0, 0, 0, + ATH11K_RX_RING_MASK_0, + ATH11K_RX_RING_MASK_1, + ATH11K_RX_RING_MASK_2, + ATH11K_RX_RING_MASK_3, + }, + .rx_err = { + ATH11K_RX_ERR_RING_MASK_0, + }, + .rx_wbm_rel = { + ATH11K_RX_WBM_REL_RING_MASK_0, + }, + .reo_status = { + ATH11K_REO_STATUS_RING_MASK_0, + }, + .rxdma2host = { + ATH11K_RXDMA2HOST_RING_MASK_0, + ATH11K_RXDMA2HOST_RING_MASK_1, + ATH11K_RXDMA2HOST_RING_MASK_2, + }, + .host2rxdma = { + ATH11K_HOST2RXDMA_RING_MASK_0, + ATH11K_HOST2RXDMA_RING_MASK_1, + ATH11K_HOST2RXDMA_RING_MASK_2, + }, +}; + +const struct ath11k_hw_ring_mask ath11k_hw_ring_mask_qca6390 = { + .tx = { + ATH11K_TX_RING_MASK_0, + ATH11K_TX_RING_MASK_1, + ATH11K_TX_RING_MASK_2, + }, + .rx_mon_status = { + 0, 0, 0, 0, + ATH11K_RX_MON_STATUS_RING_MASK_0, + ATH11K_RX_MON_STATUS_RING_MASK_1, + ATH11K_RX_MON_STATUS_RING_MASK_2, + }, + .rx = { + 0, 0, 0, 0, 0, 0, 0, + ATH11K_RX_RING_MASK_0, + ATH11K_RX_RING_MASK_1, + ATH11K_RX_RING_MASK_2, + ATH11K_RX_RING_MASK_3, + }, + .rx_err = { + ATH11K_RX_ERR_RING_MASK_0, + }, + .rx_wbm_rel = { + ATH11K_RX_WBM_REL_RING_MASK_0, + }, + .reo_status = { + ATH11K_REO_STATUS_RING_MASK_0, + }, + .rxdma2host = { + ATH11K_RXDMA2HOST_RING_MASK_0, + ATH11K_RXDMA2HOST_RING_MASK_1, + ATH11K_RXDMA2HOST_RING_MASK_2, + }, + .host2rxdma = { + }, +}; + +/* Target firmware's Copy Engine configuration. */ +const struct ce_pipe_config ath11k_target_ce_config_wlan_ipq8074[] = { + /* CE0: host->target HTC control and raw streams */ + { + .pipenum = __cpu_to_le32(0), + .pipedir = __cpu_to_le32(PIPEDIR_OUT), + .nentries = __cpu_to_le32(32), + .nbytes_max = __cpu_to_le32(2048), + .flags = __cpu_to_le32(CE_ATTR_FLAGS), + .reserved = __cpu_to_le32(0), + }, + + /* CE1: target->host HTT + HTC control */ + { + .pipenum = __cpu_to_le32(1), + .pipedir = __cpu_to_le32(PIPEDIR_IN), + .nentries = __cpu_to_le32(32), + .nbytes_max = __cpu_to_le32(2048), + .flags = __cpu_to_le32(CE_ATTR_FLAGS), + .reserved = __cpu_to_le32(0), + }, + + /* CE2: target->host WMI */ + { + .pipenum = __cpu_to_le32(2), + .pipedir = __cpu_to_le32(PIPEDIR_IN), + .nentries = __cpu_to_le32(32), + .nbytes_max = __cpu_to_le32(2048), + .flags = __cpu_to_le32(CE_ATTR_FLAGS), + .reserved = __cpu_to_le32(0), + }, + + /* CE3: host->target WMI */ + { + .pipenum = __cpu_to_le32(3), + .pipedir = __cpu_to_le32(PIPEDIR_OUT), + .nentries = __cpu_to_le32(32), + .nbytes_max = __cpu_to_le32(2048), + .flags = __cpu_to_le32(CE_ATTR_FLAGS), + .reserved = __cpu_to_le32(0), + }, + + /* CE4: host->target HTT */ + { + .pipenum = __cpu_to_le32(4), + .pipedir = __cpu_to_le32(PIPEDIR_OUT), + .nentries = __cpu_to_le32(256), + .nbytes_max = __cpu_to_le32(256), + .flags = __cpu_to_le32(CE_ATTR_FLAGS | CE_ATTR_DIS_INTR), + .reserved = __cpu_to_le32(0), + }, + + /* CE5: target->host Pktlog */ + { + .pipenum = __cpu_to_le32(5), + .pipedir = __cpu_to_le32(PIPEDIR_IN), + .nentries = __cpu_to_le32(32), + .nbytes_max = __cpu_to_le32(2048), + .flags = __cpu_to_le32(0), + .reserved = __cpu_to_le32(0), + }, + + /* CE6: Reserved for target autonomous hif_memcpy */ + { + .pipenum = __cpu_to_le32(6), + .pipedir = __cpu_to_le32(PIPEDIR_INOUT), + .nentries = __cpu_to_le32(32), + .nbytes_max = __cpu_to_le32(65535), + .flags = __cpu_to_le32(CE_ATTR_FLAGS), + .reserved = __cpu_to_le32(0), + }, + + /* CE7 used only by Host */ + { + .pipenum = __cpu_to_le32(7), + .pipedir = __cpu_to_le32(PIPEDIR_OUT), + .nentries = __cpu_to_le32(32), + .nbytes_max = __cpu_to_le32(2048), + .flags = __cpu_to_le32(CE_ATTR_FLAGS), + .reserved = __cpu_to_le32(0), + }, + + /* CE8 target->host used only by IPA */ + { + .pipenum = __cpu_to_le32(8), + .pipedir = __cpu_to_le32(PIPEDIR_INOUT), + .nentries = __cpu_to_le32(32), + .nbytes_max = __cpu_to_le32(65535), + .flags = __cpu_to_le32(CE_ATTR_FLAGS), + .reserved = __cpu_to_le32(0), + }, + + /* CE9 host->target HTT */ + { + .pipenum = __cpu_to_le32(9), + .pipedir = __cpu_to_le32(PIPEDIR_OUT), + .nentries = __cpu_to_le32(32), + .nbytes_max = __cpu_to_le32(2048), + .flags = __cpu_to_le32(CE_ATTR_FLAGS), + .reserved = __cpu_to_le32(0), + }, + + /* CE10 target->host HTT */ + { + .pipenum = __cpu_to_le32(10), + .pipedir = __cpu_to_le32(PIPEDIR_INOUT_H2H), + .nentries = __cpu_to_le32(0), + .nbytes_max = __cpu_to_le32(0), + .flags = __cpu_to_le32(CE_ATTR_FLAGS), + .reserved = __cpu_to_le32(0), + }, + + /* CE11 Not used */ +}; + +/* Map from service/endpoint to Copy Engine. + * This table is derived from the CE_PCI TABLE, above. + * It is passed to the Target at startup for use by firmware. + */ +const struct service_to_pipe ath11k_target_service_to_ce_map_wlan_ipq8074[] = { + { + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_WMI_DATA_VO), + .pipedir = __cpu_to_le32(PIPEDIR_OUT), /* out = UL = host -> target */ + .pipenum = __cpu_to_le32(3), + }, + { + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_WMI_DATA_VO), + .pipedir = __cpu_to_le32(PIPEDIR_IN), /* in = DL = target -> host */ + .pipenum = __cpu_to_le32(2), + }, + { + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_WMI_DATA_BK), + .pipedir = __cpu_to_le32(PIPEDIR_OUT), /* out = UL = host -> target */ + .pipenum = __cpu_to_le32(3), + }, + { + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_WMI_DATA_BK), + .pipedir = __cpu_to_le32(PIPEDIR_IN), /* in = DL = target -> host */ + .pipenum = __cpu_to_le32(2), + }, + { + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_WMI_DATA_BE), + .pipedir = __cpu_to_le32(PIPEDIR_OUT), /* out = UL = host -> target */ + .pipenum = __cpu_to_le32(3), + }, + { + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_WMI_DATA_BE), + .pipedir = __cpu_to_le32(PIPEDIR_IN), /* in = DL = target -> host */ + .pipenum = __cpu_to_le32(2), + }, + { + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_WMI_DATA_VI), + .pipedir = __cpu_to_le32(PIPEDIR_OUT), /* out = UL = host -> target */ + .pipenum = __cpu_to_le32(3), + }, + { + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_WMI_DATA_VI), + .pipedir = __cpu_to_le32(PIPEDIR_IN), /* in = DL = target -> host */ + .pipenum = __cpu_to_le32(2), + }, + { + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_WMI_CONTROL), + .pipedir = __cpu_to_le32(PIPEDIR_OUT), /* out = UL = host -> target */ + .pipenum = __cpu_to_le32(3), + }, + { + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_WMI_CONTROL), + .pipedir = __cpu_to_le32(PIPEDIR_IN), /* in = DL = target -> host */ + .pipenum = __cpu_to_le32(2), + }, + { + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_WMI_CONTROL_MAC1), + .pipedir = __cpu_to_le32(PIPEDIR_OUT), /* out = UL = host -> target */ + .pipenum = __cpu_to_le32(7), + }, + { + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_WMI_CONTROL_MAC1), + .pipedir = __cpu_to_le32(PIPEDIR_IN), /* in = DL = target -> host */ + .pipenum = __cpu_to_le32(2), + }, + { + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_WMI_CONTROL_MAC2), + .pipedir = __cpu_to_le32(PIPEDIR_OUT), /* out = UL = host -> target */ + .pipenum = __cpu_to_le32(9), + }, + { + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_WMI_CONTROL_MAC2), + .pipedir = __cpu_to_le32(PIPEDIR_IN), /* in = DL = target -> host */ + .pipenum = __cpu_to_le32(2), + }, + { + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_RSVD_CTRL), + .pipedir = __cpu_to_le32(PIPEDIR_OUT), /* out = UL = host -> target */ + .pipenum = __cpu_to_le32(0), + }, + { + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_RSVD_CTRL), + .pipedir = __cpu_to_le32(PIPEDIR_IN), /* in = DL = target -> host */ + .pipenum = __cpu_to_le32(1), + }, + { /* not used */ + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_TEST_RAW_STREAMS), + .pipedir = __cpu_to_le32(PIPEDIR_OUT), /* out = UL = host -> target */ + .pipenum = __cpu_to_le32(0), + }, + { /* not used */ + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_TEST_RAW_STREAMS), + .pipedir = __cpu_to_le32(PIPEDIR_IN), /* in = DL = target -> host */ + .pipenum = __cpu_to_le32(1), + }, + { + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_HTT_DATA_MSG), + .pipedir = __cpu_to_le32(PIPEDIR_OUT), /* out = UL = host -> target */ + .pipenum = __cpu_to_le32(4), + }, + { + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_HTT_DATA_MSG), + .pipedir = __cpu_to_le32(PIPEDIR_IN), /* in = DL = target -> host */ + .pipenum = __cpu_to_le32(1), + }, + { + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_PKT_LOG), + .pipedir = __cpu_to_le32(PIPEDIR_IN), /* in = DL = target -> host */ + .pipenum = __cpu_to_le32(5), + }, + + /* (Additions here) */ + + { /* terminator entry */ } +}; + +const struct service_to_pipe ath11k_target_service_to_ce_map_wlan_ipq6018[] = { + { + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_WMI_DATA_VO), + .pipedir = __cpu_to_le32(PIPEDIR_OUT), /* out = UL = host -> target */ + .pipenum = __cpu_to_le32(3), + }, + { + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_WMI_DATA_VO), + .pipedir = __cpu_to_le32(PIPEDIR_IN), /* in = DL = target -> host */ + .pipenum = __cpu_to_le32(2), + }, + { + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_WMI_DATA_BK), + .pipedir = __cpu_to_le32(PIPEDIR_OUT), /* out = UL = host -> target */ + .pipenum = __cpu_to_le32(3), + }, + { + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_WMI_DATA_BK), + .pipedir = __cpu_to_le32(PIPEDIR_IN), /* in = DL = target -> host */ + .pipenum = __cpu_to_le32(2), + }, + { + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_WMI_DATA_BE), + .pipedir = __cpu_to_le32(PIPEDIR_OUT), /* out = UL = host -> target */ + .pipenum = __cpu_to_le32(3), + }, + { + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_WMI_DATA_BE), + .pipedir = __cpu_to_le32(PIPEDIR_IN), /* in = DL = target -> host */ + .pipenum = __cpu_to_le32(2), + }, + { + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_WMI_DATA_VI), + .pipedir = __cpu_to_le32(PIPEDIR_OUT), /* out = UL = host -> target */ + .pipenum = __cpu_to_le32(3), + }, + { + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_WMI_DATA_VI), + .pipedir = __cpu_to_le32(PIPEDIR_IN), /* in = DL = target -> host */ + .pipenum = __cpu_to_le32(2), + }, + { + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_WMI_CONTROL), + .pipedir = __cpu_to_le32(PIPEDIR_OUT), /* out = UL = host -> target */ + .pipenum = __cpu_to_le32(3), + }, + { + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_WMI_CONTROL), + .pipedir = __cpu_to_le32(PIPEDIR_IN), /* in = DL = target -> host */ + .pipenum = __cpu_to_le32(2), + }, + { + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_WMI_CONTROL_MAC1), + .pipedir = __cpu_to_le32(PIPEDIR_OUT), /* out = UL = host -> target */ + .pipenum = __cpu_to_le32(7), + }, + { + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_WMI_CONTROL_MAC1), + .pipedir = __cpu_to_le32(PIPEDIR_IN), /* in = DL = target -> host */ + .pipenum = __cpu_to_le32(2), + }, + { + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_RSVD_CTRL), + .pipedir = __cpu_to_le32(PIPEDIR_OUT), /* out = UL = host -> target */ + .pipenum = __cpu_to_le32(0), + }, + { + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_RSVD_CTRL), + .pipedir = __cpu_to_le32(PIPEDIR_IN), /* in = DL = target -> host */ + .pipenum = __cpu_to_le32(1), + }, + { /* not used */ + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_TEST_RAW_STREAMS), + .pipedir = __cpu_to_le32(PIPEDIR_OUT), /* out = UL = host -> target */ + .pipenum = __cpu_to_le32(0), + }, + { /* not used */ + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_TEST_RAW_STREAMS), + .pipedir = __cpu_to_le32(PIPEDIR_IN), /* in = DL = target -> host */ + .pipenum = __cpu_to_le32(1), + }, + { + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_HTT_DATA_MSG), + .pipedir = __cpu_to_le32(PIPEDIR_OUT), /* out = UL = host -> target */ + .pipenum = __cpu_to_le32(4), + }, + { + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_HTT_DATA_MSG), + .pipedir = __cpu_to_le32(PIPEDIR_IN), /* in = DL = target -> host */ + .pipenum = __cpu_to_le32(1), + }, + { + .service_id = __cpu_to_le32(ATH11K_HTC_SVC_ID_PKT_LOG), + .pipedir = __cpu_to_le32(PIPEDIR_IN), /* in = DL = target -> host */ + .pipenum = __cpu_to_le32(5), + }, + + /* (Additions here) */ + + { /* terminator entry */ } +}; + +/* Target firmware's Copy Engine configuration. */ +const struct ce_pipe_config ath11k_target_ce_config_wlan_qca6390[] = { + /* CE0: host->target HTC control and raw streams */ + { + .pipenum = __cpu_to_le32(0), + .pipedir = __cpu_to_le32(PIPEDIR_OUT), + .nentries = __cpu_to_le32(32), + .nbytes_max = __cpu_to_le32(2048), + .flags = __cpu_to_le32(CE_ATTR_FLAGS), + .reserved = __cpu_to_le32(0), + }, + + /* CE1: target->host HTT + HTC control */ + { + .pipenum = __cpu_to_le32(1), + .pipedir = __cpu_to_le32(PIPEDIR_IN), + .nentries = __cpu_to_le32(32), + .nbytes_max = __cpu_to_le32(2048), + .flags = __cpu_to_le32(CE_ATTR_FLAGS), + .reserved = __cpu_to_le32(0), + }, + + /* CE2: target->host WMI */ + { + .pipenum = __cpu_to_le32(2), + .pipedir = __cpu_to_le32(PIPEDIR_IN), + .nentries = __cpu_to_le32(32), + .nbytes_max = __cpu_to_le32(2048), + .flags = __cpu_to_le32(CE_ATTR_FLAGS), + .reserved = __cpu_to_le32(0), + }, + + /* CE3: host->target WMI */ + { + .pipenum = __cpu_to_le32(3), + .pipedir = __cpu_to_le32(PIPEDIR_OUT), + .nentries = __cpu_to_le32(32), + .nbytes_max = __cpu_to_le32(2048), + .flags = __cpu_to_le32(CE_ATTR_FLAGS), + .reserved = __cpu_to_le32(0), + }, + + /* CE4: host->target HTT */ + { + .pipenum = __cpu_to_le32(4), + .pipedir = __cpu_to_le32(PIPEDIR_OUT), + .nentries = __cpu_to_le32(256), + .nbytes_max = __cpu_to_le32(256), + .flags = __cpu_to_le32(CE_ATTR_FLAGS | CE_ATTR_DIS_INTR), + .reserved = __cpu_to_le32(0), + }, + + /* CE5: target->host Pktlog */ + { + .pipenum = __cpu_to_le32(5), + .pipedir = __cpu_to_le32(PIPEDIR_IN), + .nentries = __cpu_to_le32(32), + .nbytes_max = __cpu_to_le32(2048), + .flags = __cpu_to_le32(CE_ATTR_FLAGS), + .reserved = __cpu_to_le32(0), + }, + + /* CE6: Reserved for target autonomous hif_memcpy */ + { + .pipenum = __cpu_to_le32(6), + .pipedir = __cpu_to_le32(PIPEDIR_INOUT), + .nentries = __cpu_to_le32(32), + .nbytes_max = __cpu_to_le32(16384), + .flags = __cpu_to_le32(CE_ATTR_FLAGS), + .reserved = __cpu_to_le32(0), + }, + + /* CE7 used only by Host */ + { + .pipenum = __cpu_to_le32(7), + .pipedir = __cpu_to_le32(PIPEDIR_INOUT_H2H), + .nentries = __cpu_to_le32(0), + .nbytes_max = __cpu_to_le32(0), + .flags = __cpu_to_le32(CE_ATTR_FLAGS | CE_ATTR_DIS_INTR), + .reserved = __cpu_to_le32(0), + }, + + /* CE8 target->host used only by IPA */ + { + .pipenum = __cpu_to_le32(8), + .pipedir = __cpu_to_le32(PIPEDIR_INOUT), + .nentries = __cpu_to_le32(32), + .nbytes_max = __cpu_to_le32(16384), + .flags = __cpu_to_le32(CE_ATTR_FLAGS), + .reserved = __cpu_to_le32(0), + }, + /* CE 9, 10, 11 are used by MHI driver */ +}; + +/* Map from service/endpoint to Copy Engine. + * This table is derived from the CE_PCI TABLE, above. + * It is passed to the Target at startup for use by firmware. + */ +const struct service_to_pipe ath11k_target_service_to_ce_map_wlan_qca6390[] = { + { + __cpu_to_le32(ATH11K_HTC_SVC_ID_WMI_DATA_VO), + __cpu_to_le32(PIPEDIR_OUT), /* out = UL = host -> target */ + __cpu_to_le32(3), + }, + { + __cpu_to_le32(ATH11K_HTC_SVC_ID_WMI_DATA_VO), + __cpu_to_le32(PIPEDIR_IN), /* in = DL = target -> host */ + __cpu_to_le32(2), + }, + { + __cpu_to_le32(ATH11K_HTC_SVC_ID_WMI_DATA_BK), + __cpu_to_le32(PIPEDIR_OUT), /* out = UL = host -> target */ + __cpu_to_le32(3), + }, + { + __cpu_to_le32(ATH11K_HTC_SVC_ID_WMI_DATA_BK), + __cpu_to_le32(PIPEDIR_IN), /* in = DL = target -> host */ + __cpu_to_le32(2), + }, + { + __cpu_to_le32(ATH11K_HTC_SVC_ID_WMI_DATA_BE), + __cpu_to_le32(PIPEDIR_OUT), /* out = UL = host -> target */ + __cpu_to_le32(3), + }, + { + __cpu_to_le32(ATH11K_HTC_SVC_ID_WMI_DATA_BE), + __cpu_to_le32(PIPEDIR_IN), /* in = DL = target -> host */ + __cpu_to_le32(2), + }, + { + __cpu_to_le32(ATH11K_HTC_SVC_ID_WMI_DATA_VI), + __cpu_to_le32(PIPEDIR_OUT), /* out = UL = host -> target */ + __cpu_to_le32(3), + }, + { + __cpu_to_le32(ATH11K_HTC_SVC_ID_WMI_DATA_VI), + __cpu_to_le32(PIPEDIR_IN), /* in = DL = target -> host */ + __cpu_to_le32(2), + }, + { + __cpu_to_le32(ATH11K_HTC_SVC_ID_WMI_CONTROL), + __cpu_to_le32(PIPEDIR_OUT), /* out = UL = host -> target */ + __cpu_to_le32(3), + }, + { + __cpu_to_le32(ATH11K_HTC_SVC_ID_WMI_CONTROL), + __cpu_to_le32(PIPEDIR_IN), /* in = DL = target -> host */ + __cpu_to_le32(2), + }, + { + __cpu_to_le32(ATH11K_HTC_SVC_ID_RSVD_CTRL), + __cpu_to_le32(PIPEDIR_OUT), /* out = UL = host -> target */ + __cpu_to_le32(0), + }, + { + __cpu_to_le32(ATH11K_HTC_SVC_ID_RSVD_CTRL), + __cpu_to_le32(PIPEDIR_IN), /* in = DL = target -> host */ + __cpu_to_le32(2), + }, + { + __cpu_to_le32(ATH11K_HTC_SVC_ID_HTT_DATA_MSG), + __cpu_to_le32(PIPEDIR_OUT), /* out = UL = host -> target */ + __cpu_to_le32(4), + }, + { + __cpu_to_le32(ATH11K_HTC_SVC_ID_HTT_DATA_MSG), + __cpu_to_le32(PIPEDIR_IN), /* in = DL = target -> host */ + __cpu_to_le32(1), + }, + + /* (Additions here) */ + + { /* must be last */ + __cpu_to_le32(0), + __cpu_to_le32(0), + __cpu_to_le32(0), + }, +}; + +const struct ath11k_hw_regs ipq8074_regs = { + /* SW2TCL(x) R0 ring configuration address */ + .hal_tcl1_ring_base_lsb = 0x00000510, + .hal_tcl1_ring_base_msb = 0x00000514, + .hal_tcl1_ring_id = 0x00000518, + .hal_tcl1_ring_misc = 0x00000520, + .hal_tcl1_ring_tp_addr_lsb = 0x0000052c, + .hal_tcl1_ring_tp_addr_msb = 0x00000530, + .hal_tcl1_ring_consumer_int_setup_ix0 = 0x00000540, + .hal_tcl1_ring_consumer_int_setup_ix1 = 0x00000544, + .hal_tcl1_ring_msi1_base_lsb = 0x00000558, + .hal_tcl1_ring_msi1_base_msb = 0x0000055c, + .hal_tcl1_ring_msi1_data = 0x00000560, + .hal_tcl2_ring_base_lsb = 0x00000568, + .hal_tcl_ring_base_lsb = 0x00000618, + + /* TCL STATUS ring address */ + .hal_tcl_status_ring_base_lsb = 0x00000720, + + /* REO2SW(x) R0 ring configuration address */ + .hal_reo1_ring_base_lsb = 0x0000029c, + .hal_reo1_ring_base_msb = 0x000002a0, + .hal_reo1_ring_id = 0x000002a4, + .hal_reo1_ring_misc = 0x000002ac, + .hal_reo1_ring_hp_addr_lsb = 0x000002b0, + .hal_reo1_ring_hp_addr_msb = 0x000002b4, + .hal_reo1_ring_producer_int_setup = 0x000002c0, + .hal_reo1_ring_msi1_base_lsb = 0x000002e4, + .hal_reo1_ring_msi1_base_msb = 0x000002e8, + .hal_reo1_ring_msi1_data = 0x000002ec, + .hal_reo2_ring_base_lsb = 0x000002f4, + .hal_reo1_aging_thresh_ix_0 = 0x00000564, + .hal_reo1_aging_thresh_ix_1 = 0x00000568, + .hal_reo1_aging_thresh_ix_2 = 0x0000056c, + .hal_reo1_aging_thresh_ix_3 = 0x00000570, + + /* REO2SW(x) R2 ring pointers (head/tail) address */ + .hal_reo1_ring_hp = 0x00003038, + .hal_reo1_ring_tp = 0x0000303c, + .hal_reo2_ring_hp = 0x00003040, + + /* REO2TCL R0 ring configuration address */ + .hal_reo_tcl_ring_base_lsb = 0x000003fc, + .hal_reo_tcl_ring_hp = 0x00003058, + + /* REO status address */ + .hal_reo_status_ring_base_lsb = 0x00000504, + .hal_reo_status_hp = 0x00003070, + +}; + +const struct ath11k_hw_regs qca6390_regs = { + /* SW2TCL(x) R0 ring configuration address */ + .hal_tcl1_ring_base_lsb = 0x00000684, + .hal_tcl1_ring_base_msb = 0x00000688, + .hal_tcl1_ring_id = 0x0000068c, + .hal_tcl1_ring_misc = 0x00000694, + .hal_tcl1_ring_tp_addr_lsb = 0x000006a0, + .hal_tcl1_ring_tp_addr_msb = 0x000006a4, + .hal_tcl1_ring_consumer_int_setup_ix0 = 0x000006b4, + .hal_tcl1_ring_consumer_int_setup_ix1 = 0x000006b8, + .hal_tcl1_ring_msi1_base_lsb = 0x000006cc, + .hal_tcl1_ring_msi1_base_msb = 0x000006d0, + .hal_tcl1_ring_msi1_data = 0x000006d4, + .hal_tcl2_ring_base_lsb = 0x000006dc, + .hal_tcl_ring_base_lsb = 0x0000078c, + + /* TCL STATUS ring address */ + .hal_tcl_status_ring_base_lsb = 0x00000894, + + /* REO2SW(x) R0 ring configuration address */ + .hal_reo1_ring_base_lsb = 0x00000244, + .hal_reo1_ring_base_msb = 0x00000248, + .hal_reo1_ring_id = 0x0000024c, + .hal_reo1_ring_misc = 0x00000254, + .hal_reo1_ring_hp_addr_lsb = 0x00000258, + .hal_reo1_ring_hp_addr_msb = 0x0000025c, + .hal_reo1_ring_producer_int_setup = 0x00000268, + .hal_reo1_ring_msi1_base_lsb = 0x0000028c, + .hal_reo1_ring_msi1_base_msb = 0x00000290, + .hal_reo1_ring_msi1_data = 0x00000294, + .hal_reo2_ring_base_lsb = 0x0000029c, + .hal_reo1_aging_thresh_ix_0 = 0x0000050c, + .hal_reo1_aging_thresh_ix_1 = 0x00000510, + .hal_reo1_aging_thresh_ix_2 = 0x00000514, + .hal_reo1_aging_thresh_ix_3 = 0x00000518, + + /* REO2SW(x) R2 ring pointers (head/tail) address */ + .hal_reo1_ring_hp = 0x00003030, + .hal_reo1_ring_tp = 0x00003034, + .hal_reo2_ring_hp = 0x00003038, + + /* REO2TCL R0 ring configuration address */ + .hal_reo_tcl_ring_base_lsb = 0x000003a4, + .hal_reo_tcl_ring_hp = 0x00003050, + + /* REO status address */ + .hal_reo_status_ring_base_lsb = 0x000004ac, + .hal_reo_status_hp = 0x00003068, +}; only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/net/wireless/ath/ath11k/hw.h +++ linux-oem-5.6-5.6.0/drivers/net/wireless/ath/ath11k/hw.h @@ -6,6 +6,8 @@ #ifndef ATH11K_HW_H #define ATH11K_HW_H +#include "wmi.h" + /* Target configuration defines */ /* Num VDEVS per radio */ @@ -62,20 +64,18 @@ #define TARGET_RX_BATCHMODE 1 #define ATH11K_HW_MAX_QUEUES 4 +#define ATH11K_QUEUE_LEN 4096 #define ATH11k_HW_RATECODE_CCK_SHORT_PREAM_MASK 0x4 #define ATH11K_FW_DIR "ath11k" -/* IPQ8074 definitions */ -#define IPQ8074_FW_DIR "IPQ8074" -#define IPQ8074_MAX_BOARD_DATA_SZ (256 * 1024) -#define IPQ8074_MAX_CAL_DATA_SZ IPQ8074_MAX_BOARD_DATA_SZ - #define ATH11K_BOARD_MAGIC "QCA-ATH11K-BOARD" #define ATH11K_BOARD_API2_FILE "board-2.bin" -#define ATH11K_DEFAULT_BOARD_FILE "bdwlan.bin" +#define ATH11K_DEFAULT_BOARD_FILE "board.bin" #define ATH11K_DEFAULT_CAL_FILE "caldata.bin" +#define ATH11K_AMSS_FILE "amss.bin" +#define ATH11K_M3_FILE "m3.bin" enum ath11k_hw_rate_cck { ATH11K_HW_RATE_CCK_LP_11M = 0, @@ -98,19 +98,113 @@ ATH11K_HW_RATE_OFDM_9M, }; +enum ath11k_bus { + ATH11K_BUS_AHB, + ATH11K_BUS_PCI, +}; + +#define ATH11K_EXT_IRQ_GRP_NUM_MAX 11 + +struct ath11k_hw_ring_mask { + u8 tx[ATH11K_EXT_IRQ_GRP_NUM_MAX]; + u8 rx_mon_status[ATH11K_EXT_IRQ_GRP_NUM_MAX]; + u8 rx[ATH11K_EXT_IRQ_GRP_NUM_MAX]; + u8 rx_err[ATH11K_EXT_IRQ_GRP_NUM_MAX]; + u8 rx_wbm_rel[ATH11K_EXT_IRQ_GRP_NUM_MAX]; + u8 reo_status[ATH11K_EXT_IRQ_GRP_NUM_MAX]; + u8 rxdma2host[ATH11K_EXT_IRQ_GRP_NUM_MAX]; + u8 host2rxdma[ATH11K_EXT_IRQ_GRP_NUM_MAX]; +}; + struct ath11k_hw_params { const char *name; + u16 hw_rev; + u8 max_radios; + u32 bdf_addr; + struct { const char *dir; size_t board_size; size_t cal_size; } fw; + + const struct ath11k_hw_ops *hw_ops; + const struct ath11k_hw_ring_mask *ring_mask; + + bool internal_sleep_clock; + + const struct ath11k_hw_regs *regs; + const struct ce_attr *host_ce_config; + u32 ce_count; + const struct ce_pipe_config *target_ce_config; + u32 target_ce_count; + const struct service_to_pipe *svc_to_ce_map; + u32 svc_to_ce_map_len; + + bool single_pdev_only; + + bool rxdma1_enable; + int num_rxmda_per_pdev; + bool rx_mac_buf_ring; + bool vdev_start_delay; + bool htt_peer_map_v2; + bool tcl_0_only; + u8 spectral_fft_sz; + + u16 interface_modes; + bool supports_monitor; + bool supports_shadow_regs; + bool idle_ps; + bool support_suspend; +}; + +struct ath11k_hw_ops { + u8 (*get_hw_mac_from_pdev_id)(int pdev_id); + void (*wmi_init_config)(struct ath11k_base *ab, + struct target_resource_config *config); + int (*mac_id_to_pdev_id)(struct ath11k_hw_params *hw, int mac_id); + int (*mac_id_to_srng_id)(struct ath11k_hw_params *hw, int mac_id); }; +extern const struct ath11k_hw_ops ipq8074_ops; +extern const struct ath11k_hw_ops ipq6018_ops; +extern const struct ath11k_hw_ops qca6390_ops; + +extern const struct ath11k_hw_ring_mask ath11k_hw_ring_mask_ipq8074; +extern const struct ath11k_hw_ring_mask ath11k_hw_ring_mask_qca6390; + +static inline +int ath11k_hw_get_mac_from_pdev_id(struct ath11k_hw_params *hw, + int pdev_idx) +{ + if (hw->hw_ops->get_hw_mac_from_pdev_id) + return hw->hw_ops->get_hw_mac_from_pdev_id(pdev_idx); + + return 0; +} + +static inline int ath11k_hw_mac_id_to_pdev_id(struct ath11k_hw_params *hw, + int mac_id) +{ + if (hw->hw_ops->mac_id_to_pdev_id) + return hw->hw_ops->mac_id_to_pdev_id(hw, mac_id); + + return 0; +} + +static inline int ath11k_hw_mac_id_to_srng_id(struct ath11k_hw_params *hw, + int mac_id) +{ + if (hw->hw_ops->mac_id_to_srng_id) + return hw->hw_ops->mac_id_to_srng_id(hw, mac_id); + + return 0; +} + struct ath11k_fw_ie { __le32 id; __le32 len; - u8 data[0]; + u8 data[]; }; enum ath11k_bd_ie_board_type { @@ -124,4 +218,51 @@ ATH11K_BD_IE_BOARD_EXT = 1, }; +struct ath11k_hw_regs { + u32 hal_tcl1_ring_base_lsb; + u32 hal_tcl1_ring_base_msb; + u32 hal_tcl1_ring_id; + u32 hal_tcl1_ring_misc; + u32 hal_tcl1_ring_tp_addr_lsb; + u32 hal_tcl1_ring_tp_addr_msb; + u32 hal_tcl1_ring_consumer_int_setup_ix0; + u32 hal_tcl1_ring_consumer_int_setup_ix1; + u32 hal_tcl1_ring_msi1_base_lsb; + u32 hal_tcl1_ring_msi1_base_msb; + u32 hal_tcl1_ring_msi1_data; + u32 hal_tcl2_ring_base_lsb; + u32 hal_tcl_ring_base_lsb; + + u32 hal_tcl_status_ring_base_lsb; + + u32 hal_reo1_ring_base_lsb; + u32 hal_reo1_ring_base_msb; + u32 hal_reo1_ring_id; + u32 hal_reo1_ring_misc; + u32 hal_reo1_ring_hp_addr_lsb; + u32 hal_reo1_ring_hp_addr_msb; + u32 hal_reo1_ring_producer_int_setup; + u32 hal_reo1_ring_msi1_base_lsb; + u32 hal_reo1_ring_msi1_base_msb; + u32 hal_reo1_ring_msi1_data; + u32 hal_reo2_ring_base_lsb; + u32 hal_reo1_aging_thresh_ix_0; + u32 hal_reo1_aging_thresh_ix_1; + u32 hal_reo1_aging_thresh_ix_2; + u32 hal_reo1_aging_thresh_ix_3; + + u32 hal_reo1_ring_hp; + u32 hal_reo1_ring_tp; + u32 hal_reo2_ring_hp; + + u32 hal_reo_tcl_ring_base_lsb; + u32 hal_reo_tcl_ring_hp; + + u32 hal_reo_status_ring_base_lsb; + u32 hal_reo_status_hp; +}; + +extern const struct ath11k_hw_regs ipq8074_regs; +extern const struct ath11k_hw_regs qca6390_regs; + #endif only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/net/wireless/ath/ath11k/mac.c +++ linux-oem-5.6-5.6.0/drivers/net/wireless/ath/ath11k/mac.c @@ -14,6 +14,7 @@ #include "dp_rx.h" #include "testmode.h" #include "peer.h" +#include "debugfs_sta.h" #define CHAN2G(_channel, _freq, _flags) { \ .band = NL80211_BAND_2GHZ, \ @@ -33,6 +34,15 @@ .max_power = 30, \ } +#define CHAN6G(_channel, _freq, _flags) { \ + .band = NL80211_BAND_6GHZ, \ + .hw_value = (_channel), \ + .center_freq = (_freq), \ + .flags = (_flags), \ + .max_antenna_gain = 0, \ + .max_power = 30, \ +} + static const struct ieee80211_channel ath11k_2ghz_channels[] = { CHAN2G(1, 2412, 0), CHAN2G(2, 2417, 0), @@ -80,6 +90,68 @@ CHAN5G(173, 5865, 0), }; +static const struct ieee80211_channel ath11k_6ghz_channels[] = { + CHAN6G(1, 5955, 0), + CHAN6G(5, 5975, 0), + CHAN6G(9, 5995, 0), + CHAN6G(13, 6015, 0), + CHAN6G(17, 6035, 0), + CHAN6G(21, 6055, 0), + CHAN6G(25, 6075, 0), + CHAN6G(29, 6095, 0), + CHAN6G(33, 6115, 0), + CHAN6G(37, 6135, 0), + CHAN6G(41, 6155, 0), + CHAN6G(45, 6175, 0), + CHAN6G(49, 6195, 0), + CHAN6G(53, 6215, 0), + CHAN6G(57, 6235, 0), + CHAN6G(61, 6255, 0), + CHAN6G(65, 6275, 0), + CHAN6G(69, 6295, 0), + CHAN6G(73, 6315, 0), + CHAN6G(77, 6335, 0), + CHAN6G(81, 6355, 0), + CHAN6G(85, 6375, 0), + CHAN6G(89, 6395, 0), + CHAN6G(93, 6415, 0), + CHAN6G(97, 6435, 0), + CHAN6G(101, 6455, 0), + CHAN6G(105, 6475, 0), + CHAN6G(109, 6495, 0), + CHAN6G(113, 6515, 0), + CHAN6G(117, 6535, 0), + CHAN6G(121, 6555, 0), + CHAN6G(125, 6575, 0), + CHAN6G(129, 6595, 0), + CHAN6G(133, 6615, 0), + CHAN6G(137, 6635, 0), + CHAN6G(141, 6655, 0), + CHAN6G(145, 6675, 0), + CHAN6G(149, 6695, 0), + CHAN6G(153, 6715, 0), + CHAN6G(157, 6735, 0), + CHAN6G(161, 6755, 0), + CHAN6G(165, 6775, 0), + CHAN6G(169, 6795, 0), + CHAN6G(173, 6815, 0), + CHAN6G(177, 6835, 0), + CHAN6G(181, 6855, 0), + CHAN6G(185, 6875, 0), + CHAN6G(189, 6895, 0), + CHAN6G(193, 6915, 0), + CHAN6G(197, 6935, 0), + CHAN6G(201, 6955, 0), + CHAN6G(205, 6975, 0), + CHAN6G(209, 6995, 0), + CHAN6G(213, 7015, 0), + CHAN6G(217, 7035, 0), + CHAN6G(221, 7055, 0), + CHAN6G(225, 7075, 0), + CHAN6G(229, 7095, 0), + CHAN6G(233, 7115, 0), +}; + static struct ieee80211_rate ath11k_legacy_rates[] = { { .bitrate = 10, .hw_value = ATH11K_HW_RATE_CCK_LP_1M }, @@ -128,6 +200,17 @@ [NL80211_CHAN_WIDTH_160] = MODE_11AX_HE160, [NL80211_CHAN_WIDTH_80P80] = MODE_11AX_HE80_80, }, + [NL80211_BAND_6GHZ] = { + [NL80211_CHAN_WIDTH_5] = MODE_UNKNOWN, + [NL80211_CHAN_WIDTH_10] = MODE_UNKNOWN, + [NL80211_CHAN_WIDTH_20_NOHT] = MODE_11AX_HE20, + [NL80211_CHAN_WIDTH_20] = MODE_11AX_HE20, + [NL80211_CHAN_WIDTH_40] = MODE_11AX_HE40, + [NL80211_CHAN_WIDTH_80] = MODE_11AX_HE80, + [NL80211_CHAN_WIDTH_160] = MODE_11AX_HE160, + [NL80211_CHAN_WIDTH_80P80] = MODE_11AX_HE80_80, + }, + }; const struct htt_rx_ring_tlv_filter ath11k_mac_mon_status_filter_default = { @@ -156,6 +239,9 @@ [WLAN_HT_CAP_SM_PS_DISABLED] = WMI_PEER_SMPS_PS_NONE, }; +static int ath11k_start_vdev_delay(struct ieee80211_hw *hw, + struct ieee80211_vif *vif); + u8 ath11k_mac_bw_to_mac80211_bw(u8 bw) { u8 ret = 0; @@ -178,6 +264,22 @@ return ret; } +enum ath11k_supported_bw ath11k_mac_mac80211_bw_to_ath11k_bw(enum rate_info_bw bw) +{ + switch (bw) { + case RATE_INFO_BW_20: + return ATH11K_BW_20; + case RATE_INFO_BW_40: + return ATH11K_BW_40; + case RATE_INFO_BW_80: + return ATH11K_BW_80; + case RATE_INFO_BW_160: + return ATH11K_BW_160; + default: + return ATH11K_BW_20; + } +} + int ath11k_mac_hw_ratecode_to_legacy_rate(u8 hw_rc, u8 preamble, u8 *rateidx, u16 *rate) { @@ -369,8 +471,10 @@ flags, ath11k_get_arvif_iter, &arvif_iter); - if (!arvif_iter.arvif) + if (!arvif_iter.arvif) { + ath11k_warn(ar->ab, "No VIF found for vdev %d\n", vdev_id); return NULL; + } return arvif_iter.arvif; } @@ -398,14 +502,12 @@ { int i; struct ath11k_pdev *pdev; - struct ath11k_vif *arvif; for (i = 0; i < ab->num_radios; i++) { pdev = rcu_dereference(ab->pdevs_active[i]); if (pdev && pdev->ar) { - arvif = ath11k_mac_get_arvif(pdev->ar, vdev_id); - if (arvif) - return arvif->ar; + if (pdev->ar->allocated_vdev_map & (1LL << vdev_id)) + return pdev->ar; } } @@ -417,6 +519,11 @@ int i; struct ath11k_pdev *pdev; + if (ab->hw_params.single_pdev_only) { + pdev = rcu_dereference(ab->pdevs_active[0]); + return pdev ? pdev->ar : NULL; + } + if (WARN_ON(pdev_id > ab->num_radios)) return NULL; @@ -651,21 +758,12 @@ static int ath11k_mac_op_config(struct ieee80211_hw *hw, u32 changed) { - struct ath11k *ar = hw->priv; - int ret = 0; - /* mac80211 requires this op to be present and that's why * there's an empty function, this can be extended when * required. */ - mutex_lock(&ar->conf_mutex); - - /* TODO: Handle configuration changes as appropriate */ - - mutex_unlock(&ar->conf_mutex); - - return ret; + return 0; } static int ath11k_mac_setup_bcn_tmpl(struct ath11k_vif *arvif) @@ -676,6 +774,8 @@ struct ieee80211_vif *vif = arvif->vif; struct ieee80211_mutable_offsets offs = {}; struct sk_buff *bcn; + struct ieee80211_mgmt *mgmt; + u8 *ies; int ret; if (arvif->vdev_type != WMI_VDEV_TYPE_AP) @@ -687,6 +787,17 @@ return -EPERM; } + ies = bcn->data + ieee80211_get_hdrlen_from_skb(bcn); + ies += sizeof(mgmt->u.beacon); + + if (cfg80211_find_ie(WLAN_EID_RSN, ies, (skb_tail_pointer(bcn) - ies))) + arvif->rsnie_present = true; + + if (cfg80211_find_vendor_ie(WLAN_OUI_MICROSOFT, + WLAN_OUI_TYPE_MICROSOFT_WPA, + ies, (skb_tail_pointer(bcn) - ies))) + arvif->wpaie_present = true; + ret = ath11k_wmi_bcn_tmpl(ar, arvif->vdev_id, &offs, bcn); kfree_skb(bcn); @@ -776,6 +887,7 @@ struct ieee80211_bss_conf *info = &vif->bss_conf; struct cfg80211_chan_def def; struct cfg80211_bss *bss; + struct ath11k_vif *arvif = (struct ath11k_vif *)vif->drv_priv; const u8 *rsnie = NULL; const u8 *wpaie = NULL; @@ -786,7 +898,12 @@ bss = cfg80211_get_bss(ar->hw->wiphy, def.chan, info->bssid, NULL, 0, IEEE80211_BSS_TYPE_ANY, IEEE80211_PRIVACY_ANY); - if (bss) { + + if (arvif->rsnie_present || arvif->wpaie_present) { + arg->need_ptk_4_way = true; + if (arvif->wpaie_present) + arg->need_gtk_2_way = true; + } else if (bss) { const struct cfg80211_bss_ies *ies; rcu_read_lock(); @@ -1015,13 +1132,13 @@ idx_limit = -1; switch (idx_limit) { - case 0: /* fall through */ - case 1: /* fall through */ - case 2: /* fall through */ - case 3: /* fall through */ - case 4: /* fall through */ - case 5: /* fall through */ - case 6: /* fall through */ + case 0: + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: case 7: mcs = IEEE80211_VHT_MCS_SUPPORT_0_7; break; @@ -1033,7 +1150,7 @@ break; default: WARN_ON(1); - /* fall through */ + fallthrough; case -1: mcs = IEEE80211_VHT_MCS_NOT_SUPPORTED; break; @@ -1126,6 +1243,10 @@ arg->tx_mcs_set &= ~IEEE80211_VHT_MCS_SUPPORT_0_11_MASK; arg->tx_mcs_set |= IEEE80211_DISABLE_VHT_MCS_SUPPORT_0_11; + if ((arg->tx_mcs_set & IEEE80211_VHT_MCS_NOT_SUPPORTED) == + IEEE80211_VHT_MCS_NOT_SUPPORTED) + arg->peer_vht_caps &= ~IEEE80211_VHT_CAP_MU_BEAMFORMEE_CAPABLE; + /* TODO: Check */ arg->tx_max_mcs_nss = 0xFF; @@ -1141,6 +1262,7 @@ struct peer_assoc_params *arg) { const struct ieee80211_sta_he_cap *he_cap = &sta->he_cap; + u8 ampdu_factor; u16 v; if (!he_cap->has_he) @@ -1152,12 +1274,35 @@ sizeof(arg->peer_he_cap_macinfo)); memcpy(&arg->peer_he_cap_phyinfo, he_cap->he_cap_elem.phy_cap_info, sizeof(arg->peer_he_cap_phyinfo)); - memcpy(&arg->peer_he_ops, &vif->bss_conf.he_operation, - sizeof(arg->peer_he_ops)); + arg->peer_he_ops = vif->bss_conf.he_oper.params; /* the top most byte is used to indicate BSS color info */ arg->peer_he_ops &= 0xffffff; + /* As per section 26.6.1 11ax Draft5.0, if the Max AMPDU Exponent Extension + * in HE cap is zero, use the arg->peer_max_mpdu as calculated while parsing + * VHT caps(if VHT caps is present) or HT caps (if VHT caps is not present). + * + * For non-zero value of Max AMPDU Extponent Extension in HE MAC caps, + * if a HE STA sends VHT cap and HE cap IE in assoc request then, use + * MAX_AMPDU_LEN_FACTOR as 20 to calculate max_ampdu length. + * If a HE STA that does not send VHT cap, but HE and HT cap in assoc + * request, then use MAX_AMPDU_LEN_FACTOR as 16 to calculate max_ampdu + * length. + */ + ampdu_factor = (he_cap->he_cap_elem.mac_cap_info[3] & + IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_MASK) >> + IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_SHIFT; + + if (ampdu_factor) { + if (sta->vht_cap.vht_supported) + arg->peer_max_mpdu = (1 << (IEEE80211_HE_VHT_MAX_AMPDU_FACTOR + + ampdu_factor)) - 1; + else if (sta->ht_cap.ht_supported) + arg->peer_max_mpdu = (1 << (IEEE80211_HE_HT_MAX_AMPDU_FACTOR + + ampdu_factor)) - 1; + } + if (he_cap->he_cap_elem.phy_cap_info[6] & IEEE80211_HE_PHY_CAP6_PPE_THRESHOLD_PRESENT) { int bit = 7; @@ -1213,7 +1358,7 @@ arg->peer_he_tx_mcs_set[WMI_HECAP_TXRX_MCS_NSS_IDX_160] = v; arg->peer_he_mcs_count++; - /* fall through */ + fallthrough; default: v = le16_to_cpu(he_cap->he_mcs_nss_supp.rx_mcs_80); @@ -1464,6 +1609,7 @@ } break; case NL80211_BAND_5GHZ: + case NL80211_BAND_6GHZ: /* Check HE first */ if (sta->he_cap.has_he) { phymode = ath11k_mac_get_phymode_he(ar, sta); @@ -1940,6 +2086,31 @@ ath11k_wmi_send_obss_spr_cmd(ar, arvif->vdev_id, &info->he_obss_pd); + if (changed & BSS_CHANGED_HE_BSS_COLOR) { + if (vif->type == NL80211_IFTYPE_AP) { + ret = ath11k_wmi_send_obss_color_collision_cfg_cmd( + ar, arvif->vdev_id, info->he_bss_color.color, + ATH11K_BSS_COLOR_COLLISION_DETECTION_AP_PERIOD_MS, + info->he_bss_color.enabled); + if (ret) + ath11k_warn(ar->ab, "failed to set bss color collision on vdev %i: %d\n", + arvif->vdev_id, ret); + } else if (vif->type == NL80211_IFTYPE_STATION) { + ret = ath11k_wmi_send_bss_color_change_enable_cmd(ar, + arvif->vdev_id, + 1); + if (ret) + ath11k_warn(ar->ab, "failed to enable bss color change on vdev %i: %d\n", + arvif->vdev_id, ret); + ret = ath11k_wmi_send_obss_color_collision_cfg_cmd( + ar, arvif->vdev_id, 0, + ATH11K_BSS_COLOR_COLLISION_DETECTION_STA_PERIOD_MS, 1); + if (ret) + ath11k_warn(ar->ab, "failed to set bss color collision on vdev %i: %d\n", + arvif->vdev_id, ret); + } + } + mutex_unlock(&ar->conf_mutex); } @@ -1962,7 +2133,7 @@ } else if (ar->scan.roc_notify) { ieee80211_remain_on_channel_expired(ar->hw); } - /* fall through */ + fallthrough; case ATH11K_SCAN_STARTING: ar->scan.state = ATH11K_SCAN_IDLE; ar->scan_channel = NULL; @@ -2075,6 +2246,9 @@ lockdep_assert_held(&ar->conf_mutex); + if (ath11k_spectral_get_mode(ar) == ATH11K_SPECTRAL_BACKGROUND) + ath11k_spectral_reset_buffer(ar); + ret = ath11k_wmi_send_scan_start_cmd(ar, arg); if (ret) return ret; @@ -2217,6 +2391,9 @@ reinit_completion(&ar->install_key_done); + if (test_bit(ATH11K_FLAG_HW_CRYPTO_DISABLED, &ar->ab->dev_flags)) + return 0; + if (cmd == DISABLE_KEY) { /* TODO: Check if FW expects value other than NONE for del */ /* arg.key_cipher = WMI_CIPHER_NONE; */ @@ -2248,8 +2425,13 @@ return -EOPNOTSUPP; } + if (test_bit(ATH11K_FLAG_RAW_MODE, &ar->ab->dev_flags)) + key->flags |= IEEE80211_KEY_FLAG_GENERATE_IV | + IEEE80211_KEY_FLAG_RESERVE_TAILROOM; + install: ret = ath11k_wmi_vdev_install_key(arvif->ar, &arg); + if (ret) return ret; @@ -2309,6 +2491,7 @@ struct ath11k_base *ab = ar->ab; struct ath11k_vif *arvif = ath11k_vif_to_arvif(vif); struct ath11k_peer *peer; + struct ath11k_sta *arsta; const u8 *peer_addr; int ret = 0; u32 flags = 0; @@ -2320,6 +2503,9 @@ key->cipher == WLAN_CIPHER_SUITE_BIP_CMAC_256) return 1; + if (test_bit(ATH11K_FLAG_HW_CRYPTO_DISABLED, &ar->ab->dev_flags)) + return 1; + if (key->keyidx > WMI_MAX_KEY_INDEX) return -ENOSPC; @@ -2366,15 +2552,53 @@ goto exit; } + ret = ath11k_dp_peer_rx_pn_replay_config(arvif, peer_addr, cmd, key); + if (ret) { + ath11k_warn(ab, "failed to offload PN replay detection %d\n", ret); + goto exit; + } + spin_lock_bh(&ab->base_lock); peer = ath11k_peer_find(ab, arvif->vdev_id, peer_addr); - if (peer && cmd == SET_KEY) + if (peer && cmd == SET_KEY) { peer->keys[key->keyidx] = key; - else if (peer && cmd == DISABLE_KEY) + if (key->flags & IEEE80211_KEY_FLAG_PAIRWISE) { + peer->ucast_keyidx = key->keyidx; + peer->sec_type = ath11k_dp_tx_get_encrypt_type(key->cipher); + } else { + peer->mcast_keyidx = key->keyidx; + peer->sec_type_grp = ath11k_dp_tx_get_encrypt_type(key->cipher); + } + } else if (peer && cmd == DISABLE_KEY) { peer->keys[key->keyidx] = NULL; - else if (!peer) + if (key->flags & IEEE80211_KEY_FLAG_PAIRWISE) + peer->ucast_keyidx = 0; + else + peer->mcast_keyidx = 0; + } else if (!peer) /* impossible unless FW goes crazy */ ath11k_warn(ab, "peer %pM disappeared!\n", peer_addr); + + if (sta) { + arsta = (struct ath11k_sta *)sta->drv_priv; + + switch (key->cipher) { + case WLAN_CIPHER_SUITE_TKIP: + case WLAN_CIPHER_SUITE_CCMP: + case WLAN_CIPHER_SUITE_CCMP_256: + case WLAN_CIPHER_SUITE_GCMP: + case WLAN_CIPHER_SUITE_GCMP_256: + if (cmd == SET_KEY) + arsta->pn_type = HAL_PN_TYPE_WPA; + else + arsta->pn_type = HAL_PN_TYPE_NONE; + break; + default: + arsta->pn_type = HAL_PN_TYPE_NONE; + break; + } + } + spin_unlock_bh(&ab->base_lock); exit: @@ -2735,7 +2959,7 @@ ath11k_dbg(ab, ATH11K_DBG_MAC, "Added peer: %pM for VDEV: %d\n", sta->addr, arvif->vdev_id); - if (ath11k_debug_is_extd_tx_stats_enabled(ar)) { + if (ath11k_debugfs_is_extd_tx_stats_enabled(ar)) { arsta->tx_stats = kzalloc(sizeof(*arsta->tx_stats), GFP_KERNEL); if (!arsta->tx_stats) { ret = -ENOMEM; @@ -2761,6 +2985,15 @@ goto free_tx_stats; } + if (ab->hw_params.vdev_start_delay && + arvif->vdev_type != WMI_VDEV_TYPE_AP) { + ret = ath11k_start_vdev_delay(ar->hw, vif); + if (ret) { + ath11k_warn(ab, "failed to delay vdev start: %d\n", ret); + goto free_tx_stats; + } + } + return 0; free_tx_stats: @@ -2786,6 +3019,7 @@ struct ath11k *ar = hw->priv; struct ath11k_vif *arvif = ath11k_vif_to_arvif(vif); struct ath11k_sta *arsta = (struct ath11k_sta *)sta->drv_priv; + struct ath11k_peer *peer; int ret = 0; /* cancel must be done outside the mutex to avoid deadlock */ @@ -2818,6 +3052,17 @@ sta->addr, arvif->vdev_id); ath11k_mac_dec_num_stations(arvif, sta); + spin_lock_bh(&ar->ab->base_lock); + peer = ath11k_peer_find(ar->ab, arvif->vdev_id, sta->addr); + if (peer && peer->sta == sta) { + ath11k_warn(ar->ab, "Found peer entry %pM n vdev %i after it was supposedly removed\n", + vif->addr, arvif->vdev_id); + peer->sta = NULL; + list_del(&peer->list); + kfree(peer); + ar->num_peers--; + } + spin_unlock_bh(&ar->ab->base_lock); kfree(arsta->tx_stats); arsta->tx_stats = NULL; @@ -2833,10 +3078,6 @@ if (ret) ath11k_warn(ar->ab, "Failed to associate station: %pM\n", sta->addr); - else - ath11k_info(ar->ab, - "Station %pM moved to assoc state\n", - sta->addr); } else if (old_state == IEEE80211_STA_ASSOC && new_state == IEEE80211_STA_AUTH && (vif->type == NL80211_IFTYPE_AP || @@ -2846,10 +3087,6 @@ if (ret) ath11k_warn(ar->ab, "Failed to disassociate station: %pM\n", sta->addr); - else - ath11k_info(ar->ab, - "Station %pM moved to disassociated state\n", - sta->addr); } mutex_unlock(&ar->conf_mutex); @@ -3310,7 +3547,7 @@ rate_cap_rx_chainmask); } - if (cap->supported_bands & WMI_HOST_WLAN_5G_CAP) { + if (cap->supported_bands & WMI_HOST_WLAN_5G_CAP && !ar->supports_6ghz) { band = &ar->mac.sbands[NL80211_BAND_5GHZ]; ht_cap = cap->band[NL80211_BAND_5GHZ].ht_cap_info; if (ht_cap_info) @@ -3431,6 +3668,35 @@ he_cap_elem->phy_cap_info[9] &= ~m; } +static __le16 ath11k_mac_setup_he_6ghz_cap(struct ath11k_pdev_cap *pcap, + struct ath11k_band_cap *bcap) +{ + u8 val; + + bcap->he_6ghz_capa = IEEE80211_HT_MPDU_DENSITY_NONE; + if (bcap->ht_cap_info & WMI_HT_CAP_DYNAMIC_SMPS) + bcap->he_6ghz_capa |= + FIELD_PREP(IEEE80211_HE_6GHZ_CAP_SM_PS, + WLAN_HT_CAP_SM_PS_DYNAMIC); + else + bcap->he_6ghz_capa |= + FIELD_PREP(IEEE80211_HE_6GHZ_CAP_SM_PS, + WLAN_HT_CAP_SM_PS_DISABLED); + val = FIELD_GET(IEEE80211_VHT_CAP_MAX_A_MPDU_LENGTH_EXPONENT_MASK, + pcap->vht_cap); + bcap->he_6ghz_capa |= + FIELD_PREP(IEEE80211_HE_6GHZ_CAP_MAX_AMPDU_LEN_EXP, val); + val = FIELD_GET(IEEE80211_VHT_CAP_MAX_MPDU_MASK, pcap->vht_cap); + bcap->he_6ghz_capa |= + FIELD_PREP(IEEE80211_HE_6GHZ_CAP_MAX_MPDU_LEN, val); + if (pcap->vht_cap & IEEE80211_VHT_CAP_RX_ANTENNA_PATTERN) + bcap->he_6ghz_capa |= IEEE80211_HE_6GHZ_CAP_RX_ANTPAT_CONS; + if (pcap->vht_cap & IEEE80211_VHT_CAP_TX_ANTENNA_PATTERN) + bcap->he_6ghz_capa |= IEEE80211_HE_6GHZ_CAP_TX_ANTPAT_CONS; + + return cpu_to_le16(bcap->he_6ghz_capa); +} + static int ath11k_mac_copy_he_cap(struct ath11k *ar, struct ath11k_pdev_cap *cap, struct ieee80211_sband_iftype_data *data, @@ -3461,7 +3727,7 @@ memcpy(he_cap_elem->phy_cap_info, band_cap->he_cap_phy_info, sizeof(he_cap_elem->phy_cap_info)); - he_cap_elem->mac_cap_info[1] |= + he_cap_elem->mac_cap_info[1] &= IEEE80211_HE_MAC_CAP1_TF_MAC_PAD_DUR_MASK; he_cap_elem->phy_cap_info[4] &= ~IEEE80211_HE_PHY_CAP4_BEAMFORMEE_MAX_STS_UNDER_80MHZ_MASK; @@ -3477,6 +3743,8 @@ switch (i) { case NL80211_IFTYPE_AP: + he_cap_elem->phy_cap_info[3] &= + ~IEEE80211_HE_PHY_CAP3_DCM_MAX_CONST_TX_MASK; he_cap_elem->phy_cap_info[9] |= IEEE80211_HE_PHY_CAP9_RX_1024_QAM_LESS_THAN_242_TONE_RU; break; @@ -3511,6 +3779,11 @@ IEEE80211_HE_PHY_CAP6_PPE_THRESHOLD_PRESENT) ath11k_gen_ppe_thresh(&band_cap->he_ppet, he_cap->ppe_thres); + + if (band == NL80211_BAND_6GHZ) { + data[idx].he_6ghz_capa.capa = + ath11k_mac_setup_he_6ghz_cap(cap, band_cap); + } idx++; } @@ -3540,6 +3813,16 @@ band->iftype_data = ar->mac.iftype[NL80211_BAND_5GHZ]; band->n_iftype_data = count; } + + if (cap->supported_bands & WMI_HOST_WLAN_5G_CAP && + ar->supports_6ghz) { + count = ath11k_mac_copy_he_cap(ar, cap, + ar->mac.iftype[NL80211_BAND_6GHZ], + NL80211_BAND_6GHZ); + band = &ar->mac.sbands[NL80211_BAND_6GHZ]; + band->iftype_data = ar->mac.iftype[NL80211_BAND_6GHZ]; + band->n_iftype_data = count; + } } static int __ath11k_set_antenna(struct ath11k *ar, u32 tx_ant, u32 rx_ant) @@ -3590,10 +3873,10 @@ int ath11k_mac_tx_mgmt_pending_free(int buf_id, void *skb, void *ctx) { - struct ath11k *ar = ctx; - struct ath11k_base *ab = ar->ab; struct sk_buff *msdu = skb; struct ieee80211_tx_info *info; + struct ath11k *ar = ctx; + struct ath11k_base *ab = ar->ab; spin_lock_bh(&ar->txmgmt_idr_lock); idr_remove(&ar->txmgmt_idr, buf_id); @@ -3633,6 +3916,7 @@ { struct ath11k_base *ab = ar->ab; struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)skb->data; + struct ieee80211_tx_info *info; dma_addr_t paddr; int buf_id; int ret; @@ -3644,11 +3928,14 @@ if (buf_id < 0) return -ENOSPC; - if ((ieee80211_is_action(hdr->frame_control) || - ieee80211_is_deauth(hdr->frame_control) || - ieee80211_is_disassoc(hdr->frame_control)) && - ieee80211_has_protected(hdr->frame_control)) { - skb_put(skb, IEEE80211_CCMP_MIC_LEN); + info = IEEE80211_SKB_CB(skb); + if (!(info->flags & IEEE80211_TX_CTL_HW_80211_ENCAP)) { + if ((ieee80211_is_action(hdr->frame_control) || + ieee80211_is_deauth(hdr->frame_control) || + ieee80211_is_disassoc(hdr->frame_control)) && + ieee80211_has_protected(hdr->frame_control)) { + skb_put(skb, IEEE80211_CCMP_MIC_LEN); + } } paddr = dma_map_single(ab->dev, skb->data, skb->len, DMA_TO_DEVICE); @@ -3697,15 +3984,30 @@ while ((skb = skb_dequeue(&ar->wmi_mgmt_tx_queue)) != NULL) { info = IEEE80211_SKB_CB(skb); - arvif = ath11k_vif_to_arvif(info->control.vif); - - ret = ath11k_mac_mgmt_tx_wmi(ar, arvif, skb); - if (ret) { - ath11k_warn(ar->ab, "failed to transmit management frame %d\n", - ret); + if (!info->control.vif) { + ath11k_warn(ar->ab, "no vif found for mgmt frame, flags 0x%x\n", + info->control.flags); ieee80211_free_txskb(ar->hw, skb); + continue; + } + + arvif = ath11k_vif_to_arvif(info->control.vif); + if (ar->allocated_vdev_map & (1LL << arvif->vdev_id) && + arvif->is_started) { + ret = ath11k_mac_mgmt_tx_wmi(ar, arvif, skb); + if (ret) { + ath11k_warn(ar->ab, "failed to tx mgmt frame, vdev_id %d :%d\n", + arvif->vdev_id, ret); + ieee80211_free_txskb(ar->hw, skb); + } else { + atomic_inc(&ar->num_pending_mgmt_tx); + } } else { - atomic_inc(&ar->num_pending_mgmt_tx); + ath11k_warn(ar->ab, + "dropping mgmt frame for vdev %d, flags 0x%x is_started %d\n", + arvif->vdev_id, info->control.flags, + arvif->is_started); + ieee80211_free_txskb(ar->hw, skb); } } } @@ -3745,6 +4047,7 @@ struct ieee80211_tx_control *control, struct sk_buff *skb) { + struct ath11k_skb_cb *skb_cb = ATH11K_SKB_CB(skb); struct ath11k *ar = hw->priv; struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb); struct ieee80211_vif *vif = info->control.vif; @@ -3753,7 +4056,9 @@ bool is_prb_rsp; int ret; - if (ieee80211_is_mgmt(hdr->frame_control)) { + if (info->flags & IEEE80211_TX_CTL_HW_80211_ENCAP) { + skb_cb->flags |= ATH11K_SKB_HW_80211_ENCAP; + } else if (ieee80211_is_mgmt(hdr->frame_control)) { is_prb_rsp = ieee80211_is_probe_resp(hdr->frame_control); ret = ath11k_mac_mgmt_tx(ar, skb, is_prb_rsp); if (ret) { @@ -3783,16 +4088,29 @@ static int ath11k_mac_config_mon_status_default(struct ath11k *ar, bool enable) { struct htt_rx_ring_tlv_filter tlv_filter = {0}; + struct ath11k_base *ab = ar->ab; + int i, ret = 0; u32 ring_id; - if (enable) + if (enable) { tlv_filter = ath11k_mac_mon_status_filter_default; + tlv_filter.rx_filter = ath11k_debugfs_rx_filter(ar); + } - ring_id = ar->dp.rx_mon_status_refill_ring.refill_buf_ring.ring_id; + for (i = 0; i < ab->hw_params.num_rxmda_per_pdev; i++) { + ring_id = ar->dp.rx_mon_status_refill_ring[i].refill_buf_ring.ring_id; + ret = ath11k_dp_tx_htt_rx_filter_setup(ar->ab, ring_id, + ar->dp.mac_id + i, + HAL_RXDMA_MONITOR_STATUS, + DP_RX_BUFFER_SIZE, + &tlv_filter); + } + + if (enable && !ar->ab->hw_params.rxdma1_enable) + mod_timer(&ar->ab->mon_reap_timer, jiffies + + msecs_to_jiffies(ATH11K_MON_TIMER_INTERVAL)); - return ath11k_dp_tx_htt_rx_filter_setup(ar->ab, ring_id, ar->dp.mac_id, - HAL_RXDMA_MONITOR_STATUS, - DP_RX_BUFFER_SIZE, &tlv_filter); + return ret; } static int ath11k_mac_op_start(struct ieee80211_hw *hw) @@ -3874,6 +4192,7 @@ ar->num_started_vdevs = 0; ar->num_created_vdevs = 0; ar->num_peers = 0; + ar->allocated_vdev_map = 0; /* Configure monitor status ring with default rx_filter to get rx status * such as rssi, rx_duration. @@ -3885,11 +4204,23 @@ goto err; } + /* Configure the hash seed for hash based reo dest ring selection */ + ath11k_wmi_pdev_lro_cfg(ar, ar->pdev->pdev_id); + mutex_unlock(&ar->conf_mutex); rcu_assign_pointer(ab->pdevs_active[ar->pdev_idx], &ab->pdevs[ar->pdev_idx]); + /* allow device to enter IMPS */ + if (ab->hw_params.idle_ps) { + ret = ath11k_wmi_pdev_set_param(ar, WMI_PDEV_PARAM_IDLE_PS_CONFIG, + 1, pdev->pdev_id); + if (ret) { + ath11k_err(ab, "failed to enable idle ps: %d\n", ret); + goto err; + } + } return 0; err: @@ -3954,6 +4285,11 @@ params->chains[NL80211_BAND_5GHZ].tx = ar->num_tx_chains; params->chains[NL80211_BAND_5GHZ].rx = ar->num_rx_chains; } + if (pdev->cap.supported_bands & WMI_HOST_WLAN_5G_CAP && + ar->supports_6ghz) { + params->chains[NL80211_BAND_6GHZ].tx = ar->num_tx_chains; + params->chains[NL80211_BAND_6GHZ].rx = ar->num_rx_chains; + } } static u32 @@ -4019,6 +4355,37 @@ return ret; } +static void ath11k_mac_op_update_vif_offload(struct ieee80211_hw *hw, + struct ieee80211_vif *vif) +{ + struct ath11k *ar = hw->priv; + struct ath11k_base *ab = ar->ab; + struct ath11k_vif *arvif = ath11k_vif_to_arvif(vif); + u32 param_id, param_value; + int ret; + + param_id = WMI_VDEV_PARAM_TX_ENCAP_TYPE; + if (ath11k_frame_mode != ATH11K_HW_TXRX_ETHERNET || + (vif->type != NL80211_IFTYPE_STATION && + vif->type != NL80211_IFTYPE_AP)) + vif->offload_flags &= ~IEEE80211_OFFLOAD_ENCAP_ENABLED; + + if (vif->offload_flags & IEEE80211_OFFLOAD_ENCAP_ENABLED) + param_value = ATH11K_HW_TXRX_ETHERNET; + else if (test_bit(ATH11K_FLAG_RAW_MODE, &ab->dev_flags)) + param_value = ATH11K_HW_TXRX_RAW; + else + param_value = ATH11K_HW_TXRX_NATIVE_WIFI; + + ret = ath11k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, + param_id, param_value); + if (ret) { + ath11k_warn(ab, "failed to set vdev %d tx encap mode: %d\n", + arvif->vdev_id, ret); + vif->offload_flags &= ~IEEE80211_OFFLOAD_ENCAP_ENABLED; + } +} + static int ath11k_mac_op_add_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif) { @@ -4082,7 +4449,7 @@ break; case NL80211_IFTYPE_MESH_POINT: arvif->vdev_subtype = WMI_VDEV_SUBTYPE_MESH_11S; - /* fall through */ + fallthrough; case NL80211_IFTYPE_AP: arvif->vdev_type = WMI_VDEV_TYPE_AP; break; @@ -4112,21 +4479,16 @@ } ar->num_created_vdevs++; - + ath11k_dbg(ab, ATH11K_DBG_MAC, "vdev %pM created, vdev_id %d\n", + vif->addr, arvif->vdev_id); + ar->allocated_vdev_map |= 1LL << arvif->vdev_id; ab->free_vdev_map &= ~(1LL << arvif->vdev_id); + spin_lock_bh(&ar->data_lock); list_add(&arvif->list, &ar->arvifs); spin_unlock_bh(&ar->data_lock); - param_id = WMI_VDEV_PARAM_TX_ENCAP_TYPE; - param_value = ATH11K_HW_TXRX_NATIVE_WIFI; - ret = ath11k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, - param_id, param_value); - if (ret) { - ath11k_warn(ab, "failed to set vdev %d tx encap mode: %d\n", - arvif->vdev_id, ret); - goto err_vdev_del; - } + ath11k_mac_op_update_vif_offload(hw, vif); nss = get_num_chains(ar->cfg_tx_chainmask) ? : 1; ret = ath11k_wmi_vdev_set_param_cmd(ar, arvif->vdev_id, @@ -4220,13 +4582,28 @@ err_peer_del: if (arvif->vdev_type == WMI_VDEV_TYPE_AP) { + reinit_completion(&ar->peer_delete_done); + + ret = ath11k_wmi_send_peer_delete_cmd(ar, vif->addr, + arvif->vdev_id); + if (ret) { + ath11k_warn(ar->ab, "failed to delete peer vdev_id %d addr %pM\n", + arvif->vdev_id, vif->addr); + return ret; + } + + ret = ath11k_wait_for_peer_delete_done(ar, arvif->vdev_id, + vif->addr); + if (ret) + return ret; + ar->num_peers--; - ath11k_wmi_send_peer_delete_cmd(ar, vif->addr, arvif->vdev_id); } err_vdev_del: ath11k_wmi_vdev_delete(ar, arvif->vdev_id); ar->num_created_vdevs--; + ar->allocated_vdev_map &= ~(1LL << arvif->vdev_id); ab->free_vdev_map |= 1LL << arvif->vdev_id; spin_lock_bh(&ar->data_lock); list_del(&arvif->list); @@ -4255,6 +4632,7 @@ struct ath11k *ar = hw->priv; struct ath11k_vif *arvif = ath11k_vif_to_arvif(vif); struct ath11k_base *ab = ar->ab; + unsigned long time_left; int ret; int i; @@ -4263,11 +4641,6 @@ ath11k_dbg(ab, ATH11K_DBG_MAC, "mac remove interface (vdev %d)\n", arvif->vdev_id); - ab->free_vdev_map |= 1LL << (arvif->vdev_id); - spin_lock_bh(&ar->data_lock); - list_del(&arvif->list); - spin_unlock_bh(&ar->data_lock); - if (arvif->vdev_type == WMI_VDEV_TYPE_AP) { ret = ath11k_peer_delete(ar, arvif->vdev_id, vif->addr); if (ret) @@ -4275,13 +4648,34 @@ arvif->vdev_id, ret); } + reinit_completion(&ar->vdev_delete_done); + ret = ath11k_wmi_vdev_delete(ar, arvif->vdev_id); - if (ret) + if (ret) { ath11k_warn(ab, "failed to delete WMI vdev %d: %d\n", arvif->vdev_id, ret); + goto err_vdev_del; + } + time_left = wait_for_completion_timeout(&ar->vdev_delete_done, + ATH11K_VDEV_DELETE_TIMEOUT_HZ); + if (time_left == 0) { + ath11k_warn(ab, "Timeout in receiving vdev delete response\n"); + goto err_vdev_del; + } + + ab->free_vdev_map |= 1LL << (arvif->vdev_id); + ar->allocated_vdev_map &= ~(1LL << arvif->vdev_id); ar->num_created_vdevs--; + ath11k_dbg(ab, ATH11K_DBG_MAC, "vdev %pM deleted, vdev_id %d\n", + vif->addr, arvif->vdev_id); + +err_vdev_del: + spin_lock_bh(&ar->data_lock); + list_del(&arvif->list); + spin_unlock_bh(&ar->data_lock); + ath11k_peer_cleanup(ar, arvif->vdev_id); idr_for_each(&ar->txmgmt_idr, @@ -4341,6 +4735,10 @@ ath11k_warn(ar->ab, "fail to set monitor filter: %d\n", ret); } + ath11k_dbg(ar->ab, ATH11K_DBG_MAC, + "changed_flags:0x%x, total_flags:0x%x, reset_flag:%d\n", + changed_flags, *total_flags, reset_flag); + mutex_unlock(&ar->conf_mutex); } @@ -4544,6 +4942,8 @@ } ar->num_started_vdevs++; + ath11k_dbg(ab, ATH11K_DBG_MAC, "vdev %pM started, vdev_id %d\n", + arvif->vif->addr, arvif->vdev_id); /* Enable CAC Flag in the driver by checking the channel DFS cac time, * i.e dfs_cac_ms value which will be valid only for radar channels @@ -4602,6 +5002,8 @@ WARN_ON(ar->num_started_vdevs == 0); ar->num_started_vdevs--; + ath11k_dbg(ar->ab, ATH11K_DBG_MAC, "vdev %pM stopped, vdev_id %d\n", + arvif->vif->addr, arvif->vdev_id); if (test_bit(ATH11K_CAC_RUNNING, &ar->dev_flags)) { clear_bit(ATH11K_CAC_RUNNING, &ar->dev_flags); @@ -4800,6 +5202,39 @@ mutex_unlock(&ar->conf_mutex); } +static int ath11k_start_vdev_delay(struct ieee80211_hw *hw, + struct ieee80211_vif *vif) +{ + struct ath11k *ar = hw->priv; + struct ath11k_base *ab = ar->ab; + struct ath11k_vif *arvif = (void *)vif->drv_priv; + int ret; + + if (WARN_ON(arvif->is_started)) + return -EBUSY; + + ret = ath11k_mac_vdev_start(arvif, &arvif->chanctx.def); + if (ret) { + ath11k_warn(ab, "failed to start vdev %i addr %pM on freq %d: %d\n", + arvif->vdev_id, vif->addr, + arvif->chanctx.def.chan->center_freq, ret); + return ret; + } + + if (arvif->vdev_type == WMI_VDEV_TYPE_MONITOR) { + ret = ath11k_monitor_vdev_up(ar, arvif->vdev_id); + if (ret) { + ath11k_warn(ab, "failed put monitor up: %d\n", ret); + return ret; + } + } + + arvif->is_started = true; + + /* TODO: Setup ps and cts/rts protection */ + return 0; +} + static int ath11k_mac_op_assign_vif_chanctx(struct ieee80211_hw *hw, struct ieee80211_vif *vif, @@ -4809,6 +5244,7 @@ struct ath11k_base *ab = ar->ab; struct ath11k_vif *arvif = (void *)vif->drv_priv; int ret; + struct peer_create_params param; mutex_lock(&ar->conf_mutex); @@ -4816,11 +5252,27 @@ "mac chanctx assign ptr %pK vdev_id %i\n", ctx, arvif->vdev_id); + /* for QCA6390 bss peer must be created before vdev_start */ + if (ab->hw_params.vdev_start_delay && + arvif->vdev_type != WMI_VDEV_TYPE_AP && + arvif->vdev_type != WMI_VDEV_TYPE_MONITOR) { + memcpy(&arvif->chanctx, ctx, sizeof(*ctx)); + mutex_unlock(&ar->conf_mutex); + return 0; + } + if (WARN_ON(arvif->is_started)) { mutex_unlock(&ar->conf_mutex); return -EBUSY; } + if (ab->hw_params.vdev_start_delay) { + param.vdev_id = arvif->vdev_id; + param.peer_type = WMI_PEER_TYPE_DEFAULT; + param.peer_addr = ar->mac_addr; + ret = ath11k_peer_create(ar, arvif, NULL, ¶m); + } + ret = ath11k_mac_vdev_start(arvif, &ctx->def); if (ret) { ath11k_warn(ab, "failed to start vdev %i addr %pM on freq %d: %d\n", @@ -4866,6 +5318,11 @@ WARN_ON(!arvif->is_started); + if (ab->hw_params.vdev_start_delay && + arvif->vdev_type == WMI_VDEV_TYPE_MONITOR && + ath11k_peer_find_by_addr(ab, ar->mac_addr)) + ath11k_peer_delete(ar, arvif->vdev_id, ar->mac_addr); + ret = ath11k_mac_vdev_stop(arvif); if (ret) ath11k_warn(ab, "failed to stop vdev %i: %d\n", @@ -4873,6 +5330,10 @@ arvif->is_started = false; + if (ab->hw_params.vdev_start_delay && + arvif->vdev_type == WMI_VDEV_TYPE_MONITOR) + ath11k_wmi_vdev_down(ar, arvif->vdev_id); + mutex_unlock(&ar->conf_mutex); } @@ -5059,7 +5520,7 @@ rate_idx = ffs(mask->control[band].legacy) - 1; - if (band == NL80211_BAND_5GHZ) + if (band == NL80211_BAND_5GHZ || band == NL80211_BAND_6GHZ) rate_idx += ATH11K_MAC_FIRST_OFDM_RATE_IDX; hw_rate = ath11k_legacy_rates[rate_idx].hw_value; @@ -5441,6 +5902,7 @@ .reconfig_complete = ath11k_mac_op_reconfig_complete, .add_interface = ath11k_mac_op_add_interface, .remove_interface = ath11k_mac_op_remove_interface, + .update_vif_offload = ath11k_mac_op_update_vif_offload, .config = ath11k_mac_op_config, .bss_info_changed = ath11k_mac_op_bss_info_changed, .configure_filter = ath11k_mac_op_configure_filter, @@ -5468,39 +5930,10 @@ .sta_statistics = ath11k_mac_op_sta_statistics, CFG80211_TESTMODE_CMD(ath11k_tm_cmd) #ifdef CONFIG_ATH11K_DEBUGFS - .sta_add_debugfs = ath11k_sta_add_debugfs, + .sta_add_debugfs = ath11k_debugfs_sta_op_add, #endif }; -static const struct ieee80211_iface_limit ath11k_if_limits[] = { - { - .max = 1, - .types = BIT(NL80211_IFTYPE_STATION), - }, - { - .max = 16, - .types = BIT(NL80211_IFTYPE_AP) -#ifdef CONFIG_MAC80211_MESH - | BIT(NL80211_IFTYPE_MESH_POINT) -#endif - }, -}; - -static const struct ieee80211_iface_combination ath11k_if_comb[] = { - { - .limits = ath11k_if_limits, - .n_limits = ARRAY_SIZE(ath11k_if_limits), - .max_interfaces = 16, - .num_different_channels = 1, - .beacon_int_infra_match = true, - .beacon_int_min_gcd = 100, - .radar_detect_widths = BIT(NL80211_CHAN_WIDTH_20_NOHT) | - BIT(NL80211_CHAN_WIDTH_20) | - BIT(NL80211_CHAN_WIDTH_40) | - BIT(NL80211_CHAN_WIDTH_80), - }, -}; - static void ath11k_mac_update_ch_list(struct ath11k *ar, struct ieee80211_supported_band *band, u32 freq_low, u32 freq_high) @@ -5517,15 +5950,33 @@ } } +static u32 ath11k_get_phy_id(struct ath11k *ar, u32 band) +{ + struct ath11k_pdev *pdev = ar->pdev; + struct ath11k_pdev_cap *pdev_cap = &pdev->cap; + + if (band == WMI_HOST_WLAN_2G_CAP) + return pdev_cap->band[NL80211_BAND_2GHZ].phy_id; + + if (band == WMI_HOST_WLAN_5G_CAP) + return pdev_cap->band[NL80211_BAND_5GHZ].phy_id; + + ath11k_warn(ar->ab, "unsupported phy cap:%d\n", band); + + return 0; +} + static int ath11k_mac_setup_channels_rates(struct ath11k *ar, u32 supported_bands) { struct ieee80211_supported_band *band; struct ath11k_hal_reg_capabilities_ext *reg_cap; void *channels; + u32 phy_id; BUILD_BUG_ON((ARRAY_SIZE(ath11k_2ghz_channels) + - ARRAY_SIZE(ath11k_5ghz_channels)) != + ARRAY_SIZE(ath11k_5ghz_channels) + + ARRAY_SIZE(ath11k_6ghz_channels)) != ATH11K_NUM_CHANS); reg_cap = &ar->ab->hal_reg_cap[ar->pdev_idx]; @@ -5538,39 +5989,122 @@ return -ENOMEM; band = &ar->mac.sbands[NL80211_BAND_2GHZ]; + band->band = NL80211_BAND_2GHZ; band->n_channels = ARRAY_SIZE(ath11k_2ghz_channels); band->channels = channels; band->n_bitrates = ath11k_g_rates_size; band->bitrates = ath11k_g_rates; ar->hw->wiphy->bands[NL80211_BAND_2GHZ] = band; + + if (ar->ab->hw_params.single_pdev_only) { + phy_id = ath11k_get_phy_id(ar, WMI_HOST_WLAN_2G_CAP); + reg_cap = &ar->ab->hal_reg_cap[phy_id]; + } ath11k_mac_update_ch_list(ar, band, reg_cap->low_2ghz_chan, reg_cap->high_2ghz_chan); } if (supported_bands & WMI_HOST_WLAN_5G_CAP) { - channels = kmemdup(ath11k_5ghz_channels, - sizeof(ath11k_5ghz_channels), - GFP_KERNEL); - if (!channels) { - kfree(ar->mac.sbands[NL80211_BAND_2GHZ].channels); - return -ENOMEM; - } + if (reg_cap->high_5ghz_chan >= ATH11K_MAX_6G_FREQ) { + channels = kmemdup(ath11k_6ghz_channels, + sizeof(ath11k_6ghz_channels), GFP_KERNEL); + if (!channels) { + kfree(ar->mac.sbands[NL80211_BAND_2GHZ].channels); + return -ENOMEM; + } - band = &ar->mac.sbands[NL80211_BAND_5GHZ]; - band->n_channels = ARRAY_SIZE(ath11k_5ghz_channels); - band->channels = channels; - band->n_bitrates = ath11k_a_rates_size; - band->bitrates = ath11k_a_rates; - ar->hw->wiphy->bands[NL80211_BAND_5GHZ] = band; - ath11k_mac_update_ch_list(ar, band, - reg_cap->low_5ghz_chan, - reg_cap->high_5ghz_chan); + ar->supports_6ghz = true; + band = &ar->mac.sbands[NL80211_BAND_6GHZ]; + band->band = NL80211_BAND_6GHZ; + band->n_channels = ARRAY_SIZE(ath11k_6ghz_channels); + band->channels = channels; + band->n_bitrates = ath11k_a_rates_size; + band->bitrates = ath11k_a_rates; + ar->hw->wiphy->bands[NL80211_BAND_6GHZ] = band; + ath11k_mac_update_ch_list(ar, band, + reg_cap->low_5ghz_chan, + reg_cap->high_5ghz_chan); + } + + if (reg_cap->low_5ghz_chan < ATH11K_MIN_6G_FREQ) { + channels = kmemdup(ath11k_5ghz_channels, + sizeof(ath11k_5ghz_channels), + GFP_KERNEL); + if (!channels) { + kfree(ar->mac.sbands[NL80211_BAND_2GHZ].channels); + kfree(ar->mac.sbands[NL80211_BAND_6GHZ].channels); + return -ENOMEM; + } + + band = &ar->mac.sbands[NL80211_BAND_5GHZ]; + band->band = NL80211_BAND_5GHZ; + band->n_channels = ARRAY_SIZE(ath11k_5ghz_channels); + band->channels = channels; + band->n_bitrates = ath11k_a_rates_size; + band->bitrates = ath11k_a_rates; + ar->hw->wiphy->bands[NL80211_BAND_5GHZ] = band; + + if (ar->ab->hw_params.single_pdev_only) { + phy_id = ath11k_get_phy_id(ar, WMI_HOST_WLAN_5G_CAP); + reg_cap = &ar->ab->hal_reg_cap[phy_id]; + } + + ath11k_mac_update_ch_list(ar, band, + reg_cap->low_5ghz_chan, + reg_cap->high_5ghz_chan); + } } return 0; } +static int ath11k_mac_setup_iface_combinations(struct ath11k *ar) +{ + struct ath11k_base *ab = ar->ab; + struct ieee80211_iface_combination *combinations; + struct ieee80211_iface_limit *limits; + int n_limits; + + combinations = kzalloc(sizeof(*combinations), GFP_KERNEL); + if (!combinations) + return -ENOMEM; + + n_limits = 2; + + limits = kcalloc(n_limits, sizeof(*limits), GFP_KERNEL); + if (!limits) { + kfree(combinations); + return -ENOMEM; + } + + limits[0].max = 1; + limits[0].types |= BIT(NL80211_IFTYPE_STATION); + + limits[1].max = 16; + limits[1].types |= BIT(NL80211_IFTYPE_AP); + + if (IS_ENABLED(CONFIG_MAC80211_MESH) && + ab->hw_params.interface_modes & BIT(NL80211_IFTYPE_MESH_POINT)) + limits[1].types |= BIT(NL80211_IFTYPE_MESH_POINT); + + combinations[0].limits = limits; + combinations[0].n_limits = n_limits; + combinations[0].max_interfaces = 16; + combinations[0].num_different_channels = 1; + combinations[0].beacon_int_infra_match = true; + combinations[0].beacon_int_min_gcd = 100; + combinations[0].radar_detect_widths = BIT(NL80211_CHAN_WIDTH_20_NOHT) | + BIT(NL80211_CHAN_WIDTH_20) | + BIT(NL80211_CHAN_WIDTH_40) | + BIT(NL80211_CHAN_WIDTH_80); + + ar->hw->wiphy->iface_combinations = combinations; + ar->hw->wiphy->n_iface_combinations = 1; + + return 0; +} + static const u8 ath11k_if_types_ext_capa[] = { [0] = WLAN_EXT_CAPA1_EXT_CHANNEL_SWITCHING, [7] = WLAN_EXT_CAPA8_OPMODE_NOTIF, @@ -5619,6 +6153,10 @@ kfree(ar->mac.sbands[NL80211_BAND_2GHZ].channels); kfree(ar->mac.sbands[NL80211_BAND_5GHZ].channels); + kfree(ar->mac.sbands[NL80211_BAND_6GHZ].channels); + + kfree(ar->hw->wiphy->iface_combinations[0].limits); + kfree(ar->hw->wiphy->iface_combinations); SET_IEEE80211_DEV(ar->hw, NULL); } @@ -5666,17 +6204,21 @@ ret = ath11k_mac_setup_channels_rates(ar, cap->supported_bands); if (ret) - goto err_free; + goto err; ath11k_mac_setup_ht_vht_cap(ar, cap, &ht_cap); ath11k_mac_setup_he_cap(ar, cap); + ret = ath11k_mac_setup_iface_combinations(ar); + if (ret) { + ath11k_err(ar->ab, "failed to setup interface combinations: %d\n", ret); + goto err_free_channels; + } + ar->hw->wiphy->available_antennas_rx = cap->rx_chain_mask; ar->hw->wiphy->available_antennas_tx = cap->tx_chain_mask; - ar->hw->wiphy->interface_modes = BIT(NL80211_IFTYPE_STATION) | - BIT(NL80211_IFTYPE_AP) | - BIT(NL80211_IFTYPE_MESH_POINT); + ar->hw->wiphy->interface_modes = ab->hw_params.interface_modes; ieee80211_hw_set(ar->hw, SIGNAL_DBM); ieee80211_hw_set(ar->hw, SUPPORTS_PS); @@ -5686,7 +6228,6 @@ ieee80211_hw_set(ar->hw, HAS_RATE_CONTROL); ieee80211_hw_set(ar->hw, AP_LINK_PS); ieee80211_hw_set(ar->hw, SPECTRUM_MGMT); - ieee80211_hw_set(ar->hw, SUPPORT_FAST_XMIT); ieee80211_hw_set(ar->hw, CONNECTION_MONITOR); ieee80211_hw_set(ar->hw, SUPPORTS_PER_STA_GTK); ieee80211_hw_set(ar->hw, WANT_MONITOR_VIF); @@ -5694,11 +6235,13 @@ ieee80211_hw_set(ar->hw, QUEUE_CONTROL); ieee80211_hw_set(ar->hw, SUPPORTS_TX_FRAG); ieee80211_hw_set(ar->hw, REPORTS_LOW_ACK); + ieee80211_hw_set(ar->hw, SUPPORTS_TX_ENCAP_OFFLOAD); if (ht_cap & WMI_HT_CAP_ENABLED) { ieee80211_hw_set(ar->hw, AMPDU_AGGREGATION); ieee80211_hw_set(ar->hw, TX_AMPDU_SETUP_IN_HW); ieee80211_hw_set(ar->hw, SUPPORTS_REORDERING_BUFFER); ieee80211_hw_set(ar->hw, SUPPORTS_AMSDU_IN_AMPDU); + ieee80211_hw_set(ar->hw, USES_RSS); } ar->hw->wiphy->features |= NL80211_FEATURE_STATIC_SMPS; @@ -5730,15 +6273,13 @@ ar->hw->wiphy->max_ap_assoc_sta = ar->max_num_stations; ar->hw->queues = ATH11K_HW_MAX_QUEUES; + ar->hw->wiphy->tx_queue_len = ATH11K_QUEUE_LEN; ar->hw->offchannel_tx_hw_queue = ATH11K_HW_MAX_QUEUES - 1; ar->hw->max_rx_aggregation_subframes = IEEE80211_MAX_AMPDU_BUF; ar->hw->vif_data_size = sizeof(struct ath11k_vif); ar->hw->sta_data_size = sizeof(struct ath11k_sta); - ar->hw->wiphy->iface_combinations = ath11k_if_comb; - ar->hw->wiphy->n_iface_combinations = ARRAY_SIZE(ath11k_if_comb); - wiphy_ext_feature_set(ar->hw->wiphy, NL80211_EXT_FEATURE_CQM_RSSI_LIST); wiphy_ext_feature_set(ar->hw->wiphy, NL80211_EXT_FEATURE_STA_TX_PWR); @@ -5751,34 +6292,51 @@ ath11k_reg_init(ar); - /* advertise HW checksum offload capabilities */ - ar->hw->netdev_features = NETIF_F_HW_CSUM; + if (!test_bit(ATH11K_FLAG_RAW_MODE, &ab->dev_flags)) { + ar->hw->netdev_features = NETIF_F_HW_CSUM; + ieee80211_hw_set(ar->hw, SW_CRYPTO_CONTROL); + ieee80211_hw_set(ar->hw, SUPPORT_FAST_XMIT); + } ret = ieee80211_register_hw(ar->hw); if (ret) { ath11k_err(ar->ab, "ieee80211 registration failed: %d\n", ret); - goto err_free; + goto err_free_if_combs; } + if (!ab->hw_params.supports_monitor) + /* There's a race between calling ieee80211_register_hw() + * and here where the monitor mode is enabled for a little + * while. But that time is so short and in practise it make + * a difference in real life. + */ + ar->hw->wiphy->interface_modes &= ~BIT(NL80211_IFTYPE_MONITOR); + /* Apply the regd received during initialization */ ret = ath11k_regd_update(ar, true); if (ret) { ath11k_err(ar->ab, "ath11k regd update failed: %d\n", ret); - goto err_free; + goto err_free_if_combs; } - ret = ath11k_debug_register(ar); + ret = ath11k_debugfs_register(ar); if (ret) { ath11k_err(ar->ab, "debugfs registration failed: %d\n", ret); - goto err_free; + goto err_free_if_combs; } return 0; -err_free: +err_free_if_combs: + kfree(ar->hw->wiphy->iface_combinations[0].limits); + kfree(ar->hw->wiphy->iface_combinations); + +err_free_channels: kfree(ar->mac.sbands[NL80211_BAND_2GHZ].channels); kfree(ar->mac.sbands[NL80211_BAND_5GHZ].channels); + kfree(ar->mac.sbands[NL80211_BAND_6GHZ].channels); +err: SET_IEEE80211_DEV(ar->hw, NULL); return ret; } @@ -5790,6 +6348,9 @@ int i; int ret; + if (test_bit(ATH11K_FLAG_REGISTERED, &ab->dev_flags)) + return 0; + for (i = 0; i < ab->num_radios; i++) { pdev = &ab->pdevs[i]; ar = pdev->ar; @@ -5849,7 +6410,7 @@ ar->ab = ab; ar->pdev = pdev; ar->pdev_idx = i; - ar->lmac_id = ath11k_core_get_hw_mac_id(ab, i); + ar->lmac_id = ath11k_hw_get_mac_from_pdev_id(&ab->hw_params, i); ar->wmi = &ab->wmi_ab.wmi[i]; /* FIXME wmi[0] is already initialized during attach, @@ -5868,11 +6429,17 @@ INIT_LIST_HEAD(&ar->ppdu_stats_info); mutex_init(&ar->conf_mutex); init_completion(&ar->vdev_setup_done); + init_completion(&ar->vdev_delete_done); init_completion(&ar->peer_assoc_done); + init_completion(&ar->peer_delete_done); init_completion(&ar->install_key_done); init_completion(&ar->bss_survey_done); init_completion(&ar->scan.started); init_completion(&ar->scan.completed); + init_completion(&ar->thermal.wmi_sync); + init_completion(&ar->target_suspend); + init_completion(&ar->wow.wakeup_completed); + INIT_DELAYED_WORK(&ar->scan.timeout, ath11k_scan_timeout_work); INIT_WORK(&ar->regd_update_work, ath11k_regd_update_work); @@ -5905,3 +6472,29 @@ pdev->ar = NULL; } } + +int ath11k_purge_rx_pktlog(struct ath11k *ar, bool stop_timer) +{ + int ret; + + /* stop timer */ + if (stop_timer) + del_timer_sync(&ar->ab->mon_reap_timer); + + /* reap all the monitor related rings */ + ret = ath11k_dp_purge_mon_ring(ar->ab); + if (ret) + ath11k_warn(ar->ab, + "failed to purge mon_buf ring %d\n", ret); + + return ret; +} + +int ath11k_enable_rx_pktlog(struct ath11k *ar) +{ + /* start reap timer */ + mod_timer(&ar->ab->mon_reap_timer, jiffies + + msecs_to_jiffies(ATH11K_MON_TIMER_INTERVAL)); + + return 0; +} only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/net/wireless/ath/ath11k/mac.h +++ linux-oem-5.6-5.6.0/drivers/net/wireless/ath/ath11k/mac.h @@ -144,4 +144,8 @@ void ath11k_mac_peer_cleanup_all(struct ath11k *ar); int ath11k_mac_tx_mgmt_pending_free(int buf_id, void *skb, void *ctx); u8 ath11k_mac_bw_to_mac80211_bw(u8 bw); +enum ath11k_supported_bw ath11k_mac_mac80211_bw_to_ath11k_bw(enum rate_info_bw bw); +enum hal_encrypt_type ath11k_dp_tx_get_encrypt_type(u32 cipher); +int ath11k_purge_rx_pktlog(struct ath11k *ar, bool stop_timer); +int ath11k_enable_rx_pktlog(struct ath11k *ar); #endif only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/net/wireless/ath/ath11k/mhi.c +++ linux-oem-5.6-5.6.0/drivers/net/wireless/ath/ath11k/mhi.c @@ -0,0 +1,500 @@ +// SPDX-License-Identifier: BSD-3-Clause-Clear +/* Copyright (c) 2020 The Linux Foundation. All rights reserved. */ + +#include +#include + +#include "core.h" +#include "debug.h" +#include "mhi.h" + +#define MHI_TIMEOUT_DEFAULT_MS 90000 + +static struct mhi_channel_config ath11k_mhi_channels[] = { + { + .num = 0, + .name = "LOOPBACK", + .num_elements = 32, + .event_ring = 0, + .dir = DMA_TO_DEVICE, + .ee_mask = 0x4, + .pollcfg = 0, + .doorbell = MHI_DB_BRST_DISABLE, + .lpm_notify = false, + .offload_channel = false, + .doorbell_mode_switch = false, + .auto_queue = false, + .auto_start = false, + }, + { + .num = 1, + .name = "LOOPBACK", + .num_elements = 32, + .event_ring = 0, + .dir = DMA_FROM_DEVICE, + .ee_mask = 0x4, + .pollcfg = 0, + .doorbell = MHI_DB_BRST_DISABLE, + .lpm_notify = false, + .offload_channel = false, + .doorbell_mode_switch = false, + .auto_queue = false, + .auto_start = false, + }, + { + .num = 20, + .name = "IPCR", + .num_elements = 64, + .event_ring = 1, + .dir = DMA_TO_DEVICE, + .ee_mask = 0x4, + .pollcfg = 0, + .doorbell = MHI_DB_BRST_DISABLE, + .lpm_notify = false, + .offload_channel = false, + .doorbell_mode_switch = false, + .auto_queue = false, + .auto_start = true, + }, + { + .num = 21, + .name = "IPCR", + .num_elements = 64, + .event_ring = 1, + .dir = DMA_FROM_DEVICE, + .ee_mask = 0x4, + .pollcfg = 0, + .doorbell = MHI_DB_BRST_DISABLE, + .lpm_notify = false, + .offload_channel = false, + .doorbell_mode_switch = false, + .auto_queue = true, + .auto_start = true, + }, +}; + +static struct mhi_event_config ath11k_mhi_events[] = { + { + .num_elements = 32, + .irq_moderation_ms = 0, + .irq = 1, + .mode = MHI_DB_BRST_DISABLE, + .data_type = MHI_ER_CTRL, + .hardware_event = false, + .client_managed = false, + .offload_channel = false, + }, + { + .num_elements = 256, + .irq_moderation_ms = 1, + .irq = 2, + .mode = MHI_DB_BRST_DISABLE, + .priority = 1, + .hardware_event = false, + .client_managed = false, + .offload_channel = false, + }, +}; + +static struct mhi_controller_config ath11k_mhi_config = { + .max_channels = 128, + .timeout_ms = 2000, + .use_bounce_buf = false, + .buf_len = 0, + .num_channels = ARRAY_SIZE(ath11k_mhi_channels), + .ch_cfg = ath11k_mhi_channels, + .num_events = ARRAY_SIZE(ath11k_mhi_events), + .event_cfg = ath11k_mhi_events, +}; + +void ath11k_mhi_set_mhictrl_reset(struct ath11k_base *ab) +{ + u32 val; + + val = ath11k_pci_read32(ab, MHISTATUS); + + ath11k_dbg(ab, ATH11K_DBG_PCI, "MHISTATUS 0x%x\n", val); + + /* Observed on QCA6390 that after SOC_GLOBAL_RESET, MHISTATUS + * has SYSERR bit set and thus need to set MHICTRL_RESET + * to clear SYSERR. + */ + ath11k_pci_write32(ab, MHICTRL, MHICTRL_RESET_MASK); + + mdelay(10); +} + +static void ath11k_mhi_reset_txvecdb(struct ath11k_base *ab) +{ + ath11k_pci_write32(ab, PCIE_TXVECDB, 0); +} + +static void ath11k_mhi_reset_txvecstatus(struct ath11k_base *ab) +{ + ath11k_pci_write32(ab, PCIE_TXVECSTATUS, 0); +} + +static void ath11k_mhi_reset_rxvecdb(struct ath11k_base *ab) +{ + ath11k_pci_write32(ab, PCIE_RXVECDB, 0); +} + +static void ath11k_mhi_reset_rxvecstatus(struct ath11k_base *ab) +{ + ath11k_pci_write32(ab, PCIE_RXVECSTATUS, 0); +} + +void ath11k_mhi_clear_vector(struct ath11k_base *ab) +{ + ath11k_mhi_reset_txvecdb(ab); + ath11k_mhi_reset_txvecstatus(ab); + ath11k_mhi_reset_rxvecdb(ab); + ath11k_mhi_reset_rxvecstatus(ab); +} + +static int ath11k_mhi_get_msi(struct ath11k_pci *ab_pci) +{ + struct ath11k_base *ab = ab_pci->ab; + u32 user_base_data, base_vector; + u32 vectors_32_capability; + int ret, num_vectors, i; + int *irq; + unsigned int msi_data; + + ret = ath11k_pci_get_user_msi_assignment(ab_pci, + "MHI", &num_vectors, + &user_base_data, &base_vector); + if (ret) + return ret; + vectors_32_capability = ab_pci->vectors_32_capability; + + ath11k_dbg(ab, ATH11K_DBG_PCI, "Number of assigned MSI for MHI is %d, base vector is %d\n", + num_vectors, base_vector); + + irq = kcalloc(num_vectors, sizeof(int), GFP_KERNEL); + if (!irq) + return -ENOMEM; + + for (i = 0; i < num_vectors; i++) { + msi_data = vectors_32_capability ? + i + base_vector : base_vector; + + irq[i] = ath11k_pci_get_msi_irq(ab->dev, + msi_data); + } + + ab_pci->mhi_ctrl->irq = irq; + ab_pci->mhi_ctrl->nr_irqs = num_vectors; + + return 0; +} + +static int ath11k_mhi_op_runtime_get(struct mhi_controller *mhi_cntrl) +{ + return 0; +} + +static void ath11k_mhi_op_runtime_put(struct mhi_controller *mhi_cntrl) +{ +} + +static void ath11k_mhi_op_status_cb(struct mhi_controller *mhi_cntrl, + enum mhi_callback cb) +{ + struct ath11k_base *ab = dev_get_drvdata(mhi_cntrl->cntrl_dev); + + switch (cb) { + case MHI_CB_SYS_ERROR: + ath11k_warn(ab, "firmware crashed: MHI_CB_SYS_ERROR\n"); + break; + default: + break; + } +} + +static int ath11k_mhi_op_read_reg(struct mhi_controller *mhi_cntrl, + void __iomem *addr, + u32 *out) +{ + *out = readl(addr); + + return 0; +} + +static void ath11k_mhi_op_write_reg(struct mhi_controller *mhi_cntrl, + void __iomem *addr, + u32 val) +{ + writel(val, addr); +} + +int ath11k_mhi_register(struct ath11k_pci *ab_pci) +{ + struct ath11k_base *ab = ab_pci->ab; + struct mhi_controller *mhi_ctrl; + int ret; + + mhi_ctrl = kzalloc(sizeof(*mhi_ctrl), GFP_KERNEL); + if (!mhi_ctrl) + return -ENOMEM; + + ath11k_core_create_firmware_path(ab, ATH11K_AMSS_FILE, + ab_pci->amss_path, + sizeof(ab_pci->amss_path)); + + ab_pci->mhi_ctrl = mhi_ctrl; + mhi_ctrl->cntrl_dev = ab->dev; + mhi_ctrl->fw_image = ab_pci->amss_path; + mhi_ctrl->regs = ab->mem; + + ret = ath11k_mhi_get_msi(ab_pci); + if (ret) { + ath11k_err(ab, "failed to get msi for mhi\n"); + kfree(mhi_ctrl); + return ret; + } + + mhi_ctrl->iova_start = 0; + mhi_ctrl->iova_stop = 0xffffffff; + mhi_ctrl->sbl_size = SZ_512K; + mhi_ctrl->seg_len = SZ_512K; + mhi_ctrl->fbc_download = true; + mhi_ctrl->runtime_get = ath11k_mhi_op_runtime_get; + mhi_ctrl->runtime_put = ath11k_mhi_op_runtime_put; + mhi_ctrl->status_cb = ath11k_mhi_op_status_cb; + mhi_ctrl->read_reg = ath11k_mhi_op_read_reg; + mhi_ctrl->write_reg = ath11k_mhi_op_write_reg; + + ret = mhi_register_controller(mhi_ctrl, &ath11k_mhi_config); + if (ret) { + ath11k_err(ab, "failed to register to mhi bus, err = %d\n", ret); + kfree(mhi_ctrl); + return ret; + } + + return 0; +} + +void ath11k_mhi_unregister(struct ath11k_pci *ab_pci) +{ + struct mhi_controller *mhi_ctrl = ab_pci->mhi_ctrl; + + mhi_unregister_controller(mhi_ctrl); + kfree(mhi_ctrl->irq); +} + +static char *ath11k_mhi_state_to_str(enum ath11k_mhi_state mhi_state) +{ + switch (mhi_state) { + case ATH11K_MHI_INIT: + return "INIT"; + case ATH11K_MHI_DEINIT: + return "DEINIT"; + case ATH11K_MHI_POWER_ON: + return "POWER_ON"; + case ATH11K_MHI_POWER_OFF: + return "POWER_OFF"; + case ATH11K_MHI_FORCE_POWER_OFF: + return "FORCE_POWER_OFF"; + case ATH11K_MHI_SUSPEND: + return "SUSPEND"; + case ATH11K_MHI_RESUME: + return "RESUME"; + case ATH11K_MHI_TRIGGER_RDDM: + return "TRIGGER_RDDM"; + case ATH11K_MHI_RDDM_DONE: + return "RDDM_DONE"; + default: + return "UNKNOWN"; + } +}; + +static void ath11k_mhi_set_state_bit(struct ath11k_pci *ab_pci, + enum ath11k_mhi_state mhi_state) +{ + struct ath11k_base *ab = ab_pci->ab; + + switch (mhi_state) { + case ATH11K_MHI_INIT: + set_bit(ATH11K_MHI_INIT, &ab_pci->mhi_state); + break; + case ATH11K_MHI_DEINIT: + clear_bit(ATH11K_MHI_INIT, &ab_pci->mhi_state); + break; + case ATH11K_MHI_POWER_ON: + set_bit(ATH11K_MHI_POWER_ON, &ab_pci->mhi_state); + break; + case ATH11K_MHI_POWER_OFF: + case ATH11K_MHI_FORCE_POWER_OFF: + clear_bit(ATH11K_MHI_POWER_ON, &ab_pci->mhi_state); + clear_bit(ATH11K_MHI_TRIGGER_RDDM, &ab_pci->mhi_state); + clear_bit(ATH11K_MHI_RDDM_DONE, &ab_pci->mhi_state); + break; + case ATH11K_MHI_SUSPEND: + set_bit(ATH11K_MHI_SUSPEND, &ab_pci->mhi_state); + break; + case ATH11K_MHI_RESUME: + clear_bit(ATH11K_MHI_SUSPEND, &ab_pci->mhi_state); + break; + case ATH11K_MHI_TRIGGER_RDDM: + set_bit(ATH11K_MHI_TRIGGER_RDDM, &ab_pci->mhi_state); + break; + case ATH11K_MHI_RDDM_DONE: + set_bit(ATH11K_MHI_RDDM_DONE, &ab_pci->mhi_state); + break; + default: + ath11k_err(ab, "unhandled mhi state (%d)\n", mhi_state); + } +} + +static int ath11k_mhi_check_state_bit(struct ath11k_pci *ab_pci, + enum ath11k_mhi_state mhi_state) +{ + struct ath11k_base *ab = ab_pci->ab; + + switch (mhi_state) { + case ATH11K_MHI_INIT: + if (!test_bit(ATH11K_MHI_INIT, &ab_pci->mhi_state)) + return 0; + break; + case ATH11K_MHI_DEINIT: + case ATH11K_MHI_POWER_ON: + if (test_bit(ATH11K_MHI_INIT, &ab_pci->mhi_state) && + !test_bit(ATH11K_MHI_POWER_ON, &ab_pci->mhi_state)) + return 0; + break; + case ATH11K_MHI_FORCE_POWER_OFF: + if (test_bit(ATH11K_MHI_POWER_ON, &ab_pci->mhi_state)) + return 0; + break; + case ATH11K_MHI_POWER_OFF: + case ATH11K_MHI_SUSPEND: + if (test_bit(ATH11K_MHI_POWER_ON, &ab_pci->mhi_state) && + !test_bit(ATH11K_MHI_SUSPEND, &ab_pci->mhi_state)) + return 0; + break; + case ATH11K_MHI_RESUME: + if (test_bit(ATH11K_MHI_SUSPEND, &ab_pci->mhi_state)) + return 0; + break; + case ATH11K_MHI_TRIGGER_RDDM: + if (test_bit(ATH11K_MHI_POWER_ON, &ab_pci->mhi_state) && + !test_bit(ATH11K_MHI_TRIGGER_RDDM, &ab_pci->mhi_state)) + return 0; + break; + case ATH11K_MHI_RDDM_DONE: + return 0; + default: + ath11k_err(ab, "unhandled mhi state: %s(%d)\n", + ath11k_mhi_state_to_str(mhi_state), mhi_state); + } + + ath11k_err(ab, "failed to set mhi state %s(%d) in current mhi state (0x%lx)\n", + ath11k_mhi_state_to_str(mhi_state), mhi_state, + ab_pci->mhi_state); + + return -EINVAL; +} + +static int ath11k_mhi_set_state(struct ath11k_pci *ab_pci, + enum ath11k_mhi_state mhi_state) +{ + struct ath11k_base *ab = ab_pci->ab; + int ret; + + ret = ath11k_mhi_check_state_bit(ab_pci, mhi_state); + if (ret) + goto out; + + ath11k_dbg(ab, ATH11K_DBG_PCI, "setting mhi state: %s(%d)\n", + ath11k_mhi_state_to_str(mhi_state), mhi_state); + + switch (mhi_state) { + case ATH11K_MHI_INIT: + ret = mhi_prepare_for_power_up(ab_pci->mhi_ctrl); + break; + case ATH11K_MHI_DEINIT: + mhi_unprepare_after_power_down(ab_pci->mhi_ctrl); + ret = 0; + break; + case ATH11K_MHI_POWER_ON: + ret = mhi_async_power_up(ab_pci->mhi_ctrl); + break; + case ATH11K_MHI_POWER_OFF: + mhi_power_down(ab_pci->mhi_ctrl, true); + ret = 0; + break; + case ATH11K_MHI_FORCE_POWER_OFF: + mhi_power_down(ab_pci->mhi_ctrl, false); + ret = 0; + break; + case ATH11K_MHI_SUSPEND: + ret = mhi_pm_suspend(ab_pci->mhi_ctrl); + break; + case ATH11K_MHI_RESUME: + ret = mhi_pm_resume(ab_pci->mhi_ctrl); + break; + case ATH11K_MHI_TRIGGER_RDDM: + ret = mhi_force_rddm_mode(ab_pci->mhi_ctrl); + break; + case ATH11K_MHI_RDDM_DONE: + break; + default: + ath11k_err(ab, "unhandled MHI state (%d)\n", mhi_state); + ret = -EINVAL; + } + + if (ret) + goto out; + + ath11k_mhi_set_state_bit(ab_pci, mhi_state); + + return 0; + +out: + ath11k_err(ab, "failed to set mhi state: %s(%d)\n", + ath11k_mhi_state_to_str(mhi_state), mhi_state); + return ret; +} + +int ath11k_mhi_start(struct ath11k_pci *ab_pci) +{ + int ret; + + ab_pci->mhi_ctrl->timeout_ms = MHI_TIMEOUT_DEFAULT_MS; + + ret = ath11k_mhi_set_state(ab_pci, ATH11K_MHI_INIT); + if (ret) + goto out; + + ret = ath11k_mhi_set_state(ab_pci, ATH11K_MHI_POWER_ON); + if (ret) + goto out; + + return 0; + +out: + return ret; +} + +void ath11k_mhi_stop(struct ath11k_pci *ab_pci) +{ + ath11k_mhi_set_state(ab_pci, ATH11K_MHI_POWER_OFF); + ath11k_mhi_set_state(ab_pci, ATH11K_MHI_DEINIT); +} + +void ath11k_mhi_suspend(struct ath11k_pci *ab_pci) +{ + ath11k_mhi_set_state(ab_pci, ATH11K_MHI_SUSPEND); +} + +void ath11k_mhi_resume(struct ath11k_pci *ab_pci) +{ + ath11k_mhi_set_state(ab_pci, ATH11K_MHI_RESUME); +} + +void ath11k_mhi_force_rddm(struct ath11k_pci *ab_pci) +{ + ath11k_mhi_set_state(ab_pci, ATH11K_MHI_TRIGGER_RDDM); +} + only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/net/wireless/ath/ath11k/mhi.h +++ linux-oem-5.6-5.6.0/drivers/net/wireless/ath/ath11k/mhi.h @@ -0,0 +1,43 @@ +/* SPDX-License-Identifier: BSD-3-Clause-Clear */ +/* + * Copyright (c) 2020 The Linux Foundation. All rights reserved. + */ +#ifndef _ATH11K_MHI_H +#define _ATH11K_MHI_H + +#include "pci.h" + +#define PCIE_TXVECDB 0x360 +#define PCIE_TXVECSTATUS 0x368 +#define PCIE_RXVECDB 0x394 +#define PCIE_RXVECSTATUS 0x39C + +#define MHISTATUS 0x48 +#define MHICTRL 0x38 +#define MHICTRL_RESET_MASK 0x2 + +enum ath11k_mhi_state { + ATH11K_MHI_INIT, + ATH11K_MHI_DEINIT, + ATH11K_MHI_POWER_ON, + ATH11K_MHI_POWER_OFF, + ATH11K_MHI_FORCE_POWER_OFF, + ATH11K_MHI_SUSPEND, + ATH11K_MHI_RESUME, + ATH11K_MHI_TRIGGER_RDDM, + ATH11K_MHI_RDDM, + ATH11K_MHI_RDDM_DONE, +}; + +int ath11k_mhi_start(struct ath11k_pci *ar_pci); +void ath11k_mhi_stop(struct ath11k_pci *ar_pci); +int ath11k_mhi_register(struct ath11k_pci *ar_pci); +void ath11k_mhi_unregister(struct ath11k_pci *ar_pci); +void ath11k_mhi_set_mhictrl_reset(struct ath11k_base *ab); +void ath11k_mhi_clear_vector(struct ath11k_base *ab); + +void ath11k_mhi_suspend(struct ath11k_pci *ar_pci); +void ath11k_mhi_resume(struct ath11k_pci *ar_pci); +void ath11k_mhi_force_rddm(struct ath11k_pci *ar_pci); + +#endif only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/net/wireless/ath/ath11k/pci.c +++ linux-oem-5.6-5.6.0/drivers/net/wireless/ath/ath11k/pci.c @@ -0,0 +1,1403 @@ +// SPDX-License-Identifier: BSD-3-Clause-Clear +/* + * Copyright (c) 2019-2020 The Linux Foundation. All rights reserved. + */ + +#include +#include +#include + +#include "pci.h" +#include "core.h" +#include "hif.h" +#include "mhi.h" +#include "debug.h" + +#define ATH11K_PCI_BAR_NUM 0 +#define ATH11K_PCI_DMA_MASK 32 + +#define ATH11K_PCI_IRQ_CE0_OFFSET 3 +#define ATH11K_PCI_IRQ_DP_OFFSET 14 + +#define WINDOW_ENABLE_BIT 0x40000000 +#define WINDOW_REG_ADDRESS 0x310c +#define WINDOW_VALUE_MASK GENMASK(24, 19) +#define WINDOW_START 0x80000 +#define WINDOW_RANGE_MASK GENMASK(18, 0) + +#define TCSR_SOC_HW_VERSION 0x0224 +#define TCSR_SOC_HW_VERSION_MAJOR_MASK GENMASK(16, 8) +#define TCSR_SOC_HW_VERSION_MINOR_MASK GENMASK(7, 0) + +/* BAR0 + 4k is always accessible, and no + * need to force wakeup. + * 4K - 32 = 0xFE0 + */ +#define ACCESS_ALWAYS_OFF 0xFE0 + +#define QCA6390_DEVICE_ID 0x1101 + +static const struct pci_device_id ath11k_pci_id_table[] = { + { PCI_VDEVICE(QCOM, QCA6390_DEVICE_ID) }, + {0} +}; + +MODULE_DEVICE_TABLE(pci, ath11k_pci_id_table); + +static const struct ath11k_bus_params ath11k_pci_bus_params = { + .mhi_support = true, + .m3_fw_support = true, + .fixed_bdf_addr = false, + .fixed_mem_region = false, +}; + +static const struct ath11k_msi_config msi_config = { + .total_vectors = 32, + .total_users = 4, + .users = (struct ath11k_msi_user[]) { + { .name = "MHI", .num_vectors = 3, .base_vector = 0 }, + { .name = "CE", .num_vectors = 10, .base_vector = 3 }, + { .name = "WAKE", .num_vectors = 1, .base_vector = 13 }, + { .name = "DP", .num_vectors = 18, .base_vector = 14 }, + }, +}; + +static const char *irq_name[ATH11K_IRQ_NUM_MAX] = { + "bhi", + "mhi-er0", + "mhi-er1", + "ce0", + "ce1", + "ce2", + "ce3", + "ce4", + "ce5", + "ce6", + "ce7", + "ce8", + "ce9", + "ce10", + "ce11", + "host2wbm-desc-feed", + "host2reo-re-injection", + "host2reo-command", + "host2rxdma-monitor-ring3", + "host2rxdma-monitor-ring2", + "host2rxdma-monitor-ring1", + "reo2ost-exception", + "wbm2host-rx-release", + "reo2host-status", + "reo2host-destination-ring4", + "reo2host-destination-ring3", + "reo2host-destination-ring2", + "reo2host-destination-ring1", + "rxdma2host-monitor-destination-mac3", + "rxdma2host-monitor-destination-mac2", + "rxdma2host-monitor-destination-mac1", + "ppdu-end-interrupts-mac3", + "ppdu-end-interrupts-mac2", + "ppdu-end-interrupts-mac1", + "rxdma2host-monitor-status-ring-mac3", + "rxdma2host-monitor-status-ring-mac2", + "rxdma2host-monitor-status-ring-mac1", + "host2rxdma-host-buf-ring-mac3", + "host2rxdma-host-buf-ring-mac2", + "host2rxdma-host-buf-ring-mac1", + "rxdma2host-destination-ring-mac3", + "rxdma2host-destination-ring-mac2", + "rxdma2host-destination-ring-mac1", + "host2tcl-input-ring4", + "host2tcl-input-ring3", + "host2tcl-input-ring2", + "host2tcl-input-ring1", + "wbm2host-tx-completions-ring3", + "wbm2host-tx-completions-ring2", + "wbm2host-tx-completions-ring1", + "tcl2host-status-ring", +}; + +static inline void ath11k_pci_select_window(struct ath11k_pci *ab_pci, u32 offset) +{ + struct ath11k_base *ab = ab_pci->ab; + + u32 window = FIELD_GET(WINDOW_VALUE_MASK, offset); + + lockdep_assert_held(&ab_pci->window_lock); + + if (window != ab_pci->register_window) { + iowrite32(WINDOW_ENABLE_BIT | window, + ab->mem + WINDOW_REG_ADDRESS); + ioread32(ab->mem + WINDOW_REG_ADDRESS); + ab_pci->register_window = window; + } +} + +void ath11k_pci_write32(struct ath11k_base *ab, u32 offset, u32 value) +{ + struct ath11k_pci *ab_pci = ath11k_pci_priv(ab); + + /* for offset beyond BAR + 4K - 32, may + * need to wakeup MHI to access. + */ + if (test_bit(ATH11K_PCI_FLAG_INIT_DONE, &ab_pci->flags) && + offset >= ACCESS_ALWAYS_OFF) + mhi_device_get_sync(ab_pci->mhi_ctrl->mhi_dev); + + if (offset < WINDOW_START) { + iowrite32(value, ab->mem + offset); + } else { + spin_lock_bh(&ab_pci->window_lock); + ath11k_pci_select_window(ab_pci, offset); + iowrite32(value, ab->mem + WINDOW_START + (offset & WINDOW_RANGE_MASK)); + spin_unlock_bh(&ab_pci->window_lock); + } + + if (test_bit(ATH11K_PCI_FLAG_INIT_DONE, &ab_pci->flags) && + offset >= ACCESS_ALWAYS_OFF) + mhi_device_put(ab_pci->mhi_ctrl->mhi_dev); +} + +u32 ath11k_pci_read32(struct ath11k_base *ab, u32 offset) +{ + struct ath11k_pci *ab_pci = ath11k_pci_priv(ab); + u32 val; + + /* for offset beyond BAR + 4K - 32, may + * need to wakeup MHI to access. + */ + if (test_bit(ATH11K_PCI_FLAG_INIT_DONE, &ab_pci->flags) && + offset >= ACCESS_ALWAYS_OFF) + mhi_device_get_sync(ab_pci->mhi_ctrl->mhi_dev); + + if (offset < WINDOW_START) { + val = ioread32(ab->mem + offset); + } else { + spin_lock_bh(&ab_pci->window_lock); + ath11k_pci_select_window(ab_pci, offset); + val = ioread32(ab->mem + WINDOW_START + (offset & WINDOW_RANGE_MASK)); + spin_unlock_bh(&ab_pci->window_lock); + } + + if (test_bit(ATH11K_PCI_FLAG_INIT_DONE, &ab_pci->flags) && + offset >= ACCESS_ALWAYS_OFF) + mhi_device_put(ab_pci->mhi_ctrl->mhi_dev); + + return val; +} + +static void ath11k_pci_soc_global_reset(struct ath11k_base *ab) +{ + u32 val, delay; + + val = ath11k_pci_read32(ab, PCIE_SOC_GLOBAL_RESET); + + val |= PCIE_SOC_GLOBAL_RESET_V; + + ath11k_pci_write32(ab, PCIE_SOC_GLOBAL_RESET, val); + + /* TODO: exact time to sleep is uncertain */ + delay = 10; + mdelay(delay); + + /* Need to toggle V bit back otherwise stuck in reset status */ + val &= ~PCIE_SOC_GLOBAL_RESET_V; + + ath11k_pci_write32(ab, PCIE_SOC_GLOBAL_RESET, val); + + mdelay(delay); + + val = ath11k_pci_read32(ab, PCIE_SOC_GLOBAL_RESET); + if (val == 0xffffffff) + ath11k_warn(ab, "link down error during global reset\n"); +} + +static void ath11k_pci_clear_dbg_registers(struct ath11k_base *ab) +{ + u32 val; + + /* read cookie */ + val = ath11k_pci_read32(ab, PCIE_Q6_COOKIE_ADDR); + ath11k_dbg(ab, ATH11K_DBG_PCI, "cookie:0x%x\n", val); + + val = ath11k_pci_read32(ab, WLAON_WARM_SW_ENTRY); + ath11k_dbg(ab, ATH11K_DBG_PCI, "WLAON_WARM_SW_ENTRY 0x%x\n", val); + + /* TODO: exact time to sleep is uncertain */ + mdelay(10); + + /* write 0 to WLAON_WARM_SW_ENTRY to prevent Q6 from + * continuing warm path and entering dead loop. + */ + ath11k_pci_write32(ab, WLAON_WARM_SW_ENTRY, 0); + mdelay(10); + + val = ath11k_pci_read32(ab, WLAON_WARM_SW_ENTRY); + ath11k_dbg(ab, ATH11K_DBG_PCI, "WLAON_WARM_SW_ENTRY 0x%x\n", val); + + /* A read clear register. clear the register to prevent + * Q6 from entering wrong code path. + */ + val = ath11k_pci_read32(ab, WLAON_SOC_RESET_CAUSE_REG); + ath11k_dbg(ab, ATH11K_DBG_PCI, "soc reset cause:%d\n", val); +} + +static bool ath11k_pci_set_link_reg(struct ath11k_base *ab, + u32 offset, u32 value, u32 mask) +{ + u32 ret; + int count = 10; + + ret = ath11k_pci_read32(ab, offset); + if ((ret & mask) == value) + return true; + + while (count > 0) { + ath11k_pci_write32(ab, offset, (ret & ~mask) | value); + ret = ath11k_pci_read32(ab, offset); + if ((ret & mask) == value) + return true; + + mdelay(2); + count--; + } + + ath11k_err(ab, "%s: Failed to set Pcie Link Register 0x%08x to 0x%08x\n", + __func__, offset, ret); + return false; +} + +static void ath11k_pci_fix_l1ss(struct ath11k_base *ab) +{ + if (!ath11k_pci_set_link_reg(ab, + PCIE_QSERDES_COM_SYSCLK_EN_SEL_REG, + PCIE_QSERDES_COM_SYSCLK_EN_SEL_VAL, + PCIE_QSERDES_COM_SYSCLK_EN_SEL_MSK)) { + ath11k_err(ab, "%s set sysclk error\n", __func__); + return; + } + + if (!ath11k_pci_set_link_reg(ab, + PCIE_USB3_PCS_MISC_OSC_DTCT_CONFIG1_REG, + PCIE_USB3_PCS_MISC_OSC_DTCT_CONFIG1_VAL, + PCIE_USB3_PCS_MISC_OSC_DTCT_CONFIG_MSK)) { + ath11k_err(ab, "%s set dtct_config1 error\n", __func__); + return; + } + + if (!ath11k_pci_set_link_reg(ab, + PCIE_USB3_PCS_MISC_OSC_DTCT_CONFIG2_REG, + PCIE_USB3_PCS_MISC_OSC_DTCT_CONFIG2_VAL, + PCIE_USB3_PCS_MISC_OSC_DTCT_CONFIG_MSK)) { + ath11k_err(ab, "%s set dtct_config2 error\n", __func__); + return; + } + + if (!ath11k_pci_set_link_reg(ab, + PCIE_USB3_PCS_MISC_OSC_DTCT_CONFIG4_REG, + PCIE_USB3_PCS_MISC_OSC_DTCT_CONFIG4_VAL, + PCIE_USB3_PCS_MISC_OSC_DTCT_CONFIG_MSK)) + ath11k_err(ab, "%s set dtct_config4 error\n", __func__); +} + +static void ath11k_pci_enable_LTSSM(struct ath11k_base *ab) +{ + u32 val; + int count = 5; + + val = ath11k_pci_read32(ab, PCIE_PCIE_PARF_LTSSM); + + /* PCIE link seems very unstable after the Hot Reset*/ + while (val != PARM_LTSSM_VALUE && count--) { + if (val == 0xffffffff) + mdelay(5); + ath11k_pci_write32(ab, PCIE_PCIE_PARF_LTSSM, PARM_LTSSM_VALUE); + + val = ath11k_pci_read32(ab, PCIE_PCIE_PARF_LTSSM); + } + + ath11k_dbg(ab, ATH11K_DBG_PCI, "%s read parf_ltssm:0x%x\n", + __func__, val); + + val = ath11k_pci_read32(ab, GCC_GCC_PCIE_HOT_RST); + + val |= GCC_GCC_PCIE_HOT_RST_VAL | 0x10; + + ath11k_pci_write32(ab, GCC_GCC_PCIE_HOT_RST, val); + + val = ath11k_pci_read32(ab, GCC_GCC_PCIE_HOT_RST); + + ath11k_dbg(ab, ATH11K_DBG_PCI, + "after set, read GCC_GCC_PCIE_HOT_RST 0x%x\n", val); + + mdelay(5); +} + +static void ath11k_pci_clear_all_intrs(struct ath11k_base *ab) +{ + /* This is a WAR for PCIE Hotreset. + * When target receive Hotreset, but will set the interrupt. + * So when download SBL again, SBL will open Interrupt and + * receive it, and crash immediately. + */ + ath11k_pci_write32(ab, PCIE_PCIE_INT_ALL_CLEAR, PCIE_INT_CLEAR_ALL); +} + +static void ath11k_pci_set_wlaon_pwr_ctrl(struct ath11k_base *ab, bool set_vdd4blow) +{ + u32 val; + + val = ath11k_pci_read32(ab, WLAON_QFPROM_PWR_CTRL_REG); + + if (set_vdd4blow) + val |= QFPROM_PWR_CTRL_VDD4BLOW_MASK; + else + val &= ~QFPROM_PWR_CTRL_VDD4BLOW_MASK; + + ath11k_pci_write32(ab, WLAON_QFPROM_PWR_CTRL_REG, val); +} + +static void ath11k_pci_force_wake(struct ath11k_base *ab) +{ + int val; + + ath11k_pci_write32(ab, PCIE_SCRATCH_0_SOC_PCIE_REG, 0); + ath11k_pci_write32(ab, PCIE_SOC_WAKE_PCIE_LOCAL_REG, 1); + mdelay(10); + val = ath11k_pci_read32(ab, PCIE_SCRATCH_0_SOC_PCIE_REG); + ath11k_dbg(ab, ATH11K_DBG_PCI, "forcw_wake scratch 0: 0x%x\n", val); +} + +static void ath11k_pci_sw_reset(struct ath11k_base *ab, bool power_on) +{ + if (power_on) { + ath11k_pci_enable_LTSSM(ab); + ath11k_pci_clear_all_intrs(ab); + ath11k_pci_set_wlaon_pwr_ctrl(ab, false); + ath11k_pci_fix_l1ss(ab); + } + + ath11k_mhi_clear_vector(ab); + ath11k_pci_soc_global_reset(ab); + ath11k_mhi_set_mhictrl_reset(ab); + ath11k_pci_clear_dbg_registers(ab); +} + +int ath11k_pci_get_msi_irq(struct device *dev, unsigned int vector) +{ + struct pci_dev *pci_dev = to_pci_dev(dev); + + return pci_irq_vector(pci_dev, vector); +} + +static void ath11k_pci_get_msi_address(struct ath11k_base *ab, u32 *msi_addr_lo, + u32 *msi_addr_hi) +{ + struct ath11k_pci *ab_pci = ath11k_pci_priv(ab); + struct pci_dev *pci_dev = to_pci_dev(ab->dev); + + pci_read_config_dword(pci_dev, pci_dev->msi_cap + PCI_MSI_ADDRESS_LO, + msi_addr_lo); + + if (test_bit(ATH11K_PCI_FLAG_IS_MSI_64, &ab_pci->flags)) { + pci_read_config_dword(pci_dev, pci_dev->msi_cap + PCI_MSI_ADDRESS_HI, + msi_addr_hi); + } else { + *msi_addr_hi = 0; + } +} + +int ath11k_pci_get_user_msi_assignment(struct ath11k_pci *ab_pci, char *user_name, + int *num_vectors, u32 *user_base_data, + u32 *base_vector) +{ + struct ath11k_base *ab = ab_pci->ab; + u32 msi_32_cap = ab_pci->vectors_32_capability; + int idx; + + for (idx = 0; idx < msi_config.total_users; idx++) { + if (strcmp(user_name, msi_config.users[idx].name) == 0) { + *num_vectors = msi_config.users[idx].num_vectors; + *base_vector = msi_32_cap ? + msi_config.users[idx].base_vector : 0; + *user_base_data = *base_vector + ab_pci->msi_ep_base_data; + + ath11k_dbg(ab, ATH11K_DBG_PCI, "Assign MSI to user: %s, num_vectors: %d, user_base_data: %u, base_vector: %u\n", + user_name, *num_vectors, *user_base_data, + *base_vector); + + return 0; + } + } + + ath11k_err(ab, "Failed to find MSI assignment for %s!\n", user_name); + + return -EINVAL; +} + +static int ath11k_get_user_msi_assignment(struct ath11k_base *ab, char *user_name, + int *num_vectors, u32 *user_base_data, + u32 *base_vector) +{ + struct ath11k_pci *ab_pci = ath11k_pci_priv(ab); + + return ath11k_pci_get_user_msi_assignment(ab_pci, user_name, + num_vectors, user_base_data, + base_vector); +} + +static void ath11k_pci_free_ext_irq(struct ath11k_base *ab) +{ + int i, j; + + for (i = 0; i < ATH11K_EXT_IRQ_GRP_NUM_MAX; i++) { + struct ath11k_ext_irq_grp *irq_grp = &ab->ext_irq_grp[i]; + + for (j = 0; j < irq_grp->num_irq; j++) + free_irq(ab->irq_num[irq_grp->irqs[j]], irq_grp); + + netif_napi_del(&irq_grp->napi); + } +} + +static void ath11k_pci_free_irq(struct ath11k_base *ab) +{ + int i, irq_idx; + + for (i = 0; i < ab->hw_params.ce_count; i++) { + if (ath11k_ce_get_attr_flags(ab, i) & CE_ATTR_DIS_INTR) + continue; + irq_idx = ATH11K_PCI_IRQ_CE0_OFFSET + i; + free_irq(ab->irq_num[irq_idx], &ab->ce.ce_pipe[i]); + } + + ath11k_pci_free_ext_irq(ab); +} + +static void ath11k_pci_set_irq_enable_flag(struct ath11k_base *ab, u32 irq_idx, int flag) +{ + ab->irq_enable_flag[irq_idx] = flag; +} + +static void ath11k_pci_ce_irq_enable(struct ath11k_base *ab, u16 ce_id) +{ + u32 irq_idx; + u32 vecs_32_cap; + + vecs_32_cap = ath11k_pci_priv(ab)->vectors_32_capability; + irq_idx = ATH11K_PCI_IRQ_CE0_OFFSET + ce_id; + + if (vecs_32_cap) + enable_irq(ab->irq_num[irq_idx]); + + ath11k_pci_set_irq_enable_flag(ab, irq_idx, 1); +} + +static void ath11k_pci_ce_irq_disable(struct ath11k_base *ab, u16 ce_id) +{ + u32 irq_idx; + u32 vecs_32_cap; + + vecs_32_cap = ath11k_pci_priv(ab)->vectors_32_capability; + irq_idx = ATH11K_PCI_IRQ_CE0_OFFSET + ce_id; + + /* Cannot disable the irq when using one msi interrupt */ + if (vecs_32_cap) + disable_irq_nosync(ab->irq_num[irq_idx]); + + ath11k_pci_set_irq_enable_flag(ab, irq_idx, 0); +} + +static void ath11k_pci_ce_irqs_disable(struct ath11k_base *ab) +{ + int i; + + for (i = 0; i < ab->hw_params.ce_count; i++) { + if (ath11k_ce_get_attr_flags(ab, i) & CE_ATTR_DIS_INTR) + continue; + ath11k_pci_ce_irq_disable(ab, i); + } +} + +static void ath11k_pci_sync_ce_irqs(struct ath11k_base *ab) +{ + int i; + int irq_idx; + + for (i = 0; i < ab->hw_params.ce_count; i++) { + if (ath11k_ce_get_attr_flags(ab, i) & CE_ATTR_DIS_INTR) + continue; + + irq_idx = ATH11K_PCI_IRQ_CE0_OFFSET + i; + synchronize_irq(ab->irq_num[irq_idx]); + } +} + +static void ath11k_pci_ce_tasklet(unsigned long data) +{ + + struct ath11k_ce_pipe *ce_pipe = (struct ath11k_ce_pipe *)data; + int irq_idx = ATH11K_PCI_IRQ_CE0_OFFSET + ce_pipe->pipe_num; + + ath11k_ce_per_engine_service(ce_pipe->ab, ce_pipe->pipe_num); + + enable_irq(ce_pipe->ab->irq_num[irq_idx]); +} + +static irqreturn_t ath11k_pci_ce_interrupt_handler(int irq, void *arg) +{ + struct ath11k_ce_pipe *ce_pipe = arg; + struct ath11k_base *ab = ce_pipe->ab; + int irq_idx = ATH11K_PCI_IRQ_CE0_OFFSET + ce_pipe->pipe_num; + + disable_irq_nosync(ab->irq_num[irq_idx]); + + if (!ab->irq_enable_flag[irq_idx]) { + enable_irq(ab->irq_num[irq_idx]); + return IRQ_HANDLED; + } + + tasklet_schedule(&ce_pipe->intr_tq); + + return IRQ_HANDLED; +} + +static void ath11k_pci_ext_grp_disable(struct ath11k_ext_irq_grp *irq_grp) +{ + int i; + u32 vecs_32_cap; + + vecs_32_cap = ath11k_pci_priv(irq_grp->ab)->vectors_32_capability; + + for (i = 0; i < irq_grp->num_irq; i++) { + if (vecs_32_cap) + disable_irq_nosync(irq_grp->ab->irq_num[irq_grp->irqs[i]]); + + ath11k_pci_set_irq_enable_flag(irq_grp->ab, irq_grp->irqs[i], 0); + } +} + +static void __ath11k_pci_ext_irq_disable(struct ath11k_base *sc) +{ + int i; + + for (i = 0; i < ATH11K_EXT_IRQ_GRP_NUM_MAX; i++) { + struct ath11k_ext_irq_grp *irq_grp = &sc->ext_irq_grp[i]; + + ath11k_pci_ext_grp_disable(irq_grp); + + napi_synchronize(&irq_grp->napi); + napi_disable(&irq_grp->napi); + } +} + +static void ath11k_pci_ext_grp_enable(struct ath11k_ext_irq_grp *irq_grp) +{ + int i; + u32 vecs_32_cap; + + vecs_32_cap = ath11k_pci_priv(irq_grp->ab)->vectors_32_capability; + + for (i = 0; i < irq_grp->num_irq; i++) { + if (vecs_32_cap) + enable_irq(irq_grp->ab->irq_num[irq_grp->irqs[i]]); + ath11k_pci_set_irq_enable_flag(irq_grp->ab, irq_grp->irqs[i], 1); + } +} + +static void ath11k_pci_ext_irq_enable(struct ath11k_base *ab) +{ + int i; + + for (i = 0; i < ATH11K_EXT_IRQ_GRP_NUM_MAX; i++) { + struct ath11k_ext_irq_grp *irq_grp = &ab->ext_irq_grp[i]; + + napi_enable(&irq_grp->napi); + ath11k_pci_ext_grp_enable(irq_grp); + } +} + +static void ath11k_pci_sync_ext_irqs(struct ath11k_base *ab) +{ + int i, j, irq_idx; + + for (i = 0; i < ATH11K_EXT_IRQ_GRP_NUM_MAX; i++) { + struct ath11k_ext_irq_grp *irq_grp = &ab->ext_irq_grp[i]; + + for (j = 0; j < irq_grp->num_irq; j++) { + irq_idx = irq_grp->irqs[j]; + synchronize_irq(ab->irq_num[irq_idx]); + } + } +} + +static void ath11k_pci_ext_irq_disable(struct ath11k_base *ab) +{ + __ath11k_pci_ext_irq_disable(ab); + ath11k_pci_sync_ext_irqs(ab); +} + +static int ath11k_pci_ext_grp_napi_poll(struct napi_struct *napi, int budget) +{ + struct ath11k_ext_irq_grp *irq_grp = container_of(napi, + struct ath11k_ext_irq_grp, + napi); + struct ath11k_base *ab = irq_grp->ab; + int work_done; + int i; + + work_done = ath11k_dp_service_srng(ab, irq_grp, budget); + if (work_done < budget) { + napi_complete_done(napi, work_done); + for (i = 0; i < irq_grp->num_irq; i++) + enable_irq(irq_grp->ab->irq_num[irq_grp->irqs[i]]); + } + + if (work_done > budget) + work_done = budget; + + return work_done; +} + +static irqreturn_t ath11k_pci_ext_interrupt_handler(int irq, void *arg) +{ + struct ath11k_ext_irq_grp *irq_grp = arg; + int i; + + for (i = 0; i < irq_grp->num_irq; i++) + disable_irq_nosync(irq_grp->ab->irq_num[irq_grp->irqs[i]]); + + if (!irq_grp->ab->irq_enable_flag[irq_grp->irqs[0]]) { + for (i = 0; i < irq_grp->num_irq; i++) + enable_irq(irq_grp->ab->irq_num[irq_grp->irqs[i]]); + return IRQ_HANDLED; + } + + napi_schedule(&irq_grp->napi); + + return IRQ_HANDLED; +} + +static int ath11k_pci_ext_irq_config(struct ath11k_base *ab) +{ + int i, j, ret, num_vectors = 0; + u32 user_base_data = 0, base_vector = 0; + u32 vecs_32_cap; + + ret = ath11k_pci_get_user_msi_assignment(ath11k_pci_priv(ab), "DP", + &num_vectors, + &user_base_data, + &base_vector); + if (ret < 0) + return ret; + + vecs_32_cap = ath11k_pci_priv(ab)->vectors_32_capability; + + for (i = 0; i < ATH11K_EXT_IRQ_GRP_NUM_MAX; i++) { + struct ath11k_ext_irq_grp *irq_grp = &ab->ext_irq_grp[i]; + u32 num_irq = 0; + + irq_grp->ab = ab; + irq_grp->grp_id = i; + init_dummy_netdev(&irq_grp->napi_ndev); + netif_napi_add(&irq_grp->napi_ndev, &irq_grp->napi, + ath11k_pci_ext_grp_napi_poll, NAPI_POLL_WEIGHT); + + if (ab->hw_params.ring_mask->tx[i] || + ab->hw_params.ring_mask->rx[i] || + ab->hw_params.ring_mask->rx_err[i] || + ab->hw_params.ring_mask->rx_wbm_rel[i] || + ab->hw_params.ring_mask->reo_status[i] || + ab->hw_params.ring_mask->rxdma2host[i] || + ab->hw_params.ring_mask->host2rxdma[i] || + ab->hw_params.ring_mask->rx_mon_status[i]) { + num_irq = 1; + } + + irq_grp->num_irq = num_irq; + irq_grp->irqs[0] = ATH11K_PCI_IRQ_DP_OFFSET + i; + + for (j = 0; j < irq_grp->num_irq; j++) { + int irq_idx = irq_grp->irqs[j]; + int vector = vecs_32_cap ? + (i % num_vectors) + base_vector : base_vector; + int irq = ath11k_pci_get_msi_irq(ab->dev, vector); + + ab->irq_num[irq_idx] = irq; + + ath11k_dbg(ab, ATH11K_DBG_PCI, + "irq:%d group:%d\n", irq, i); + ret = request_irq(irq, ath11k_pci_ext_interrupt_handler, + IRQF_SHARED | IRQF_NOBALANCING, + "DP_EXT_IRQ", irq_grp); + if (ret) { + ath11k_err(ab, "failed request irq %d: %d\n", + vector, ret); + return ret; + } + + /* balance irq_enable */ + if (vecs_32_cap) + disable_irq_nosync(ab->irq_num[irq_idx]); + + ath11k_pci_set_irq_enable_flag(ab, irq_idx, 0); + } + } + + return 0; +} + +static int ath11k_pci_config_irq(struct ath11k_base *ab) +{ + struct ath11k_ce_pipe *ce_pipe; + u32 msi_data_start; + u32 msi_data_count; + u32 msi_irq_start; + u32 vecs_32_cap; + unsigned int msi_data; + int irq, i, ret, irq_idx; + + ret = ath11k_pci_get_user_msi_assignment(ath11k_pci_priv(ab), + "CE", &msi_data_count, + &msi_data_start, &msi_irq_start); + if (ret) + return ret; + + vecs_32_cap = ath11k_pci_priv(ab)->vectors_32_capability; + + /* Configure CE irqs */ + for (i = 0; i < ab->hw_params.ce_count; i++) { + msi_data = vecs_32_cap ? + (i % msi_data_count) + msi_irq_start : msi_irq_start; + + irq = ath11k_pci_get_msi_irq(ab->dev, msi_data); + ce_pipe = &ab->ce.ce_pipe[i]; + + if (ath11k_ce_get_attr_flags(ab, i) & CE_ATTR_DIS_INTR) + continue; + + irq_idx = ATH11K_PCI_IRQ_CE0_OFFSET + i; + + tasklet_init(&ce_pipe->intr_tq, ath11k_pci_ce_tasklet, + (unsigned long)ce_pipe); + + ret = request_irq(irq, ath11k_pci_ce_interrupt_handler, + IRQF_SHARED | IRQF_NOBALANCING, irq_name[irq_idx], + ce_pipe); + if (ret) { + ath11k_err(ab, "failed to request irq %d: %d\n", + irq_idx, ret); + return ret; + } + + ab->irq_num[irq_idx] = irq; + ath11k_pci_ce_irq_disable(ab, i); + } + + ret = ath11k_pci_ext_irq_config(ab); + if (ret) + return ret; + + return 0; +} + +static void ath11k_pci_init_qmi_ce_config(struct ath11k_base *ab) +{ + struct ath11k_qmi_ce_cfg *cfg = &ab->qmi.ce_cfg; + + cfg->tgt_ce = ab->hw_params.target_ce_config; + cfg->tgt_ce_len = ab->hw_params.target_ce_count; + + cfg->svc_to_ce_map = ab->hw_params.svc_to_ce_map; + cfg->svc_to_ce_map_len = ab->hw_params.svc_to_ce_map_len; + ab->qmi.service_ins_id = ATH11K_QMI_WLFW_SERVICE_INS_ID_V01_QCA6390; + + ath11k_ce_get_shadow_config(ab, &cfg->shadow_reg_v2, + &cfg->shadow_reg_v2_len); +} + +static void ath11k_pci_ce_irqs_enable(struct ath11k_base *ab) +{ + int i; + + for (i = 0; i < ab->hw_params.ce_count; i++) { + if (ath11k_ce_get_attr_flags(ab, i) & CE_ATTR_DIS_INTR) + continue; + ath11k_pci_ce_irq_enable(ab, i); + } +} + +static int ath11k_pci_enable_msi(struct ath11k_pci *ab_pci) +{ + struct ath11k_base *ab = ab_pci->ab; + struct msi_desc *msi_desc; + int num_vectors; + int ret; + + num_vectors = pci_alloc_irq_vectors(ab_pci->pdev, + msi_config.total_vectors, + msi_config.total_vectors, + PCI_IRQ_MSI); + + if (num_vectors == msi_config.total_vectors) { + ab_pci->vectors_32_capability = 1; + } else { + ab_pci->vectors_32_capability = 0; + num_vectors = pci_alloc_irq_vectors(ab_pci->pdev, + 1, + 1, + PCI_IRQ_MSI); + if (num_vectors < 0) { + ret = -EINVAL; + goto reset_msi_config; + } + } + + msi_desc = irq_get_msi_desc(ab_pci->pdev->irq); + if (!msi_desc) { + ath11k_err(ab, "msi_desc is NULL!\n"); + ret = -EINVAL; + goto free_msi_vector; + } + + ath11k_info(ab, "MSI vectors: %d", num_vectors); + + ab_pci->msi_ep_base_data = msi_desc->msg.data; + if (msi_desc->msi_attrib.is_64) + set_bit(ATH11K_PCI_FLAG_IS_MSI_64, &ab_pci->flags); + + ath11k_dbg(ab, ATH11K_DBG_PCI, "msi base data is %d\n", ab_pci->msi_ep_base_data); + + return 0; + +free_msi_vector: + pci_free_irq_vectors(ab_pci->pdev); + +reset_msi_config: + return ret; +} + +static void ath11k_pci_disable_msi(struct ath11k_pci *ab_pci) +{ + pci_free_irq_vectors(ab_pci->pdev); +} + +static int ath11k_pci_config_msi_data(struct ath11k_pci *ab_pci) +{ + struct msi_desc *msi_desc; + int ret; + + msi_desc = irq_get_msi_desc(ab_pci->pdev->irq); + + if (!msi_desc) { + ath11k_err(ab_pci->ab, "msi_desc is NULL!\n"); + ret = -EINVAL; + goto free_msi_vector; + } + + ab_pci->msi_ep_base_data = msi_desc->msg.data; + + ath11k_dbg(ab_pci->ab, ATH11K_DBG_PCI, "msi base data is %d\n", + ab_pci->msi_ep_base_data); + + return 0; + + free_msi_vector: + pci_free_irq_vectors(ab_pci->pdev); + + return ret; +} + +static int ath11k_pci_claim(struct ath11k_pci *ab_pci, struct pci_dev *pdev) +{ + struct ath11k_base *ab = ab_pci->ab; + u16 device_id; + int ret = 0; + + pci_read_config_word(pdev, PCI_DEVICE_ID, &device_id); + if (device_id != ab_pci->dev_id) { + ath11k_err(ab, "pci device id mismatch: 0x%x 0x%x\n", + device_id, ab_pci->dev_id); + ret = -EIO; + goto out; + } + + ret = pci_assign_resource(pdev, ATH11K_PCI_BAR_NUM); + if (ret) { + ath11k_err(ab, "failed to assign pci resource: %d\n", ret); + goto out; + } + + ret = pci_enable_device(pdev); + if (ret) { + ath11k_err(ab, "failed to enable pci device: %d\n", ret); + goto out; + } + + ret = pci_request_region(pdev, ATH11K_PCI_BAR_NUM, "ath11k_pci"); + if (ret) { + ath11k_err(ab, "failed to request pci region: %d\n", ret); + goto disable_device; + } + + ret = pci_set_dma_mask(pdev, DMA_BIT_MASK(ATH11K_PCI_DMA_MASK)); + if (ret) { + ath11k_err(ab, "failed to set pci dma mask to %d: %d\n", + ATH11K_PCI_DMA_MASK, ret); + goto release_region; + } + + ret = pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(ATH11K_PCI_DMA_MASK)); + if (ret) { + ath11k_err(ab, "failed to set pci consistent dma mask to %d: %d\n", + ATH11K_PCI_DMA_MASK, ret); + goto release_region; + } + + pci_set_master(pdev); + + ab->mem_len = pci_resource_len(pdev, ATH11K_PCI_BAR_NUM); + ab->mem = pci_iomap(pdev, ATH11K_PCI_BAR_NUM, 0); + if (!ab->mem) { + ath11k_err(ab, "failed to map pci bar %d\n", ATH11K_PCI_BAR_NUM); + ret = -EIO; + goto clear_master; + } + + ath11k_dbg(ab, ATH11K_DBG_BOOT, "boot pci_mem 0x%pK\n", ab->mem); + return 0; + +clear_master: + pci_clear_master(pdev); +release_region: + pci_release_region(pdev, ATH11K_PCI_BAR_NUM); +disable_device: + pci_disable_device(pdev); +out: + return ret; +} + +static void ath11k_pci_free_region(struct ath11k_pci *ab_pci) +{ + struct ath11k_base *ab = ab_pci->ab; + struct pci_dev *pci_dev = ab_pci->pdev; + + pci_iounmap(pci_dev, ab->mem); + ab->mem = NULL; + pci_clear_master(pci_dev); + pci_release_region(pci_dev, ATH11K_PCI_BAR_NUM); + if (pci_is_enabled(pci_dev)) + pci_disable_device(pci_dev); +} + +static int ath11k_pci_power_up(struct ath11k_base *ab) +{ + struct ath11k_pci *ab_pci = ath11k_pci_priv(ab); + int ret; + + ab_pci->register_window = 0; + clear_bit(ATH11K_PCI_FLAG_INIT_DONE, &ab_pci->flags); + ath11k_pci_sw_reset(ab_pci->ab, true); + + /* disable L0sL1, write 0x40 to link_ctrl */ + pci_read_config_byte(ab_pci->pdev, 0x80, &ab_pci->aspm); + pci_write_config_byte(ab_pci->pdev, 0x80, ab_pci->aspm & 0xfc); + ab_pci->restore_aspm = true; + + ret = ath11k_mhi_start(ab_pci); + if (ret) { + ath11k_err(ab, "failed to start mhi: %d\n", ret); + return ret; + } + + return 0; +} + +static void ath11k_pci_power_down(struct ath11k_base *ab) +{ + struct ath11k_pci *ab_pci = ath11k_pci_priv(ab); + + /* recover aspm */ + if (ab_pci->restore_aspm) { + pci_write_config_byte(ab_pci->pdev, 0x80, ab_pci->aspm); + ab_pci->restore_aspm = false; + } + + ath11k_pci_force_wake(ab_pci->ab); + ath11k_mhi_stop(ab_pci); + clear_bit(ATH11K_PCI_FLAG_INIT_DONE, &ab_pci->flags); + ath11k_pci_sw_reset(ab_pci->ab, false); +} + +static int ath11k_pci_hif_suspend(struct ath11k_base *ab) +{ + struct ath11k_pci *ar_pci; + + ar_pci = ath11k_pci_priv(ab); + ath11k_mhi_suspend(ar_pci); + + return 0; +} + +static int ath11k_pci_hif_resume(struct ath11k_base *ab) +{ + struct ath11k_pci *ar_pci; + + ar_pci = ath11k_pci_priv(ab); + ath11k_mhi_resume(ar_pci); + + return 0; +} + +static void ath11k_pci_force_rddm(struct ath11k_base *ab) +{ + struct ath11k_pci *ar_pci; + + ar_pci = ath11k_pci_priv(ab); + ath11k_mhi_force_rddm(ar_pci); +} + +static void ath11k_pci_kill_tasklets(struct ath11k_base *ab) +{ + int i; + + for (i = 0; i < ab->hw_params.ce_count; i++) { + struct ath11k_ce_pipe *ce_pipe = &ab->ce.ce_pipe[i]; + + if (ath11k_ce_get_attr_flags(ab, i) & CE_ATTR_DIS_INTR) + continue; + + tasklet_kill(&ce_pipe->intr_tq); + } +} + +static void ath11k_pci_ce_irq_disable_sync(struct ath11k_base *ab) +{ + ath11k_pci_ce_irqs_disable(ab); + ath11k_pci_sync_ce_irqs(ab); + ath11k_pci_kill_tasklets(ab); +} + +static void ath11k_pci_stop(struct ath11k_base *ab) +{ + ath11k_pci_ce_irq_disable_sync(ab); + ath11k_ce_cleanup_pipes(ab); +} + +static int ath11k_pci_start(struct ath11k_base *ab) +{ + struct ath11k_pci *ab_pci = ath11k_pci_priv(ab); + + set_bit(ATH11K_PCI_FLAG_INIT_DONE, &ab_pci->flags); + + /* recover aspm */ + if (ab_pci->restore_aspm) { + pci_write_config_byte(ab_pci->pdev, 0x80, ab_pci->aspm); + ab_pci->restore_aspm = false; + } + + ath11k_pci_ce_irqs_enable(ab); + ath11k_ce_rx_post_buf(ab); + + return 0; +} + +static void ath11k_pci_hif_ce_irq_enable(struct ath11k_base *ab) +{ + ath11k_pci_ce_irqs_enable(ab); +} + +static void ath11k_pci_hif_ce_irq_disable(struct ath11k_base *ab) +{ + ath11k_pci_ce_irq_disable_sync(ab); +} + +static int ath11k_pci_map_service_to_pipe(struct ath11k_base *ab, u16 service_id, + u8 *ul_pipe, u8 *dl_pipe) +{ + const struct service_to_pipe *entry; + bool ul_set = false, dl_set = false; + int i; + + for (i = 0; i < ab->hw_params.svc_to_ce_map_len; i++) { + entry = &ab->hw_params.svc_to_ce_map[i]; + + if (__le32_to_cpu(entry->service_id) != service_id) + continue; + + switch (__le32_to_cpu(entry->pipedir)) { + case PIPEDIR_NONE: + break; + case PIPEDIR_IN: + WARN_ON(dl_set); + *dl_pipe = __le32_to_cpu(entry->pipenum); + dl_set = true; + break; + case PIPEDIR_OUT: + WARN_ON(ul_set); + *ul_pipe = __le32_to_cpu(entry->pipenum); + ul_set = true; + break; + case PIPEDIR_INOUT: + WARN_ON(dl_set); + WARN_ON(ul_set); + *dl_pipe = __le32_to_cpu(entry->pipenum); + *ul_pipe = __le32_to_cpu(entry->pipenum); + dl_set = true; + ul_set = true; + break; + } + } + + if (WARN_ON(!ul_set || !dl_set)) + return -ENOENT; + + return 0; +} + +static int ath11k_pci_is_32_vectors_support(struct ath11k_base *ab) +{ + return ath11k_pci_priv(ab)->vectors_32_capability; +} + +static const struct ath11k_hif_ops ath11k_pci_hif_ops = { + .start = ath11k_pci_start, + .stop = ath11k_pci_stop, + .read32 = ath11k_pci_read32, + .write32 = ath11k_pci_write32, + .power_down = ath11k_pci_power_down, + .power_up = ath11k_pci_power_up, + .suspend = ath11k_pci_hif_suspend, + .resume = ath11k_pci_hif_resume, + .target_crash = ath11k_pci_force_rddm, + .irq_enable = ath11k_pci_ext_irq_enable, + .irq_disable = ath11k_pci_ext_irq_disable, + .get_msi_address = ath11k_pci_get_msi_address, + .get_user_msi_vector = ath11k_get_user_msi_assignment, + .map_service_to_pipe = ath11k_pci_map_service_to_pipe, + .is_32_vecs_support = ath11k_pci_is_32_vectors_support, + .ce_irq_enable = ath11k_pci_hif_ce_irq_enable, + .ce_irq_disable = ath11k_pci_hif_ce_irq_disable, +}; + +static int ath11k_pci_probe(struct pci_dev *pdev, + const struct pci_device_id *pci_dev) +{ + struct ath11k_base *ab; + struct ath11k_pci *ab_pci; + u32 soc_hw_version, soc_hw_version_major, soc_hw_version_minor; + int ret; + + dev_warn(&pdev->dev, "WARNING: ath11k PCI support is experimental!\n"); + + ab = ath11k_core_alloc(&pdev->dev, sizeof(*ab_pci), ATH11K_BUS_PCI, + &ath11k_pci_bus_params); + if (!ab) { + dev_err(&pdev->dev, "failed to allocate ath11k base\n"); + return -ENOMEM; + } + + ab->dev = &pdev->dev; + pci_set_drvdata(pdev, ab); + ab_pci = ath11k_pci_priv(ab); + ab_pci->dev_id = pci_dev->device; + ab_pci->ab = ab; + ab_pci->pdev = pdev; + ab->hif.ops = &ath11k_pci_hif_ops; + pci_set_drvdata(pdev, ab); + spin_lock_init(&ab_pci->window_lock); + + ret = ath11k_pci_claim(ab_pci, pdev); + if (ret) { + ath11k_err(ab, "failed to claim device: %d\n", ret); + goto err_free_core; + } + + switch (pci_dev->device) { + case QCA6390_DEVICE_ID: + soc_hw_version = ath11k_pci_read32(ab, TCSR_SOC_HW_VERSION); + soc_hw_version_major = FIELD_GET(TCSR_SOC_HW_VERSION_MAJOR_MASK, + soc_hw_version); + soc_hw_version_minor = FIELD_GET(TCSR_SOC_HW_VERSION_MINOR_MASK, + soc_hw_version); + + ath11k_dbg(ab, ATH11K_DBG_PCI, "pci tcsr_soc_hw_version major %d minor %d\n", + soc_hw_version_major, soc_hw_version_minor); + + switch (soc_hw_version_major) { + case 2: + ab->hw_rev = ATH11K_HW_QCA6390_HW20; + break; + default: + dev_err(&pdev->dev, "Unsupported QCA6390 SOC hardware version: %d %d\n", + soc_hw_version_major, soc_hw_version_minor); + ret = -EOPNOTSUPP; + goto err_pci_free_region; + } + break; + default: + dev_err(&pdev->dev, "Unknown PCI device found: 0x%x\n", + pci_dev->device); + ret = -EOPNOTSUPP; + goto err_pci_free_region; + } + + ret = ath11k_pci_enable_msi(ab_pci); + if (ret) { + ath11k_err(ab, "failed to enable msi: %d\n", ret); + goto err_pci_free_region; + } + + ret = ath11k_core_pre_init(ab); + if (ret) + goto err_pci_disable_msi; + + ret = ath11k_mhi_register(ab_pci); + if (ret) { + ath11k_err(ab, "failed to register mhi: %d\n", ret); + goto err_pci_disable_msi; + } + + ret = ath11k_hal_srng_init(ab); + if (ret) + goto err_mhi_unregister; + + ret = ath11k_ce_alloc_pipes(ab); + if (ret) { + ath11k_err(ab, "failed to allocate ce pipes: %d\n", ret); + goto err_hal_srng_deinit; + } + + ath11k_pci_init_qmi_ce_config(ab); + + ret = ath11k_pci_config_irq(ab); + if (ret) { + ath11k_err(ab, "failed to config irq: %d\n", ret); + goto err_ce_free; + } + + /* Get the correct msi_data after request_irq() to avoid spurious interrupt */ + ret = ath11k_pci_config_msi_data(ab_pci); + if (ret) { + ath11k_err(ab, "failed to config msi_data: %d\n", ret); + goto err_ce_free; + } + + ret = ath11k_core_init(ab); + if (ret) { + ath11k_err(ab, "failed to init core: %d\n", ret); + goto err_free_irq; + } + return 0; + +err_free_irq: + ath11k_pci_free_irq(ab); + +err_ce_free: + ath11k_ce_free_pipes(ab); + +err_hal_srng_deinit: + ath11k_hal_srng_deinit(ab); + +err_mhi_unregister: + ath11k_mhi_unregister(ab_pci); + +err_pci_disable_msi: + ath11k_pci_disable_msi(ab_pci); + +err_pci_free_region: + ath11k_pci_free_region(ab_pci); + +err_free_core: + ath11k_core_free(ab); + + return ret; +} + +static void ath11k_pci_remove(struct pci_dev *pdev) +{ + struct ath11k_base *ab = pci_get_drvdata(pdev); + struct ath11k_pci *ab_pci = ath11k_pci_priv(ab); + + set_bit(ATH11K_FLAG_UNREGISTERING, &ab->dev_flags); + + ath11k_core_deinit(ab); + + ath11k_mhi_unregister(ab_pci); + + ath11k_pci_free_irq(ab); + ath11k_pci_disable_msi(ab_pci); + ath11k_pci_free_region(ab_pci); + + ath11k_hal_srng_deinit(ab); + ath11k_ce_free_pipes(ab); + ath11k_core_free(ab); +} + +static void ath11k_pci_shutdown(struct pci_dev *pdev) +{ + struct ath11k_base *ab = pci_get_drvdata(pdev); + + ath11k_pci_power_down(ab); +} + +static __maybe_unused int ath11k_pci_pm_suspend(struct device *dev) +{ + struct ath11k_base *ab = dev_get_drvdata(dev); + int ret; + + ret = ath11k_core_suspend(ab); + if (ret) + ath11k_warn(ab, "failed to suspend hif: %d\n", ret); + + return ret; +} + +static __maybe_unused int ath11k_pci_pm_resume(struct device *dev) +{ + struct ath11k_base *ab = dev_get_drvdata(dev); + int ret; + + ret = ath11k_core_resume(ab); + if (ret) + ath11k_warn(ab, "failed to resume hif: %d\n", ret); + + return ret; +} + +static SIMPLE_DEV_PM_OPS(ath11k_pci_pm_ops, + ath11k_pci_pm_suspend, + ath11k_pci_pm_resume); + +static struct pci_driver ath11k_pci_driver = { + .name = "ath11k_pci", + .id_table = ath11k_pci_id_table, + .probe = ath11k_pci_probe, + .remove = ath11k_pci_remove, + .shutdown = ath11k_pci_shutdown, +#ifdef CONFIG_PM + .driver.pm = &ath11k_pci_pm_ops, +#endif +}; + +static int ath11k_pci_init(void) +{ + int ret; + + ret = pci_register_driver(&ath11k_pci_driver); + if (ret) + pr_err("failed to register ath11k pci driver: %d\n", + ret); + + return ret; +} +module_init(ath11k_pci_init); + +static void ath11k_pci_exit(void) +{ + pci_unregister_driver(&ath11k_pci_driver); +} + +module_exit(ath11k_pci_exit); + +MODULE_DESCRIPTION("Driver support for Qualcomm Technologies 802.11ax WLAN PCIe devices"); +MODULE_LICENSE("Dual BSD/GPL"); only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/net/wireless/ath/ath11k/pci.h +++ linux-oem-5.6-5.6.0/drivers/net/wireless/ath/ath11k/pci.h @@ -0,0 +1,101 @@ +/* SPDX-License-Identifier: BSD-3-Clause-Clear */ +/* + * Copyright (c) 2019-2020 The Linux Foundation. All rights reserved. + */ +#ifndef _ATH11K_PCI_H +#define _ATH11K_PCI_H + +#include + +#include "core.h" + +#define PCIE_SOC_GLOBAL_RESET 0x3008 +#define PCIE_SOC_GLOBAL_RESET_V 1 + +#define WLAON_WARM_SW_ENTRY 0x1f80504 +#define WLAON_SOC_RESET_CAUSE_REG 0x01f8060c + +#define PCIE_Q6_COOKIE_ADDR 0x01f80500 +#define PCIE_Q6_COOKIE_DATA 0xc0000000 + +/* register to wake the UMAC from power collapse */ +#define PCIE_SCRATCH_0_SOC_PCIE_REG 0x4040 + +/* register used for handshake mechanism to validate UMAC is awake */ +#define PCIE_SOC_WAKE_PCIE_LOCAL_REG 0x3004 + +#define PCIE_PCIE_PARF_LTSSM 0X1E081B0 +#define PARM_LTSSM_VALUE 0x111 + +#define GCC_GCC_PCIE_HOT_RST 0X1E402BC +#define GCC_GCC_PCIE_HOT_RST_VAL 0x10 + +#define PCIE_PCIE_INT_ALL_CLEAR 0X1E08228 +#define PCIE_SMLH_REQ_RST_LINK_DOWN 0x2 +#define PCIE_INT_CLEAR_ALL 0xFFFFFFFF + +#define WLAON_QFPROM_PWR_CTRL_REG 0x01F8031C +#define QFPROM_PWR_CTRL_VDD4BLOW_MASK 0x4 +#define QFPROM_PWR_CTRL_SHUTDOWN_MASK 0x1 + +#define PCIE_QSERDES_COM_SYSCLK_EN_SEL_REG 0x01E0C0AC +#define PCIE_QSERDES_COM_SYSCLK_EN_SEL_VAL 0x10 +#define PCIE_QSERDES_COM_SYSCLK_EN_SEL_MSK 0xFFFFFFFF +#define PCIE_USB3_PCS_MISC_OSC_DTCT_CONFIG1_REG 0x01E0C628 +#define PCIE_USB3_PCS_MISC_OSC_DTCT_CONFIG1_VAL 0x02 +#define PCIE_USB3_PCS_MISC_OSC_DTCT_CONFIG2_REG 0x01E0C62C +#define PCIE_USB3_PCS_MISC_OSC_DTCT_CONFIG2_VAL 0x52 +#define PCIE_USB3_PCS_MISC_OSC_DTCT_CONFIG4_REG 0x01E0C634 +#define PCIE_USB3_PCS_MISC_OSC_DTCT_CONFIG4_VAL 0xFF +#define PCIE_USB3_PCS_MISC_OSC_DTCT_CONFIG_MSK 0x000000FF + +struct ath11k_msi_user { + char *name; + int num_vectors; + u32 base_vector; +}; + +struct ath11k_msi_config { + int total_vectors; + int total_users; + struct ath11k_msi_user *users; +}; + +enum ath11k_pci_flags { + ATH11K_PCI_FLAG_INIT_DONE, + ATH11K_PCI_FLAG_IS_MSI_64, +}; + +struct ath11k_pci { + struct pci_dev *pdev; + struct ath11k_base *ab; + u16 dev_id; + char amss_path[100]; + u32 msi_ep_base_data; + u32 vectors_32_capability; + struct mhi_controller *mhi_ctrl; + unsigned long mhi_state; + u32 register_window; + + /* protects register_window above */ + spinlock_t window_lock; + + /* enum ath11k_pci_flags */ + unsigned long flags; + u8 aspm; + bool restore_aspm; +}; + +static inline struct ath11k_pci *ath11k_pci_priv(struct ath11k_base *ab) +{ + return (struct ath11k_pci *)ab->drv_priv; +} + +int ath11k_pci_get_user_msi_assignment(struct ath11k_pci *ar_pci, char *user_name, + int *num_vectors, u32 *user_base_data, + u32 *base_vector); +int ath11k_pci_get_msi_irq(struct device *dev, unsigned int vector); +void ath11k_pci_write32(struct ath11k_base *ab, u32 offset, u32 value); +u32 ath11k_pci_read32(struct ath11k_base *ab, u32 offset); + +#endif only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/net/wireless/ath/ath11k/peer.c +++ linux-oem-5.6-5.6.0/drivers/net/wireless/ath/ath11k/peer.c @@ -17,7 +17,26 @@ list_for_each_entry(peer, &ab->peers, list) { if (peer->vdev_id != vdev_id) continue; - if (memcmp(peer->addr, addr, ETH_ALEN)) + if (!ether_addr_equal(peer->addr, addr)) + continue; + + return peer; + } + + return NULL; +} + +static struct ath11k_peer *ath11k_peer_find_by_pdev_idx(struct ath11k_base *ab, + u8 pdev_idx, const u8 *addr) +{ + struct ath11k_peer *peer; + + lockdep_assert_held(&ab->base_lock); + + list_for_each_entry(peer, &ab->peers, list) { + if (peer->pdev_idx != pdev_idx) + continue; + if (!ether_addr_equal(peer->addr, addr)) continue; return peer; @@ -34,7 +53,7 @@ lockdep_assert_held(&ab->base_lock); list_for_each_entry(peer, &ab->peers, list) { - if (memcmp(peer->addr, addr, ETH_ALEN)) + if (!ether_addr_equal(peer->addr, addr)) continue; return peer; @@ -158,12 +177,36 @@ return ath11k_wait_for_peer_common(ar->ab, vdev_id, addr, false); } +int ath11k_wait_for_peer_delete_done(struct ath11k *ar, u32 vdev_id, + const u8 *addr) +{ + int ret; + unsigned long time_left; + + ret = ath11k_wait_for_peer_deleted(ar, vdev_id, addr); + if (ret) { + ath11k_warn(ar->ab, "failed wait for peer deleted"); + return ret; + } + + time_left = wait_for_completion_timeout(&ar->peer_delete_done, + 3 * HZ); + if (time_left == 0) { + ath11k_warn(ar->ab, "Timeout in receiving peer delete response\n"); + return -ETIMEDOUT; + } + + return 0; +} + int ath11k_peer_delete(struct ath11k *ar, u32 vdev_id, u8 *addr) { int ret; lockdep_assert_held(&ar->conf_mutex); + reinit_completion(&ar->peer_delete_done); + ret = ath11k_wmi_send_peer_delete_cmd(ar, addr, vdev_id); if (ret) { ath11k_warn(ar->ab, @@ -172,7 +215,7 @@ return ret; } - ret = ath11k_wait_for_peer_deleted(ar, vdev_id, addr); + ret = ath11k_wait_for_peer_delete_done(ar, vdev_id, addr); if (ret) return ret; @@ -200,6 +243,14 @@ return -ENOBUFS; } + spin_lock_bh(&ar->ab->base_lock); + peer = ath11k_peer_find_by_pdev_idx(ar->ab, ar->pdev_idx, param->peer_addr); + if (peer) { + spin_unlock_bh(&ar->ab->base_lock); + return -EINVAL; + } + spin_unlock_bh(&ar->ab->base_lock); + ret = ath11k_wmi_send_peer_create_cmd(ar, param); if (ret) { ath11k_warn(ar->ab, @@ -220,14 +271,32 @@ spin_unlock_bh(&ar->ab->base_lock); ath11k_warn(ar->ab, "failed to find peer %pM on vdev %i after creation\n", param->peer_addr, param->vdev_id); - ath11k_wmi_send_peer_delete_cmd(ar, param->peer_addr, - param->vdev_id); + + reinit_completion(&ar->peer_delete_done); + + ret = ath11k_wmi_send_peer_delete_cmd(ar, param->peer_addr, + param->vdev_id); + if (ret) { + ath11k_warn(ar->ab, "failed to delete peer vdev_id %d addr %pM\n", + param->vdev_id, param->peer_addr); + return ret; + } + + ret = ath11k_wait_for_peer_delete_done(ar, param->vdev_id, + param->peer_addr); + if (ret) + return ret; + return -ENOENT; } + peer->pdev_idx = ar->pdev_idx; peer->sta = sta; arvif->ast_hash = peer->ast_hash; + peer->sec_type = HAL_ENCRYPT_TYPE_OPEN; + peer->sec_type_grp = HAL_ENCRYPT_TYPE_OPEN; + ar->num_peers++; spin_unlock_bh(&ar->ab->base_lock); only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/net/wireless/ath/ath11k/peer.h +++ linux-oem-5.6-5.6.0/drivers/net/wireless/ath/ath11k/peer.h @@ -13,10 +13,20 @@ u8 addr[ETH_ALEN]; int peer_id; u16 ast_hash; + u8 pdev_idx; /* protected by ab->data_lock */ struct ieee80211_key_conf *keys[WMI_MAX_KEY_INDEX + 1]; struct dp_rx_tid rx_tid[IEEE80211_NUM_TIDS + 1]; + + /* Info used in MMIC verification of + * RX fragments + */ + struct crypto_shash *tfm_mmic; + u8 mcast_keyidx; + u8 ucast_keyidx; + u16 sec_type; + u16 sec_type_grp; }; void ath11k_peer_unmap_event(struct ath11k_base *ab, u16 peer_id); @@ -31,5 +41,7 @@ int ath11k_peer_delete(struct ath11k *ar, u32 vdev_id, u8 *addr); int ath11k_peer_create(struct ath11k *ar, struct ath11k_vif *arvif, struct ieee80211_sta *sta, struct peer_create_params *param); +int ath11k_wait_for_peer_delete_done(struct ath11k *ar, u32 vdev_id, + const u8 *addr); #endif /* _PEER_H_ */ only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/net/wireless/ath/ath11k/qmi.c +++ linux-oem-5.6-5.6.0/drivers/net/wireless/ath/ath11k/qmi.c @@ -3,12 +3,17 @@ * Copyright (c) 2018-2019 The Linux Foundation. All rights reserved. */ +#include + #include "qmi.h" #include "core.h" #include "debug.h" #include #include +#define SLEEP_CLOCK_SELECT_INTERNAL_BIT 0x02 +#define HOST_CSTATE_BIT 0x04 + static struct qmi_elem_info qmi_wlanfw_host_cap_req_msg_v01_ei[] = { { .data_type = QMI_OPT_FLAG, @@ -1516,15 +1521,35 @@ req.bdf_support_valid = 1; req.bdf_support = 1; - req.m3_support_valid = 0; - req.m3_support = 0; - - req.m3_cache_support_valid = 0; - req.m3_cache_support = 0; + if (ab->bus_params.m3_fw_support) { + req.m3_support_valid = 1; + req.m3_support = 1; + req.m3_cache_support_valid = 1; + req.m3_cache_support = 1; + } else { + req.m3_support_valid = 0; + req.m3_support = 0; + req.m3_cache_support_valid = 0; + req.m3_cache_support = 0; + } req.cal_done_valid = 1; req.cal_done = ab->qmi.cal_done; + if (ab->hw_params.internal_sleep_clock) { + req.nm_modem_valid = 1; + + /* Notify firmware that this is non-qualcomm platform. */ + req.nm_modem |= HOST_CSTATE_BIT; + + /* Notify firmware about the sleep clock selection, + * nm_modem_bit[1] is used for this purpose. Host driver on + * non-qualcomm platforms should select internal sleep + * clock. + */ + req.nm_modem |= SLEEP_CLOCK_SELECT_INTERNAL_BIT; + } + ret = qmi_txn_init(&ab->qmi.handle, &txn, qmi_wlanfw_host_cap_resp_msg_v01_ei, &resp); if (ret < 0) @@ -1627,6 +1652,7 @@ struct qmi_wlanfw_respond_mem_resp_msg_v01 resp; struct qmi_txn txn = {}; int ret = 0, i; + bool delayed = false; req = kzalloc(sizeof(*req), GFP_KERNEL); if (!req) @@ -1634,19 +1660,35 @@ memset(&resp, 0, sizeof(resp)); - req->mem_seg_len = ab->qmi.mem_seg_count; + /* For QCA6390 by default FW requests a block of ~4M contiguous + * DMA memory, it's hard to allocate from OS. So host returns + * failure to FW and FW will then request mulitple blocks of small + * chunk size memory. + */ + if (!ab->bus_params.fixed_mem_region && ab->qmi.target_mem_delayed) { + delayed = true; + ath11k_dbg(ab, ATH11K_DBG_QMI, "qmi delays mem_request %d\n", + ab->qmi.mem_seg_count); + memset(req, 0, sizeof(*req)); + } else { + req->mem_seg_len = ab->qmi.mem_seg_count; + + for (i = 0; i < req->mem_seg_len ; i++) { + req->mem_seg[i].addr = ab->qmi.target_mem[i].paddr; + req->mem_seg[i].size = ab->qmi.target_mem[i].size; + req->mem_seg[i].type = ab->qmi.target_mem[i].type; + ath11k_info(ab, "qmi req mem_seg[%d] 0x%llx %u %u\n", i, + ab->qmi.target_mem[i].paddr, + ab->qmi.target_mem[i].size, + ab->qmi.target_mem[i].type); + } + } ret = qmi_txn_init(&ab->qmi.handle, &txn, qmi_wlanfw_respond_mem_resp_msg_v01_ei, &resp); if (ret < 0) goto out; - for (i = 0; i < req->mem_seg_len ; i++) { - req->mem_seg[i].addr = ab->qmi.target_mem[i].paddr; - req->mem_seg[i].size = ab->qmi.target_mem[i].size; - req->mem_seg[i].type = ab->qmi.target_mem[i].type; - } - ret = qmi_send_request(&ab->qmi.handle, NULL, &txn, QMI_WLANFW_RESPOND_MEM_REQ_V01, QMI_WLANFW_RESPOND_MEM_REQ_MSG_V01_MAX_LEN, @@ -1664,25 +1706,81 @@ } if (resp.resp.result != QMI_RESULT_SUCCESS_V01) { + /* the error response is expected when + * target_mem_delayed is true. + */ + if (delayed && resp.resp.error == 0) + goto out; + ath11k_warn(ab, "Respond mem req failed, result: %d, err: %d\n", resp.resp.result, resp.resp.error); ret = -EINVAL; - goto out; } out: kfree(req); return ret; } +static void ath11k_qmi_free_target_mem_chunk(struct ath11k_base *ab) +{ + int i; + + if (ab->bus_params.fixed_mem_region) + return; + + for (i = 0; i < ab->qmi.mem_seg_count; i++) { + if (!ab->qmi.target_mem[i].vaddr) + continue; + + dma_free_coherent(ab->dev, + ab->qmi.target_mem[i].size, + ab->qmi.target_mem[i].vaddr, + ab->qmi.target_mem[i].paddr); + ab->qmi.target_mem[i].vaddr = NULL; + } +} + static int ath11k_qmi_alloc_target_mem_chunk(struct ath11k_base *ab) { + int i; + struct target_mem_chunk *chunk; + + ab->qmi.target_mem_delayed = false; + for (i = 0; i < ab->qmi.mem_seg_count; i++) { + chunk = &ab->qmi.target_mem[i]; + chunk->vaddr = dma_alloc_coherent(ab->dev, + chunk->size, + &chunk->paddr, + GFP_KERNEL); + if (!chunk->vaddr) { + if (ab->qmi.mem_seg_count <= 2) { + ath11k_info(ab, "too big size: 0x%x, type:%u, will try later with small size.\n", + chunk->size, + chunk->type); + ath11k_qmi_free_target_mem_chunk(ab); + ab->qmi.target_mem_delayed = true; + return 0; + } + ath11k_err(ab, "failed to alloc memory, size: 0x%x, type: %u\n", + chunk->size, + chunk->type); + return -EINVAL; + + } + } + + return 0; +} + +static int ath11k_qmi_assign_target_mem_chunk(struct ath11k_base *ab) +{ int i, idx; for (i = 0, idx = 0; i < ab->qmi.mem_seg_count; i++) { switch (ab->qmi.target_mem[i].type) { case BDF_MEM_REGION_TYPE: - ab->qmi.target_mem[idx].paddr = ATH11K_QMI_BDF_ADDRESS; - ab->qmi.target_mem[idx].vaddr = ATH11K_QMI_BDF_ADDRESS; + ab->qmi.target_mem[idx].paddr = ab->hw_params.bdf_addr; + ab->qmi.target_mem[idx].vaddr = NULL; ab->qmi.target_mem[idx].size = ab->qmi.target_mem[i].size; ab->qmi.target_mem[idx].type = ab->qmi.target_mem[i].type; idx++; @@ -1694,7 +1792,7 @@ } /* TODO ath11k does not support cold boot calibration */ ab->qmi.target_mem[idx].paddr = 0; - ab->qmi.target_mem[idx].vaddr = 0; + ab->qmi.target_mem[idx].vaddr = NULL; ab->qmi.target_mem[idx].size = ab->qmi.target_mem[i].size; ab->qmi.target_mem[idx].type = ab->qmi.target_mem[i].type; idx++; @@ -1772,11 +1870,11 @@ strlcpy(ab->qmi.target.fw_build_id, resp.fw_build_id, sizeof(ab->qmi.target.fw_build_id)); - ath11k_info(ab, "qmi target: chip_id: 0x%x, chip_family: 0x%x, board_id: 0x%x, soc_id: 0x%x\n", + ath11k_info(ab, "chip_id 0x%x chip_family 0x%x board_id 0x%x soc_id 0x%x\n", ab->qmi.target.chip_id, ab->qmi.target.chip_family, ab->qmi.target.board_id, ab->qmi.target.soc_id); - ath11k_info(ab, "qmi fw_version: 0x%x fw_build_timestamp: %s fw_build_id: %s", + ath11k_info(ab, "fw_version 0x%x fw_build_timestamp %s fw_build_id %s", ab->qmi.target.fw_version, ab->qmi.target.fw_build_timestamp, ab->qmi.target.fw_build_id); @@ -1790,21 +1888,19 @@ struct qmi_wlanfw_bdf_download_req_msg_v01 *req, void __iomem *bdf_addr) { - struct device *dev = ab->dev; - char filename[ATH11K_QMI_MAX_BDF_FILE_NAME_SIZE]; const struct firmware *fw_entry; struct ath11k_board_data bd; u32 fw_size; - int ret = 0; - - memset(&bd, 0, sizeof(bd)); + int ret; switch (type) { case ATH11K_QMI_FILE_TYPE_BDF_GOLDEN: + memset(&bd, 0, sizeof(bd)); + ret = ath11k_core_fetch_bdf(ab, &bd); if (ret) { ath11k_warn(ab, "qmi failed to load BDF\n"); - goto out; + return ret; } fw_size = min_t(u32, ab->hw_params.fw.board_size, bd.len); @@ -1812,12 +1908,12 @@ ath11k_core_free_bdf(ab, &bd); break; case ATH11K_QMI_FILE_TYPE_CALDATA: - snprintf(filename, sizeof(filename), - "%s/%s", ab->hw_params.fw.dir, ATH11K_QMI_DEFAULT_CAL_FILE_NAME); - ret = request_firmware(&fw_entry, filename, dev); - if (ret) { - ath11k_warn(ab, "qmi failed to load CAL: %s\n", filename); - goto out; + fw_entry = ath11k_core_firmware_request(ab, ATH11K_DEFAULT_CAL_FILE); + if (IS_ERR(fw_entry)) { + ret = PTR_ERR(fw_entry); + ath11k_warn(ab, "failed to load %s: %d\n", + ATH11K_DEFAULT_CAL_FILE, ret); + return ret; } fw_size = min_t(u32, ab->hw_params.fw.board_size, @@ -1825,23 +1921,18 @@ memcpy_toio(bdf_addr + ATH11K_QMI_CALDATA_OFFSET, fw_entry->data, fw_size); - ath11k_info(ab, "qmi downloading BDF: %s, size: %zu\n", - filename, fw_entry->size); release_firmware(fw_entry); break; default: - ret = -EINVAL; - goto out; + return -EINVAL; } req->total_size = fw_size; - -out: - return ret; + return 0; } -static int ath11k_qmi_load_bdf(struct ath11k_base *ab) +static int ath11k_qmi_load_bdf_fixed_addr(struct ath11k_base *ab) { struct qmi_wlanfw_bdf_download_req_msg_v01 *req; struct qmi_wlanfw_bdf_download_resp_msg_v01 resp; @@ -1854,7 +1945,7 @@ return -ENOMEM; memset(&resp, 0, sizeof(resp)); - bdf_addr = ioremap(ATH11K_QMI_BDF_ADDRESS, ATH11K_QMI_BDF_MAX_SIZE); + bdf_addr = ioremap(ab->hw_params.bdf_addr, ATH11K_QMI_BDF_MAX_SIZE); if (!bdf_addr) { ath11k_warn(ab, "qmi ioremap error for BDF\n"); ret = -EIO; @@ -1905,7 +1996,6 @@ goto out_qmi_bdf; } } - ath11k_info(ab, "qmi BDF downloaded\n"); out_qmi_bdf: iounmap(bdf_addr); @@ -1914,8 +2004,151 @@ return ret; } +static int ath11k_qmi_load_bdf_qmi(struct ath11k_base *ab) +{ + struct qmi_wlanfw_bdf_download_req_msg_v01 *req; + struct qmi_wlanfw_bdf_download_resp_msg_v01 resp; + struct ath11k_board_data bd; + unsigned int remaining; + struct qmi_txn txn = {}; + int ret; + const u8 *temp; + int bdf_type; + + req = kzalloc(sizeof(*req), GFP_KERNEL); + if (!req) + return -ENOMEM; + memset(&resp, 0, sizeof(resp)); + + memset(&bd, 0, sizeof(bd)); + ret = ath11k_core_fetch_bdf(ab, &bd); + if (ret) { + ath11k_warn(ab, "qmi failed to load bdf:\n"); + goto out; + } + + temp = bd.data; + remaining = bd.len; + + if (bd.len >= SELFMAG && memcmp(bd.data, ELFMAG, SELFMAG) == 0) + bdf_type = ATH11K_QMI_BDF_TYPE_ELF; + else + bdf_type = ATH11K_QMI_BDF_TYPE_BIN; + + ath11k_dbg(ab, ATH11K_DBG_QMI, "qmi bdf_type %d\n", bdf_type); + + while (remaining) { + req->valid = 1; + req->file_id_valid = 1; + req->file_id = ab->qmi.target.board_id; + req->total_size_valid = 1; + req->total_size = bd.len; + req->seg_id_valid = 1; + req->data_valid = 1; + req->data_len = ATH11K_QMI_MAX_BDF_FILE_NAME_SIZE; + req->bdf_type = bdf_type; + req->bdf_type_valid = 1; + req->end_valid = 1; + req->end = 0; + + if (remaining > QMI_WLANFW_MAX_DATA_SIZE_V01) { + req->data_len = QMI_WLANFW_MAX_DATA_SIZE_V01; + } else { + req->data_len = remaining; + req->end = 1; + } + + memcpy(req->data, temp, req->data_len); + + ret = qmi_txn_init(&ab->qmi.handle, &txn, + qmi_wlanfw_bdf_download_resp_msg_v01_ei, + &resp); + if (ret < 0) + goto out_qmi_bdf; + + ret = qmi_send_request(&ab->qmi.handle, NULL, &txn, + QMI_WLANFW_BDF_DOWNLOAD_REQ_V01, + QMI_WLANFW_BDF_DOWNLOAD_REQ_MSG_V01_MAX_LEN, + qmi_wlanfw_bdf_download_req_msg_v01_ei, req); + if (ret < 0) { + qmi_txn_cancel(&txn); + goto out_qmi_bdf; + } + + ret = qmi_txn_wait(&txn, msecs_to_jiffies(ATH11K_QMI_WLANFW_TIMEOUT_MS)); + if (ret < 0) + goto out_qmi_bdf; + + if (resp.resp.result != QMI_RESULT_SUCCESS_V01) { + ath11k_warn(ab, "qmi BDF download failed, result: %d, err: %d\n", + resp.resp.result, resp.resp.error); + ret = resp.resp.result; + goto out_qmi_bdf; + } + remaining -= req->data_len; + temp += req->data_len; + req->seg_id++; + } + +out_qmi_bdf: + ath11k_core_free_bdf(ab, &bd); + +out: + kfree(req); + return ret; +} + +static int ath11k_qmi_m3_load(struct ath11k_base *ab) +{ + struct m3_mem_region *m3_mem = &ab->qmi.m3_mem; + const struct firmware *fw; + char path[100]; + int ret; + + if (m3_mem->vaddr || m3_mem->size) + return 0; + + fw = ath11k_core_firmware_request(ab, ATH11K_M3_FILE); + if (IS_ERR(fw)) { + ret = PTR_ERR(fw); + ath11k_core_create_firmware_path(ab, ATH11K_M3_FILE, + path, sizeof(path)); + ath11k_err(ab, "failed to load %s: %d\n", path, ret); + return ret; + } + + m3_mem->vaddr = dma_alloc_coherent(ab->dev, + fw->size, &m3_mem->paddr, + GFP_KERNEL); + if (!m3_mem->vaddr) { + ath11k_err(ab, "failed to allocate memory for M3 with size %zu\n", + fw->size); + release_firmware(fw); + return -ENOMEM; + } + + memcpy(m3_mem->vaddr, fw->data, fw->size); + m3_mem->size = fw->size; + release_firmware(fw); + + return 0; +} + +static void ath11k_qmi_m3_free(struct ath11k_base *ab) +{ + struct m3_mem_region *m3_mem = &ab->qmi.m3_mem; + + if (!ab->bus_params.m3_fw_support || !m3_mem->vaddr) + return; + + dma_free_coherent(ab->dev, m3_mem->size, + m3_mem->vaddr, m3_mem->paddr); + m3_mem->vaddr = NULL; +} + static int ath11k_qmi_wlanfw_m3_info_send(struct ath11k_base *ab) { + struct m3_mem_region *m3_mem = &ab->qmi.m3_mem; struct qmi_wlanfw_m3_info_req_msg_v01 req; struct qmi_wlanfw_m3_info_resp_msg_v01 resp; struct qmi_txn txn = {}; @@ -1923,8 +2156,20 @@ memset(&req, 0, sizeof(req)); memset(&resp, 0, sizeof(resp)); - req.addr = 0; - req.size = 0; + + if (ab->bus_params.m3_fw_support) { + ret = ath11k_qmi_m3_load(ab); + if (ret) { + ath11k_err(ab, "failed to load m3 firmware: %d", ret); + return ret; + } + + req.addr = m3_mem->paddr; + req.size = m3_mem->size; + } else { + req.addr = 0; + req.size = 0; + } ret = qmi_txn_init(&ab->qmi.handle, &txn, qmi_wlanfw_m3_info_resp_msg_v01_ei, &resp); @@ -2034,7 +2279,7 @@ req->tgt_cfg_valid = 1; /* This is number of CE configs */ req->tgt_cfg_len = ab->qmi.ce_cfg.tgt_ce_len; - for (pipe_num = 0; pipe_num <= req->tgt_cfg_len ; pipe_num++) { + for (pipe_num = 0; pipe_num < req->tgt_cfg_len ; pipe_num++) { req->tgt_cfg[pipe_num].pipe_num = ce_cfg[pipe_num].pipenum; req->tgt_cfg[pipe_num].pipe_dir = ce_cfg[pipe_num].pipedir; req->tgt_cfg[pipe_num].nentries = ce_cfg[pipe_num].nentries; @@ -2051,7 +2296,18 @@ req->svc_cfg[pipe_num].pipe_num = svc_cfg[pipe_num].pipenum; } req->shadow_reg_valid = 0; - req->shadow_reg_v2_valid = 0; + + /* set shadow v2 configuration */ + if (ab->hw_params.supports_shadow_regs) { + req->shadow_reg_v2_valid = 1; + req->shadow_reg_v2_len = min_t(u32, + ab->qmi.ce_cfg.shadow_reg_v2_len, + QMI_WLANFW_MAX_NUM_SHADOW_REG_V2_V01); + memcpy(&req->shadow_reg_v2, ab->qmi.ce_cfg.shadow_reg_v2, + sizeof(u32) * req->shadow_reg_v2_len); + } else { + req->shadow_reg_v2_valid = 0; + } ret = qmi_txn_init(&ab->qmi.handle, &txn, qmi_wlanfw_wlan_cfg_resp_msg_v01_ei, &resp); @@ -2181,7 +2437,10 @@ return; } - ret = ath11k_qmi_load_bdf(ab); + if (ab->bus_params.fixed_bdf_addr) + ret = ath11k_qmi_load_bdf_fixed_addr(ab); + else + ret = ath11k_qmi_load_bdf_qmi(ab); if (ret < 0) { ath11k_warn(ab, "qmi failed to load board data file:%d\n", ret); return; @@ -2220,10 +2479,20 @@ msg->mem_seg[i].type, msg->mem_seg[i].size); } - ret = ath11k_qmi_alloc_target_mem_chunk(ab); - if (ret < 0) { - ath11k_warn(ab, "qmi failed to alloc target memory:%d\n", ret); - return; + if (ab->bus_params.fixed_mem_region) { + ret = ath11k_qmi_assign_target_mem_chunk(ab); + if (ret) { + ath11k_warn(ab, "qmi failed to assign target memory: %d\n", + ret); + return; + } + } else { + ret = ath11k_qmi_alloc_target_mem_chunk(ab); + if (ret) { + ath11k_warn(ab, "qmi failed to alloc target memory: %d\n", + ret); + return; + } } ath11k_qmi_driver_event_post(qmi, ATH11K_QMI_EVENT_REQUEST_MEM, NULL); @@ -2265,21 +2534,21 @@ .type = QMI_INDICATION, .msg_id = QMI_WLFW_REQUEST_MEM_IND_V01, .ei = qmi_wlanfw_request_mem_ind_msg_v01_ei, - .decoded_size = sizeof(qmi_wlanfw_request_mem_ind_msg_v01_ei), + .decoded_size = sizeof(struct qmi_wlanfw_request_mem_ind_msg_v01), .fn = ath11k_qmi_msg_mem_request_cb, }, { .type = QMI_INDICATION, .msg_id = QMI_WLFW_FW_MEM_READY_IND_V01, .ei = qmi_wlanfw_mem_ready_ind_msg_v01_ei, - .decoded_size = sizeof(qmi_wlanfw_mem_ready_ind_msg_v01_ei), + .decoded_size = sizeof(struct qmi_wlanfw_fw_mem_ready_ind_msg_v01), .fn = ath11k_qmi_msg_mem_ready_cb, }, { .type = QMI_INDICATION, .msg_id = QMI_WLFW_FW_READY_IND_V01, .ei = qmi_wlanfw_fw_ready_ind_msg_v01_ei, - .decoded_size = sizeof(qmi_wlanfw_fw_ready_ind_msg_v01_ei), + .decoded_size = sizeof(struct qmi_wlanfw_fw_ready_ind_msg_v01), .fn = ath11k_qmi_msg_fw_ready_cb, }, { @@ -2287,7 +2556,7 @@ .msg_id = QMI_WLFW_COLD_BOOT_CAL_DONE_IND_V01, .ei = qmi_wlanfw_cold_boot_cal_done_ind_msg_v01_ei, .decoded_size = - sizeof(qmi_wlanfw_cold_boot_cal_done_ind_msg_v01_ei), + sizeof(struct qmi_wlanfw_fw_cold_cal_done_ind_msg_v01), .fn = ath11k_qmi_msg_cold_boot_cal_done_cb, }, }; @@ -2365,6 +2634,7 @@ break; case ATH11K_QMI_EVENT_FW_READY: if (test_bit(ATH11K_FLAG_REGISTERED, &ab->dev_flags)) { + ath11k_hal_dump_srng_stats(ab); queue_work(ab->workqueue, &ab->restart_work); break; } @@ -2415,9 +2685,10 @@ ret = qmi_add_lookup(&ab->qmi.handle, ATH11K_QMI_WLFW_SERVICE_ID_V01, ATH11K_QMI_WLFW_SERVICE_VERS_V01, - ATH11K_QMI_WLFW_SERVICE_INS_ID_V01); + ab->qmi.service_ins_id); if (ret < 0) { ath11k_warn(ab, "failed to add qmi lookup\n"); + destroy_workqueue(ab->qmi.event_wq); return ret; } @@ -2429,5 +2700,7 @@ qmi_handle_release(&ab->qmi.handle); cancel_work_sync(&ab->qmi.event_work); destroy_workqueue(ab->qmi.event_wq); + ath11k_qmi_m3_free(ab); + ath11k_qmi_free_target_mem_chunk(ab); } only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/net/wireless/ath/ath11k/qmi.h +++ linux-oem-5.6-5.6.0/drivers/net/wireless/ath/ath11k/qmi.h @@ -12,18 +12,18 @@ #define ATH11K_HOST_VERSION_STRING "WIN" #define ATH11K_QMI_WLANFW_TIMEOUT_MS 5000 #define ATH11K_QMI_MAX_BDF_FILE_NAME_SIZE 64 -#define ATH11K_QMI_BDF_ADDRESS 0x4B0C0000 #define ATH11K_QMI_BDF_MAX_SIZE (256 * 1024) #define ATH11K_QMI_CALDATA_OFFSET (128 * 1024) #define ATH11K_QMI_WLANFW_MAX_BUILD_ID_LEN_V01 128 #define ATH11K_QMI_WLFW_SERVICE_ID_V01 0x45 #define ATH11K_QMI_WLFW_SERVICE_VERS_V01 0x01 #define ATH11K_QMI_WLFW_SERVICE_INS_ID_V01 0x02 +#define ATH11K_QMI_WLFW_SERVICE_INS_ID_V01_QCA6390 0x01 +#define ATH11K_QMI_WLFW_SERVICE_INS_ID_V01_IPQ8074 0x02 #define ATH11K_QMI_WLANFW_MAX_TIMESTAMP_LEN_V01 32 #define ATH11K_QMI_RESP_LEN_MAX 8192 #define ATH11K_QMI_WLANFW_MAX_NUM_MEM_SEG_V01 32 #define ATH11K_QMI_CALDB_SIZE 0x480000 -#define ATH11K_QMI_DEFAULT_CAL_FILE_NAME "caldata.bin" #define QMI_WLFW_REQUEST_MEM_IND_V01 0x0035 #define QMI_WLFW_FW_MEM_READY_IND_V01 0x0037 @@ -42,6 +42,11 @@ ATH11K_QMI_MAX_FILE_TYPE, }; +enum ath11k_qmi_bdf_type { + ATH11K_QMI_BDF_TYPE_BIN = 0, + ATH11K_QMI_BDF_TYPE_ELF = 1, +}; + enum ath11k_qmi_event_type { ATH11K_QMI_EVENT_SERVER_ARRIVE, ATH11K_QMI_EVENT_SERVER_EXIT, @@ -72,7 +77,7 @@ int svc_to_ce_map_len; const u8 *shadow_reg; int shadow_reg_len; - u8 *shadow_reg_v2; + u32 *shadow_reg_v2; int shadow_reg_v2_len; }; @@ -85,7 +90,7 @@ u32 size; u32 type; dma_addr_t paddr; - u32 vaddr; + u32 *vaddr; }; struct target_info { @@ -98,6 +103,12 @@ char fw_build_id[ATH11K_QMI_WLANFW_MAX_BUILD_ID_LEN_V01 + 1]; }; +struct m3_mem_region { + u32 size; + dma_addr_t paddr; + void *vaddr; +}; + struct ath11k_qmi { struct ath11k_base *ab; struct qmi_handle handle; @@ -110,8 +121,11 @@ struct target_mem_chunk target_mem[ATH11K_QMI_WLANFW_MAX_NUM_MEM_SEG_V01]; u32 mem_seg_count; u32 target_mem_mode; + bool target_mem_delayed; u8 cal_done; struct target_info target; + struct m3_mem_region m3_mem; + unsigned int service_ins_id; }; #define QMI_WLANFW_HOST_CAP_REQ_MSG_V01_MAX_LEN 189 @@ -254,6 +268,14 @@ char placeholder; }; +struct qmi_wlanfw_fw_ready_ind_msg_v01 { + char placeholder; +}; + +struct qmi_wlanfw_fw_cold_cal_done_ind_msg_v01 { + char placeholder; +}; + #define QMI_WLANFW_CAP_REQ_MSG_V01_MAX_LEN 0 #define QMI_WLANFW_CAP_RESP_MSG_V01_MAX_LEN 207 #define QMI_WLANFW_CAP_REQ_V01 0x0024 only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/net/wireless/ath/ath11k/reg.c +++ linux-oem-5.6-5.6.0/drivers/net/wireless/ath/ath11k/reg.c @@ -161,6 +161,10 @@ else ch->phy_mode = MODE_11A; + if (channel->band == NL80211_BAND_6GHZ && + cfg80211_channel_is_psc(channel)) + ch->psc_channel = true; + ath11k_dbg(ar->ab, ATH11K_DBG_WMI, "mac channel [%d/%d] freq %d maxpower %d regpower %d antenna %d mode %d\n", i, params->nallchans, @@ -202,7 +206,7 @@ ab = ar->ab; pdev_id = ar->pdev_idx; - spin_lock(&ab->base_lock); + spin_lock_bh(&ab->base_lock); if (init) { /* Apply the regd received during init through @@ -223,7 +227,7 @@ if (!regd) { ret = -EINVAL; - spin_unlock(&ab->base_lock); + spin_unlock_bh(&ab->base_lock); goto err; } @@ -234,7 +238,7 @@ if (regd_copy) ath11k_copy_regd(regd, regd_copy); - spin_unlock(&ab->base_lock); + spin_unlock_bh(&ab->base_lock); if (!regd_copy) { ret = -ENOMEM; @@ -695,7 +699,7 @@ { int i; - for (i = 0; i < MAX_RADIOS; i++) { + for (i = 0; i < ab->hw_params.max_radios; i++) { kfree(ab->default_regd[i]); kfree(ab->new_regd[i]); } only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/net/wireless/ath/ath11k/rx_desc.h +++ linux-oem-5.6-5.6.0/drivers/net/wireless/ath/ath11k/rx_desc.h @@ -342,7 +342,7 @@ #define RX_MPDU_START_INFO0_PROTO_VER_ERR BIT(12) #define RX_MPDU_START_INFO0_AST_LOOKUP_VALID BIT(13) -#define RX_MPDU_START_INFO1_MPDU_CTRL_VALID BIT(0) +#define RX_MPDU_START_INFO1_MPDU_FCTRL_VALID BIT(0) #define RX_MPDU_START_INFO1_MPDU_DUR_VALID BIT(1) #define RX_MPDU_START_INFO1_MAC_ADDR1_VALID BIT(2) #define RX_MPDU_START_INFO1_MAC_ADDR2_VALID BIT(3) @@ -1209,4 +1209,12 @@ u8 msdu_payload[0]; } __packed; +#define HAL_RX_RU_ALLOC_TYPE_MAX 6 +#define RU_26 1 +#define RU_52 2 +#define RU_106 4 +#define RU_242 9 +#define RU_484 18 +#define RU_996 37 + #endif /* ATH11K_RX_DESC_H */ only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/net/wireless/ath/ath11k/spectral.c +++ linux-oem-5.6-5.6.0/drivers/net/wireless/ath/ath11k/spectral.c @@ -0,0 +1,1027 @@ +// SPDX-License-Identifier: BSD-3-Clause-Clear +/* + * Copyright (c) 2019-2020 The Linux Foundation. All rights reserved. + */ + +#include +#include "core.h" +#include "debug.h" + +#define ATH11K_SPECTRAL_NUM_RESP_PER_EVENT 2 +#define ATH11K_SPECTRAL_EVENT_TIMEOUT_MS 1 + +#define ATH11K_SPECTRAL_DWORD_SIZE 4 +/* HW bug, expected BIN size is 2 bytes but HW report as 4 bytes */ +#define ATH11K_SPECTRAL_BIN_SIZE 4 +#define ATH11K_SPECTRAL_ATH11K_MIN_BINS 64 +#define ATH11K_SPECTRAL_ATH11K_MIN_IB_BINS 32 +#define ATH11K_SPECTRAL_ATH11K_MAX_IB_BINS 256 + +#define ATH11K_SPECTRAL_SCAN_COUNT_MAX 4095 + +/* Max channel computed by sum of 2g and 5g band channels */ +#define ATH11K_SPECTRAL_TOTAL_CHANNEL 41 +#define ATH11K_SPECTRAL_SAMPLES_PER_CHANNEL 70 +#define ATH11K_SPECTRAL_PER_SAMPLE_SIZE (sizeof(struct fft_sample_ath11k) + \ + ATH11K_SPECTRAL_ATH11K_MAX_IB_BINS) +#define ATH11K_SPECTRAL_TOTAL_SAMPLE (ATH11K_SPECTRAL_TOTAL_CHANNEL * \ + ATH11K_SPECTRAL_SAMPLES_PER_CHANNEL) +#define ATH11K_SPECTRAL_SUB_BUFF_SIZE ATH11K_SPECTRAL_PER_SAMPLE_SIZE +#define ATH11K_SPECTRAL_NUM_SUB_BUF ATH11K_SPECTRAL_TOTAL_SAMPLE + +#define ATH11K_SPECTRAL_20MHZ 20 +#define ATH11K_SPECTRAL_40MHZ 40 +#define ATH11K_SPECTRAL_80MHZ 80 + +#define ATH11K_SPECTRAL_SIGNATURE 0xFA + +#define ATH11K_SPECTRAL_TAG_RADAR_SUMMARY 0x0 +#define ATH11K_SPECTRAL_TAG_RADAR_FFT 0x1 +#define ATH11K_SPECTRAL_TAG_SCAN_SUMMARY 0x2 +#define ATH11K_SPECTRAL_TAG_SCAN_SEARCH 0x3 + +#define SPECTRAL_TLV_HDR_LEN GENMASK(15, 0) +#define SPECTRAL_TLV_HDR_TAG GENMASK(23, 16) +#define SPECTRAL_TLV_HDR_SIGN GENMASK(31, 24) + +#define SPECTRAL_SUMMARY_INFO0_AGC_TOTAL_GAIN GENMASK(7, 0) +#define SPECTRAL_SUMMARY_INFO0_OB_FLAG BIT(8) +#define SPECTRAL_SUMMARY_INFO0_GRP_IDX GENMASK(16, 9) +#define SPECTRAL_SUMMARY_INFO0_RECENT_RFSAT BIT(17) +#define SPECTRAL_SUMMARY_INFO0_INBAND_PWR_DB GENMASK(27, 18) +#define SPECTRAL_SUMMARY_INFO0_FALSE_SCAN BIT(28) +#define SPECTRAL_SUMMARY_INFO0_DETECTOR_ID GENMASK(30, 29) +#define SPECTRAL_SUMMARY_INFO0_PRI80 BIT(31) + +#define SPECTRAL_SUMMARY_INFO2_PEAK_SIGNED_IDX GENMASK(11, 0) +#define SPECTRAL_SUMMARY_INFO2_PEAK_MAGNITUDE GENMASK(21, 12) +#define SPECTRAL_SUMMARY_INFO2_NARROWBAND_MASK GENMASK(29, 22) +#define SPECTRAL_SUMMARY_INFO2_GAIN_CHANGE BIT(30) + +struct spectral_tlv { + __le32 timestamp; + __le32 header; +} __packed; + +struct spectral_summary_fft_report { + __le32 timestamp; + __le32 tlv_header; + __le32 info0; + __le32 reserve0; + __le32 info2; + __le32 reserve1; +} __packed; + +struct ath11k_spectral_summary_report { + struct wmi_dma_buf_release_meta_data meta; + u32 timestamp; + u8 agc_total_gain; + u8 grp_idx; + u16 inb_pwr_db; + s16 peak_idx; + u16 peak_mag; + u8 detector_id; + bool out_of_band_flag; + bool rf_saturation; + bool primary80; + bool gain_change; + bool false_scan; +}; + +#define SPECTRAL_FFT_REPORT_INFO0_DETECTOR_ID GENMASK(1, 0) +#define SPECTRAL_FFT_REPORT_INFO0_FFT_NUM GENMASK(4, 2) +#define SPECTRAL_FFT_REPORT_INFO0_RADAR_CHECK GENMASK(16, 5) +#define SPECTRAL_FFT_REPORT_INFO0_PEAK_SIGNED_IDX GENMASK(27, 17) +#define SPECTRAL_FFT_REPORT_INFO0_CHAIN_IDX GENMASK(30, 28) + +#define SPECTRAL_FFT_REPORT_INFO1_BASE_PWR_DB GENMASK(8, 0) +#define SPECTRAL_FFT_REPORT_INFO1_TOTAL_GAIN_DB GENMASK(16, 9) + +#define SPECTRAL_FFT_REPORT_INFO2_NUM_STRONG_BINS GENMASK(7, 0) +#define SPECTRAL_FFT_REPORT_INFO2_PEAK_MAGNITUDE GENMASK(17, 8) +#define SPECTRAL_FFT_REPORT_INFO2_AVG_PWR_DB GENMASK(24, 18) +#define SPECTRAL_FFT_REPORT_INFO2_REL_PWR_DB GENMASK(31, 25) + +struct spectral_search_fft_report { + __le32 timestamp; + __le32 tlv_header; + __le32 info0; + __le32 info1; + __le32 info2; + __le32 reserve0; + u8 bins[0]; +} __packed; + +struct ath11k_spectral_search_report { + u32 timestamp; + u8 detector_id; + u8 fft_count; + u16 radar_check; + s16 peak_idx; + u8 chain_idx; + u16 base_pwr_db; + u8 total_gain_db; + u8 strong_bin_count; + u16 peak_mag; + u8 avg_pwr_db; + u8 rel_pwr_db; +}; + +static struct dentry *create_buf_file_handler(const char *filename, + struct dentry *parent, + umode_t mode, + struct rchan_buf *buf, + int *is_global) +{ + struct dentry *buf_file; + + buf_file = debugfs_create_file(filename, mode, parent, buf, + &relay_file_operations); + *is_global = 1; + return buf_file; +} + +static int remove_buf_file_handler(struct dentry *dentry) +{ + debugfs_remove(dentry); + + return 0; +} + +static struct rchan_callbacks rfs_scan_cb = { + .create_buf_file = create_buf_file_handler, + .remove_buf_file = remove_buf_file_handler, +}; + +static struct ath11k_vif *ath11k_spectral_get_vdev(struct ath11k *ar) +{ + struct ath11k_vif *arvif; + + lockdep_assert_held(&ar->conf_mutex); + + if (list_empty(&ar->arvifs)) + return NULL; + + /* if there already is a vif doing spectral, return that. */ + list_for_each_entry(arvif, &ar->arvifs, list) + if (arvif->spectral_enabled) + return arvif; + + /* otherwise, return the first vif. */ + return list_first_entry(&ar->arvifs, typeof(*arvif), list); +} + +static int ath11k_spectral_scan_trigger(struct ath11k *ar) +{ + struct ath11k_vif *arvif; + int ret; + + lockdep_assert_held(&ar->conf_mutex); + + arvif = ath11k_spectral_get_vdev(ar); + if (!arvif) + return -ENODEV; + + if (ar->spectral.mode == ATH11K_SPECTRAL_DISABLED) + return 0; + + ret = ath11k_wmi_vdev_spectral_enable(ar, arvif->vdev_id, + ATH11K_WMI_SPECTRAL_TRIGGER_CMD_CLEAR, + ATH11K_WMI_SPECTRAL_ENABLE_CMD_ENABLE); + if (ret) + return ret; + + ret = ath11k_wmi_vdev_spectral_enable(ar, arvif->vdev_id, + ATH11K_WMI_SPECTRAL_TRIGGER_CMD_TRIGGER, + ATH11K_WMI_SPECTRAL_ENABLE_CMD_ENABLE); + if (ret) + return ret; + + return 0; +} + +static int ath11k_spectral_scan_config(struct ath11k *ar, + enum ath11k_spectral_mode mode) +{ + struct ath11k_wmi_vdev_spectral_conf_param param = { 0 }; + struct ath11k_vif *arvif; + int ret, count; + + lockdep_assert_held(&ar->conf_mutex); + + arvif = ath11k_spectral_get_vdev(ar); + if (!arvif) + return -ENODEV; + + arvif->spectral_enabled = (mode != ATH11K_SPECTRAL_DISABLED); + ar->spectral.mode = mode; + + ret = ath11k_wmi_vdev_spectral_enable(ar, arvif->vdev_id, + ATH11K_WMI_SPECTRAL_TRIGGER_CMD_CLEAR, + ATH11K_WMI_SPECTRAL_ENABLE_CMD_DISABLE); + if (ret) { + ath11k_warn(ar->ab, "failed to enable spectral scan: %d\n", ret); + return ret; + } + + if (mode == ATH11K_SPECTRAL_DISABLED) + return 0; + + if (mode == ATH11K_SPECTRAL_BACKGROUND) + count = ATH11K_WMI_SPECTRAL_COUNT_DEFAULT; + else + count = max_t(u16, 1, ar->spectral.count); + + param.vdev_id = arvif->vdev_id; + param.scan_count = count; + param.scan_fft_size = ar->spectral.fft_size; + param.scan_period = ATH11K_WMI_SPECTRAL_PERIOD_DEFAULT; + param.scan_priority = ATH11K_WMI_SPECTRAL_PRIORITY_DEFAULT; + param.scan_gc_ena = ATH11K_WMI_SPECTRAL_GC_ENA_DEFAULT; + param.scan_restart_ena = ATH11K_WMI_SPECTRAL_RESTART_ENA_DEFAULT; + param.scan_noise_floor_ref = ATH11K_WMI_SPECTRAL_NOISE_FLOOR_REF_DEFAULT; + param.scan_init_delay = ATH11K_WMI_SPECTRAL_INIT_DELAY_DEFAULT; + param.scan_nb_tone_thr = ATH11K_WMI_SPECTRAL_NB_TONE_THR_DEFAULT; + param.scan_str_bin_thr = ATH11K_WMI_SPECTRAL_STR_BIN_THR_DEFAULT; + param.scan_wb_rpt_mode = ATH11K_WMI_SPECTRAL_WB_RPT_MODE_DEFAULT; + param.scan_rssi_rpt_mode = ATH11K_WMI_SPECTRAL_RSSI_RPT_MODE_DEFAULT; + param.scan_rssi_thr = ATH11K_WMI_SPECTRAL_RSSI_THR_DEFAULT; + param.scan_pwr_format = ATH11K_WMI_SPECTRAL_PWR_FORMAT_DEFAULT; + param.scan_rpt_mode = ATH11K_WMI_SPECTRAL_RPT_MODE_DEFAULT; + param.scan_bin_scale = ATH11K_WMI_SPECTRAL_BIN_SCALE_DEFAULT; + param.scan_dbm_adj = ATH11K_WMI_SPECTRAL_DBM_ADJ_DEFAULT; + param.scan_chn_mask = ATH11K_WMI_SPECTRAL_CHN_MASK_DEFAULT; + + ret = ath11k_wmi_vdev_spectral_conf(ar, ¶m); + if (ret) { + ath11k_warn(ar->ab, "failed to configure spectral scan: %d\n", ret); + return ret; + } + + return 0; +} + +static ssize_t ath11k_read_file_spec_scan_ctl(struct file *file, + char __user *user_buf, + size_t count, loff_t *ppos) +{ + struct ath11k *ar = file->private_data; + char *mode = ""; + size_t len; + enum ath11k_spectral_mode spectral_mode; + + mutex_lock(&ar->conf_mutex); + spectral_mode = ar->spectral.mode; + mutex_unlock(&ar->conf_mutex); + + switch (spectral_mode) { + case ATH11K_SPECTRAL_DISABLED: + mode = "disable"; + break; + case ATH11K_SPECTRAL_BACKGROUND: + mode = "background"; + break; + case ATH11K_SPECTRAL_MANUAL: + mode = "manual"; + break; + } + + len = strlen(mode); + return simple_read_from_buffer(user_buf, count, ppos, mode, len); +} + +static ssize_t ath11k_write_file_spec_scan_ctl(struct file *file, + const char __user *user_buf, + size_t count, loff_t *ppos) +{ + struct ath11k *ar = file->private_data; + char buf[32]; + ssize_t len; + int ret; + + len = min(count, sizeof(buf) - 1); + if (copy_from_user(buf, user_buf, len)) + return -EFAULT; + + buf[len] = '\0'; + + mutex_lock(&ar->conf_mutex); + + if (strncmp("trigger", buf, 7) == 0) { + if (ar->spectral.mode == ATH11K_SPECTRAL_MANUAL || + ar->spectral.mode == ATH11K_SPECTRAL_BACKGROUND) { + /* reset the configuration to adopt possibly changed + * debugfs parameters + */ + ret = ath11k_spectral_scan_config(ar, ar->spectral.mode); + if (ret) { + ath11k_warn(ar->ab, "failed to reconfigure spectral scan: %d\n", + ret); + goto unlock; + } + + ret = ath11k_spectral_scan_trigger(ar); + if (ret) { + ath11k_warn(ar->ab, "failed to trigger spectral scan: %d\n", + ret); + } + } else { + ret = -EINVAL; + } + } else if (strncmp("background", buf, 10) == 0) { + ret = ath11k_spectral_scan_config(ar, ATH11K_SPECTRAL_BACKGROUND); + } else if (strncmp("manual", buf, 6) == 0) { + ret = ath11k_spectral_scan_config(ar, ATH11K_SPECTRAL_MANUAL); + } else if (strncmp("disable", buf, 7) == 0) { + ret = ath11k_spectral_scan_config(ar, ATH11K_SPECTRAL_DISABLED); + } else { + ret = -EINVAL; + } + +unlock: + mutex_unlock(&ar->conf_mutex); + + if (ret) + return ret; + + return count; +} + +static const struct file_operations fops_scan_ctl = { + .read = ath11k_read_file_spec_scan_ctl, + .write = ath11k_write_file_spec_scan_ctl, + .open = simple_open, + .owner = THIS_MODULE, + .llseek = default_llseek, +}; + +static ssize_t ath11k_read_file_spectral_count(struct file *file, + char __user *user_buf, + size_t count, loff_t *ppos) +{ + struct ath11k *ar = file->private_data; + char buf[32]; + size_t len; + u16 spectral_count; + + mutex_lock(&ar->conf_mutex); + spectral_count = ar->spectral.count; + mutex_unlock(&ar->conf_mutex); + + len = sprintf(buf, "%d\n", spectral_count); + return simple_read_from_buffer(user_buf, count, ppos, buf, len); +} + +static ssize_t ath11k_write_file_spectral_count(struct file *file, + const char __user *user_buf, + size_t count, loff_t *ppos) +{ + struct ath11k *ar = file->private_data; + unsigned long val; + char buf[32]; + ssize_t len; + + len = min(count, sizeof(buf) - 1); + if (copy_from_user(buf, user_buf, len)) + return -EFAULT; + + buf[len] = '\0'; + if (kstrtoul(buf, 0, &val)) + return -EINVAL; + + if (val > ATH11K_SPECTRAL_SCAN_COUNT_MAX) + return -EINVAL; + + mutex_lock(&ar->conf_mutex); + ar->spectral.count = val; + mutex_unlock(&ar->conf_mutex); + + return count; +} + +static const struct file_operations fops_scan_count = { + .read = ath11k_read_file_spectral_count, + .write = ath11k_write_file_spectral_count, + .open = simple_open, + .owner = THIS_MODULE, + .llseek = default_llseek, +}; + +static ssize_t ath11k_read_file_spectral_bins(struct file *file, + char __user *user_buf, + size_t count, loff_t *ppos) +{ + struct ath11k *ar = file->private_data; + char buf[32]; + unsigned int bins, fft_size; + size_t len; + + mutex_lock(&ar->conf_mutex); + + fft_size = ar->spectral.fft_size; + bins = 1 << fft_size; + + mutex_unlock(&ar->conf_mutex); + + len = sprintf(buf, "%d\n", bins); + return simple_read_from_buffer(user_buf, count, ppos, buf, len); +} + +static ssize_t ath11k_write_file_spectral_bins(struct file *file, + const char __user *user_buf, + size_t count, loff_t *ppos) +{ + struct ath11k *ar = file->private_data; + unsigned long val; + char buf[32]; + ssize_t len; + + len = min(count, sizeof(buf) - 1); + if (copy_from_user(buf, user_buf, len)) + return -EFAULT; + + buf[len] = '\0'; + if (kstrtoul(buf, 0, &val)) + return -EINVAL; + + if (val < ATH11K_SPECTRAL_ATH11K_MIN_BINS || + val > SPECTRAL_ATH11K_MAX_NUM_BINS) + return -EINVAL; + + if (!is_power_of_2(val)) + return -EINVAL; + + mutex_lock(&ar->conf_mutex); + ar->spectral.fft_size = ilog2(val); + mutex_unlock(&ar->conf_mutex); + + return count; +} + +static const struct file_operations fops_scan_bins = { + .read = ath11k_read_file_spectral_bins, + .write = ath11k_write_file_spectral_bins, + .open = simple_open, + .owner = THIS_MODULE, + .llseek = default_llseek, +}; + +static int ath11k_spectral_pull_summary(struct ath11k *ar, + struct wmi_dma_buf_release_meta_data *meta, + struct spectral_summary_fft_report *summary, + struct ath11k_spectral_summary_report *report) +{ + report->timestamp = __le32_to_cpu(summary->timestamp); + report->agc_total_gain = FIELD_GET(SPECTRAL_SUMMARY_INFO0_AGC_TOTAL_GAIN, + __le32_to_cpu(summary->info0)); + report->out_of_band_flag = FIELD_GET(SPECTRAL_SUMMARY_INFO0_OB_FLAG, + __le32_to_cpu(summary->info0)); + report->grp_idx = FIELD_GET(SPECTRAL_SUMMARY_INFO0_GRP_IDX, + __le32_to_cpu(summary->info0)); + report->rf_saturation = FIELD_GET(SPECTRAL_SUMMARY_INFO0_RECENT_RFSAT, + __le32_to_cpu(summary->info0)); + report->inb_pwr_db = FIELD_GET(SPECTRAL_SUMMARY_INFO0_INBAND_PWR_DB, + __le32_to_cpu(summary->info0)); + report->false_scan = FIELD_GET(SPECTRAL_SUMMARY_INFO0_FALSE_SCAN, + __le32_to_cpu(summary->info0)); + report->detector_id = FIELD_GET(SPECTRAL_SUMMARY_INFO0_DETECTOR_ID, + __le32_to_cpu(summary->info0)); + report->primary80 = FIELD_GET(SPECTRAL_SUMMARY_INFO0_PRI80, + __le32_to_cpu(summary->info0)); + report->peak_idx = FIELD_GET(SPECTRAL_SUMMARY_INFO2_PEAK_SIGNED_IDX, + __le32_to_cpu(summary->info2)); + report->peak_mag = FIELD_GET(SPECTRAL_SUMMARY_INFO2_PEAK_MAGNITUDE, + __le32_to_cpu(summary->info2)); + report->gain_change = FIELD_GET(SPECTRAL_SUMMARY_INFO2_GAIN_CHANGE, + __le32_to_cpu(summary->info2)); + + memcpy(&report->meta, meta, sizeof(*meta)); + + return 0; +} + +static int ath11k_spectral_pull_search(struct ath11k *ar, + struct spectral_search_fft_report *search, + struct ath11k_spectral_search_report *report) +{ + report->timestamp = __le32_to_cpu(search->timestamp); + report->detector_id = FIELD_GET(SPECTRAL_FFT_REPORT_INFO0_DETECTOR_ID, + __le32_to_cpu(search->info0)); + report->fft_count = FIELD_GET(SPECTRAL_FFT_REPORT_INFO0_FFT_NUM, + __le32_to_cpu(search->info0)); + report->radar_check = FIELD_GET(SPECTRAL_FFT_REPORT_INFO0_RADAR_CHECK, + __le32_to_cpu(search->info0)); + report->peak_idx = FIELD_GET(SPECTRAL_FFT_REPORT_INFO0_PEAK_SIGNED_IDX, + __le32_to_cpu(search->info0)); + report->chain_idx = FIELD_GET(SPECTRAL_FFT_REPORT_INFO0_CHAIN_IDX, + __le32_to_cpu(search->info0)); + report->base_pwr_db = FIELD_GET(SPECTRAL_FFT_REPORT_INFO1_BASE_PWR_DB, + __le32_to_cpu(search->info1)); + report->total_gain_db = FIELD_GET(SPECTRAL_FFT_REPORT_INFO1_TOTAL_GAIN_DB, + __le32_to_cpu(search->info1)); + report->strong_bin_count = FIELD_GET(SPECTRAL_FFT_REPORT_INFO2_NUM_STRONG_BINS, + __le32_to_cpu(search->info2)); + report->peak_mag = FIELD_GET(SPECTRAL_FFT_REPORT_INFO2_PEAK_MAGNITUDE, + __le32_to_cpu(search->info2)); + report->avg_pwr_db = FIELD_GET(SPECTRAL_FFT_REPORT_INFO2_AVG_PWR_DB, + __le32_to_cpu(search->info2)); + report->rel_pwr_db = FIELD_GET(SPECTRAL_FFT_REPORT_INFO2_REL_PWR_DB, + __le32_to_cpu(search->info2)); + + return 0; +} + +static u8 ath11k_spectral_get_max_exp(s8 max_index, u8 max_magnitude, + int bin_len, u8 *bins) +{ + int dc_pos; + u8 max_exp; + + dc_pos = bin_len / 2; + + /* peak index outside of bins */ + if (dc_pos <= max_index || -dc_pos >= max_index) + return 0; + + for (max_exp = 0; max_exp < 8; max_exp++) { + if (bins[dc_pos + max_index] == (max_magnitude >> max_exp)) + break; + } + + /* max_exp not found */ + if (bins[dc_pos + max_index] != (max_magnitude >> max_exp)) + return 0; + + return max_exp; +} + +static void ath11k_spectral_parse_fft(u8 *outbins, u8 *inbins, int num_bins, u8 fft_sz) +{ + int i, j; + + i = 0; + j = 0; + while (i < num_bins) { + outbins[i] = inbins[j]; + i++; + j += fft_sz; + } +} + +static +int ath11k_spectral_process_fft(struct ath11k *ar, + struct ath11k_spectral_summary_report *summary, + void *data, + struct fft_sample_ath11k *fft_sample, + u32 data_len) +{ + struct ath11k_base *ab = ar->ab; + struct spectral_search_fft_report *fft_report = data; + struct ath11k_spectral_search_report search; + struct spectral_tlv *tlv; + int tlv_len, bin_len, num_bins; + u16 length, freq; + u8 chan_width_mhz; + int ret; + + lockdep_assert_held(&ar->spectral.lock); + + if (!ab->hw_params.spectral_fft_sz) { + ath11k_warn(ab, "invalid bin size type for hw rev %d\n", + ab->hw_rev); + return -EINVAL; + } + + tlv = (struct spectral_tlv *)data; + tlv_len = FIELD_GET(SPECTRAL_TLV_HDR_LEN, __le32_to_cpu(tlv->header)); + /* convert Dword into bytes */ + tlv_len *= ATH11K_SPECTRAL_DWORD_SIZE; + bin_len = tlv_len - (sizeof(*fft_report) - sizeof(*tlv)); + + if (data_len < (bin_len + sizeof(*fft_report))) { + ath11k_warn(ab, "mismatch in expected bin len %d and data len %d\n", + bin_len, data_len); + return -EINVAL; + } + + num_bins = bin_len / ATH11K_SPECTRAL_BIN_SIZE; + /* Only In-band bins are useful to user for visualize */ + num_bins >>= 1; + + if (num_bins < ATH11K_SPECTRAL_ATH11K_MIN_IB_BINS || + num_bins > ATH11K_SPECTRAL_ATH11K_MAX_IB_BINS || + !is_power_of_2(num_bins)) { + ath11k_warn(ab, "Invalid num of bins %d\n", num_bins); + return -EINVAL; + } + + ret = ath11k_spectral_pull_search(ar, data, &search); + if (ret) { + ath11k_warn(ab, "failed to pull search report %d\n", ret); + return ret; + } + + chan_width_mhz = summary->meta.ch_width; + + switch (chan_width_mhz) { + case ATH11K_SPECTRAL_20MHZ: + case ATH11K_SPECTRAL_40MHZ: + case ATH11K_SPECTRAL_80MHZ: + fft_sample->chan_width_mhz = chan_width_mhz; + break; + default: + ath11k_warn(ab, "invalid channel width %d\n", chan_width_mhz); + return -EINVAL; + } + + length = sizeof(*fft_sample) - sizeof(struct fft_sample_tlv) + num_bins; + fft_sample->tlv.type = ATH_FFT_SAMPLE_ATH11K; + fft_sample->tlv.length = __cpu_to_be16(length); + + fft_sample->tsf = __cpu_to_be32(search.timestamp); + fft_sample->max_magnitude = __cpu_to_be16(search.peak_mag); + fft_sample->max_index = FIELD_GET(SPECTRAL_FFT_REPORT_INFO0_PEAK_SIGNED_IDX, + __le32_to_cpu(fft_report->info0)); + + summary->inb_pwr_db >>= 1; + fft_sample->rssi = __cpu_to_be16(summary->inb_pwr_db); + fft_sample->noise = __cpu_to_be32(summary->meta.noise_floor[search.chain_idx]); + + freq = summary->meta.freq1; + fft_sample->freq1 = __cpu_to_be16(freq); + + freq = summary->meta.freq2; + fft_sample->freq2 = __cpu_to_be16(freq); + + ath11k_spectral_parse_fft(fft_sample->data, fft_report->bins, num_bins, + ab->hw_params.spectral_fft_sz); + + fft_sample->max_exp = ath11k_spectral_get_max_exp(fft_sample->max_index, + search.peak_mag, + num_bins, + fft_sample->data); + + if (ar->spectral.rfs_scan) + relay_write(ar->spectral.rfs_scan, fft_sample, + length + sizeof(struct fft_sample_tlv)); + + return 0; +} + +static int ath11k_spectral_process_data(struct ath11k *ar, + struct ath11k_dbring_data *param) +{ + struct ath11k_base *ab = ar->ab; + struct spectral_tlv *tlv; + struct spectral_summary_fft_report *summary = NULL; + struct ath11k_spectral_summary_report summ_rpt; + struct fft_sample_ath11k *fft_sample = NULL; + u8 *data; + u32 data_len, i; + u8 sign, tag; + int tlv_len, sample_sz; + int ret; + bool quit = false; + + spin_lock_bh(&ar->spectral.lock); + + if (!ar->spectral.enabled) { + ret = -EINVAL; + goto unlock; + } + + sample_sz = sizeof(*fft_sample) + ATH11K_SPECTRAL_ATH11K_MAX_IB_BINS; + fft_sample = kmalloc(sample_sz, GFP_ATOMIC); + if (!fft_sample) { + ret = -ENOBUFS; + goto unlock; + } + + data = param->data; + data_len = param->data_sz; + i = 0; + while (!quit && (i < data_len)) { + if ((i + sizeof(*tlv)) > data_len) { + ath11k_warn(ab, "failed to parse spectral tlv hdr at bytes %d\n", + i); + ret = -EINVAL; + goto err; + } + + tlv = (struct spectral_tlv *)&data[i]; + sign = FIELD_GET(SPECTRAL_TLV_HDR_SIGN, + __le32_to_cpu(tlv->header)); + if (sign != ATH11K_SPECTRAL_SIGNATURE) { + ath11k_warn(ab, "Invalid sign 0x%x at bytes %d\n", + sign, i); + ret = -EINVAL; + goto err; + } + + tlv_len = FIELD_GET(SPECTRAL_TLV_HDR_LEN, + __le32_to_cpu(tlv->header)); + /* convert Dword into bytes */ + tlv_len *= ATH11K_SPECTRAL_DWORD_SIZE; + if ((i + sizeof(*tlv) + tlv_len) > data_len) { + ath11k_warn(ab, "failed to parse spectral tlv payload at bytes %d tlv_len:%d data_len:%d\n", + i, tlv_len, data_len); + ret = -EINVAL; + goto err; + } + + tag = FIELD_GET(SPECTRAL_TLV_HDR_TAG, + __le32_to_cpu(tlv->header)); + switch (tag) { + case ATH11K_SPECTRAL_TAG_SCAN_SUMMARY: + /* HW bug in tlv length of summary report, + * HW report 3 DWORD size but the data payload + * is 4 DWORD size (16 bytes). + * Need to remove this workaround once HW bug fixed + */ + tlv_len = sizeof(*summary) - sizeof(*tlv); + + if (tlv_len < (sizeof(*summary) - sizeof(*tlv))) { + ath11k_warn(ab, "failed to parse spectral summary at bytes %d tlv_len:%d\n", + i, tlv_len); + ret = -EINVAL; + goto err; + } + + summary = (struct spectral_summary_fft_report *)tlv; + ath11k_spectral_pull_summary(ar, ¶m->meta, + summary, &summ_rpt); + break; + case ATH11K_SPECTRAL_TAG_SCAN_SEARCH: + if (tlv_len < (sizeof(struct spectral_search_fft_report) - + sizeof(*tlv))) { + ath11k_warn(ab, "failed to parse spectral search fft at bytes %d\n", + i); + ret = -EINVAL; + goto err; + } + + memset(fft_sample, 0, sample_sz); + ret = ath11k_spectral_process_fft(ar, &summ_rpt, tlv, + fft_sample, + data_len - i); + if (ret) { + ath11k_warn(ab, "failed to process spectral fft at bytes %d\n", + i); + goto err; + } + quit = true; + break; + } + + i += sizeof(*tlv) + tlv_len; + } + + ret = 0; + +err: + kfree(fft_sample); +unlock: + spin_unlock_bh(&ar->spectral.lock); + return ret; +} + +static int ath11k_spectral_ring_alloc(struct ath11k *ar, + struct ath11k_dbring_cap *db_cap) +{ + struct ath11k_spectral *sp = &ar->spectral; + int ret; + + ret = ath11k_dbring_srng_setup(ar, &sp->rx_ring, + 0, db_cap->min_elem); + if (ret) { + ath11k_warn(ar->ab, "failed to setup db ring\n"); + return ret; + } + + ath11k_dbring_set_cfg(ar, &sp->rx_ring, + ATH11K_SPECTRAL_NUM_RESP_PER_EVENT, + ATH11K_SPECTRAL_EVENT_TIMEOUT_MS, + ath11k_spectral_process_data); + + ret = ath11k_dbring_buf_setup(ar, &sp->rx_ring, db_cap); + if (ret) { + ath11k_warn(ar->ab, "failed to setup db ring buffer\n"); + goto srng_cleanup; + } + + ret = ath11k_dbring_wmi_cfg_setup(ar, &sp->rx_ring, + WMI_DIRECT_BUF_SPECTRAL); + if (ret) { + ath11k_warn(ar->ab, "failed to setup db ring cfg\n"); + goto buffer_cleanup; + } + + return 0; + +buffer_cleanup: + ath11k_dbring_buf_cleanup(ar, &sp->rx_ring); +srng_cleanup: + ath11k_dbring_srng_cleanup(ar, &sp->rx_ring); + return ret; +} + +static inline void ath11k_spectral_ring_free(struct ath11k *ar) +{ + struct ath11k_spectral *sp = &ar->spectral; + + if (!sp->enabled) + return; + + ath11k_dbring_srng_cleanup(ar, &sp->rx_ring); + ath11k_dbring_buf_cleanup(ar, &sp->rx_ring); +} + +static inline void ath11k_spectral_debug_unregister(struct ath11k *ar) +{ + debugfs_remove(ar->spectral.scan_bins); + ar->spectral.scan_bins = NULL; + + debugfs_remove(ar->spectral.scan_count); + ar->spectral.scan_count = NULL; + + debugfs_remove(ar->spectral.scan_ctl); + ar->spectral.scan_ctl = NULL; + + if (ar->spectral.rfs_scan) { + relay_close(ar->spectral.rfs_scan); + ar->spectral.rfs_scan = NULL; + } +} + +int ath11k_spectral_vif_stop(struct ath11k_vif *arvif) +{ + if (!arvif->spectral_enabled) + return 0; + + return ath11k_spectral_scan_config(arvif->ar, ATH11K_SPECTRAL_DISABLED); +} + +void ath11k_spectral_reset_buffer(struct ath11k *ar) +{ + if (!ar->spectral.enabled) + return; + + if (ar->spectral.rfs_scan) + relay_reset(ar->spectral.rfs_scan); +} + +void ath11k_spectral_deinit(struct ath11k_base *ab) +{ + struct ath11k *ar; + struct ath11k_spectral *sp; + int i; + + for (i = 0; i < ab->num_radios; i++) { + ar = ab->pdevs[i].ar; + sp = &ar->spectral; + + if (!sp->enabled) + continue; + + ath11k_spectral_debug_unregister(ar); + ath11k_spectral_ring_free(ar); + + spin_lock_bh(&sp->lock); + + sp->mode = ATH11K_SPECTRAL_DISABLED; + sp->enabled = false; + + spin_unlock_bh(&sp->lock); + } +} + +static inline int ath11k_spectral_debug_register(struct ath11k *ar) +{ + int ret; + + ar->spectral.rfs_scan = relay_open("spectral_scan", + ar->debug.debugfs_pdev, + ATH11K_SPECTRAL_SUB_BUFF_SIZE, + ATH11K_SPECTRAL_NUM_SUB_BUF, + &rfs_scan_cb, NULL); + if (!ar->spectral.rfs_scan) { + ath11k_warn(ar->ab, "failed to open relay in pdev %d\n", + ar->pdev_idx); + return -EINVAL; + } + + ar->spectral.scan_ctl = debugfs_create_file("spectral_scan_ctl", + 0600, + ar->debug.debugfs_pdev, ar, + &fops_scan_ctl); + if (!ar->spectral.scan_ctl) { + ath11k_warn(ar->ab, "failed to open debugfs in pdev %d\n", + ar->pdev_idx); + ret = -EINVAL; + goto debug_unregister; + } + + ar->spectral.scan_count = debugfs_create_file("spectral_count", + 0600, + ar->debug.debugfs_pdev, ar, + &fops_scan_count); + if (!ar->spectral.scan_count) { + ath11k_warn(ar->ab, "failed to open debugfs in pdev %d\n", + ar->pdev_idx); + ret = -EINVAL; + goto debug_unregister; + } + + ar->spectral.scan_bins = debugfs_create_file("spectral_bins", + 0600, + ar->debug.debugfs_pdev, ar, + &fops_scan_bins); + if (!ar->spectral.scan_bins) { + ath11k_warn(ar->ab, "failed to open debugfs in pdev %d\n", + ar->pdev_idx); + ret = -EINVAL; + goto debug_unregister; + } + + return 0; + +debug_unregister: + ath11k_spectral_debug_unregister(ar); + return ret; +} + +int ath11k_spectral_init(struct ath11k_base *ab) +{ + struct ath11k *ar; + struct ath11k_spectral *sp; + struct ath11k_dbring_cap db_cap; + int ret; + int i; + + if (!test_bit(WMI_TLV_SERVICE_FREQINFO_IN_METADATA, + ab->wmi_ab.svc_map)) + return 0; + + if (!ab->hw_params.spectral_fft_sz) + return 0; + + for (i = 0; i < ab->num_radios; i++) { + ar = ab->pdevs[i].ar; + sp = &ar->spectral; + + ret = ath11k_dbring_get_cap(ar->ab, ar->pdev_idx, + WMI_DIRECT_BUF_SPECTRAL, + &db_cap); + if (ret) + continue; + + idr_init(&sp->rx_ring.bufs_idr); + spin_lock_init(&sp->rx_ring.idr_lock); + spin_lock_init(&sp->lock); + + ret = ath11k_spectral_ring_alloc(ar, &db_cap); + if (ret) { + ath11k_warn(ab, "failed to init spectral ring for pdev %d\n", + i); + goto deinit; + } + + spin_lock_bh(&sp->lock); + + sp->mode = ATH11K_SPECTRAL_DISABLED; + sp->count = ATH11K_WMI_SPECTRAL_COUNT_DEFAULT; + sp->fft_size = ATH11K_WMI_SPECTRAL_FFT_SIZE_DEFAULT; + sp->enabled = true; + + spin_unlock_bh(&sp->lock); + + ret = ath11k_spectral_debug_register(ar); + if (ret) { + ath11k_warn(ab, "failed to register spectral for pdev %d\n", + i); + goto deinit; + } + } + + return 0; + +deinit: + ath11k_spectral_deinit(ab); + return ret; +} + +enum ath11k_spectral_mode ath11k_spectral_get_mode(struct ath11k *ar) +{ + if (ar->spectral.enabled) + return ar->spectral.mode; + else + return ATH11K_SPECTRAL_DISABLED; +} + +struct ath11k_dbring *ath11k_spectral_get_dbring(struct ath11k *ar) +{ + if (ar->spectral.enabled) + return &ar->spectral.rx_ring; + else + return NULL; +} only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/net/wireless/ath/ath11k/spectral.h +++ linux-oem-5.6-5.6.0/drivers/net/wireless/ath/ath11k/spectral.h @@ -0,0 +1,82 @@ +/* SPDX-License-Identifier: BSD-3-Clause-Clear */ +/* + * Copyright (c) 2019-2020 The Linux Foundation. All rights reserved. + */ + +#ifndef ATH11K_SPECTRAL_H +#define ATH11K_SPECTRAL_H + +#include "../spectral_common.h" +#include "dbring.h" + +/* enum ath11k_spectral_mode: + * + * @SPECTRAL_DISABLED: spectral mode is disabled + * @SPECTRAL_BACKGROUND: hardware sends samples when it is not busy with + * something else. + * @SPECTRAL_MANUAL: spectral scan is enabled, triggering for samples + * is performed manually. + */ +enum ath11k_spectral_mode { + ATH11K_SPECTRAL_DISABLED = 0, + ATH11K_SPECTRAL_BACKGROUND, + ATH11K_SPECTRAL_MANUAL, +}; + +struct ath11k_spectral { + struct ath11k_dbring rx_ring; + /* Protects enabled */ + spinlock_t lock; + struct rchan *rfs_scan; /* relay(fs) channel for spectral scan */ + struct dentry *scan_ctl; + struct dentry *scan_count; + struct dentry *scan_bins; + enum ath11k_spectral_mode mode; + u16 count; + u8 fft_size; + bool enabled; +}; + +#ifdef CONFIG_ATH11K_SPECTRAL + +int ath11k_spectral_init(struct ath11k_base *ab); +void ath11k_spectral_deinit(struct ath11k_base *ab); +int ath11k_spectral_vif_stop(struct ath11k_vif *arvif); +void ath11k_spectral_reset_buffer(struct ath11k *ar); +enum ath11k_spectral_mode ath11k_spectral_get_mode(struct ath11k *ar); +struct ath11k_dbring *ath11k_spectral_get_dbring(struct ath11k *ar); + +#else + +static inline int ath11k_spectral_init(struct ath11k_base *ab) +{ + return 0; +} + +static inline void ath11k_spectral_deinit(struct ath11k_base *ab) +{ +} + +static inline int ath11k_spectral_vif_stop(struct ath11k_vif *arvif) +{ + return 0; +} + +static inline void ath11k_spectral_reset_buffer(struct ath11k *ar) +{ +} + +static inline +enum ath11k_spectral_mode ath11k_spectral_get_mode(struct ath11k *ar) +{ + return ATH11K_SPECTRAL_DISABLED; +} + +static inline +struct ath11k_dbring *ath11k_spectral_get_dbring(struct ath11k *ar) +{ + return NULL; +} + +#endif /* CONFIG_ATH11K_SPECTRAL */ +#endif /* ATH11K_SPECTRAL_H */ only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/net/wireless/ath/ath11k/thermal.c +++ linux-oem-5.6-5.6.0/drivers/net/wireless/ath/ath11k/thermal.c @@ -0,0 +1,226 @@ +// SPDX-License-Identifier: BSD-3-Clause-Clear +/* + * Copyright (c) 2020 The Linux Foundation. All rights reserved. + */ + +#include +#include +#include +#include +#include +#include "core.h" +#include "debug.h" + +static int +ath11k_thermal_get_max_throttle_state(struct thermal_cooling_device *cdev, + unsigned long *state) +{ + *state = ATH11K_THERMAL_THROTTLE_MAX; + + return 0; +} + +static int +ath11k_thermal_get_cur_throttle_state(struct thermal_cooling_device *cdev, + unsigned long *state) +{ + struct ath11k *ar = cdev->devdata; + + mutex_lock(&ar->conf_mutex); + *state = ar->thermal.throttle_state; + mutex_unlock(&ar->conf_mutex); + + return 0; +} + +static int +ath11k_thermal_set_cur_throttle_state(struct thermal_cooling_device *cdev, + unsigned long throttle_state) +{ + struct ath11k *ar = cdev->devdata; + int ret; + + if (throttle_state > ATH11K_THERMAL_THROTTLE_MAX) { + ath11k_warn(ar->ab, "throttle state %ld is exceeding the limit %d\n", + throttle_state, ATH11K_THERMAL_THROTTLE_MAX); + return -EINVAL; + } + mutex_lock(&ar->conf_mutex); + ret = ath11k_thermal_set_throttling(ar, throttle_state); + if (ret == 0) + ar->thermal.throttle_state = throttle_state; + mutex_unlock(&ar->conf_mutex); + return ret; +} + +static const struct thermal_cooling_device_ops ath11k_thermal_ops = { + .get_max_state = ath11k_thermal_get_max_throttle_state, + .get_cur_state = ath11k_thermal_get_cur_throttle_state, + .set_cur_state = ath11k_thermal_set_cur_throttle_state, +}; + +static ssize_t ath11k_thermal_show_temp(struct device *dev, + struct device_attribute *attr, + char *buf) +{ + struct ath11k *ar = dev_get_drvdata(dev); + int ret, temperature; + unsigned long time_left; + + mutex_lock(&ar->conf_mutex); + + /* Can't get temperature when the card is off */ + if (ar->state != ATH11K_STATE_ON) { + ret = -ENETDOWN; + goto out; + } + + reinit_completion(&ar->thermal.wmi_sync); + ret = ath11k_wmi_send_pdev_temperature_cmd(ar); + if (ret) { + ath11k_warn(ar->ab, "failed to read temperature %d\n", ret); + goto out; + } + + if (test_bit(ATH11K_FLAG_CRASH_FLUSH, &ar->ab->dev_flags)) { + ret = -ESHUTDOWN; + goto out; + } + + time_left = wait_for_completion_timeout(&ar->thermal.wmi_sync, + ATH11K_THERMAL_SYNC_TIMEOUT_HZ); + if (!time_left) { + ath11k_warn(ar->ab, "failed to synchronize thermal read\n"); + ret = -ETIMEDOUT; + goto out; + } + + spin_lock_bh(&ar->data_lock); + temperature = ar->thermal.temperature; + spin_unlock_bh(&ar->data_lock); + + /* display in millidegree celcius */ + ret = snprintf(buf, PAGE_SIZE, "%d\n", temperature * 1000); +out: + mutex_unlock(&ar->conf_mutex); + return ret; +} + +void ath11k_thermal_event_temperature(struct ath11k *ar, int temperature) +{ + spin_lock_bh(&ar->data_lock); + ar->thermal.temperature = temperature; + spin_unlock_bh(&ar->data_lock); + complete(&ar->thermal.wmi_sync); +} + +static SENSOR_DEVICE_ATTR(temp1_input, 0444, ath11k_thermal_show_temp, + NULL, 0); + +static struct attribute *ath11k_hwmon_attrs[] = { + &sensor_dev_attr_temp1_input.dev_attr.attr, + NULL, +}; +ATTRIBUTE_GROUPS(ath11k_hwmon); + +int ath11k_thermal_set_throttling(struct ath11k *ar, u32 throttle_state) +{ + struct ath11k_base *sc = ar->ab; + struct thermal_mitigation_params param; + int ret = 0; + + lockdep_assert_held(&ar->conf_mutex); + + if (ar->state != ATH11K_STATE_ON) + return 0; + + memset(¶m, 0, sizeof(param)); + param.pdev_id = ar->pdev->pdev_id; + param.enable = throttle_state ? 1 : 0; + param.dc = ATH11K_THERMAL_DEFAULT_DUTY_CYCLE; + param.dc_per_event = 0xFFFFFFFF; + + param.levelconf[0].tmplwm = ATH11K_THERMAL_TEMP_LOW_MARK; + param.levelconf[0].tmphwm = ATH11K_THERMAL_TEMP_HIGH_MARK; + param.levelconf[0].dcoffpercent = throttle_state; + param.levelconf[0].priority = 0; /* disable all data tx queues */ + + ret = ath11k_wmi_send_thermal_mitigation_param_cmd(ar, ¶m); + if (ret) { + ath11k_warn(sc, "failed to send thermal mitigation duty cycle %u ret %d\n", + throttle_state, ret); + } + + return ret; +} + +int ath11k_thermal_register(struct ath11k_base *sc) +{ + struct thermal_cooling_device *cdev; + struct device *hwmon_dev; + struct ath11k *ar; + struct ath11k_pdev *pdev; + int i, ret; + + for (i = 0; i < sc->num_radios; i++) { + pdev = &sc->pdevs[i]; + ar = pdev->ar; + if (!ar) + continue; + + cdev = thermal_cooling_device_register("ath11k_thermal", ar, + &ath11k_thermal_ops); + + if (IS_ERR(cdev)) { + ath11k_err(sc, "failed to setup thermal device result: %ld\n", + PTR_ERR(cdev)); + ret = -EINVAL; + goto err_thermal_destroy; + } + + ar->thermal.cdev = cdev; + + ret = sysfs_create_link(&ar->hw->wiphy->dev.kobj, &cdev->device.kobj, + "cooling_device"); + if (ret) { + ath11k_err(sc, "failed to create cooling device symlink\n"); + goto err_thermal_destroy; + } + + if (!IS_REACHABLE(CONFIG_HWMON)) + return 0; + + hwmon_dev = devm_hwmon_device_register_with_groups(&ar->hw->wiphy->dev, + "ath11k_hwmon", ar, + ath11k_hwmon_groups); + if (IS_ERR(hwmon_dev)) { + ath11k_err(ar->ab, "failed to register hwmon device: %ld\n", + PTR_ERR(hwmon_dev)); + ret = -EINVAL; + goto err_thermal_destroy; + } + } + + return 0; + +err_thermal_destroy: + ath11k_thermal_unregister(sc); + return ret; +} + +void ath11k_thermal_unregister(struct ath11k_base *sc) +{ + struct ath11k *ar; + struct ath11k_pdev *pdev; + int i; + + for (i = 0; i < sc->num_radios; i++) { + pdev = &sc->pdevs[i]; + ar = pdev->ar; + if (!ar) + continue; + + sysfs_remove_link(&ar->hw->wiphy->dev.kobj, "cooling_device"); + thermal_cooling_device_unregister(ar->thermal.cdev); + } +} only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/net/wireless/ath/ath11k/thermal.h +++ linux-oem-5.6-5.6.0/drivers/net/wireless/ath/ath11k/thermal.h @@ -0,0 +1,54 @@ +/* SPDX-License-Identifier: BSD-3-Clause-Clear */ +/* + * Copyright (c) 2020 The Linux Foundation. All rights reserved. + */ + +#ifndef _ATH11K_THERMAL_ +#define _ATH11K_THERMAL_ + +#define ATH11K_THERMAL_TEMP_LOW_MARK -100 +#define ATH11K_THERMAL_TEMP_HIGH_MARK 150 +#define ATH11K_THERMAL_THROTTLE_MAX 100 +#define ATH11K_THERMAL_DEFAULT_DUTY_CYCLE 100 +#define ATH11K_HWMON_NAME_LEN 15 +#define ATH11K_THERMAL_SYNC_TIMEOUT_HZ (5 * HZ) + +struct ath11k_thermal { + struct thermal_cooling_device *cdev; + struct completion wmi_sync; + + /* protected by conf_mutex */ + u32 throttle_state; + /* temperature value in Celcius degree + * protected by data_lock + */ + int temperature; +}; + +#if IS_REACHABLE(CONFIG_THERMAL) +int ath11k_thermal_register(struct ath11k_base *sc); +void ath11k_thermal_unregister(struct ath11k_base *sc); +int ath11k_thermal_set_throttling(struct ath11k *ar, u32 throttle_state); +void ath11k_thermal_event_temperature(struct ath11k *ar, int temperature); +#else +static inline int ath11k_thermal_register(struct ath11k_base *sc) +{ + return 0; +} + +static inline void ath11k_thermal_unregister(struct ath11k_base *sc) +{ +} + +static inline int ath11k_thermal_set_throttling(struct ath11k *ar, u32 throttle_state) +{ + return 0; +} + +static inline void ath11k_thermal_event_temperature(struct ath11k *ar, + int temperature) +{ +} + +#endif +#endif /* _ATH11K_THERMAL_ */ only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/net/wireless/ath/ath11k/trace.h +++ linux-oem-5.6-5.6.0/drivers/net/wireless/ath/ath11k/trace.h @@ -21,14 +21,16 @@ #define TRACE_SYSTEM ath11k TRACE_EVENT(ath11k_htt_pktlog, - TP_PROTO(struct ath11k *ar, const void *buf, u16 buf_len), + TP_PROTO(struct ath11k *ar, const void *buf, u16 buf_len, + u32 pktlog_checksum), - TP_ARGS(ar, buf, buf_len), + TP_ARGS(ar, buf, buf_len, pktlog_checksum), TP_STRUCT__entry( __string(device, dev_name(ar->ab->dev)) __string(driver, dev_driver_string(ar->ab->dev)) __field(u16, buf_len) + __field(u32, pktlog_checksum) __dynamic_array(u8, pktlog, buf_len) ), @@ -36,14 +38,16 @@ __assign_str(device, dev_name(ar->ab->dev)); __assign_str(driver, dev_driver_string(ar->ab->dev)); __entry->buf_len = buf_len; + __entry->pktlog_checksum = pktlog_checksum; memcpy(__get_dynamic_array(pktlog), buf, buf_len); ), TP_printk( - "%s %s size %hu", + "%s %s size %hu pktlog_checksum %d", __get_str(driver), __get_str(device), - __entry->buf_len + __entry->buf_len, + __entry->pktlog_checksum ) ); only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/net/wireless/ath/ath11k/wmi.c +++ linux-oem-5.6-5.6.0/drivers/net/wireless/ath/ath11k/wmi.c @@ -27,6 +27,11 @@ bool wmi_svc_bitmap_done; }; +struct wmi_tlv_dma_ring_caps_parse { + struct wmi_dma_ring_capabilities *dma_ring_caps; + u32 n_dma_ring_caps; +}; + struct wmi_tlv_svc_rdy_ext_parse { struct ath11k_service_ext_param param; struct wmi_soc_mac_phy_hw_mode_caps *hw_caps; @@ -39,15 +44,35 @@ struct wmi_soc_hal_reg_capabilities *soc_hal_reg_caps; struct wmi_hal_reg_capabilities_ext *ext_hal_reg_caps; u32 n_ext_hal_reg_caps; + struct wmi_tlv_dma_ring_caps_parse dma_caps_parse; bool hw_mode_done; bool mac_phy_done; bool ext_hal_reg_done; + bool mac_phy_chainmask_combo_done; + bool mac_phy_chainmask_cap_done; + bool oem_dma_ring_cap_done; + bool dma_ring_cap_done; +}; + +struct wmi_tlv_svc_rdy_ext2_parse { + struct wmi_tlv_dma_ring_caps_parse dma_caps_parse; + bool dma_ring_cap_done; }; struct wmi_tlv_rdy_parse { u32 num_extra_mac_addr; }; +struct wmi_tlv_dma_buf_release_parse { + struct ath11k_wmi_dma_buf_release_fixed_param fixed; + struct wmi_dma_buf_release_entry *buf_entry; + struct wmi_dma_buf_release_meta_data *meta_data; + u32 num_buf_entry; + u32 num_meta; + bool buf_entry_done; + bool meta_data_done; +}; + static const struct wmi_tlv_policy wmi_tlv_policies[] = { [WMI_TAG_ARRAY_BYTE] = { .min_len = 0 }, @@ -87,8 +112,8 @@ = { .min_len = sizeof(struct wmi_pdev_bss_chan_info_event) }, [WMI_TAG_VDEV_INSTALL_KEY_COMPLETE_EVENT] = { .min_len = sizeof(struct wmi_vdev_install_key_compl_event) }, - [WMI_TAG_READY_EVENT] - = {.min_len = sizeof(struct wmi_ready_event) }, + [WMI_TAG_READY_EVENT] = { + .min_len = sizeof(struct wmi_ready_event_min) }, [WMI_TAG_SERVICE_AVAILABLE_EVENT] = {.min_len = sizeof(struct wmi_service_available_event) }, [WMI_TAG_PEER_ASSOC_CONF_EVENT] @@ -97,6 +122,8 @@ = { .min_len = sizeof(struct wmi_stats_event) }, [WMI_TAG_PDEV_CTL_FAILSAFE_CHECK_EVENT] = { .min_len = sizeof(struct wmi_pdev_ctl_failsafe_chk_event) }, + [WMI_TAG_VDEV_DELETE_RESP_EVENT] = { + .min_len = sizeof(struct wmi_vdev_delete_resp_event) }, }; #define PRIMAP(_hw_mode_) \ @@ -313,7 +340,7 @@ mac_phy_caps = wmi_mac_phy_caps + phy_idx; pdev->pdev_id = mac_phy_caps->pdev_id; - pdev_cap->supported_bands = mac_phy_caps->supported_bands; + pdev_cap->supported_bands |= mac_phy_caps->supported_bands; pdev_cap->ampdu_density = mac_phy_caps->ampdu_density; /* Take non-zero tx/rx chainmask. If tx/rx chainmask differs from @@ -346,18 +373,35 @@ pdev_cap->rx_chain_mask_shift = find_first_bit((unsigned long *)&pdev_cap->rx_chain_mask, 32); - cap_band = &pdev_cap->band[NL80211_BAND_2GHZ]; - cap_band->max_bw_supported = mac_phy_caps->max_bw_supported_2g; - cap_band->ht_cap_info = mac_phy_caps->ht_cap_info_2g; - cap_band->he_cap_info[0] = mac_phy_caps->he_cap_info_2g; - cap_band->he_cap_info[1] = mac_phy_caps->he_cap_info_2g_ext; - cap_band->he_mcs = mac_phy_caps->he_supp_mcs_2g; - memcpy(cap_band->he_cap_phy_info, &mac_phy_caps->he_cap_phy_info_2g, - sizeof(u32) * PSOC_HOST_MAX_PHY_SIZE); - memcpy(&cap_band->he_ppet, &mac_phy_caps->he_ppet2g, - sizeof(struct ath11k_ppe_threshold)); + if (mac_phy_caps->supported_bands & WMI_HOST_WLAN_2G_CAP) { + cap_band = &pdev_cap->band[NL80211_BAND_2GHZ]; + cap_band->phy_id = mac_phy_caps->phy_id; + cap_band->max_bw_supported = mac_phy_caps->max_bw_supported_2g; + cap_band->ht_cap_info = mac_phy_caps->ht_cap_info_2g; + cap_band->he_cap_info[0] = mac_phy_caps->he_cap_info_2g; + cap_band->he_cap_info[1] = mac_phy_caps->he_cap_info_2g_ext; + cap_band->he_mcs = mac_phy_caps->he_supp_mcs_2g; + memcpy(cap_band->he_cap_phy_info, &mac_phy_caps->he_cap_phy_info_2g, + sizeof(u32) * PSOC_HOST_MAX_PHY_SIZE); + memcpy(&cap_band->he_ppet, &mac_phy_caps->he_ppet2g, + sizeof(struct ath11k_ppe_threshold)); + } + + if (mac_phy_caps->supported_bands & WMI_HOST_WLAN_5G_CAP) { + cap_band = &pdev_cap->band[NL80211_BAND_5GHZ]; + cap_band->phy_id = mac_phy_caps->phy_id; + cap_band->max_bw_supported = mac_phy_caps->max_bw_supported_5g; + cap_band->ht_cap_info = mac_phy_caps->ht_cap_info_5g; + cap_band->he_cap_info[0] = mac_phy_caps->he_cap_info_5g; + cap_band->he_cap_info[1] = mac_phy_caps->he_cap_info_5g_ext; + cap_band->he_mcs = mac_phy_caps->he_supp_mcs_5g; + memcpy(cap_band->he_cap_phy_info, &mac_phy_caps->he_cap_phy_info_5g, + sizeof(u32) * PSOC_HOST_MAX_PHY_SIZE); + memcpy(&cap_band->he_ppet, &mac_phy_caps->he_ppet5g, + sizeof(struct ath11k_ppe_threshold)); + } - cap_band = &pdev_cap->band[NL80211_BAND_5GHZ]; + cap_band = &pdev_cap->band[NL80211_BAND_6GHZ]; cap_band->max_bw_supported = mac_phy_caps->max_bw_supported_5g; cap_band->ht_cap_info = mac_phy_caps->ht_cap_info_5g; cap_band->he_cap_info[0] = mac_phy_caps->he_cap_info_5g; @@ -1471,6 +1515,34 @@ return ret; } +int ath11k_wmi_send_pdev_temperature_cmd(struct ath11k *ar) +{ + struct ath11k_pdev_wmi *wmi = ar->wmi; + struct wmi_get_pdev_temperature_cmd *cmd; + struct sk_buff *skb; + int ret; + + skb = ath11k_wmi_alloc_skb(wmi->wmi_ab, sizeof(*cmd)); + if (!skb) + return -ENOMEM; + + cmd = (struct wmi_get_pdev_temperature_cmd *)skb->data; + cmd->tlv_header = FIELD_PREP(WMI_TLV_TAG, WMI_TAG_PDEV_GET_TEMPERATURE_CMD) | + FIELD_PREP(WMI_TLV_LEN, sizeof(*cmd) - TLV_HDR_SIZE); + cmd->pdev_id = ar->pdev->pdev_id; + + ret = ath11k_wmi_cmd_send(wmi, skb, WMI_PDEV_GET_TEMPERATURE_CMDID); + if (ret) { + ath11k_warn(ar->ab, "failed to send WMI_PDEV_GET_TEMPERATURE cmd\n"); + dev_kfree_skb(skb); + } + + ath11k_dbg(ar->ab, ATH11K_DBG_WMI, + "WMI pdev get temperature for pdev_id %d\n", ar->pdev->pdev_id); + + return ret; +} + int ath11k_wmi_send_bcn_offload_control_cmd(struct ath11k *ar, u32 vdev_id, u32 bcn_ctrl_op) { @@ -1529,8 +1601,8 @@ FIELD_PREP(WMI_TLV_LEN, sizeof(*cmd) - TLV_HDR_SIZE); cmd->vdev_id = vdev_id; cmd->tim_ie_offset = offs->tim_offset; - cmd->csa_switch_count_offset = offs->csa_counter_offs[0]; - cmd->ext_csa_switch_count_offset = offs->csa_counter_offs[1]; + cmd->csa_switch_count_offset = offs->cntdwn_counter_offs[0]; + cmd->ext_csa_switch_count_offset = offs->cntdwn_counter_offs[1]; cmd->buf_len = bcn->len; ptr = skb->data + sizeof(*cmd); @@ -1664,10 +1736,10 @@ */ if (param->auth_flag) cmd->peer_flags |= WMI_PEER_AUTH; - if (param->need_ptk_4_way) + if (param->need_ptk_4_way) { cmd->peer_flags |= WMI_PEER_NEED_PTK_4_WAY; - else - cmd->peer_flags &= ~WMI_PEER_NEED_PTK_4_WAY; + cmd->peer_flags &= ~WMI_PEER_AUTH; + } if (param->need_gtk_2_way) cmd->peer_flags |= WMI_PEER_NEED_GTK_2_WAY; /* safe mode bypass the 4-way handshake */ @@ -1750,6 +1822,7 @@ cmd->peer_he_cap_info = param->peer_he_cap_macinfo[0]; cmd->peer_he_cap_info_ext = param->peer_he_cap_macinfo[1]; cmd->peer_he_cap_info_internal = param->peer_he_cap_macinfo_internal; + cmd->peer_he_caps_6ghz = param->peer_he_caps_6ghz; cmd->peer_he_ops = param->peer_he_ops; memcpy(&cmd->peer_he_cap_phy, ¶m->peer_he_cap_phyinfo, sizeof(param->peer_he_cap_phyinfo)); @@ -1803,6 +1876,7 @@ /* HE Rates */ cmd->peer_he_mcs = param->peer_he_mcs_count; + cmd->min_data_rate = param->min_data_rate; ptr += sizeof(*mcs); @@ -1858,6 +1932,8 @@ arg->dwell_time_active = 50; arg->dwell_time_active_2g = 0; arg->dwell_time_passive = 150; + arg->dwell_time_active_6g = 40; + arg->dwell_time_passive_6g = 30; arg->min_rest_time = 50; arg->max_rest_time = 500; arg->repeat_probe_time = 0; @@ -1962,6 +2038,8 @@ int i, ret, len; u32 *tmp_ptr; u8 extraie_len_with_pad = 0; + struct hint_short_ssid *s_ssid = NULL; + struct hint_bssid *hint_bssid = NULL; len = sizeof(*cmd); @@ -1983,6 +2061,14 @@ roundup(params->extraie.len, sizeof(u32)); len += extraie_len_with_pad; + if (params->num_hint_bssid) + len += TLV_HDR_SIZE + + params->num_hint_bssid * sizeof(struct hint_bssid); + + if (params->num_hint_s_ssid) + len += TLV_HDR_SIZE + + params->num_hint_s_ssid * sizeof(struct hint_short_ssid); + skb = ath11k_wmi_alloc_skb(wmi->wmi_ab, len); if (!skb) return -ENOMEM; @@ -2004,6 +2090,8 @@ cmd->dwell_time_active = params->dwell_time_active; cmd->dwell_time_active_2g = params->dwell_time_active_2g; cmd->dwell_time_passive = params->dwell_time_passive; + cmd->dwell_time_active_6g = params->dwell_time_active_6g; + cmd->dwell_time_passive_6g = params->dwell_time_passive_6g; cmd->min_rest_time = params->min_rest_time; cmd->max_rest_time = params->max_rest_time; cmd->repeat_probe_time = params->repeat_probe_time; @@ -2081,6 +2169,37 @@ ptr += extraie_len_with_pad; + if (params->num_hint_s_ssid) { + len = params->num_hint_s_ssid * sizeof(struct hint_short_ssid); + tlv = ptr; + tlv->header = FIELD_PREP(WMI_TLV_TAG, WMI_TAG_ARRAY_FIXED_STRUCT) | + FIELD_PREP(WMI_TLV_LEN, len); + ptr += TLV_HDR_SIZE; + s_ssid = ptr; + for (i = 0; i < params->num_hint_s_ssid; ++i) { + s_ssid->freq_flags = params->hint_s_ssid[i].freq_flags; + s_ssid->short_ssid = params->hint_s_ssid[i].short_ssid; + s_ssid++; + } + ptr += len; + } + + if (params->num_hint_bssid) { + len = params->num_hint_bssid * sizeof(struct hint_bssid); + tlv = ptr; + tlv->header = FIELD_PREP(WMI_TLV_TAG, WMI_TAG_ARRAY_FIXED_STRUCT) | + FIELD_PREP(WMI_TLV_LEN, len); + ptr += TLV_HDR_SIZE; + hint_bssid = ptr; + for (i = 0; i < params->num_hint_bssid; ++i) { + hint_bssid->freq_flags = + params->hint_bssid[i].freq_flags; + ether_addr_copy(¶ms->hint_bssid[i].bssid.addr[0], + &hint_bssid->bssid.addr[0]); + hint_bssid++; + } + } + ret = ath11k_wmi_cmd_send(wmi, skb, WMI_START_SCAN_CMDID); if (ret) { @@ -2150,91 +2269,110 @@ struct wmi_tlv *tlv; void *ptr; int i, ret, len; + u16 num_send_chans, num_sends = 0, max_chan_limit = 0; u32 *reg1, *reg2; - len = sizeof(*cmd) + TLV_HDR_SIZE + - sizeof(*chan_info) * chan_list->nallchans; + tchan_info = &chan_list->ch_param[0]; + while (chan_list->nallchans) { + len = sizeof(*cmd) + TLV_HDR_SIZE; + max_chan_limit = (wmi->wmi_ab->max_msg_len[ar->pdev_idx] - len) / + sizeof(*chan_info); + + if (chan_list->nallchans > max_chan_limit) + num_send_chans = max_chan_limit; + else + num_send_chans = chan_list->nallchans; - skb = ath11k_wmi_alloc_skb(wmi->wmi_ab, len); - if (!skb) - return -ENOMEM; + chan_list->nallchans -= num_send_chans; + len += sizeof(*chan_info) * num_send_chans; - cmd = (struct wmi_scan_chan_list_cmd *)skb->data; - cmd->tlv_header = FIELD_PREP(WMI_TLV_TAG, WMI_TAG_SCAN_CHAN_LIST_CMD) | - FIELD_PREP(WMI_TLV_LEN, sizeof(*cmd) - TLV_HDR_SIZE); + skb = ath11k_wmi_alloc_skb(wmi->wmi_ab, len); + if (!skb) + return -ENOMEM; - ath11k_dbg(ar->ab, ATH11K_DBG_WMI, - "WMI no.of chan = %d len = %d\n", chan_list->nallchans, len); - cmd->pdev_id = chan_list->pdev_id; - cmd->num_scan_chans = chan_list->nallchans; + cmd = (struct wmi_scan_chan_list_cmd *)skb->data; + cmd->tlv_header = FIELD_PREP(WMI_TLV_TAG, WMI_TAG_SCAN_CHAN_LIST_CMD) | + FIELD_PREP(WMI_TLV_LEN, sizeof(*cmd) - TLV_HDR_SIZE); + cmd->pdev_id = chan_list->pdev_id; + cmd->num_scan_chans = num_send_chans; + if (num_sends) + cmd->flags |= WMI_APPEND_TO_EXISTING_CHAN_LIST_FLAG; - ptr = skb->data + sizeof(*cmd); + ath11k_dbg(ar->ab, ATH11K_DBG_WMI, + "WMI no.of chan = %d len = %d pdev_id = %d num_sends = %d\n", + num_send_chans, len, cmd->pdev_id, num_sends); - len = sizeof(*chan_info) * chan_list->nallchans; - tlv = ptr; - tlv->header = FIELD_PREP(WMI_TLV_TAG, WMI_TAG_ARRAY_STRUCT) | - FIELD_PREP(WMI_TLV_LEN, len - TLV_HDR_SIZE); - ptr += TLV_HDR_SIZE; + ptr = skb->data + sizeof(*cmd); - tchan_info = &chan_list->ch_param[0]; + len = sizeof(*chan_info) * num_send_chans; + tlv = ptr; + tlv->header = FIELD_PREP(WMI_TLV_TAG, WMI_TAG_ARRAY_STRUCT) | + FIELD_PREP(WMI_TLV_LEN, len - TLV_HDR_SIZE); + ptr += TLV_HDR_SIZE; - for (i = 0; i < chan_list->nallchans; ++i) { - chan_info = ptr; - memset(chan_info, 0, sizeof(*chan_info)); - len = sizeof(*chan_info); - chan_info->tlv_header = FIELD_PREP(WMI_TLV_TAG, - WMI_TAG_CHANNEL) | - FIELD_PREP(WMI_TLV_LEN, - len - TLV_HDR_SIZE); - - reg1 = &chan_info->reg_info_1; - reg2 = &chan_info->reg_info_2; - chan_info->mhz = tchan_info->mhz; - chan_info->band_center_freq1 = tchan_info->cfreq1; - chan_info->band_center_freq2 = tchan_info->cfreq2; - - if (tchan_info->is_chan_passive) - chan_info->info |= WMI_CHAN_INFO_PASSIVE; - if (tchan_info->allow_he) - chan_info->info |= WMI_CHAN_INFO_ALLOW_HE; - else if (tchan_info->allow_vht) - chan_info->info |= WMI_CHAN_INFO_ALLOW_VHT; - else if (tchan_info->allow_ht) - chan_info->info |= WMI_CHAN_INFO_ALLOW_HT; - if (tchan_info->half_rate) - chan_info->info |= WMI_CHAN_INFO_HALF_RATE; - if (tchan_info->quarter_rate) - chan_info->info |= WMI_CHAN_INFO_QUARTER_RATE; - - chan_info->info |= FIELD_PREP(WMI_CHAN_INFO_MODE, - tchan_info->phy_mode); - *reg1 |= FIELD_PREP(WMI_CHAN_REG_INFO1_MIN_PWR, - tchan_info->minpower); - *reg1 |= FIELD_PREP(WMI_CHAN_REG_INFO1_MAX_PWR, - tchan_info->maxpower); - *reg1 |= FIELD_PREP(WMI_CHAN_REG_INFO1_MAX_REG_PWR, - tchan_info->maxregpower); - *reg1 |= FIELD_PREP(WMI_CHAN_REG_INFO1_REG_CLS, - tchan_info->reg_class_id); - *reg2 |= FIELD_PREP(WMI_CHAN_REG_INFO2_ANT_MAX, - tchan_info->antennamax); + for (i = 0; i < num_send_chans; ++i) { + chan_info = ptr; + memset(chan_info, 0, sizeof(*chan_info)); + len = sizeof(*chan_info); + chan_info->tlv_header = FIELD_PREP(WMI_TLV_TAG, + WMI_TAG_CHANNEL) | + FIELD_PREP(WMI_TLV_LEN, + len - TLV_HDR_SIZE); + + reg1 = &chan_info->reg_info_1; + reg2 = &chan_info->reg_info_2; + chan_info->mhz = tchan_info->mhz; + chan_info->band_center_freq1 = tchan_info->cfreq1; + chan_info->band_center_freq2 = tchan_info->cfreq2; + + if (tchan_info->is_chan_passive) + chan_info->info |= WMI_CHAN_INFO_PASSIVE; + if (tchan_info->allow_he) + chan_info->info |= WMI_CHAN_INFO_ALLOW_HE; + else if (tchan_info->allow_vht) + chan_info->info |= WMI_CHAN_INFO_ALLOW_VHT; + else if (tchan_info->allow_ht) + chan_info->info |= WMI_CHAN_INFO_ALLOW_HT; + if (tchan_info->half_rate) + chan_info->info |= WMI_CHAN_INFO_HALF_RATE; + if (tchan_info->quarter_rate) + chan_info->info |= WMI_CHAN_INFO_QUARTER_RATE; + if (tchan_info->psc_channel) + chan_info->info |= WMI_CHAN_INFO_PSC; + + chan_info->info |= FIELD_PREP(WMI_CHAN_INFO_MODE, + tchan_info->phy_mode); + *reg1 |= FIELD_PREP(WMI_CHAN_REG_INFO1_MIN_PWR, + tchan_info->minpower); + *reg1 |= FIELD_PREP(WMI_CHAN_REG_INFO1_MAX_PWR, + tchan_info->maxpower); + *reg1 |= FIELD_PREP(WMI_CHAN_REG_INFO1_MAX_REG_PWR, + tchan_info->maxregpower); + *reg1 |= FIELD_PREP(WMI_CHAN_REG_INFO1_REG_CLS, + tchan_info->reg_class_id); + *reg2 |= FIELD_PREP(WMI_CHAN_REG_INFO2_ANT_MAX, + tchan_info->antennamax); + + ath11k_dbg(ar->ab, ATH11K_DBG_WMI, + "WMI chan scan list chan[%d] = %u, chan_info->info %8x\n", + i, chan_info->mhz, chan_info->info); - ath11k_dbg(ar->ab, ATH11K_DBG_WMI, - "WMI chan scan list chan[%d] = %u\n", - i, chan_info->mhz); + ptr += sizeof(*chan_info); - ptr += sizeof(*chan_info); + tchan_info++; + } - tchan_info++; - } + ret = ath11k_wmi_cmd_send(wmi, skb, WMI_SCAN_CHAN_LIST_CMDID); + if (ret) { + ath11k_warn(ar->ab, "failed to send WMI_SCAN_CHAN_LIST cmd\n"); + dev_kfree_skb(skb); + return ret; + } - ret = ath11k_wmi_cmd_send(wmi, skb, WMI_SCAN_CHAN_LIST_CMDID); - if (ret) { - ath11k_warn(ar->ab, "failed to send WMI_SCAN_CHAN_LIST cmd\n"); - dev_kfree_skb(skb); + num_sends++; } - return ret; + return 0; } int ath11k_wmi_send_wmm_update_cmd_tlv(struct ath11k *ar, u32 vdev_id, @@ -2340,6 +2478,146 @@ return ret; } +int ath11k_wmi_delba_send(struct ath11k *ar, u32 vdev_id, const u8 *mac, + u32 tid, u32 initiator, u32 reason) +{ + struct ath11k_pdev_wmi *wmi = ar->wmi; + struct wmi_delba_send_cmd *cmd; + struct sk_buff *skb; + int ret; + + skb = ath11k_wmi_alloc_skb(wmi->wmi_ab, sizeof(*cmd)); + if (!skb) + return -ENOMEM; + + cmd = (struct wmi_delba_send_cmd *)skb->data; + cmd->tlv_header = FIELD_PREP(WMI_TLV_TAG, WMI_TAG_DELBA_SEND_CMD) | + FIELD_PREP(WMI_TLV_LEN, sizeof(*cmd) - TLV_HDR_SIZE); + cmd->vdev_id = vdev_id; + ether_addr_copy(cmd->peer_macaddr.addr, mac); + cmd->tid = tid; + cmd->initiator = initiator; + cmd->reasoncode = reason; + + ath11k_dbg(ar->ab, ATH11K_DBG_WMI, + "wmi delba send vdev_id 0x%X mac_addr %pM tid %u initiator %u reason %u\n", + vdev_id, mac, tid, initiator, reason); + + ret = ath11k_wmi_cmd_send(wmi, skb, WMI_DELBA_SEND_CMDID); + + if (ret) { + ath11k_warn(ar->ab, + "failed to send WMI_DELBA_SEND_CMDID cmd\n"); + dev_kfree_skb(skb); + } + + return ret; +} + +int ath11k_wmi_addba_set_resp(struct ath11k *ar, u32 vdev_id, const u8 *mac, + u32 tid, u32 status) +{ + struct ath11k_pdev_wmi *wmi = ar->wmi; + struct wmi_addba_setresponse_cmd *cmd; + struct sk_buff *skb; + int ret; + + skb = ath11k_wmi_alloc_skb(wmi->wmi_ab, sizeof(*cmd)); + if (!skb) + return -ENOMEM; + + cmd = (struct wmi_addba_setresponse_cmd *)skb->data; + cmd->tlv_header = + FIELD_PREP(WMI_TLV_TAG, WMI_TAG_ADDBA_SETRESPONSE_CMD) | + FIELD_PREP(WMI_TLV_LEN, sizeof(*cmd) - TLV_HDR_SIZE); + cmd->vdev_id = vdev_id; + ether_addr_copy(cmd->peer_macaddr.addr, mac); + cmd->tid = tid; + cmd->statuscode = status; + + ath11k_dbg(ar->ab, ATH11K_DBG_WMI, + "wmi addba set resp vdev_id 0x%X mac_addr %pM tid %u status %u\n", + vdev_id, mac, tid, status); + + ret = ath11k_wmi_cmd_send(wmi, skb, WMI_ADDBA_SET_RESP_CMDID); + + if (ret) { + ath11k_warn(ar->ab, + "failed to send WMI_ADDBA_SET_RESP_CMDID cmd\n"); + dev_kfree_skb(skb); + } + + return ret; +} + +int ath11k_wmi_addba_send(struct ath11k *ar, u32 vdev_id, const u8 *mac, + u32 tid, u32 buf_size) +{ + struct ath11k_pdev_wmi *wmi = ar->wmi; + struct wmi_addba_send_cmd *cmd; + struct sk_buff *skb; + int ret; + + skb = ath11k_wmi_alloc_skb(wmi->wmi_ab, sizeof(*cmd)); + if (!skb) + return -ENOMEM; + + cmd = (struct wmi_addba_send_cmd *)skb->data; + cmd->tlv_header = FIELD_PREP(WMI_TLV_TAG, WMI_TAG_ADDBA_SEND_CMD) | + FIELD_PREP(WMI_TLV_LEN, sizeof(*cmd) - TLV_HDR_SIZE); + cmd->vdev_id = vdev_id; + ether_addr_copy(cmd->peer_macaddr.addr, mac); + cmd->tid = tid; + cmd->buffersize = buf_size; + + ath11k_dbg(ar->ab, ATH11K_DBG_WMI, + "wmi addba send vdev_id 0x%X mac_addr %pM tid %u bufsize %u\n", + vdev_id, mac, tid, buf_size); + + ret = ath11k_wmi_cmd_send(wmi, skb, WMI_ADDBA_SEND_CMDID); + + if (ret) { + ath11k_warn(ar->ab, + "failed to send WMI_ADDBA_SEND_CMDID cmd\n"); + dev_kfree_skb(skb); + } + + return ret; +} + +int ath11k_wmi_addba_clear_resp(struct ath11k *ar, u32 vdev_id, const u8 *mac) +{ + struct ath11k_pdev_wmi *wmi = ar->wmi; + struct wmi_addba_clear_resp_cmd *cmd; + struct sk_buff *skb; + int ret; + + skb = ath11k_wmi_alloc_skb(wmi->wmi_ab, sizeof(*cmd)); + if (!skb) + return -ENOMEM; + + cmd = (struct wmi_addba_clear_resp_cmd *)skb->data; + cmd->tlv_header = + FIELD_PREP(WMI_TLV_TAG, WMI_TAG_ADDBA_CLEAR_RESP_CMD) | + FIELD_PREP(WMI_TLV_LEN, sizeof(*cmd) - TLV_HDR_SIZE); + cmd->vdev_id = vdev_id; + ether_addr_copy(cmd->peer_macaddr.addr, mac); + + ath11k_dbg(ar->ab, ATH11K_DBG_WMI, + "wmi addba clear resp vdev_id 0x%X mac_addr %pM\n", + vdev_id, mac); + + ret = ath11k_wmi_cmd_send(wmi, skb, WMI_ADDBA_CLEAR_RESP_CMDID); + + if (ret) { + ath11k_warn(ar->ab, + "failed to send WMI_ADDBA_CLEAR_RESP_CMDID cmd\n"); + dev_kfree_skb(skb); + } + + return ret; +} + int ath11k_wmi_pdev_peer_pktlog_filter(struct ath11k *ar, u8 *addr, u8 enable) { struct ath11k_pdev_wmi *wmi = ar->wmi; @@ -2442,6 +2720,70 @@ return ret; } +int +ath11k_wmi_send_thermal_mitigation_param_cmd(struct ath11k *ar, + struct thermal_mitigation_params *param) +{ + struct ath11k_pdev_wmi *wmi = ar->wmi; + struct wmi_therm_throt_config_request_cmd *cmd; + struct wmi_therm_throt_level_config_info *lvl_conf; + struct wmi_tlv *tlv; + struct sk_buff *skb; + int i, ret, len; + + len = sizeof(*cmd) + TLV_HDR_SIZE + + THERMAL_LEVELS * sizeof(struct wmi_therm_throt_level_config_info); + + skb = ath11k_wmi_alloc_skb(wmi->wmi_ab, len); + if (!skb) + return -ENOMEM; + + cmd = (struct wmi_therm_throt_config_request_cmd *)skb->data; + + cmd->tlv_header = FIELD_PREP(WMI_TLV_TAG, WMI_TAG_THERM_THROT_CONFIG_REQUEST) | + FIELD_PREP(WMI_TLV_LEN, sizeof(*cmd) - TLV_HDR_SIZE); + + cmd->pdev_id = ar->pdev->pdev_id; + cmd->enable = param->enable; + cmd->dc = param->dc; + cmd->dc_per_event = param->dc_per_event; + cmd->therm_throt_levels = THERMAL_LEVELS; + + tlv = (struct wmi_tlv *)(skb->data + sizeof(*cmd)); + tlv->header = FIELD_PREP(WMI_TLV_TAG, WMI_TAG_ARRAY_STRUCT) | + FIELD_PREP(WMI_TLV_LEN, + (THERMAL_LEVELS * + sizeof(struct wmi_therm_throt_level_config_info))); + + lvl_conf = (struct wmi_therm_throt_level_config_info *)(skb->data + + sizeof(*cmd) + + TLV_HDR_SIZE); + for (i = 0; i < THERMAL_LEVELS; i++) { + lvl_conf->tlv_header = + FIELD_PREP(WMI_TLV_TAG, WMI_TAG_THERM_THROT_LEVEL_CONFIG_INFO) | + FIELD_PREP(WMI_TLV_LEN, sizeof(*lvl_conf) - TLV_HDR_SIZE); + + lvl_conf->temp_lwm = param->levelconf[i].tmplwm; + lvl_conf->temp_hwm = param->levelconf[i].tmphwm; + lvl_conf->dc_off_percent = param->levelconf[i].dcoffpercent; + lvl_conf->prio = param->levelconf[i].priority; + lvl_conf++; + } + + ret = ath11k_wmi_cmd_send(wmi, skb, WMI_THERM_THROT_SET_CONF_CMDID); + if (ret) { + ath11k_warn(ar->ab, "failed to send THERM_THROT_SET_CONF cmd\n"); + dev_kfree_skb(skb); + } + + ath11k_dbg(ar->ab, ATH11K_DBG_WMI, + "WMI vdev set thermal throt pdev_id %d enable %d dc %d dc_per_event %x levels %d\n", + ar->pdev->pdev_id, param->enable, param->dc, + param->dc_per_event, THERMAL_LEVELS); + + return ret; +} + int ath11k_wmi_pdev_pktlog_enable(struct ath11k *ar, u32 pktlog_filter) { struct ath11k_pdev_wmi *wmi = ar->wmi; @@ -2615,6 +2957,84 @@ return ret; } +int +ath11k_wmi_send_obss_color_collision_cfg_cmd(struct ath11k *ar, u32 vdev_id, + u8 bss_color, u32 period, + bool enable) +{ + struct ath11k_pdev_wmi *wmi = ar->wmi; + struct ath11k_base *ab = wmi->wmi_ab->ab; + struct wmi_obss_color_collision_cfg_params_cmd *cmd; + struct sk_buff *skb; + int ret, len; + + len = sizeof(*cmd); + + skb = ath11k_wmi_alloc_skb(wmi->wmi_ab, len); + if (!skb) + return -ENOMEM; + + cmd = (struct wmi_obss_color_collision_cfg_params_cmd *)skb->data; + cmd->tlv_header = FIELD_PREP(WMI_TLV_TAG, + WMI_TAG_OBSS_COLOR_COLLISION_DET_CONFIG) | + FIELD_PREP(WMI_TLV_LEN, len - TLV_HDR_SIZE); + cmd->vdev_id = vdev_id; + cmd->evt_type = enable ? ATH11K_OBSS_COLOR_COLLISION_DETECTION : + ATH11K_OBSS_COLOR_COLLISION_DETECTION_DISABLE; + cmd->current_bss_color = bss_color; + cmd->detection_period_ms = period; + cmd->scan_period_ms = ATH11K_BSS_COLOR_COLLISION_SCAN_PERIOD_MS; + cmd->free_slot_expiry_time_ms = 0; + cmd->flags = 0; + + ath11k_dbg(ar->ab, ATH11K_DBG_WMI, + "wmi_send_obss_color_collision_cfg id %d type %d bss_color %d detect_period %d scan_period %d\n", + cmd->vdev_id, cmd->evt_type, cmd->current_bss_color, + cmd->detection_period_ms, cmd->scan_period_ms); + + ret = ath11k_wmi_cmd_send(wmi, skb, + WMI_OBSS_COLOR_COLLISION_DET_CONFIG_CMDID); + if (ret) { + ath11k_warn(ab, "Failed to send WMI_OBSS_COLOR_COLLISION_DET_CONFIG_CMDID"); + dev_kfree_skb(skb); + } + return ret; +} + +int ath11k_wmi_send_bss_color_change_enable_cmd(struct ath11k *ar, u32 vdev_id, + bool enable) +{ + struct ath11k_pdev_wmi *wmi = ar->wmi; + struct ath11k_base *ab = wmi->wmi_ab->ab; + struct wmi_bss_color_change_enable_params_cmd *cmd; + struct sk_buff *skb; + int ret, len; + + len = sizeof(*cmd); + + skb = ath11k_wmi_alloc_skb(wmi->wmi_ab, len); + if (!skb) + return -ENOMEM; + + cmd = (struct wmi_bss_color_change_enable_params_cmd *)skb->data; + cmd->tlv_header = FIELD_PREP(WMI_TLV_TAG, WMI_TAG_BSS_COLOR_CHANGE_ENABLE) | + FIELD_PREP(WMI_TLV_LEN, len - TLV_HDR_SIZE); + cmd->vdev_id = vdev_id; + cmd->enable = enable ? 1 : 0; + + ath11k_dbg(ar->ab, ATH11K_DBG_WMI, + "wmi_send_bss_color_change_enable id %d enable %d\n", + cmd->vdev_id, cmd->enable); + + ret = ath11k_wmi_cmd_send(wmi, skb, + WMI_BSS_COLOR_CHANGE_ENABLE_CMDID); + if (ret) { + ath11k_warn(ab, "Failed to send WMI_BSS_COLOR_CHANGE_ENABLE_CMDID"); + dev_kfree_skb(skb); + } + return ret; +} + static void ath11k_fill_band_to_mac_param(struct ath11k_base *soc, struct wmi_host_pdev_band_to_mac *band_to_mac) @@ -2732,7 +3152,7 @@ (param->num_band_to_mac * sizeof(*band_to_mac)); len = sizeof(*cmd) + TLV_HDR_SIZE + sizeof(*cfg) + hw_mode_len + - (sizeof(*host_mem_chunks) * WMI_MAX_MEM_REQS); + (param->num_mem_chunks ? (sizeof(*host_mem_chunks) * WMI_MAX_MEM_REQS) : 0); skb = ath11k_wmi_alloc_skb(wmi->wmi_ab, len); if (!skb) @@ -2825,6 +3245,41 @@ return ret; } +int ath11k_wmi_pdev_lro_cfg(struct ath11k *ar, + int pdev_id) +{ + struct ath11k_wmi_pdev_lro_config_cmd *cmd; + struct sk_buff *skb; + int ret; + + skb = ath11k_wmi_alloc_skb(ar->wmi->wmi_ab, sizeof(*cmd)); + if (!skb) + return -ENOMEM; + + cmd = (struct ath11k_wmi_pdev_lro_config_cmd *)skb->data; + cmd->tlv_header = FIELD_PREP(WMI_TLV_TAG, WMI_TAG_LRO_INFO_CMD) | + FIELD_PREP(WMI_TLV_LEN, sizeof(*cmd) - TLV_HDR_SIZE); + + get_random_bytes(cmd->th_4, sizeof(uint32_t) * ATH11K_IPV4_TH_SEED_SIZE); + get_random_bytes(cmd->th_6, sizeof(uint32_t) * ATH11K_IPV6_TH_SEED_SIZE); + + cmd->pdev_id = pdev_id; + + ret = ath11k_wmi_cmd_send(ar->wmi, skb, WMI_LRO_CONFIG_CMDID); + if (ret) { + ath11k_warn(ar->ab, + "failed to send lro cfg req wmi cmd\n"); + goto err; + } + + ath11k_dbg(ar->ab, ATH11K_DBG_WMI, + "WMI lro cfg cmd pdev_id 0x%x\n", pdev_id); + return 0; +err: + dev_kfree_skb(skb); + return ret; +} + int ath11k_wmi_wait_for_service_ready(struct ath11k_base *ab) { unsigned long time_left; @@ -2849,6 +3304,34 @@ return 0; } +int ath11k_wmi_set_hw_mode(struct ath11k_base *ab, int hw_mode_index) +{ + struct wmi_pdev_set_hw_mode_cmd_param *cmd; + struct sk_buff *skb; + struct ath11k_wmi_base *wmi_ab = &ab->wmi_ab; + int len; + int ret; + + len = sizeof(*cmd); + + skb = ath11k_wmi_alloc_skb(wmi_ab, len); + cmd = (struct wmi_pdev_set_hw_mode_cmd_param *)skb->data; + + cmd->tlv_header = FIELD_PREP(WMI_TLV_TAG, WMI_TAG_PDEV_SET_HW_MODE_CMD) | + FIELD_PREP(WMI_TLV_LEN, sizeof(*cmd) - TLV_HDR_SIZE); + + cmd->pdev_id = WMI_PDEV_ID_SOC; + cmd->hw_mode_index = hw_mode_index; + + ret = ath11k_wmi_cmd_send(&wmi_ab->wmi[0], skb, WMI_PDEV_SET_HW_MODE_CMDID); + if (ret) { + ath11k_warn(ab, "failed to send WMI_PDEV_SET_HW_MODE_CMDID\n"); + dev_kfree_skb(skb); + } + + return ret; +} + int ath11k_wmi_cmd_init(struct ath11k_base *ab) { struct ath11k_wmi_base *wmi_sc = &ab->wmi_ab; @@ -2858,50 +3341,7 @@ memset(&init_param, 0, sizeof(init_param)); memset(&config, 0, sizeof(config)); - config.num_vdevs = ab->num_radios * TARGET_NUM_VDEVS; - - if (ab->num_radios == 2) { - config.num_peers = TARGET_NUM_PEERS(DBS); - config.num_tids = TARGET_NUM_TIDS(DBS); - } else if (ab->num_radios == 3) { - config.num_peers = TARGET_NUM_PEERS(DBS_SBS); - config.num_tids = TARGET_NUM_TIDS(DBS_SBS); - } else { - /* Control should not reach here */ - config.num_peers = TARGET_NUM_PEERS(SINGLE); - config.num_tids = TARGET_NUM_TIDS(SINGLE); - } - config.num_offload_peers = TARGET_NUM_OFFLD_PEERS; - config.num_offload_reorder_buffs = TARGET_NUM_OFFLD_REORDER_BUFFS; - config.num_peer_keys = TARGET_NUM_PEER_KEYS; - config.ast_skid_limit = TARGET_AST_SKID_LIMIT; - config.tx_chain_mask = (1 << ab->target_caps.num_rf_chains) - 1; - config.rx_chain_mask = (1 << ab->target_caps.num_rf_chains) - 1; - config.rx_timeout_pri[0] = TARGET_RX_TIMEOUT_LO_PRI; - config.rx_timeout_pri[1] = TARGET_RX_TIMEOUT_LO_PRI; - config.rx_timeout_pri[2] = TARGET_RX_TIMEOUT_LO_PRI; - config.rx_timeout_pri[3] = TARGET_RX_TIMEOUT_HI_PRI; - config.rx_decap_mode = TARGET_DECAP_MODE_NATIVE_WIFI; - config.scan_max_pending_req = TARGET_SCAN_MAX_PENDING_REQS; - config.bmiss_offload_max_vdev = TARGET_BMISS_OFFLOAD_MAX_VDEV; - config.roam_offload_max_vdev = TARGET_ROAM_OFFLOAD_MAX_VDEV; - config.roam_offload_max_ap_profiles = TARGET_ROAM_OFFLOAD_MAX_AP_PROFILES; - config.num_mcast_groups = TARGET_NUM_MCAST_GROUPS; - config.num_mcast_table_elems = TARGET_NUM_MCAST_TABLE_ELEMS; - config.mcast2ucast_mode = TARGET_MCAST2UCAST_MODE; - config.tx_dbg_log_size = TARGET_TX_DBG_LOG_SIZE; - config.num_wds_entries = TARGET_NUM_WDS_ENTRIES; - config.dma_burst_size = TARGET_DMA_BURST_SIZE; - config.rx_skip_defrag_timeout_dup_detection_check = - TARGET_RX_SKIP_DEFRAG_TIMEOUT_DUP_DETECTION_CHECK; - config.vow_config = TARGET_VOW_CONFIG; - config.gtk_offload_max_vdev = TARGET_GTK_OFFLOAD_MAX_VDEV; - config.num_msdu_desc = TARGET_NUM_MSDU_DESC; - config.beacon_tx_offload_max_vdev = ab->num_radios * TARGET_MAX_BCN_OFFLD; - config.rx_batchmode = TARGET_RX_BATCHMODE; - config.peer_map_unmap_v2_support = 1; - config.twt_ap_pdev_count = 2; - config.twt_ap_sta_count = 1000; + ab->hw_params.hw_ops->wmi_init_config(ab, &config); memcpy(&wmi_sc->wlan_resource_config, &config, sizeof(config)); @@ -2910,16 +3350,246 @@ init_param.hw_mode_id = wmi_sc->preferred_hw_mode; init_param.mem_chunks = wmi_sc->mem_chunks; - if (wmi_sc->preferred_hw_mode == WMI_HOST_HW_MODE_SINGLE) + if (wmi_sc->preferred_hw_mode == WMI_HOST_HW_MODE_SINGLE || + ab->hw_params.single_pdev_only) init_param.hw_mode_id = WMI_HOST_HW_MODE_MAX; init_param.num_band_to_mac = ab->num_radios; - ath11k_fill_band_to_mac_param(ab, init_param.band_to_mac); return ath11k_init_cmd_send(&wmi_sc->wmi[0], &init_param); } +int ath11k_wmi_vdev_spectral_conf(struct ath11k *ar, + struct ath11k_wmi_vdev_spectral_conf_param *param) +{ + struct ath11k_wmi_vdev_spectral_conf_cmd *cmd; + struct sk_buff *skb; + int ret; + + skb = ath11k_wmi_alloc_skb(ar->wmi->wmi_ab, sizeof(*cmd)); + if (!skb) + return -ENOMEM; + + cmd = (struct ath11k_wmi_vdev_spectral_conf_cmd *)skb->data; + cmd->tlv_header = FIELD_PREP(WMI_TLV_TAG, + WMI_TAG_VDEV_SPECTRAL_CONFIGURE_CMD) | + FIELD_PREP(WMI_TLV_LEN, sizeof(*cmd) - TLV_HDR_SIZE); + + memcpy(&cmd->param, param, sizeof(*param)); + + ret = ath11k_wmi_cmd_send(ar->wmi, skb, + WMI_VDEV_SPECTRAL_SCAN_CONFIGURE_CMDID); + if (ret) { + ath11k_warn(ar->ab, + "failed to send spectral scan config wmi cmd\n"); + goto err; + } + + ath11k_dbg(ar->ab, ATH11K_DBG_WMI, + "WMI spectral scan config cmd vdev_id 0x%x\n", + param->vdev_id); + + return 0; +err: + dev_kfree_skb(skb); + return ret; +} + +int ath11k_wmi_vdev_spectral_enable(struct ath11k *ar, u32 vdev_id, + u32 trigger, u32 enable) +{ + struct ath11k_wmi_vdev_spectral_enable_cmd *cmd; + struct sk_buff *skb; + int ret; + + skb = ath11k_wmi_alloc_skb(ar->wmi->wmi_ab, sizeof(*cmd)); + if (!skb) + return -ENOMEM; + + cmd = (struct ath11k_wmi_vdev_spectral_enable_cmd *)skb->data; + cmd->tlv_header = FIELD_PREP(WMI_TLV_TAG, + WMI_TAG_VDEV_SPECTRAL_ENABLE_CMD) | + FIELD_PREP(WMI_TLV_LEN, sizeof(*cmd) - TLV_HDR_SIZE); + + cmd->vdev_id = vdev_id; + cmd->trigger_cmd = trigger; + cmd->enable_cmd = enable; + + ret = ath11k_wmi_cmd_send(ar->wmi, skb, + WMI_VDEV_SPECTRAL_SCAN_ENABLE_CMDID); + if (ret) { + ath11k_warn(ar->ab, + "failed to send spectral enable wmi cmd\n"); + goto err; + } + + ath11k_dbg(ar->ab, ATH11K_DBG_WMI, + "WMI spectral enable cmd vdev id 0x%x\n", + vdev_id); + + return 0; +err: + dev_kfree_skb(skb); + return ret; +} + +int ath11k_wmi_pdev_dma_ring_cfg(struct ath11k *ar, + struct ath11k_wmi_pdev_dma_ring_cfg_req_cmd *param) +{ + struct ath11k_wmi_pdev_dma_ring_cfg_req_cmd *cmd; + struct sk_buff *skb; + int ret; + + skb = ath11k_wmi_alloc_skb(ar->wmi->wmi_ab, sizeof(*cmd)); + if (!skb) + return -ENOMEM; + + cmd = (struct ath11k_wmi_pdev_dma_ring_cfg_req_cmd *)skb->data; + cmd->tlv_header = FIELD_PREP(WMI_TLV_TAG, WMI_TAG_DMA_RING_CFG_REQ) | + FIELD_PREP(WMI_TLV_LEN, sizeof(*cmd) - TLV_HDR_SIZE); + + cmd->pdev_id = param->pdev_id; + cmd->module_id = param->module_id; + cmd->base_paddr_lo = param->base_paddr_lo; + cmd->base_paddr_hi = param->base_paddr_hi; + cmd->head_idx_paddr_lo = param->head_idx_paddr_lo; + cmd->head_idx_paddr_hi = param->head_idx_paddr_hi; + cmd->tail_idx_paddr_lo = param->tail_idx_paddr_lo; + cmd->tail_idx_paddr_hi = param->tail_idx_paddr_hi; + cmd->num_elems = param->num_elems; + cmd->buf_size = param->buf_size; + cmd->num_resp_per_event = param->num_resp_per_event; + cmd->event_timeout_ms = param->event_timeout_ms; + + ret = ath11k_wmi_cmd_send(ar->wmi, skb, + WMI_PDEV_DMA_RING_CFG_REQ_CMDID); + if (ret) { + ath11k_warn(ar->ab, + "failed to send dma ring cfg req wmi cmd\n"); + goto err; + } + + ath11k_dbg(ar->ab, ATH11K_DBG_WMI, + "WMI DMA ring cfg req cmd pdev_id 0x%x\n", + param->pdev_id); + + return 0; +err: + dev_kfree_skb(skb); + return ret; +} + +static int ath11k_wmi_tlv_dma_buf_entry_parse(struct ath11k_base *soc, + u16 tag, u16 len, + const void *ptr, void *data) +{ + struct wmi_tlv_dma_buf_release_parse *parse = data; + + if (tag != WMI_TAG_DMA_BUF_RELEASE_ENTRY) + return -EPROTO; + + if (parse->num_buf_entry >= parse->fixed.num_buf_release_entry) + return -ENOBUFS; + + parse->num_buf_entry++; + return 0; +} + +static int ath11k_wmi_tlv_dma_buf_meta_parse(struct ath11k_base *soc, + u16 tag, u16 len, + const void *ptr, void *data) +{ + struct wmi_tlv_dma_buf_release_parse *parse = data; + + if (tag != WMI_TAG_DMA_BUF_RELEASE_SPECTRAL_META_DATA) + return -EPROTO; + + if (parse->num_meta >= parse->fixed.num_meta_data_entry) + return -ENOBUFS; + + parse->num_meta++; + return 0; +} + +static int ath11k_wmi_tlv_dma_buf_parse(struct ath11k_base *ab, + u16 tag, u16 len, + const void *ptr, void *data) +{ + struct wmi_tlv_dma_buf_release_parse *parse = data; + int ret; + + switch (tag) { + case WMI_TAG_DMA_BUF_RELEASE: + memcpy(&parse->fixed, ptr, + sizeof(struct ath11k_wmi_dma_buf_release_fixed_param)); + parse->fixed.pdev_id = DP_HW2SW_MACID(parse->fixed.pdev_id); + break; + case WMI_TAG_ARRAY_STRUCT: + if (!parse->buf_entry_done) { + parse->num_buf_entry = 0; + parse->buf_entry = (struct wmi_dma_buf_release_entry *)ptr; + + ret = ath11k_wmi_tlv_iter(ab, ptr, len, + ath11k_wmi_tlv_dma_buf_entry_parse, + parse); + if (ret) { + ath11k_warn(ab, "failed to parse dma buf entry tlv %d\n", + ret); + return ret; + } + + parse->buf_entry_done = true; + } else if (!parse->meta_data_done) { + parse->num_meta = 0; + parse->meta_data = (struct wmi_dma_buf_release_meta_data *)ptr; + + ret = ath11k_wmi_tlv_iter(ab, ptr, len, + ath11k_wmi_tlv_dma_buf_meta_parse, + parse); + if (ret) { + ath11k_warn(ab, "failed to parse dma buf meta tlv %d\n", + ret); + return ret; + } + + parse->meta_data_done = true; + } + break; + default: + break; + } + return 0; +} + +static void ath11k_wmi_pdev_dma_ring_buf_release_event(struct ath11k_base *ab, + struct sk_buff *skb) +{ + struct wmi_tlv_dma_buf_release_parse parse = { }; + struct ath11k_dbring_buf_release_event param; + int ret; + + ret = ath11k_wmi_tlv_iter(ab, skb->data, skb->len, + ath11k_wmi_tlv_dma_buf_parse, + &parse); + if (ret) { + ath11k_warn(ab, "failed to parse dma buf release tlv %d\n", ret); + return; + } + + param.fixed = parse.fixed; + param.buf_entry = parse.buf_entry; + param.num_buf_entry = parse.num_buf_entry; + param.meta_data = parse.meta_data; + param.num_meta = parse.num_meta; + + ret = ath11k_dbring_buffer_release_event(ab, ¶m); + if (ret) { + ath11k_warn(ab, "failed to handle dma buf release event %d\n", ret); + return; + } +} + static int ath11k_wmi_tlv_hw_mode_caps_parse(struct ath11k_base *soc, u16 tag, u16 len, const void *ptr, void *data) @@ -2980,6 +3650,8 @@ i++; } + ath11k_dbg(soc, ATH11K_DBG_WMI, "preferred_hw_mode:%d\n", + soc->wmi_ab.preferred_hw_mode); if (soc->wmi_ab.preferred_hw_mode == WMI_HOST_HW_MODE_MAX) return -EINVAL; @@ -3070,6 +3742,7 @@ struct wmi_tlv_svc_rdy_ext_parse *svc_rdy_ext = data; u8 hw_mode_id = svc_rdy_ext->pref_hw_mode_caps.hw_mode_id; u32 phy_id_map; + int pdev_index = 0; int ret; svc_rdy_ext->soc_hal_reg_caps = (struct wmi_soc_hal_reg_capabilities *)ptr; @@ -3085,7 +3758,7 @@ svc_rdy_ext->soc_hal_reg_caps, svc_rdy_ext->mac_phy_caps, hw_mode_id, soc->num_radios, - &soc->pdevs[soc->num_radios]); + &soc->pdevs[pdev_index]); if (ret) { ath11k_warn(soc, "failed to extract mac caps, idx :%d\n", soc->num_radios); @@ -3094,12 +3767,117 @@ soc->num_radios++; + /* For QCA6390, save mac_phy capability in the same pdev */ + if (soc->hw_params.single_pdev_only) + pdev_index = 0; + else + pdev_index = soc->num_radios; + /* TODO: mac_phy_cap prints */ phy_id_map >>= 1; } + + /* For QCA6390, set num_radios to 1 because host manages + * both 2G and 5G radio in one pdev. + * Set pdev_id = 0 and 0 means soc level. + */ + if (soc->hw_params.single_pdev_only) { + soc->num_radios = 1; + soc->pdevs[0].pdev_id = 0; + } + + return 0; +} + +static int ath11k_wmi_tlv_dma_ring_caps_parse(struct ath11k_base *soc, + u16 tag, u16 len, + const void *ptr, void *data) +{ + struct wmi_tlv_dma_ring_caps_parse *parse = data; + + if (tag != WMI_TAG_DMA_RING_CAPABILITIES) + return -EPROTO; + + parse->n_dma_ring_caps++; + return 0; +} + +static int ath11k_wmi_alloc_dbring_caps(struct ath11k_base *ab, + u32 num_cap) +{ + size_t sz; + void *ptr; + + sz = num_cap * sizeof(struct ath11k_dbring_cap); + ptr = kzalloc(sz, GFP_ATOMIC); + if (!ptr) + return -ENOMEM; + + ab->db_caps = ptr; + ab->num_db_cap = num_cap; + return 0; } +static void ath11k_wmi_free_dbring_caps(struct ath11k_base *ab) +{ + kfree(ab->db_caps); + ab->db_caps = NULL; +} + +static int ath11k_wmi_tlv_dma_ring_caps(struct ath11k_base *ab, + u16 len, const void *ptr, void *data) +{ + struct wmi_tlv_dma_ring_caps_parse *dma_caps_parse = data; + struct wmi_dma_ring_capabilities *dma_caps; + struct ath11k_dbring_cap *dir_buff_caps; + int ret; + u32 i; + + dma_caps_parse->n_dma_ring_caps = 0; + dma_caps = (struct wmi_dma_ring_capabilities *)ptr; + ret = ath11k_wmi_tlv_iter(ab, ptr, len, + ath11k_wmi_tlv_dma_ring_caps_parse, + dma_caps_parse); + if (ret) { + ath11k_warn(ab, "failed to parse dma ring caps tlv %d\n", ret); + return ret; + } + + if (!dma_caps_parse->n_dma_ring_caps) + return 0; + + if (ab->num_db_cap) { + ath11k_warn(ab, "Already processed, so ignoring dma ring caps\n"); + return 0; + } + + ret = ath11k_wmi_alloc_dbring_caps(ab, dma_caps_parse->n_dma_ring_caps); + if (ret) + return ret; + + dir_buff_caps = ab->db_caps; + for (i = 0; i < dma_caps_parse->n_dma_ring_caps; i++) { + if (dma_caps[i].module_id >= WMI_DIRECT_BUF_MAX) { + ath11k_warn(ab, "Invalid module id %d\n", dma_caps[i].module_id); + ret = -EINVAL; + goto free_dir_buff; + } + + dir_buff_caps[i].id = dma_caps[i].module_id; + dir_buff_caps[i].pdev_id = DP_HW2SW_MACID(dma_caps[i].pdev_id); + dir_buff_caps[i].min_elem = dma_caps[i].min_elem; + dir_buff_caps[i].min_buf_sz = dma_caps[i].min_buf_sz; + dir_buff_caps[i].min_buf_align = dma_caps[i].min_buf_align; + } + + return 0; + +free_dir_buff: + ath11k_wmi_free_dbring_caps(ab); + return ret; +} + static int ath11k_wmi_tlv_svc_rdy_ext_parse(struct ath11k_base *ab, u16 tag, u16 len, const void *ptr, void *data) @@ -3156,7 +3934,19 @@ return ret; svc_rdy_ext->ext_hal_reg_done = true; - complete(&ab->wmi_ab.service_ready); + } else if (!svc_rdy_ext->mac_phy_chainmask_combo_done) { + svc_rdy_ext->mac_phy_chainmask_combo_done = true; + } else if (!svc_rdy_ext->mac_phy_chainmask_cap_done) { + svc_rdy_ext->mac_phy_chainmask_cap_done = true; + } else if (!svc_rdy_ext->oem_dma_ring_cap_done) { + svc_rdy_ext->oem_dma_ring_cap_done = true; + } else if (!svc_rdy_ext->dma_ring_cap_done) { + ret = ath11k_wmi_tlv_dma_ring_caps(ab, len, ptr, + &svc_rdy_ext->dma_caps_parse); + if (ret) + return ret; + + svc_rdy_ext->dma_ring_cap_done = true; } break; @@ -3177,11 +3967,66 @@ &svc_rdy_ext); if (ret) { ath11k_warn(ab, "failed to parse tlv %d\n", ret); - return ret; + goto err; } + if (!test_bit(WMI_TLV_SERVICE_EXT2_MSG, ab->wmi_ab.svc_map)) + complete(&ab->wmi_ab.service_ready); + kfree(svc_rdy_ext.mac_phy_caps); return 0; + +err: + ath11k_wmi_free_dbring_caps(ab); + return ret; +} + +static int ath11k_wmi_tlv_svc_rdy_ext2_parse(struct ath11k_base *ab, + u16 tag, u16 len, + const void *ptr, void *data) +{ + struct wmi_tlv_svc_rdy_ext2_parse *parse = data; + int ret; + + switch (tag) { + case WMI_TAG_ARRAY_STRUCT: + if (!parse->dma_ring_cap_done) { + ret = ath11k_wmi_tlv_dma_ring_caps(ab, len, ptr, + &parse->dma_caps_parse); + if (ret) + return ret; + + parse->dma_ring_cap_done = true; + } + break; + default: + break; + } + + return 0; +} + +static int ath11k_service_ready_ext2_event(struct ath11k_base *ab, + struct sk_buff *skb) +{ + struct wmi_tlv_svc_rdy_ext2_parse svc_rdy_ext2 = { }; + int ret; + + ret = ath11k_wmi_tlv_iter(ab, skb->data, skb->len, + ath11k_wmi_tlv_svc_rdy_ext2_parse, + &svc_rdy_ext2); + if (ret) { + ath11k_warn(ab, "failed to parse ext2 event tlv %d\n", ret); + goto err; + } + + complete(&ab->wmi_ab.service_ready); + + return 0; + +err: + ath11k_wmi_free_dbring_caps(ab); + return ret; } static int ath11k_pull_vdev_start_resp_tlv(struct ath11k_base *ab, struct sk_buff *skb, @@ -3395,6 +4240,34 @@ return 0; } +static int ath11k_pull_vdev_del_resp_ev(struct ath11k_base *ab, + struct sk_buff *skb, + u32 *vdev_id) +{ + const void **tb; + const struct wmi_vdev_delete_resp_event *ev; + int ret; + + tb = ath11k_wmi_tlv_parse_alloc(ab, skb->data, skb->len, GFP_ATOMIC); + if (IS_ERR(tb)) { + ret = PTR_ERR(tb); + ath11k_warn(ab, "failed to parse tlv: %d\n", ret); + return ret; + } + + ev = tb[WMI_TAG_VDEV_DELETE_RESP_EVENT]; + if (!ev) { + ath11k_warn(ab, "failed to fetch vdev delete resp ev"); + kfree(tb); + return -EPROTO; + } + + *vdev_id = ev->vdev_id; + + kfree(tb); + return 0; +} + static int ath11k_pull_bcn_tx_status_ev(struct ath11k_base *ab, void *evt_buf, u32 len, u32 *vdev_id, u32 *tx_status) @@ -3477,6 +4350,7 @@ } hdr->pdev_id = ev->pdev_id; + hdr->chan_freq = ev->chan_freq; hdr->channel = ev->channel; hdr->snr = ev->snr; hdr->rate = ev->rate; @@ -3535,8 +4409,9 @@ ieee80211_tx_status_irqsafe(ar->hw, msdu); - WARN_ON_ONCE(atomic_read(&ar->num_pending_mgmt_tx) == 0); - atomic_dec(&ar->num_pending_mgmt_tx); + /* WARN when we received this event without doing any mgmt tx */ + if (atomic_dec_if_positive(&ar->num_pending_mgmt_tx) < 0) + WARN_ON_ONCE(1); return 0; } @@ -4168,6 +5043,31 @@ return 0; } +static int +ath11k_pull_pdev_temp_ev(struct ath11k_base *ab, u8 *evt_buf, + u32 len, const struct wmi_pdev_temperature_event *ev) +{ + const void **tb; + int ret; + + tb = ath11k_wmi_tlv_parse_alloc(ab, evt_buf, len, GFP_ATOMIC); + if (IS_ERR(tb)) { + ret = PTR_ERR(tb); + ath11k_warn(ab, "failed to parse tlv: %d\n", ret); + return ret; + } + + ev = tb[WMI_TAG_PDEV_TEMPERATURE_EVENT]; + if (!ev) { + ath11k_warn(ab, "failed to fetch pdev temp ev"); + kfree(tb); + return -EPROTO; + } + + kfree(tb); + return 0; +} + size_t ath11k_wmi_fw_stats_num_vdevs(struct list_head *head) { struct ath11k_fw_stats_vdev *i; @@ -4543,8 +5443,17 @@ pdev_idx = reg_info->phy_id; - if (pdev_idx >= ab->num_radios) - goto fallback; + if (pdev_idx >= ab->num_radios) { + /* Process the event for phy0 only if single_pdev_only + * is true. If pdev_idx is valid but not 0, discard the + * event. Otherwise, it goes to fallback. + */ + if (ab->hw_params.single_pdev_only && + pdev_idx < ab->hw_params.num_rxmda_per_pdev) + goto mem_free; + else + goto fallback; + } /* Avoid multiple overwrites to default regd, during core * stop-start after mac registration. @@ -4621,7 +5530,7 @@ const void *ptr, void *data) { struct wmi_tlv_rdy_parse *rdy_parse = data; - struct wmi_ready_event *fixed_param; + struct wmi_ready_event fixed_param; struct wmi_mac_addr *addr_list; struct ath11k_pdev *pdev; u32 num_mac_addr; @@ -4629,11 +5538,16 @@ switch (tag) { case WMI_TAG_READY_EVENT: - fixed_param = (struct wmi_ready_event *)ptr; - ab->wlan_init_status = fixed_param->status; - rdy_parse->num_extra_mac_addr = fixed_param->num_extra_mac_addr; - - ether_addr_copy(ab->mac_addr, fixed_param->mac_addr.addr); + memset(&fixed_param, 0, sizeof(fixed_param)); + memcpy(&fixed_param, (struct wmi_ready_event *)ptr, + min_t(u16, sizeof(fixed_param), len)); + ab->wlan_init_status = fixed_param.ready_event_min.status; + rdy_parse->num_extra_mac_addr = + fixed_param.ready_event_min.num_extra_mac_addr; + + ether_addr_copy(ab->mac_addr, + fixed_param.ready_event_min.mac_addr.addr); + ab->pktlog_defs_checksum = fixed_param.pktlog_defs_checksum; ab->wmi_ready = true; break; case WMI_TAG_ARRAY_FIXED_STRUCT: @@ -4675,15 +5589,54 @@ static void ath11k_peer_delete_resp_event(struct ath11k_base *ab, struct sk_buff *skb) { struct wmi_peer_delete_resp_event peer_del_resp; + struct ath11k *ar; if (ath11k_pull_peer_del_resp_ev(ab, skb, &peer_del_resp) != 0) { ath11k_warn(ab, "failed to extract peer delete resp"); return; } - /* TODO: Do we need to validate whether ath11k_peer_find() return NULL - * Why this is needed when there is HTT event for peer delete - */ + rcu_read_lock(); + ar = ath11k_mac_get_ar_by_vdev_id(ab, peer_del_resp.vdev_id); + if (!ar) { + ath11k_warn(ab, "invalid vdev id in peer delete resp ev %d", + peer_del_resp.vdev_id); + rcu_read_unlock(); + return; + } + + complete(&ar->peer_delete_done); + rcu_read_unlock(); + ath11k_dbg(ab, ATH11K_DBG_WMI, "peer delete resp for vdev id %d addr %pM\n", + peer_del_resp.vdev_id, peer_del_resp.peer_macaddr.addr); +} + +static void ath11k_vdev_delete_resp_event(struct ath11k_base *ab, + struct sk_buff *skb) +{ + struct ath11k *ar; + u32 vdev_id = 0; + + if (ath11k_pull_vdev_del_resp_ev(ab, skb, &vdev_id) != 0) { + ath11k_warn(ab, "failed to extract vdev delete resp"); + return; + } + + rcu_read_lock(); + ar = ath11k_mac_get_ar_by_vdev_id(ab, vdev_id); + if (!ar) { + ath11k_warn(ab, "invalid vdev id in vdev delete resp ev %d", + vdev_id); + rcu_read_unlock(); + return; + } + + complete(&ar->vdev_delete_done); + + rcu_read_unlock(); + + ath11k_dbg(ab, ATH11K_DBG_WMI, "vdev delete resp for vdev id %d\n", + vdev_id); } static inline const char *ath11k_wmi_vdev_resp_print(u32 vdev_resp_status) @@ -4817,7 +5770,9 @@ if (rx_ev.status & WMI_RX_STATUS_ERR_MIC) status->flag |= RX_FLAG_MMIC_ERROR; - if (rx_ev.channel >= 1 && rx_ev.channel <= 14) { + if (rx_ev.chan_freq >= ATH11K_MIN_6G_FREQ) { + status->band = NL80211_BAND_6GHZ; + } else if (rx_ev.channel >= 1 && rx_ev.channel <= 14) { status->band = NL80211_BAND_2GHZ; } else if (rx_ev.channel >= 36 && rx_ev.channel <= ATH11K_MAX_5G_CHAN) { status->band = NL80211_BAND_5GHZ; @@ -4830,9 +5785,10 @@ goto exit; } - if (rx_ev.phy_mode == MODE_11B && status->band == NL80211_BAND_5GHZ) + if (rx_ev.phy_mode == MODE_11B && + (status->band == NL80211_BAND_5GHZ || status->band == NL80211_BAND_6GHZ)) ath11k_dbg(ab, ATH11K_DBG_WMI, - "wmi mgmt rx 11b (CCK) on 5GHz\n"); + "wmi mgmt rx 11b (CCK) on 5/6GHz, band = %d\n", status->band); sband = &ar->mac.sbands[status->band]; @@ -5345,20 +6301,23 @@ "peer assoc conf ev vdev id %d macaddr %pM\n", peer_assoc_conf.vdev_id, peer_assoc_conf.macaddr); + rcu_read_lock(); ar = ath11k_mac_get_ar_by_vdev_id(ab, peer_assoc_conf.vdev_id); if (!ar) { ath11k_warn(ab, "invalid vdev id in peer assoc conf ev %d", peer_assoc_conf.vdev_id); + rcu_read_unlock(); return; } complete(&ar->peer_assoc_done); + rcu_read_unlock(); } static void ath11k_update_stats_event(struct ath11k_base *ab, struct sk_buff *skb) { - ath11k_debug_fw_stats_process(ab, skb); + ath11k_debugfs_fw_stats_process(ab, skb); } /* PDEV_CTL_FAILSAFE_CHECK_EVENT is received from FW when the frequency scanned @@ -5511,6 +6470,82 @@ kfree(tb); } +static void +ath11k_wmi_pdev_temperature_event(struct ath11k_base *ab, + struct sk_buff *skb) +{ + struct ath11k *ar; + struct wmi_pdev_temperature_event ev = {0}; + + if (ath11k_pull_pdev_temp_ev(ab, skb->data, skb->len, &ev) != 0) { + ath11k_warn(ab, "failed to extract pdev temperature event"); + return; + } + + ath11k_dbg(ab, ATH11K_DBG_WMI, + "pdev temperature ev temp %d pdev_id %d\n", ev.temp, ev.pdev_id); + + ar = ath11k_mac_get_ar_by_pdev_id(ab, ev.pdev_id); + if (!ar) { + ath11k_warn(ab, "invalid pdev id in pdev temperature ev %d", ev.pdev_id); + return; + } + + ath11k_thermal_event_temperature(ar, ev.temp); +} + +static int ath11k_wow_wakeup_host_parse(struct ath11k_base *ab, + u16 tag, u16 len, + const void *ptr, void *data) +{ + struct wmi_wow_ev_arg *ev = data; + const char *wow_pg_fault; + int wow_pg_len; + + switch (tag) { + case WMI_TAG_WOW_EVENT_INFO: + memcpy(ev, ptr, sizeof(*ev)); + ath11k_dbg(ab, ATH11K_DBG_WMI, "wow wakeup host reason %d %s\n", + ev->wake_reason, wow_reason(ev->wake_reason)); + break; + + case WMI_TAG_ARRAY_BYTE: + if (ev && ev->wake_reason == WOW_REASON_PAGE_FAULT) { + wow_pg_fault = ptr; + /* the first 4 bytes are length */ + wow_pg_len = *(int *)wow_pg_fault; + wow_pg_fault += sizeof(int); + ath11k_dbg(ab, ATH11K_DBG_WMI, "wow data_len = %d\n", + wow_pg_len); + ath11k_dbg_dump(ab, ATH11K_DBG_WMI, + "wow_event_info_type packet present", + "wow_pg_fault ", + wow_pg_fault, + wow_pg_len); + } + break; + default: + break; + } + + return 0; +} + +static void +ath11k_wmi_event_wow_wakeup_host(struct ath11k_base *ab, struct sk_buff *skb) +{ + struct wmi_wow_ev_arg ev = { }; + int ret; + + ret = ath11k_wmi_tlv_iter(ab, skb->data, skb->len, + ath11k_wow_wakeup_host_parse, + &ev); + if (ret) + ath11k_warn(ab, "failed to parse tlv %d\n", ret); + + complete(&ab->pdevs[0].ar->wow.wakeup_completed); +} + static void ath11k_wmi_tlv_op_rx(struct ath11k_base *ab, struct sk_buff *skb) { struct wmi_cmd_hdr *cmd_hdr; @@ -5530,6 +6565,9 @@ case WMI_SERVICE_READY_EXT_EVENTID: ath11k_service_ready_ext_event(ab, skb); break; + case WMI_SERVICE_READY_EXT2_EVENTID: + ath11k_service_ready_ext2_event(ab, skb); + break; case WMI_REG_CHAN_LIST_CC_EVENTID: ath11k_reg_chan_list_event(ab, skb); break; @@ -5588,21 +6626,33 @@ case WMI_PDEV_CSA_SWITCH_COUNT_STATUS_EVENTID: ath11k_wmi_pdev_csa_switch_count_status_event(ab, skb); break; + case WMI_PDEV_TEMPERATURE_EVENTID: + ath11k_wmi_pdev_temperature_event(ab, skb); + break; + case WMI_PDEV_DMA_RING_BUF_RELEASE_EVENTID: + ath11k_wmi_pdev_dma_ring_buf_release_event(ab, skb); + break; /* add Unsupported events here */ case WMI_TBTTOFFSET_EXT_UPDATE_EVENTID: - case WMI_VDEV_DELETE_RESP_EVENTID: case WMI_PEER_OPER_MODE_CHANGE_EVENTID: case WMI_TWT_ENABLE_EVENTID: case WMI_TWT_DISABLE_EVENTID: + case WMI_PDEV_DMA_RING_CFG_RSP_EVENTID: ath11k_dbg(ab, ATH11K_DBG_WMI, "ignoring unsupported event 0x%x\n", id); break; case WMI_PDEV_DFS_RADAR_DETECTION_EVENTID: ath11k_wmi_pdev_dfs_radar_detected_event(ab, skb); break; + case WMI_WOW_WAKEUP_HOST_EVENTID: + ath11k_wmi_event_wow_wakeup_host(ab, skb); + break; + case WMI_VDEV_DELETE_RESP_EVENTID: + ath11k_vdev_delete_resp_event(ab, skb); + break; /* TODO: Add remaining events */ default: - ath11k_warn(ab, "Unknown eventid: 0x%x\n", id); + ath11k_dbg(ab, ATH11K_DBG_WMI, "Unknown eventid: 0x%x\n", id); break; } @@ -5746,7 +6796,7 @@ u8 wmi_ep_count; wmi_ep_count = ab->htc.wmi_ep_count; - if (wmi_ep_count > MAX_RADIOS) + if (wmi_ep_count > ab->hw_params.max_radios) return -1; for (i = 0; i < wmi_ep_count; i++) @@ -5768,7 +6818,7 @@ { struct ath11k_pdev_wmi *wmi_handle; - if (pdev_id >= MAX_RADIOS) + if (pdev_id >= ab->hw_params.max_radios) return -EINVAL; wmi_handle = &ab->wmi_ab.wmi[pdev_id]; @@ -5792,6 +6842,10 @@ ab->wmi_ab.ab = ab; ab->wmi_ab.preferred_hw_mode = WMI_HOST_HW_MODE_MAX; + /* It's overwritten when service_ext_ready is handled */ + if (ab->hw_params.single_pdev_only) + ab->wmi_ab.preferred_hw_mode = WMI_HOST_HW_MODE_SINGLE; + /* TODO: Init remaining wmi soc resources required */ init_completion(&ab->wmi_ab.service_ready); init_completion(&ab->wmi_ab.unified_ready); @@ -5807,4 +6861,49 @@ for (i = 0; i < ab->htc.wmi_ep_count; i++) ath11k_wmi_pdev_detach(ab, i); + + ath11k_wmi_free_dbring_caps(ab); +} + +int ath11k_wmi_wow_host_wakeup_ind(struct ath11k *ar) +{ + struct wmi_wow_host_wakeup_ind *cmd; + struct sk_buff *skb; + size_t len; + + len = sizeof(*cmd); + skb = ath11k_wmi_alloc_skb(ar->wmi->wmi_ab, len); + if (!skb) + return -ENOMEM; + + cmd = (struct wmi_wow_host_wakeup_ind *)skb->data; + cmd->tlv_header = FIELD_PREP(WMI_TLV_TAG, + WMI_TAG_WOW_HOSTWAKEUP_FROM_SLEEP_CMD) | + FIELD_PREP(WMI_TLV_LEN, sizeof(*cmd) - TLV_HDR_SIZE); + + ath11k_dbg(ar->ab, ATH11K_DBG_WMI, "wmi tlv wow host wakeup ind\n"); + + return ath11k_wmi_cmd_send(ar->wmi, skb, WMI_WOW_HOSTWAKEUP_FROM_SLEEP_CMDID); +} + +int ath11k_wmi_wow_enable(struct ath11k *ar) +{ + struct wmi_wow_enable_cmd *cmd; + struct sk_buff *skb; + int len; + + len = sizeof(*cmd); + skb = ath11k_wmi_alloc_skb(ar->wmi->wmi_ab, len); + if (!skb) + return -ENOMEM; + + cmd = (struct wmi_wow_enable_cmd *)skb->data; + cmd->tlv_header = FIELD_PREP(WMI_TLV_TAG, WMI_TAG_WOW_ENABLE_CMD) | + FIELD_PREP(WMI_TLV_LEN, sizeof(*cmd) - TLV_HDR_SIZE); + + cmd->enable = 1; + cmd->pause_iface_config = WOW_IFACE_PAUSE_ENABLED; + ath11k_dbg(ar->ab, ATH11K_DBG_WMI, "wmi tlv wow enable\n"); + + return ath11k_wmi_cmd_send(ar->wmi, skb, WMI_WOW_ENABLE_CMDID); } only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/net/wireless/ath/ath11k/wmi.h +++ linux-oem-5.6-5.6.0/drivers/net/wireless/ath/ath11k/wmi.h @@ -24,6 +24,8 @@ #define HE_PET_8_USEC 1 #define HE_PET_16_USEC 2 +#define WMI_MAX_CHAINS 8 + #define WMI_MAX_NUM_SS MAX_HE_NSS #define WMI_MAX_NUM_RU MAX_HE_RU @@ -39,7 +41,7 @@ struct wmi_tlv { u32 header; - u8 value[0]; + u8 value[]; } __packed; #define WMI_TLV_LEN GENMASK(15, 0) @@ -50,10 +52,20 @@ #define WMI_MAX_MEM_REQS 32 #define ATH11K_MAX_HW_LISTEN_INTERVAL 5 +#define WLAN_SCAN_MAX_HINT_S_SSID 10 +#define WLAN_SCAN_MAX_HINT_BSSID 10 +#define MAX_RNR_BSS 5 + +#define WLAN_SCAN_MAX_HINT_S_SSID 10 +#define WLAN_SCAN_MAX_HINT_BSSID 10 +#define MAX_RNR_BSS 5 + #define WLAN_SCAN_PARAMS_MAX_SSID 16 #define WLAN_SCAN_PARAMS_MAX_BSSID 4 #define WLAN_SCAN_PARAMS_MAX_IE_LEN 256 +#define WMI_APPEND_TO_EXISTING_CHAN_LIST_FLAG 1 + #define WMI_BA_MODE_BUFFER_SIZE_256 3 /* * HW mode config type replicated from FW header @@ -442,6 +454,10 @@ WMI_DBGLOG_TIME_STAMP_SYNC_CMDID, WMI_SET_MULTIPLE_MCAST_FILTER_CMDID, WMI_READ_DATA_FROM_FLASH_CMDID, + WMI_THERM_THROT_SET_CONF_CMDID, + WMI_RUNTIME_DPD_RECAL_CMDID, + WMI_GET_TPC_POWER_CMDID, + WMI_IDLE_TRIGGER_MONITOR_CMDID, WMI_GPIO_CONFIG_CMDID = WMI_TLV_CMD(WMI_GRP_GPIO), WMI_GPIO_OUTPUT_CMDID, WMI_TXBF_CMDID, @@ -484,6 +500,7 @@ WMI_SAR_LIMITS_CMDID, WMI_OBSS_SCAN_ENABLE_CMDID = WMI_TLV_CMD(WMI_GRP_OBSS_OFL), WMI_OBSS_SCAN_DISABLE_CMDID, + WMI_OBSS_COLOR_COLLISION_DET_CONFIG_CMDID, WMI_LPI_MGMT_SNOOPING_CONFIG_CMDID = WMI_TLV_CMD(WMI_GRP_LPI), WMI_LPI_START_SCAN_CMDID, WMI_LPI_STOP_SCAN_CMDID, @@ -581,6 +598,11 @@ WMI_PDEV_DMA_RING_CFG_RSP_EVENTID, WMI_PDEV_DMA_RING_BUF_RELEASE_EVENTID, WMI_PDEV_CTL_FAILSAFE_CHECK_EVENTID, + WMI_PDEV_CSC_SWITCH_COUNT_STATUS_EVENTID, + WMI_PDEV_COLD_BOOT_CAL_DATA_EVENTID, + WMI_PDEV_RAP_INFO_EVENTID, + WMI_CHAN_RF_CHARACTERIZATION_INFO_EVENTID, + WMI_SERVICE_READY_EXT2_EVENTID, WMI_VDEV_START_RESP_EVENTID = WMI_TLV_CMD(WMI_GRP_VDEV), WMI_VDEV_STOPPED_EVENTID, WMI_VDEV_INSTALL_KEY_COMPLETE_EVENTID, @@ -1006,6 +1028,7 @@ WMI_VDEV_PARAM_FILS_MAX_CHANNEL_GUARD_TIME, WMI_VDEV_PARAM_BA_MODE = 0x7e, WMI_VDEV_PARAM_SET_HE_SOUNDING_MODE = 0x87, + WMI_VDEV_PARAM_6GHZ_PARAMS = 0x99, WMI_VDEV_PARAM_PROTOTYPE = 0x8000, WMI_VDEV_PARAM_BSS_COLOR, WMI_VDEV_PARAM_SET_HEMU_MODE, @@ -1971,9 +1994,47 @@ WMI_TLV_SERVICE_TX_DATA_MGMT_ACK_RSSI = 174, WMI_TLV_SERVICE_NAN_DISABLE_SUPPORT = 175, WMI_TLV_SERVICE_HTT_H2T_NO_HTC_HDR_LEN_IN_MSG_LEN = 176, + WMI_TLV_SERVICE_COEX_SUPPORT_UNEQUAL_ISOLATION = 177, + WMI_TLV_SERVICE_HW_DB2DBM_CONVERSION_SUPPORT = 178, + WMI_TLV_SERVICE_SUPPORT_EXTEND_ADDRESS = 179, + WMI_TLV_SERVICE_BEACON_RECEPTION_STATS = 180, + WMI_TLV_SERVICE_FETCH_TX_PN = 181, + WMI_TLV_SERVICE_PEER_UNMAP_RESPONSE_SUPPORT = 182, + WMI_TLV_SERVICE_TX_PER_PEER_AMPDU_SIZE = 183, + WMI_TLV_SERVICE_BSS_COLOR_SWITCH_COUNT = 184, + WMI_TLV_SERVICE_HTT_PEER_STATS_SUPPORT = 185, + WMI_TLV_SERVICE_UL_RU26_ALLOWED = 186, + WMI_TLV_SERVICE_GET_MWS_COEX_STATE = 187, + WMI_TLV_SERVICE_GET_MWS_DPWB_STATE = 188, + WMI_TLV_SERVICE_GET_MWS_TDM_STATE = 189, + WMI_TLV_SERVICE_GET_MWS_IDRX_STATE = 190, + WMI_TLV_SERVICE_GET_MWS_ANTENNA_SHARING_STATE = 191, + WMI_TLV_SERVICE_ENHANCED_TPC_CONFIG_EVENT = 192, + WMI_TLV_SERVICE_WLM_STATS_REQUEST = 193, + WMI_TLV_SERVICE_EXT_PEER_TID_CONFIGS_SUPPORT = 194, + WMI_TLV_SERVICE_WPA3_FT_SAE_SUPPORT = 195, + WMI_TLV_SERVICE_WPA3_FT_SUITE_B_SUPPORT = 196, + WMI_TLV_SERVICE_VOW_ENABLE = 197, + WMI_TLV_SERVICE_CFR_CAPTURE_IND_EVT_TYPE_1 = 198, + WMI_TLV_SERVICE_BROADCAST_TWT = 199, + WMI_TLV_SERVICE_RAP_DETECTION_SUPPORT = 200, + WMI_TLV_SERVICE_PS_TDCC = 201, + WMI_TLV_SERVICE_THREE_WAY_COEX_CONFIG_LEGACY = 202, + WMI_TLV_SERVICE_THREE_WAY_COEX_CONFIG_OVERRIDE = 203, + WMI_TLV_SERVICE_TX_PWR_PER_PEER = 204, + WMI_TLV_SERVICE_STA_PLUS_STA_SUPPORT = 205, + WMI_TLV_SERVICE_WPA3_FT_FILS = 206, + WMI_TLV_SERVICE_ADAPTIVE_11R_ROAM = 207, + WMI_TLV_SERVICE_CHAN_RF_CHARACTERIZATION_INFO = 208, + WMI_TLV_SERVICE_FW_IFACE_COMBINATION_SUPPORT = 209, + WMI_TLV_SERVICE_TX_COMPL_TSF64 = 210, + WMI_TLV_SERVICE_DSM_ROAM_FILTER = 211, + WMI_TLV_SERVICE_PACKET_CAPTURE_SUPPORT = 212, + WMI_TLV_SERVICE_PER_PEER_HTT_STATS_RESET = 213, + WMI_TLV_SERVICE_FREQINFO_IN_METADATA = 219, + WMI_TLV_SERVICE_EXT2_MSG = 220, WMI_MAX_EXT_SERVICE - }; enum { @@ -2034,6 +2095,14 @@ WMI_BEACON_BURST_MODE = 1 }; +enum wmi_direct_buffer_module { + WMI_DIRECT_BUF_SPECTRAL = 0, + WMI_DIRECT_BUF_CFR = 1, + + /* keep it last */ + WMI_DIRECT_BUF_MAX +}; + struct wmi_host_pdev_band_to_mac { u32 pdev_id; u32 start_freq; @@ -2340,7 +2409,16 @@ } __packed; } __packed; -struct wmi_ready_event { +struct wmi_dma_ring_capabilities { + u32 tlv_header; + u32 pdev_id; + u32 module_id; + u32 min_elem; + u32 min_buf_sz; + u32 min_buf_align; +} __packed; + +struct wmi_ready_event_min { struct wmi_abi_version fw_abi_vers; struct wmi_mac_addr mac_addr; u32 status; @@ -2350,6 +2428,12 @@ u32 num_extra_peers; } __packed; +struct wmi_ready_event { + struct wmi_ready_event_min ready_event_min; + u32 max_ast_index; + u32 pktlog_defs_checksum; +} __packed; + struct wmi_service_available_event { u32 wmi_service_segment_offset; u32 wmi_service_segment_bitmap[WMI_SERVICE_SEGMENT_BM_SIZE32]; @@ -2471,7 +2555,8 @@ allow_ht:1, allow_vht:1, allow_he:1, - set_agile:1; + set_agile:1, + psc_channel:1; u32 phy_mode; u32 cfreq1; u32 cfreq2; @@ -3011,6 +3096,9 @@ u32 num_vendor_oui; u32 scan_ctrl_flags_ext; u32 dwell_time_active_2g; + u32 dwell_time_active_6g; + u32 dwell_time_passive_6g; + u32 scan_start_offset; } __packed; #define WMI_SCAN_FLAG_PASSIVE 0x1 @@ -3050,6 +3138,16 @@ ((flag) |= (((mode) << WMI_SCAN_DWELL_MODE_SHIFT) & \ WMI_SCAN_DWELL_MODE_MASK)) +struct hint_short_ssid { + u32 freq_flags; + u32 short_ssid; +}; + +struct hint_bssid { + u32 freq_flags; + struct wmi_mac_addr bssid; +}; + struct scan_req_params { u32 scan_id; u32 scan_req_id; @@ -3077,6 +3175,8 @@ u32 dwell_time_active; u32 dwell_time_active_2g; u32 dwell_time_passive; + u32 dwell_time_active_6g; + u32 dwell_time_passive_6g; u32 min_rest_time; u32 max_rest_time; u32 repeat_probe_time; @@ -3127,6 +3227,10 @@ struct element_info extraie; struct element_info htcap; struct element_info vhtcap; + u32 num_hint_s_ssid; + u32 num_hint_bssid; + struct hint_short_ssid hint_s_ssid[WLAN_SCAN_MAX_HINT_S_SSID]; + struct hint_bssid hint_bssid[WLAN_SCAN_MAX_HINT_BSSID]; }; struct wmi_ssid_arg { @@ -3216,6 +3320,7 @@ #define WMI_CHAN_INFO_QUARTER_RATE BIT(15) #define WMI_CHAN_INFO_DFS_FREQ2 BIT(16) #define WMI_CHAN_INFO_ALLOW_HE BIT(17) +#define WMI_CHAN_INFO_PSC BIT(18) #define WMI_CHAN_REG_INFO1_MIN_PWR GENMASK(7, 0) #define WMI_CHAN_REG_INFO1_MAX_PWR GENMASK(15, 8) @@ -3300,6 +3405,12 @@ u32 pdev_id; } __packed; +struct wmi_get_pdev_temperature_cmd { + u32 tlv_header; + u32 param; + u32 pdev_id; +} __packed; + #define WMI_BEACON_TX_BUFFER_SIZE 512 struct wmi_bcn_tmpl_cmd { @@ -3390,6 +3501,7 @@ u32 tx_max_rate; u32 tx_mcs_set; u8 vht_capable; + u8 min_data_rate; u32 tx_max_mcs_nss; u32 peer_bw_rxnss_override; bool is_pmf_enabled; @@ -3418,6 +3530,7 @@ bool he_flag; u32 peer_he_cap_macinfo[2]; u32 peer_he_cap_macinfo_internal; + u32 peer_he_caps_6ghz; u32 peer_he_ops; u32 peer_he_cap_phyinfo[WMI_HOST_MAX_HECAP_PHY_SIZE]; u32 peer_he_mcs_count; @@ -3455,6 +3568,8 @@ u32 peer_he_mcs; u32 peer_he_cap_info_ext; u32 peer_he_cap_info_internal; + u32 min_data_rate; + u32 peer_he_caps_6ghz; } __packed; struct wmi_stop_scan_cmd { @@ -3605,6 +3720,70 @@ } cc_info; } __packed; +#define THERMAL_LEVELS 1 +struct tt_level_config { + u32 tmplwm; + u32 tmphwm; + u32 dcoffpercent; + u32 priority; +}; + +struct thermal_mitigation_params { + u32 pdev_id; + u32 enable; + u32 dc; + u32 dc_per_event; + struct tt_level_config levelconf[THERMAL_LEVELS]; +}; + +struct wmi_therm_throt_config_request_cmd { + u32 tlv_header; + u32 pdev_id; + u32 enable; + u32 dc; + u32 dc_per_event; + u32 therm_throt_levels; +} __packed; + +struct wmi_therm_throt_level_config_info { + u32 tlv_header; + u32 temp_lwm; + u32 temp_hwm; + u32 dc_off_percent; + u32 prio; +} __packed; + +struct wmi_delba_send_cmd { + u32 tlv_header; + u32 vdev_id; + struct wmi_mac_addr peer_macaddr; + u32 tid; + u32 initiator; + u32 reasoncode; +} __packed; + +struct wmi_addba_setresponse_cmd { + u32 tlv_header; + u32 vdev_id; + struct wmi_mac_addr peer_macaddr; + u32 tid; + u32 statuscode; +} __packed; + +struct wmi_addba_send_cmd { + u32 tlv_header; + u32 vdev_id; + struct wmi_mac_addr peer_macaddr; + u32 tid; + u32 buffersize; +} __packed; + +struct wmi_addba_clear_resp_cmd { + u32 tlv_header; + u32 vdev_id; + struct wmi_mac_addr peer_macaddr; +} __packed; + struct wmi_pdev_pktlog_filter_info { u32 tlv_header; struct wmi_mac_addr peer_macaddr; @@ -3834,6 +4013,10 @@ u32 flag_info; }; +struct wmi_vdev_delete_resp_event { + u32 vdev_id; +} __packed; + struct wmi_peer_delete_resp_event { u32 vdev_id; struct wmi_mac_addr peer_macaddr; @@ -4095,6 +4278,12 @@ s32 sidx; } __packed; +struct wmi_pdev_temperature_event { + /* temperature value in Celcius degree */ + s32 temp; + u32 pdev_id; +} __packed; + #define WMI_RX_STATUS_OK 0x00 #define WMI_RX_STATUS_ERR_CRC 0x01 #define WMI_RX_STATUS_ERR_DECRYPT 0x08 @@ -4104,6 +4293,7 @@ #define WLAN_MGMT_TXRX_HOST_MAX_ANTENNA 4 struct mgmt_rx_event_params { + u32 chan_freq; u32 channel; u32 snr; u8 rssi_ctl[WLAN_MGMT_TXRX_HOST_MAX_ANTENNA]; @@ -4133,6 +4323,7 @@ u32 rx_tsf_l32; u32 rx_tsf_u32; u32 pdev_id; + u32 chan_freq; } __packed; #define MAX_ANTENNA_EIGHT 8 @@ -4481,6 +4672,9 @@ WMI_STA_PS_RX_WAKE_POLICY_POLL_UAPSD = 1, }; +/* Do not change existing values! Used by ath11k_frame_mode parameter + * module parameter. + */ enum ath11k_hw_txrx_mode { ATH11K_HW_TXRX_RAW = 0, ATH11K_HW_TXRX_NATIVE_WIFI = 1, @@ -4571,6 +4765,153 @@ u32 vdev_id; } __packed; +#define ATH11K_BSS_COLOR_COLLISION_SCAN_PERIOD_MS 200 +#define ATH11K_OBSS_COLOR_COLLISION_DETECTION_DISABLE 0 +#define ATH11K_OBSS_COLOR_COLLISION_DETECTION 1 + +#define ATH11K_BSS_COLOR_COLLISION_DETECTION_STA_PERIOD_MS 10000 +#define ATH11K_BSS_COLOR_COLLISION_DETECTION_AP_PERIOD_MS 5000 + +struct wmi_obss_color_collision_cfg_params_cmd { + u32 tlv_header; + u32 vdev_id; + u32 flags; + u32 evt_type; + u32 current_bss_color; + u32 detection_period_ms; + u32 scan_period_ms; + u32 free_slot_expiry_time_ms; +} __packed; + +struct wmi_bss_color_change_enable_params_cmd { + u32 tlv_header; + u32 vdev_id; + u32 enable; +} __packed; + +#define ATH11K_IPV4_TH_SEED_SIZE 5 +#define ATH11K_IPV6_TH_SEED_SIZE 11 + +struct ath11k_wmi_pdev_lro_config_cmd { + u32 tlv_header; + u32 lro_enable; + u32 res; + u32 th_4[ATH11K_IPV4_TH_SEED_SIZE]; + u32 th_6[ATH11K_IPV6_TH_SEED_SIZE]; + u32 pdev_id; +} __packed; + +#define ATH11K_WMI_SPECTRAL_COUNT_DEFAULT 0 +#define ATH11K_WMI_SPECTRAL_PERIOD_DEFAULT 224 +#define ATH11K_WMI_SPECTRAL_PRIORITY_DEFAULT 1 +#define ATH11K_WMI_SPECTRAL_FFT_SIZE_DEFAULT 7 +#define ATH11K_WMI_SPECTRAL_GC_ENA_DEFAULT 1 +#define ATH11K_WMI_SPECTRAL_RESTART_ENA_DEFAULT 0 +#define ATH11K_WMI_SPECTRAL_NOISE_FLOOR_REF_DEFAULT -96 +#define ATH11K_WMI_SPECTRAL_INIT_DELAY_DEFAULT 80 +#define ATH11K_WMI_SPECTRAL_NB_TONE_THR_DEFAULT 12 +#define ATH11K_WMI_SPECTRAL_STR_BIN_THR_DEFAULT 8 +#define ATH11K_WMI_SPECTRAL_WB_RPT_MODE_DEFAULT 0 +#define ATH11K_WMI_SPECTRAL_RSSI_RPT_MODE_DEFAULT 0 +#define ATH11K_WMI_SPECTRAL_RSSI_THR_DEFAULT 0xf0 +#define ATH11K_WMI_SPECTRAL_PWR_FORMAT_DEFAULT 0 +#define ATH11K_WMI_SPECTRAL_RPT_MODE_DEFAULT 2 +#define ATH11K_WMI_SPECTRAL_BIN_SCALE_DEFAULT 1 +#define ATH11K_WMI_SPECTRAL_DBM_ADJ_DEFAULT 1 +#define ATH11K_WMI_SPECTRAL_CHN_MASK_DEFAULT 1 + +struct ath11k_wmi_vdev_spectral_conf_param { + u32 vdev_id; + u32 scan_count; + u32 scan_period; + u32 scan_priority; + u32 scan_fft_size; + u32 scan_gc_ena; + u32 scan_restart_ena; + u32 scan_noise_floor_ref; + u32 scan_init_delay; + u32 scan_nb_tone_thr; + u32 scan_str_bin_thr; + u32 scan_wb_rpt_mode; + u32 scan_rssi_rpt_mode; + u32 scan_rssi_thr; + u32 scan_pwr_format; + u32 scan_rpt_mode; + u32 scan_bin_scale; + u32 scan_dbm_adj; + u32 scan_chn_mask; +} __packed; + +struct ath11k_wmi_vdev_spectral_conf_cmd { + u32 tlv_header; + struct ath11k_wmi_vdev_spectral_conf_param param; +} __packed; + +#define ATH11K_WMI_SPECTRAL_TRIGGER_CMD_TRIGGER 1 +#define ATH11K_WMI_SPECTRAL_TRIGGER_CMD_CLEAR 2 +#define ATH11K_WMI_SPECTRAL_ENABLE_CMD_ENABLE 1 +#define ATH11K_WMI_SPECTRAL_ENABLE_CMD_DISABLE 2 + +struct ath11k_wmi_vdev_spectral_enable_cmd { + u32 tlv_header; + u32 vdev_id; + u32 trigger_cmd; + u32 enable_cmd; +} __packed; + +struct ath11k_wmi_pdev_dma_ring_cfg_req_cmd { + u32 tlv_header; + u32 pdev_id; + u32 module_id; /* see enum wmi_direct_buffer_module */ + u32 base_paddr_lo; + u32 base_paddr_hi; + u32 head_idx_paddr_lo; + u32 head_idx_paddr_hi; + u32 tail_idx_paddr_lo; + u32 tail_idx_paddr_hi; + u32 num_elems; /* Number of elems in the ring */ + u32 buf_size; /* size of allocated buffer in bytes */ + + /* Number of wmi_dma_buf_release_entry packed together */ + u32 num_resp_per_event; + + /* Target should timeout and send whatever resp + * it has if this time expires, units in milliseconds + */ + u32 event_timeout_ms; +} __packed; + +struct ath11k_wmi_dma_buf_release_fixed_param { + u32 pdev_id; + u32 module_id; + u32 num_buf_release_entry; + u32 num_meta_data_entry; +} __packed; + +struct wmi_dma_buf_release_entry { + u32 tlv_header; + u32 paddr_lo; + + /* Bits 11:0: address of data + * Bits 31:12: host context data + */ + u32 paddr_hi; +} __packed; + +#define WMI_SPECTRAL_META_INFO1_FREQ1 GENMASK(15, 0) +#define WMI_SPECTRAL_META_INFO1_FREQ2 GENMASK(31, 16) + +#define WMI_SPECTRAL_META_INFO2_CHN_WIDTH GENMASK(7, 0) + +struct wmi_dma_buf_release_meta_data { + u32 tlv_header; + s32 noise_floor[WMI_MAX_CHAINS]; + u32 reset_delay; + u32 freq1; + u32 freq2; + u32 ch_width; +} __packed; + struct target_resource_config { u32 num_vdevs; u32 num_peers; @@ -4663,6 +5004,169 @@ struct ath11k_targ_cap *targ_cap; }; +/* WOW structures */ +enum wmi_wow_wakeup_event { + WOW_BMISS_EVENT = 0, + WOW_BETTER_AP_EVENT, + WOW_DEAUTH_RECVD_EVENT, + WOW_MAGIC_PKT_RECVD_EVENT, + WOW_GTK_ERR_EVENT, + WOW_FOURWAY_HSHAKE_EVENT, + WOW_EAPOL_RECVD_EVENT, + WOW_NLO_DETECTED_EVENT, + WOW_DISASSOC_RECVD_EVENT, + WOW_PATTERN_MATCH_EVENT, + WOW_CSA_IE_EVENT, + WOW_PROBE_REQ_WPS_IE_EVENT, + WOW_AUTH_REQ_EVENT, + WOW_ASSOC_REQ_EVENT, + WOW_HTT_EVENT, + WOW_RA_MATCH_EVENT, + WOW_HOST_AUTO_SHUTDOWN_EVENT, + WOW_IOAC_MAGIC_EVENT, + WOW_IOAC_SHORT_EVENT, + WOW_IOAC_EXTEND_EVENT, + WOW_IOAC_TIMER_EVENT, + WOW_DFS_PHYERR_RADAR_EVENT, + WOW_BEACON_EVENT, + WOW_CLIENT_KICKOUT_EVENT, + WOW_EVENT_MAX, +}; + +enum wmi_wow_interface_cfg { + WOW_IFACE_PAUSE_ENABLED, + WOW_IFACE_PAUSE_DISABLED +}; + +#define C2S(x) case x: return #x + +static inline const char *wow_wakeup_event(enum wmi_wow_wakeup_event ev) +{ + switch (ev) { + C2S(WOW_BMISS_EVENT); + C2S(WOW_BETTER_AP_EVENT); + C2S(WOW_DEAUTH_RECVD_EVENT); + C2S(WOW_MAGIC_PKT_RECVD_EVENT); + C2S(WOW_GTK_ERR_EVENT); + C2S(WOW_FOURWAY_HSHAKE_EVENT); + C2S(WOW_EAPOL_RECVD_EVENT); + C2S(WOW_NLO_DETECTED_EVENT); + C2S(WOW_DISASSOC_RECVD_EVENT); + C2S(WOW_PATTERN_MATCH_EVENT); + C2S(WOW_CSA_IE_EVENT); + C2S(WOW_PROBE_REQ_WPS_IE_EVENT); + C2S(WOW_AUTH_REQ_EVENT); + C2S(WOW_ASSOC_REQ_EVENT); + C2S(WOW_HTT_EVENT); + C2S(WOW_RA_MATCH_EVENT); + C2S(WOW_HOST_AUTO_SHUTDOWN_EVENT); + C2S(WOW_IOAC_MAGIC_EVENT); + C2S(WOW_IOAC_SHORT_EVENT); + C2S(WOW_IOAC_EXTEND_EVENT); + C2S(WOW_IOAC_TIMER_EVENT); + C2S(WOW_DFS_PHYERR_RADAR_EVENT); + C2S(WOW_BEACON_EVENT); + C2S(WOW_CLIENT_KICKOUT_EVENT); + C2S(WOW_EVENT_MAX); + default: + return NULL; + } +} + +enum wmi_wow_wake_reason { + WOW_REASON_UNSPECIFIED = -1, + WOW_REASON_NLOD = 0, + WOW_REASON_AP_ASSOC_LOST, + WOW_REASON_LOW_RSSI, + WOW_REASON_DEAUTH_RECVD, + WOW_REASON_DISASSOC_RECVD, + WOW_REASON_GTK_HS_ERR, + WOW_REASON_EAP_REQ, + WOW_REASON_FOURWAY_HS_RECV, + WOW_REASON_TIMER_INTR_RECV, + WOW_REASON_PATTERN_MATCH_FOUND, + WOW_REASON_RECV_MAGIC_PATTERN, + WOW_REASON_P2P_DISC, + WOW_REASON_WLAN_HB, + WOW_REASON_CSA_EVENT, + WOW_REASON_PROBE_REQ_WPS_IE_RECV, + WOW_REASON_AUTH_REQ_RECV, + WOW_REASON_ASSOC_REQ_RECV, + WOW_REASON_HTT_EVENT, + WOW_REASON_RA_MATCH, + WOW_REASON_HOST_AUTO_SHUTDOWN, + WOW_REASON_IOAC_MAGIC_EVENT, + WOW_REASON_IOAC_SHORT_EVENT, + WOW_REASON_IOAC_EXTEND_EVENT, + WOW_REASON_IOAC_TIMER_EVENT, + WOW_REASON_ROAM_HO, + WOW_REASON_DFS_PHYERR_RADADR_EVENT, + WOW_REASON_BEACON_RECV, + WOW_REASON_CLIENT_KICKOUT_EVENT, + WOW_REASON_PAGE_FAULT = 0x3a, + WOW_REASON_DEBUG_TEST = 0xFF, +}; + +static inline const char *wow_reason(enum wmi_wow_wake_reason reason) +{ + switch (reason) { + C2S(WOW_REASON_UNSPECIFIED); + C2S(WOW_REASON_NLOD); + C2S(WOW_REASON_AP_ASSOC_LOST); + C2S(WOW_REASON_LOW_RSSI); + C2S(WOW_REASON_DEAUTH_RECVD); + C2S(WOW_REASON_DISASSOC_RECVD); + C2S(WOW_REASON_GTK_HS_ERR); + C2S(WOW_REASON_EAP_REQ); + C2S(WOW_REASON_FOURWAY_HS_RECV); + C2S(WOW_REASON_TIMER_INTR_RECV); + C2S(WOW_REASON_PATTERN_MATCH_FOUND); + C2S(WOW_REASON_RECV_MAGIC_PATTERN); + C2S(WOW_REASON_P2P_DISC); + C2S(WOW_REASON_WLAN_HB); + C2S(WOW_REASON_CSA_EVENT); + C2S(WOW_REASON_PROBE_REQ_WPS_IE_RECV); + C2S(WOW_REASON_AUTH_REQ_RECV); + C2S(WOW_REASON_ASSOC_REQ_RECV); + C2S(WOW_REASON_HTT_EVENT); + C2S(WOW_REASON_RA_MATCH); + C2S(WOW_REASON_HOST_AUTO_SHUTDOWN); + C2S(WOW_REASON_IOAC_MAGIC_EVENT); + C2S(WOW_REASON_IOAC_SHORT_EVENT); + C2S(WOW_REASON_IOAC_EXTEND_EVENT); + C2S(WOW_REASON_IOAC_TIMER_EVENT); + C2S(WOW_REASON_ROAM_HO); + C2S(WOW_REASON_DFS_PHYERR_RADADR_EVENT); + C2S(WOW_REASON_BEACON_RECV); + C2S(WOW_REASON_CLIENT_KICKOUT_EVENT); + C2S(WOW_REASON_PAGE_FAULT); + C2S(WOW_REASON_DEBUG_TEST); + default: + return NULL; + } +} + +#undef C2S + +struct wmi_wow_enable_cmd { + u32 tlv_header; + u32 enable; + u32 pause_iface_config; + u32 flags; +} __packed; + +struct wmi_wow_host_wakeup_ind { + u32 tlv_header; + u32 reserved; +} __packed; + +struct wmi_wow_ev_arg { + u32 vdev_id; + u32 flag; + enum wmi_wow_wake_reason wake_reason; + u32 data_len; +}; + int ath11k_wmi_cmd_send(struct ath11k_pdev_wmi *wmi, struct sk_buff *skb, u32 cmd_id); struct sk_buff *ath11k_wmi_alloc_skb(struct ath11k_wmi_base *wmi_sc, u32 len); @@ -4726,6 +5230,7 @@ enum wmi_bss_chan_info_req_type type); int ath11k_wmi_send_stats_request_cmd(struct ath11k *ar, struct stats_request_params *param); +int ath11k_wmi_send_pdev_temperature_cmd(struct ath11k *ar); int ath11k_wmi_send_peer_flush_tids_cmd(struct ath11k *ar, u8 peer_addr[ETH_ALEN], struct peer_flush_params *param); @@ -4735,11 +5240,21 @@ struct scan_chan_list_params *chan_list); int ath11k_wmi_send_dfs_phyerr_offload_enable_cmd(struct ath11k *ar, u32 pdev_id); +int ath11k_wmi_addba_clear_resp(struct ath11k *ar, u32 vdev_id, const u8 *mac); +int ath11k_wmi_addba_send(struct ath11k *ar, u32 vdev_id, const u8 *mac, + u32 tid, u32 buf_size); +int ath11k_wmi_addba_set_resp(struct ath11k *ar, u32 vdev_id, const u8 *mac, + u32 tid, u32 status); +int ath11k_wmi_delba_send(struct ath11k *ar, u32 vdev_id, const u8 *mac, + u32 tid, u32 initiator, u32 reason); int ath11k_wmi_send_bcn_offload_control_cmd(struct ath11k *ar, u32 vdev_id, u32 bcn_ctrl_op); int ath11k_wmi_send_init_country_cmd(struct ath11k *ar, struct wmi_init_country_params init_cc_param); +int +ath11k_wmi_send_thermal_mitigation_param_cmd(struct ath11k *ar, + struct thermal_mitigation_params *param); int ath11k_wmi_pdev_pktlog_enable(struct ath11k *ar, u32 pktlog_filter); int ath11k_wmi_pdev_pktlog_disable(struct ath11k *ar); int ath11k_wmi_pdev_peer_pktlog_filter(struct ath11k *ar, u8 *addr, u8 enable); @@ -4761,4 +5276,19 @@ int ath11k_wmi_send_twt_disable_cmd(struct ath11k *ar, u32 pdev_id); int ath11k_wmi_send_obss_spr_cmd(struct ath11k *ar, u32 vdev_id, struct ieee80211_he_obss_pd *he_obss_pd); +int ath11k_wmi_send_obss_color_collision_cfg_cmd(struct ath11k *ar, u32 vdev_id, + u8 bss_color, u32 period, + bool enable); +int ath11k_wmi_send_bss_color_change_enable_cmd(struct ath11k *ar, u32 vdev_id, + bool enable); +int ath11k_wmi_pdev_lro_cfg(struct ath11k *ar, int pdev_id); +int ath11k_wmi_pdev_dma_ring_cfg(struct ath11k *ar, + struct ath11k_wmi_pdev_dma_ring_cfg_req_cmd *param); +int ath11k_wmi_vdev_spectral_enable(struct ath11k *ar, u32 vdev_id, + u32 trigger, u32 enable); +int ath11k_wmi_vdev_spectral_conf(struct ath11k *ar, + struct ath11k_wmi_vdev_spectral_conf_param *param); +int ath11k_wmi_set_hw_mode(struct ath11k_base *ab, int hw_mode_index); +int ath11k_wmi_wow_host_wakeup_ind(struct ath11k *ar); +int ath11k_wmi_wow_enable(struct ath11k *ar); #endif only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/net/wireless/ath/ath11k/wow.c +++ linux-oem-5.6-5.6.0/drivers/net/wireless/ath/ath11k/wow.c @@ -0,0 +1,70 @@ +// SPDX-License-Identifier: BSD-3-Clause-Clear +/* + * Copyright (c) 2020 The Linux Foundation. All rights reserved. + */ + +#include + +#include "mac.h" +#include "core.h" +#include "hif.h" +#include "debug.h" +#include "wmi.h" +#include "wow.h" + +int ath11k_wow_enable(struct ath11k *ar) +{ + int i, ret; + + ar->target_suspend_ack = false; + + for (i = 0; i < ATH11K_WOW_RETRY_NUM; i++) { + reinit_completion(&ar->target_suspend); + ret = ath11k_wmi_wow_enable(ar); + if (ret) { + ath11k_warn(ar->ab, "failed to issue wow enable: %d\n", ret); + return ret; + } + + ret = wait_for_completion_timeout(&ar->target_suspend, 3 * HZ); + if (ret == 0) { + ath11k_warn(ar->ab, + "timed out while waiting for suspend completion\n"); + return -ETIMEDOUT; + } else { + /* If suspend_nack is received, host will send + * wow_enable again after ATH11K_WOW_RETRY_WAIT_MS. + */ + if (!ar->target_suspend_ack) { + ath11k_warn(ar->ab, "wow enbale get nack %d\n", i); + msleep(ATH11K_WOW_RETRY_WAIT_MS); + continue; + } + break; + } + } + + return 0; +} + +int ath11k_wow_wakeup(struct ath11k *ar) +{ + int ret; + + reinit_completion(&ar->wow.wakeup_completed); + + ret = ath11k_wmi_wow_host_wakeup_ind(ar); + if (ret) { + ath11k_warn(ar->ab, "failed to send wow wakeup indication: %d\n", + ret); + return ret; + } + + ret = wait_for_completion_timeout(&ar->wow.wakeup_completed, 3 * HZ); + if (ret == 0) { + ath11k_warn(ar->ab, "timed out while waiting for wow wakeup completion\n"); + return -ETIMEDOUT; + } + + return 0; +} only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/net/wireless/ath/ath11k/wow.h +++ linux-oem-5.6-5.6.0/drivers/net/wireless/ath/ath11k/wow.h @@ -0,0 +1,10 @@ +// SPDX-License-Identifier: BSD-3-Clause-Clear +/* + * Copyright (c) 2020 The Linux Foundation. All rights reserved. + */ + +#define ATH11K_WOW_RETRY_NUM 3 +#define ATH11K_WOW_RETRY_WAIT_MS 200 + +int ath11k_wow_enable(struct ath11k *ar); +int ath11k_wow_wakeup(struct ath11k *ar); only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/net/wireless/ath/ath9k/beacon.c +++ linux-oem-5.6-5.6.0/drivers/net/wireless/ath/ath9k/beacon.c @@ -365,7 +365,7 @@ if (!vif || !vif->csa_active) return false; - if (!ieee80211_csa_is_complete(vif)) + if (!ieee80211_beacon_cntdwn_is_complete(vif)) return false; ieee80211_csa_finish(vif); only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/net/wireless/ath/ath9k/htc_drv_beacon.c +++ linux-oem-5.6-5.6.0/drivers/net/wireless/ath/ath9k/htc_drv_beacon.c @@ -514,7 +514,7 @@ if (!vif || !vif->csa_active) return false; - if (!ieee80211_csa_is_complete(vif)) + if (!ieee80211_beacon_cntdwn_is_complete(vif)) return false; ieee80211_csa_finish(vif); only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/net/wireless/ath/spectral_common.h +++ linux-oem-5.6-5.6.0/drivers/net/wireless/ath/spectral_common.h @@ -24,6 +24,7 @@ * could be acquired so far. */ #define SPECTRAL_ATH10K_MAX_NUM_BINS 256 +#define SPECTRAL_ATH11K_MAX_NUM_BINS 512 /* FFT sample format given to userspace via debugfs. * @@ -37,6 +38,7 @@ ATH_FFT_SAMPLE_HT20 = 1, ATH_FFT_SAMPLE_HT20_40, ATH_FFT_SAMPLE_ATH10K, + ATH_FFT_SAMPLE_ATH11K }; struct fft_sample_tlv { @@ -109,5 +111,20 @@ u8 data[0]; } __packed; + +struct fft_sample_ath11k { + struct fft_sample_tlv tlv; + u8 chan_width_mhz; + s8 max_index; + u8 max_exp; + __be16 freq1; + __be16 freq2; + __be16 max_magnitude; + __be16 rssi; + __be32 tsf; + __be32 noise; + + u8 data[0]; +} __packed; #endif /* SPECTRAL_COMMON_H */ only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c +++ linux-oem-5.6-5.6.0/drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c @@ -1300,8 +1300,8 @@ mvmvif->csa_countdown = true; - if (!ieee80211_csa_is_complete(csa_vif)) { - int c = ieee80211_csa_update_counter(csa_vif); + if (!ieee80211_beacon_cntdwn_is_complete(csa_vif)) { + int c = ieee80211_beacon_update_cntdwn(csa_vif); iwl_mvm_mac_ctxt_beacon_changed(mvm, csa_vif); if (csa_vif->p2p && @@ -1543,7 +1543,7 @@ if (notif->csa_counter != IWL_PROBE_RESP_DATA_NO_CSA && notif->csa_counter >= 1) - ieee80211_csa_set_counter(vif, notif->csa_counter); + ieee80211_beacon_set_cntdwn(vif, notif->csa_counter); } void iwl_mvm_channel_switch_noa_notif(struct iwl_mvm *mvm, only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c +++ linux-oem-5.6-5.6.0/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c @@ -2019,7 +2019,7 @@ struct iwl_he_sta_context_cmd sta_ctxt_cmd = { .sta_id = sta_id, .tid_limit = IWL_MAX_TID_COUNT, - .bss_color = vif->bss_conf.bss_color, + .bss_color = vif->bss_conf.he_bss_color.color, .htc_trig_based_pkt_ext = vif->bss_conf.htc_trig_based_pkt_ext, .frame_time_rts_th = cpu_to_le16(vif->bss_conf.frame_time_rts_th), only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/net/wireless/intel/iwlwifi/mvm/time-event.c +++ linux-oem-5.6-5.6.0/drivers/net/wireless/intel/iwlwifi/mvm/time-event.c @@ -172,7 +172,7 @@ * So we just do nothing here and the switch * will be performed on the last TBTT. */ - if (!ieee80211_csa_is_complete(csa_vif)) { + if (!ieee80211_beacon_cntdwn_is_complete(csa_vif)) { IWL_WARN(mvm, "CSA NOA started too early\n"); goto out_unlock; } only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/net/wireless/mediatek/mt76/mac80211.c +++ linux-oem-5.6-5.6.0/drivers/net/wireless/mediatek/mt76/mac80211.c @@ -932,7 +932,7 @@ static void __mt76_csa_finish(void *priv, u8 *mac, struct ieee80211_vif *vif) { - if (vif->csa_active && ieee80211_csa_is_complete(vif)) + if (vif->csa_active && ieee80211_beacon_cntdwn_is_complete(vif)) ieee80211_csa_finish(vif); } @@ -957,7 +957,7 @@ if (!vif->csa_active) return; - dev->csa_complete |= ieee80211_csa_is_complete(vif); + dev->csa_complete |= ieee80211_beacon_cntdwn_is_complete(vif); } void mt76_csa_check(struct mt76_dev *dev) only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/net/wireless/mediatek/mt76/mt7615/mcu.c +++ linux-oem-5.6-5.6.0/drivers/net/wireless/mediatek/mt76/mt7615/mcu.c @@ -1143,12 +1143,12 @@ memcpy(req.pkt + MT_TXD_SIZE, skb->data, skb->len); req.pkt_len = cpu_to_le16(MT_TXD_SIZE + skb->len); req.tim_ie_pos = cpu_to_le16(MT_TXD_SIZE + offs.tim_offset); - if (offs.csa_counter_offs[0]) { + if (offs.cntdwn_counter_offs[0]) { u16 csa_offs; - csa_offs = MT_TXD_SIZE + offs.csa_counter_offs[0] - 4; + csa_offs = MT_TXD_SIZE + offs.cntdwn_counter_offs[0] - 4; req.csa_ie_pos = cpu_to_le16(csa_offs); - req.csa_cnt = skb->data[offs.csa_counter_offs[0]]; + req.csa_cnt = skb->data[offs.cntdwn_counter_offs[0]]; } dev_kfree_skb(skb); only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/pci/pci-acpi.c +++ linux-oem-5.6-5.6.0/drivers/pci/pci-acpi.c @@ -1050,7 +1050,7 @@ { while (bus->parent) { if (acpi_pm_device_can_wakeup(&bus->self->dev)) - return acpi_pm_set_bridge_wakeup(&bus->self->dev, enable); + return acpi_pm_set_device_wakeup(&bus->self->dev, enable); bus = bus->parent; } @@ -1058,7 +1058,7 @@ /* We have reached the root bus. */ if (bus->bridge) { if (acpi_pm_device_can_wakeup(bus->bridge)) - return acpi_pm_set_bridge_wakeup(bus->bridge, enable); + return acpi_pm_set_device_wakeup(bus->bridge, enable); } return 0; } only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/pinctrl/intel/pinctrl-intel.c +++ linux-oem-5.6-5.6.0/drivers/pinctrl/intel/pinctrl-intel.c @@ -798,7 +798,7 @@ for (j = 0; j < comm->ngpps; j++) { const struct intel_padgroup *pgrp = &comm->gpps[j]; - if (pgrp->gpio_base < 0) + if (pgrp->gpio_base == INTEL_GPIO_BASE_NOMAP) continue; if (offset >= pgrp->gpio_base && @@ -1138,7 +1138,7 @@ for (i = 0; i < community->ngpps; i++) { const struct intel_padgroup *gpp = &community->gpps[i]; - if (gpp->gpio_base < 0) + if (gpp->gpio_base == INTEL_GPIO_BASE_NOMAP) continue; ret = gpiochip_add_pin_range(&pctrl->chip, dev_name(pctrl->dev), @@ -1180,7 +1180,7 @@ for (j = 0; j < community->ngpps; j++) { const struct intel_padgroup *gpp = &community->gpps[j]; - if (gpp->gpio_base < 0) + if (gpp->gpio_base == INTEL_GPIO_BASE_NOMAP) continue; if (gpp->gpio_base + gpp->size > ngpio) @@ -1276,8 +1276,15 @@ if (gpps[i].size > 32) return -EINVAL; - if (!gpps[i].gpio_base) - gpps[i].gpio_base = gpps[i].base; + /* Special treatment for GPIO base */ + switch (gpps[i].gpio_base) { + case INTEL_GPIO_BASE_MATCH: + gpps[i].gpio_base = gpps[i].base; + break; + case INTEL_GPIO_BASE_NOMAP: + default: + break; + } gpps[i].padown_num = padown_num; @@ -1596,7 +1603,7 @@ struct device *dev = pctrl->dev; u32 requested; - if (padgrp->gpio_base < 0) + if (padgrp->gpio_base == INTEL_GPIO_BASE_NOMAP) return; requested = intel_gpio_is_requested(&pctrl->chip, padgrp->gpio_base, padgrp->size); only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/pinctrl/intel/pinctrl-intel.h +++ linux-oem-5.6-5.6.0/drivers/pinctrl/intel/pinctrl-intel.h @@ -53,8 +53,7 @@ * @reg_num: GPI_IS register number * @base: Starting pin of this group * @size: Size of this group (maximum is 32). - * @gpio_base: Starting GPIO base of this group (%0 if matches with @base, - * and %-1 if no GPIO mapping should be created) + * @gpio_base: Starting GPIO base of this group * @padown_num: PAD_OWN register number (assigned by the core driver) * * If pad groups of a community are not the same size, use this structure @@ -69,6 +68,17 @@ }; /** + * enum - Special treatment for GPIO base in pad group + * + * @INTEL_GPIO_BASE_NOMAP: no GPIO mapping should be created + * @INTEL_GPIO_BASE_MATCH: matches with starting pin number + */ +enum { + INTEL_GPIO_BASE_NOMAP = -1, + INTEL_GPIO_BASE_MATCH = 0, +}; + +/** * struct intel_community - Intel pin community description * @barno: MMIO BAR number where registers for this community reside * @padown_offset: Register offset of PAD_OWN register from @regs. If %0 only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/pinctrl/intel/pinctrl-tigerlake.c +++ linux-oem-5.6-5.6.0/drivers/pinctrl/intel/pinctrl-tigerlake.c @@ -382,8 +382,366 @@ .ncommunities = ARRAY_SIZE(tgllp_communities), }; +/* Tiger Lake-H */ +static const struct pinctrl_pin_desc tglh_pins[] = { + /* GPP_A */ + PINCTRL_PIN(0, "SPI0_IO_2"), + PINCTRL_PIN(1, "SPI0_IO_3"), + PINCTRL_PIN(2, "SPI0_MOSI_IO_0"), + PINCTRL_PIN(3, "SPI0_MISO_IO_1"), + PINCTRL_PIN(4, "SPI0_TPM_CSB"), + PINCTRL_PIN(5, "SPI0_FLASH_0_CSB"), + PINCTRL_PIN(6, "SPI0_FLASH_1_CSB"), + PINCTRL_PIN(7, "SPI0_CLK"), + PINCTRL_PIN(8, "ESPI_IO_0"), + PINCTRL_PIN(9, "ESPI_IO_1"), + PINCTRL_PIN(10, "ESPI_IO_2"), + PINCTRL_PIN(11, "ESPI_IO_3"), + PINCTRL_PIN(12, "ESPI_CS0B"), + PINCTRL_PIN(13, "ESPI_CLK"), + PINCTRL_PIN(14, "ESPI_RESETB"), + PINCTRL_PIN(15, "ESPI_CS1B"), + PINCTRL_PIN(16, "ESPI_CS2B"), + PINCTRL_PIN(17, "ESPI_CS3B"), + PINCTRL_PIN(18, "ESPI_ALERT0B"), + PINCTRL_PIN(19, "ESPI_ALERT1B"), + PINCTRL_PIN(20, "ESPI_ALERT2B"), + PINCTRL_PIN(21, "ESPI_ALERT3B"), + PINCTRL_PIN(22, "GPPC_A_14"), + PINCTRL_PIN(23, "SPI0_CLK_LOOPBK"), + PINCTRL_PIN(24, "ESPI_CLK_LOOPBK"), + /* GPP_R */ + PINCTRL_PIN(25, "HDA_BCLK"), + PINCTRL_PIN(26, "HDA_SYNC"), + PINCTRL_PIN(27, "HDA_SDO"), + PINCTRL_PIN(28, "HDA_SDI_0"), + PINCTRL_PIN(29, "HDA_RSTB"), + PINCTRL_PIN(30, "HDA_SDI_1"), + PINCTRL_PIN(31, "GPP_R_6"), + PINCTRL_PIN(32, "GPP_R_7"), + PINCTRL_PIN(33, "GPP_R_8"), + PINCTRL_PIN(34, "PCIE_LNK_DOWN"), + PINCTRL_PIN(35, "ISH_UART0_RTSB"), + PINCTRL_PIN(36, "SX_EXIT_HOLDOFFB"), + PINCTRL_PIN(37, "CLKOUT_48"), + PINCTRL_PIN(38, "ISH_GP_7"), + PINCTRL_PIN(39, "ISH_GP_0"), + PINCTRL_PIN(40, "ISH_GP_1"), + PINCTRL_PIN(41, "ISH_GP_2"), + PINCTRL_PIN(42, "ISH_GP_3"), + PINCTRL_PIN(43, "ISH_GP_4"), + PINCTRL_PIN(44, "ISH_GP_5"), + /* GPP_B */ + PINCTRL_PIN(45, "GSPI0_CS1B"), + PINCTRL_PIN(46, "GSPI1_CS1B"), + PINCTRL_PIN(47, "VRALERTB"), + PINCTRL_PIN(48, "CPU_GP_2"), + PINCTRL_PIN(49, "CPU_GP_3"), + PINCTRL_PIN(50, "SRCCLKREQB_0"), + PINCTRL_PIN(51, "SRCCLKREQB_1"), + PINCTRL_PIN(52, "SRCCLKREQB_2"), + PINCTRL_PIN(53, "SRCCLKREQB_3"), + PINCTRL_PIN(54, "SRCCLKREQB_4"), + PINCTRL_PIN(55, "SRCCLKREQB_5"), + PINCTRL_PIN(56, "I2S_MCLK"), + PINCTRL_PIN(57, "SLP_S0B"), + PINCTRL_PIN(58, "PLTRSTB"), + PINCTRL_PIN(59, "SPKR"), + PINCTRL_PIN(60, "GSPI0_CS0B"), + PINCTRL_PIN(61, "GSPI0_CLK"), + PINCTRL_PIN(62, "GSPI0_MISO"), + PINCTRL_PIN(63, "GSPI0_MOSI"), + PINCTRL_PIN(64, "GSPI1_CS0B"), + PINCTRL_PIN(65, "GSPI1_CLK"), + PINCTRL_PIN(66, "GSPI1_MISO"), + PINCTRL_PIN(67, "GSPI1_MOSI"), + PINCTRL_PIN(68, "SML1ALERTB"), + PINCTRL_PIN(69, "GSPI0_CLK_LOOPBK"), + PINCTRL_PIN(70, "GSPI1_CLK_LOOPBK"), + /* vGPIO_0 */ + PINCTRL_PIN(71, "ESPI_USB_OCB_0"), + PINCTRL_PIN(72, "ESPI_USB_OCB_1"), + PINCTRL_PIN(73, "ESPI_USB_OCB_2"), + PINCTRL_PIN(74, "ESPI_USB_OCB_3"), + PINCTRL_PIN(75, "USB_CPU_OCB_0"), + PINCTRL_PIN(76, "USB_CPU_OCB_1"), + PINCTRL_PIN(77, "USB_CPU_OCB_2"), + PINCTRL_PIN(78, "USB_CPU_OCB_3"), + /* GPP_D */ + PINCTRL_PIN(79, "SPI1_CSB"), + PINCTRL_PIN(80, "SPI1_CLK"), + PINCTRL_PIN(81, "SPI1_MISO_IO_1"), + PINCTRL_PIN(82, "SPI1_MOSI_IO_0"), + PINCTRL_PIN(83, "SML1CLK"), + PINCTRL_PIN(84, "I2S2_SFRM"), + PINCTRL_PIN(85, "I2S2_TXD"), + PINCTRL_PIN(86, "I2S2_RXD"), + PINCTRL_PIN(87, "I2S2_SCLK"), + PINCTRL_PIN(88, "SML0CLK"), + PINCTRL_PIN(89, "SML0DATA"), + PINCTRL_PIN(90, "GPP_D_11"), + PINCTRL_PIN(91, "ISH_UART0_CTSB"), + PINCTRL_PIN(92, "SPI1_IO_2"), + PINCTRL_PIN(93, "SPI1_IO_3"), + PINCTRL_PIN(94, "SML1DATA"), + PINCTRL_PIN(95, "GSPI3_CS0B"), + PINCTRL_PIN(96, "GSPI3_CLK"), + PINCTRL_PIN(97, "GSPI3_MISO"), + PINCTRL_PIN(98, "GSPI3_MOSI"), + PINCTRL_PIN(99, "UART3_RXD"), + PINCTRL_PIN(100, "UART3_TXD"), + PINCTRL_PIN(101, "UART3_RTSB"), + PINCTRL_PIN(102, "UART3_CTSB"), + PINCTRL_PIN(103, "SPI1_CLK_LOOPBK"), + PINCTRL_PIN(104, "GSPI3_CLK_LOOPBK"), + /* GPP_C */ + PINCTRL_PIN(105, "SMBCLK"), + PINCTRL_PIN(106, "SMBDATA"), + PINCTRL_PIN(107, "SMBALERTB"), + PINCTRL_PIN(108, "ISH_UART0_RXD"), + PINCTRL_PIN(109, "ISH_UART0_TXD"), + PINCTRL_PIN(110, "SML0ALERTB"), + PINCTRL_PIN(111, "ISH_I2C2_SDA"), + PINCTRL_PIN(112, "ISH_I2C2_SCL"), + PINCTRL_PIN(113, "UART0_RXD"), + PINCTRL_PIN(114, "UART0_TXD"), + PINCTRL_PIN(115, "UART0_RTSB"), + PINCTRL_PIN(116, "UART0_CTSB"), + PINCTRL_PIN(117, "UART1_RXD"), + PINCTRL_PIN(118, "UART1_TXD"), + PINCTRL_PIN(119, "UART1_RTSB"), + PINCTRL_PIN(120, "UART1_CTSB"), + PINCTRL_PIN(121, "I2C0_SDA"), + PINCTRL_PIN(122, "I2C0_SCL"), + PINCTRL_PIN(123, "I2C1_SDA"), + PINCTRL_PIN(124, "I2C1_SCL"), + PINCTRL_PIN(125, "UART2_RXD"), + PINCTRL_PIN(126, "UART2_TXD"), + PINCTRL_PIN(127, "UART2_RTSB"), + PINCTRL_PIN(128, "UART2_CTSB"), + /* GPP_S */ + PINCTRL_PIN(129, "SNDW1_CLK"), + PINCTRL_PIN(130, "SNDW1_DATA"), + PINCTRL_PIN(131, "SNDW2_CLK"), + PINCTRL_PIN(132, "SNDW2_DATA"), + PINCTRL_PIN(133, "SNDW3_CLK"), + PINCTRL_PIN(134, "SNDW3_DATA"), + PINCTRL_PIN(135, "SNDW4_CLK"), + PINCTRL_PIN(136, "SNDW4_DATA"), + /* GPP_G */ + PINCTRL_PIN(137, "DDPA_CTRLCLK"), + PINCTRL_PIN(138, "DDPA_CTRLDATA"), + PINCTRL_PIN(139, "DNX_FORCE_RELOAD"), + PINCTRL_PIN(140, "GMII_MDC_0"), + PINCTRL_PIN(141, "GMII_MDIO_0"), + PINCTRL_PIN(142, "SLP_DRAMB"), + PINCTRL_PIN(143, "GPPC_G_6"), + PINCTRL_PIN(144, "GPPC_G_7"), + PINCTRL_PIN(145, "ISH_SPI_CSB"), + PINCTRL_PIN(146, "ISH_SPI_CLK"), + PINCTRL_PIN(147, "ISH_SPI_MISO"), + PINCTRL_PIN(148, "ISH_SPI_MOSI"), + PINCTRL_PIN(149, "DDP1_CTRLCLK"), + PINCTRL_PIN(150, "DDP1_CTRLDATA"), + PINCTRL_PIN(151, "DDP2_CTRLCLK"), + PINCTRL_PIN(152, "DDP2_CTRLDATA"), + PINCTRL_PIN(153, "GSPI2_CLK_LOOPBK"), + /* vGPIO */ + PINCTRL_PIN(154, "CNV_BTEN"), + PINCTRL_PIN(155, "CNV_BT_HOST_WAKEB"), + PINCTRL_PIN(156, "CNV_BT_IF_SELECT"), + PINCTRL_PIN(157, "vCNV_BT_UART_TXD"), + PINCTRL_PIN(158, "vCNV_BT_UART_RXD"), + PINCTRL_PIN(159, "vCNV_BT_UART_CTS_B"), + PINCTRL_PIN(160, "vCNV_BT_UART_RTS_B"), + PINCTRL_PIN(161, "vCNV_MFUART1_TXD"), + PINCTRL_PIN(162, "vCNV_MFUART1_RXD"), + PINCTRL_PIN(163, "vCNV_MFUART1_CTS_B"), + PINCTRL_PIN(164, "vCNV_MFUART1_RTS_B"), + PINCTRL_PIN(165, "vUART0_TXD"), + PINCTRL_PIN(166, "vUART0_RXD"), + PINCTRL_PIN(167, "vUART0_CTS_B"), + PINCTRL_PIN(168, "vUART0_RTS_B"), + PINCTRL_PIN(169, "vISH_UART0_TXD"), + PINCTRL_PIN(170, "vISH_UART0_RXD"), + PINCTRL_PIN(171, "vISH_UART0_CTS_B"), + PINCTRL_PIN(172, "vISH_UART0_RTS_B"), + PINCTRL_PIN(173, "vCNV_BT_I2S_BCLK"), + PINCTRL_PIN(174, "vCNV_BT_I2S_WS_SYNC"), + PINCTRL_PIN(175, "vCNV_BT_I2S_SDO"), + PINCTRL_PIN(176, "vCNV_BT_I2S_SDI"), + PINCTRL_PIN(177, "vI2S2_SCLK"), + PINCTRL_PIN(178, "vI2S2_SFRM"), + PINCTRL_PIN(179, "vI2S2_TXD"), + PINCTRL_PIN(180, "vI2S2_RXD"), + /* GPP_E */ + PINCTRL_PIN(181, "SATAXPCIE_0"), + PINCTRL_PIN(182, "SATAXPCIE_1"), + PINCTRL_PIN(183, "SATAXPCIE_2"), + PINCTRL_PIN(184, "CPU_GP_0"), + PINCTRL_PIN(185, "SATA_DEVSLP_0"), + PINCTRL_PIN(186, "SATA_DEVSLP_1"), + PINCTRL_PIN(187, "SATA_DEVSLP_2"), + PINCTRL_PIN(188, "CPU_GP_1"), + PINCTRL_PIN(189, "SATA_LEDB"), + PINCTRL_PIN(190, "USB2_OCB_0"), + PINCTRL_PIN(191, "USB2_OCB_1"), + PINCTRL_PIN(192, "USB2_OCB_2"), + PINCTRL_PIN(193, "USB2_OCB_3"), + /* GPP_F */ + PINCTRL_PIN(194, "SATAXPCIE_3"), + PINCTRL_PIN(195, "SATAXPCIE_4"), + PINCTRL_PIN(196, "SATAXPCIE_5"), + PINCTRL_PIN(197, "SATAXPCIE_6"), + PINCTRL_PIN(198, "SATAXPCIE_7"), + PINCTRL_PIN(199, "SATA_DEVSLP_3"), + PINCTRL_PIN(200, "SATA_DEVSLP_4"), + PINCTRL_PIN(201, "SATA_DEVSLP_5"), + PINCTRL_PIN(202, "SATA_DEVSLP_6"), + PINCTRL_PIN(203, "SATA_DEVSLP_7"), + PINCTRL_PIN(204, "SATA_SCLOCK"), + PINCTRL_PIN(205, "SATA_SLOAD"), + PINCTRL_PIN(206, "SATA_SDATAOUT1"), + PINCTRL_PIN(207, "SATA_SDATAOUT0"), + PINCTRL_PIN(208, "PS_ONB"), + PINCTRL_PIN(209, "M2_SKT2_CFG_0"), + PINCTRL_PIN(210, "M2_SKT2_CFG_1"), + PINCTRL_PIN(211, "M2_SKT2_CFG_2"), + PINCTRL_PIN(212, "M2_SKT2_CFG_3"), + PINCTRL_PIN(213, "L_VDDEN"), + PINCTRL_PIN(214, "L_BKLTEN"), + PINCTRL_PIN(215, "L_BKLTCTL"), + PINCTRL_PIN(216, "VNN_CTRL"), + PINCTRL_PIN(217, "GPP_F_23"), + /* GPP_H */ + PINCTRL_PIN(218, "SRCCLKREQB_6"), + PINCTRL_PIN(219, "SRCCLKREQB_7"), + PINCTRL_PIN(220, "SRCCLKREQB_8"), + PINCTRL_PIN(221, "SRCCLKREQB_9"), + PINCTRL_PIN(222, "SRCCLKREQB_10"), + PINCTRL_PIN(223, "SRCCLKREQB_11"), + PINCTRL_PIN(224, "SRCCLKREQB_12"), + PINCTRL_PIN(225, "SRCCLKREQB_13"), + PINCTRL_PIN(226, "SRCCLKREQB_14"), + PINCTRL_PIN(227, "SRCCLKREQB_15"), + PINCTRL_PIN(228, "SML2CLK"), + PINCTRL_PIN(229, "SML2DATA"), + PINCTRL_PIN(230, "SML2ALERTB"), + PINCTRL_PIN(231, "SML3CLK"), + PINCTRL_PIN(232, "SML3DATA"), + PINCTRL_PIN(233, "SML3ALERTB"), + PINCTRL_PIN(234, "SML4CLK"), + PINCTRL_PIN(235, "SML4DATA"), + PINCTRL_PIN(236, "SML4ALERTB"), + PINCTRL_PIN(237, "ISH_I2C0_SDA"), + PINCTRL_PIN(238, "ISH_I2C0_SCL"), + PINCTRL_PIN(239, "ISH_I2C1_SDA"), + PINCTRL_PIN(240, "ISH_I2C1_SCL"), + PINCTRL_PIN(241, "TIME_SYNC_0"), + /* GPP_J */ + PINCTRL_PIN(242, "CNV_PA_BLANKING"), + PINCTRL_PIN(243, "CPU_C10_GATEB"), + PINCTRL_PIN(244, "CNV_BRI_DT"), + PINCTRL_PIN(245, "CNV_BRI_RSP"), + PINCTRL_PIN(246, "CNV_RGI_DT"), + PINCTRL_PIN(247, "CNV_RGI_RSP"), + PINCTRL_PIN(248, "CNV_MFUART2_RXD"), + PINCTRL_PIN(249, "CNV_MFUART2_TXD"), + PINCTRL_PIN(250, "GPP_J_8"), + PINCTRL_PIN(251, "GPP_J_9"), + /* GPP_K */ + PINCTRL_PIN(252, "GSXDOUT"), + PINCTRL_PIN(253, "GSXSLOAD"), + PINCTRL_PIN(254, "GSXDIN"), + PINCTRL_PIN(255, "GSXSRESETB"), + PINCTRL_PIN(256, "GSXCLK"), + PINCTRL_PIN(257, "ADR_COMPLETE"), + PINCTRL_PIN(258, "DDSP_HPD_A"), + PINCTRL_PIN(259, "DDSP_HPD_B"), + PINCTRL_PIN(260, "CORE_VID_0"), + PINCTRL_PIN(261, "CORE_VID_1"), + PINCTRL_PIN(262, "DDSP_HPD_C"), + PINCTRL_PIN(263, "GPP_K_11"), + PINCTRL_PIN(264, "SYS_PWROK"), + PINCTRL_PIN(265, "SYS_RESETB"), + PINCTRL_PIN(266, "MLK_RSTB"), + /* GPP_I */ + PINCTRL_PIN(267, "PMCALERTB"), + PINCTRL_PIN(268, "DDSP_HPD_1"), + PINCTRL_PIN(269, "DDSP_HPD_2"), + PINCTRL_PIN(270, "DDSP_HPD_3"), + PINCTRL_PIN(271, "DDSP_HPD_4"), + PINCTRL_PIN(272, "DDPB_CTRLCLK"), + PINCTRL_PIN(273, "DDPB_CTRLDATA"), + PINCTRL_PIN(274, "DDPC_CTRLCLK"), + PINCTRL_PIN(275, "DDPC_CTRLDATA"), + PINCTRL_PIN(276, "FUSA_DIAGTEST_EN"), + PINCTRL_PIN(277, "FUSA_DIAGTEST_MODE"), + PINCTRL_PIN(278, "USB2_OCB_4"), + PINCTRL_PIN(279, "USB2_OCB_5"), + PINCTRL_PIN(280, "USB2_OCB_6"), + PINCTRL_PIN(281, "USB2_OCB_7"), + /* JTAG */ + PINCTRL_PIN(282, "JTAG_TDO"), + PINCTRL_PIN(283, "JTAGX"), + PINCTRL_PIN(284, "PRDYB"), + PINCTRL_PIN(285, "PREQB"), + PINCTRL_PIN(286, "JTAG_TDI"), + PINCTRL_PIN(287, "JTAG_TMS"), + PINCTRL_PIN(288, "JTAG_TCK"), + PINCTRL_PIN(289, "DBG_PMODE"), + PINCTRL_PIN(290, "CPU_TRSTB"), +}; + +static const struct intel_padgroup tglh_community0_gpps[] = { + TGL_GPP(0, 0, 24, 0), /* GPP_A */ + TGL_GPP(1, 25, 44, 128), /* GPP_R */ + TGL_GPP(2, 45, 70, 32), /* GPP_B */ + TGL_GPP(3, 71, 78, INTEL_GPIO_BASE_NOMAP), /* vGPIO_0 */ +}; + +static const struct intel_padgroup tglh_community1_gpps[] = { + TGL_GPP(0, 79, 104, 96), /* GPP_D */ + TGL_GPP(1, 105, 128, 64), /* GPP_C */ + TGL_GPP(2, 129, 136, 160), /* GPP_S */ + TGL_GPP(3, 137, 153, 192), /* GPP_G */ + TGL_GPP(4, 154, 180, 224), /* vGPIO */ +}; + +static const struct intel_padgroup tglh_community3_gpps[] = { + TGL_GPP(0, 181, 193, 256), /* GPP_E */ + TGL_GPP(1, 194, 217, 288), /* GPP_F */ +}; + +static const struct intel_padgroup tglh_community4_gpps[] = { + TGL_GPP(0, 218, 241, 320), /* GPP_H */ + TGL_GPP(1, 242, 251, 384), /* GPP_J */ + TGL_GPP(2, 252, 266, 352), /* GPP_K */ +}; + +static const struct intel_padgroup tglh_community5_gpps[] = { + TGL_GPP(0, 267, 281, 416), /* GPP_I */ + TGL_GPP(1, 282, 290, INTEL_GPIO_BASE_NOMAP), /* JTAG */ +}; + +static const struct intel_community tglh_communities[] = { + TGL_COMMUNITY(0, 0, 78, tglh_community0_gpps), + TGL_COMMUNITY(1, 79, 180, tglh_community1_gpps), + TGL_COMMUNITY(2, 181, 217, tglh_community3_gpps), + TGL_COMMUNITY(3, 218, 266, tglh_community4_gpps), + TGL_COMMUNITY(4, 267, 290, tglh_community5_gpps), +}; + +static const struct intel_pinctrl_soc_data tglh_soc_data = { + .pins = tglh_pins, + .npins = ARRAY_SIZE(tglh_pins), + .communities = tglh_communities, + .ncommunities = ARRAY_SIZE(tglh_communities), +}; + static const struct acpi_device_id tgl_pinctrl_acpi_match[] = { { "INT34C5", (kernel_ulong_t)&tgllp_soc_data }, + { "INT34C6", (kernel_ulong_t)&tglh_soc_data }, { } }; MODULE_DEVICE_TABLE(acpi, tgl_pinctrl_acpi_match); only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/platform/x86/intel-uncore-frequency.c +++ linux-oem-5.6-5.6.0/drivers/platform/x86/intel-uncore-frequency.c @@ -358,15 +358,13 @@ .notifier_call = uncore_pm_notify, }; -#define ICPU(model) { X86_VENDOR_INTEL, 6, model, X86_FEATURE_ANY, } - static const struct x86_cpu_id intel_uncore_cpu_ids[] = { - ICPU(INTEL_FAM6_BROADWELL_G), - ICPU(INTEL_FAM6_BROADWELL_X), - ICPU(INTEL_FAM6_BROADWELL_D), - ICPU(INTEL_FAM6_SKYLAKE_X), - ICPU(INTEL_FAM6_ICELAKE_X), - ICPU(INTEL_FAM6_ICELAKE_D), + X86_MATCH_INTEL_FAM6_MODEL(BROADWELL_G, NULL), + X86_MATCH_INTEL_FAM6_MODEL(BROADWELL_X, NULL), + X86_MATCH_INTEL_FAM6_MODEL(BROADWELL_D, NULL), + X86_MATCH_INTEL_FAM6_MODEL(SKYLAKE_X, NULL), + X86_MATCH_INTEL_FAM6_MODEL(ICELAKE_X, NULL), + X86_MATCH_INTEL_FAM6_MODEL(ICELAKE_D, NULL), {} }; only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/platform/x86/intel_mid_powerbtn.c +++ linux-oem-5.6-5.6.0/drivers/platform/x86/intel_mid_powerbtn.c @@ -113,8 +113,8 @@ }; static const struct x86_cpu_id mid_pb_cpu_ids[] = { - INTEL_CPU_FAM6(ATOM_SALTWELL_MID, mfld_ddata), - INTEL_CPU_FAM6(ATOM_SILVERMONT_MID, mrfld_ddata), + X86_MATCH_INTEL_FAM6_MODEL(ATOM_SALTWELL_MID, &mfld_ddata), + X86_MATCH_INTEL_FAM6_MODEL(ATOM_SILVERMONT_MID, &mrfld_ddata), {} }; only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/platform/x86/intel_pmc_core.c +++ linux-oem-5.6-5.6.0/drivers/platform/x86/intel_pmc_core.c @@ -20,6 +20,7 @@ #include #include #include +#include #include #include @@ -153,6 +154,7 @@ .ltr_show_sts = spt_ltr_show_map, .msr_sts = msr_map, .slp_s0_offset = SPT_PMC_SLP_S0_RES_COUNTER_OFFSET, + .slp_s0_res_counter_step = SPT_PMC_SLP_S0_RES_COUNTER_STEP, .ltr_ignore_offset = SPT_PMC_LTR_IGNORE_OFFSET, .regmap_length = SPT_PMC_MMIO_REG_LEN, .ppfear0_offset = SPT_PMC_XRAM_PPFEAR0A, @@ -193,7 +195,7 @@ {"Fuse", BIT(6)}, /* * Reserved for Cannon Lake but valid for Ice Lake, Comet Lake, - * Tiger Lake and Elkhart Lake. + * Tiger Lake, Elkhart Lake and Jasper Lake. */ {"SBR8", BIT(7)}, @@ -240,7 +242,7 @@ {"HDA_PGD6", BIT(4)}, /* * Reserved for Cannon Lake but valid for Ice Lake, Comet Lake, - * Tiger Lake and ELkhart Lake. + * Tiger Lake, ELkhart Lake and Jasper Lake. */ {"PSF6", BIT(5)}, {"PSF7", BIT(6)}, @@ -254,7 +256,7 @@ }; static const struct pmc_bit_map icl_pfear_map[] = { - /* Ice Lake generation onwards only */ + /* Ice Lake and Jasper Lake generation onwards only */ {"RES_65", BIT(0)}, {"RES_66", BIT(1)}, {"RES_67", BIT(2)}, @@ -379,6 +381,7 @@ static const struct pmc_reg_map cnp_reg_map = { .pfear_sts = ext_cnp_pfear_map, .slp_s0_offset = CNP_PMC_SLP_S0_RES_COUNTER_OFFSET, + .slp_s0_res_counter_step = SPT_PMC_SLP_S0_RES_COUNTER_STEP, .slps0_dbg_maps = cnp_slps0_dbg_maps, .ltr_show_sts = cnp_ltr_show_map, .msr_sts = msr_map, @@ -395,6 +398,7 @@ static const struct pmc_reg_map icl_reg_map = { .pfear_sts = ext_icl_pfear_map, .slp_s0_offset = CNP_PMC_SLP_S0_RES_COUNTER_OFFSET, + .slp_s0_res_counter_step = ICL_PMC_SLP_S0_RES_COUNTER_STEP, .slps0_dbg_maps = cnp_slps0_dbg_maps, .ltr_show_sts = cnp_ltr_show_map, .msr_sts = msr_map, @@ -408,13 +412,158 @@ .ltr_ignore_max = ICL_NUM_IP_IGN_ALLOWED, }; +static const struct pmc_bit_map tgl_clocksource_status_map[] = { + {"USB2PLL_OFF_STS", BIT(18)}, + {"PCIe/USB3.1_Gen2PLL_OFF_STS", BIT(19)}, + {"PCIe_Gen3PLL_OFF_STS", BIT(20)}, + {"OPIOPLL_OFF_STS", BIT(21)}, + {"OCPLL_OFF_STS", BIT(22)}, + {"MainPLL_OFF_STS", BIT(23)}, + {"MIPIPLL_OFF_STS", BIT(24)}, + {"Fast_XTAL_Osc_OFF_STS", BIT(25)}, + {"AC_Ring_Osc_OFF_STS", BIT(26)}, + {"MC_Ring_Osc_OFF_STS", BIT(27)}, + {"SATAPLL_OFF_STS", BIT(29)}, + {"XTAL_USB2PLL_OFF_STS", BIT(31)}, + {} +}; + +static const struct pmc_bit_map tgl_power_gating_status_map[] = { + {"CSME_PG_STS", BIT(0)}, + {"SATA_PG_STS", BIT(1)}, + {"xHCI_PG_STS", BIT(2)}, + {"UFSX2_PG_STS", BIT(3)}, + {"OTG_PG_STS", BIT(5)}, + {"SPA_PG_STS", BIT(6)}, + {"SPB_PG_STS", BIT(7)}, + {"SPC_PG_STS", BIT(8)}, + {"SPD_PG_STS", BIT(9)}, + {"SPE_PG_STS", BIT(10)}, + {"SPF_PG_STS", BIT(11)}, + {"LSX_PG_STS", BIT(13)}, + {"P2SB_PG_STS", BIT(14)}, + {"PSF_PG_STS", BIT(15)}, + {"SBR_PG_STS", BIT(16)}, + {"OPIDMI_PG_STS", BIT(17)}, + {"THC0_PG_STS", BIT(18)}, + {"THC1_PG_STS", BIT(19)}, + {"GBETSN_PG_STS", BIT(20)}, + {"GBE_PG_STS", BIT(21)}, + {"LPSS_PG_STS", BIT(22)}, + {"MMP_UFSX2_PG_STS", BIT(23)}, + {"MMP_UFSX2B_PG_STS", BIT(24)}, + {"FIA_PG_STS", BIT(25)}, + {} +}; + +static const struct pmc_bit_map tgl_d3_status_map[] = { + {"ADSP_D3_STS", BIT(0)}, + {"SATA_D3_STS", BIT(1)}, + {"xHCI0_D3_STS", BIT(2)}, + {"xDCI1_D3_STS", BIT(5)}, + {"SDX_D3_STS", BIT(6)}, + {"EMMC_D3_STS", BIT(7)}, + {"IS_D3_STS", BIT(8)}, + {"THC0_D3_STS", BIT(9)}, + {"THC1_D3_STS", BIT(10)}, + {"GBE_D3_STS", BIT(11)}, + {"GBE_TSN_D3_STS", BIT(12)}, + {} +}; + +static const struct pmc_bit_map tgl_vnn_req_status_map[] = { + {"GPIO_COM0_VNN_REQ_STS", BIT(1)}, + {"GPIO_COM1_VNN_REQ_STS", BIT(2)}, + {"GPIO_COM2_VNN_REQ_STS", BIT(3)}, + {"GPIO_COM3_VNN_REQ_STS", BIT(4)}, + {"GPIO_COM4_VNN_REQ_STS", BIT(5)}, + {"GPIO_COM5_VNN_REQ_STS", BIT(6)}, + {"Audio_VNN_REQ_STS", BIT(7)}, + {"ISH_VNN_REQ_STS", BIT(8)}, + {"CNVI_VNN_REQ_STS", BIT(9)}, + {"eSPI_VNN_REQ_STS", BIT(10)}, + {"Display_VNN_REQ_STS", BIT(11)}, + {"DTS_VNN_REQ_STS", BIT(12)}, + {"SMBUS_VNN_REQ_STS", BIT(14)}, + {"CSME_VNN_REQ_STS", BIT(15)}, + {"SMLINK0_VNN_REQ_STS", BIT(16)}, + {"SMLINK1_VNN_REQ_STS", BIT(17)}, + {"CLINK_VNN_REQ_STS", BIT(20)}, + {"DCI_VNN_REQ_STS", BIT(21)}, + {"ITH_VNN_REQ_STS", BIT(22)}, + {"CSME_VNN_REQ_STS", BIT(24)}, + {"GBE_VNN_REQ_STS", BIT(25)}, + {} +}; + +static const struct pmc_bit_map tgl_vnn_misc_status_map[] = { + {"CPU_C10_REQ_STS_0", BIT(0)}, + {"PCIe_LPM_En_REQ_STS_3", BIT(3)}, + {"ITH_REQ_STS_5", BIT(5)}, + {"CNVI_REQ_STS_6", BIT(6)}, + {"ISH_REQ_STS_7", BIT(7)}, + {"USB2_SUS_PG_Sys_REQ_STS_10", BIT(10)}, + {"PCIe_Clk_REQ_STS_12", BIT(12)}, + {"MPHY_Core_DL_REQ_STS_16", BIT(16)}, + {"Break-even_En_REQ_STS_17", BIT(17)}, + {"Auto-demo_En_REQ_STS_18", BIT(18)}, + {"MPHY_SUS_REQ_STS_22", BIT(22)}, + {"xDCI_attached_REQ_STS_24", BIT(24)}, + {} +}; + +static const struct pmc_bit_map tgl_signal_status_map[] = { + {"LSX_Wake0_En_STS", BIT(0)}, + {"LSX_Wake0_Pol_STS", BIT(1)}, + {"LSX_Wake1_En_STS", BIT(2)}, + {"LSX_Wake1_Pol_STS", BIT(3)}, + {"LSX_Wake2_En_STS", BIT(4)}, + {"LSX_Wake2_Pol_STS", BIT(5)}, + {"LSX_Wake3_En_STS", BIT(6)}, + {"LSX_Wake3_Pol_STS", BIT(7)}, + {"LSX_Wake4_En_STS", BIT(8)}, + {"LSX_Wake4_Pol_STS", BIT(9)}, + {"LSX_Wake5_En_STS", BIT(10)}, + {"LSX_Wake5_Pol_STS", BIT(11)}, + {"LSX_Wake6_En_STS", BIT(12)}, + {"LSX_Wake6_Pol_STS", BIT(13)}, + {"LSX_Wake7_En_STS", BIT(14)}, + {"LSX_Wake7_Pol_STS", BIT(15)}, + {"Intel_Se_IO_Wake0_En_STS", BIT(16)}, + {"Intel_Se_IO_Wake0_Pol_STS", BIT(17)}, + {"Intel_Se_IO_Wake1_En_STS", BIT(18)}, + {"Intel_Se_IO_Wake1_Pol_STS", BIT(19)}, + {"Int_Timer_SS_Wake0_En_STS", BIT(20)}, + {"Int_Timer_SS_Wake0_Pol_STS", BIT(21)}, + {"Int_Timer_SS_Wake1_En_STS", BIT(22)}, + {"Int_Timer_SS_Wake1_Pol_STS", BIT(23)}, + {"Int_Timer_SS_Wake2_En_STS", BIT(24)}, + {"Int_Timer_SS_Wake2_Pol_STS", BIT(25)}, + {"Int_Timer_SS_Wake3_En_STS", BIT(26)}, + {"Int_Timer_SS_Wake3_Pol_STS", BIT(27)}, + {"Int_Timer_SS_Wake4_En_STS", BIT(28)}, + {"Int_Timer_SS_Wake4_Pol_STS", BIT(29)}, + {"Int_Timer_SS_Wake5_En_STS", BIT(30)}, + {"Int_Timer_SS_Wake5_Pol_STS", BIT(31)}, + {} +}; + +static const struct pmc_bit_map *tgl_lpm_maps[] = { + tgl_clocksource_status_map, + tgl_power_gating_status_map, + tgl_d3_status_map, + tgl_vnn_req_status_map, + tgl_vnn_misc_status_map, + tgl_signal_status_map, + NULL +}; + static const struct pmc_reg_map tgl_reg_map = { .pfear_sts = ext_tgl_pfear_map, .slp_s0_offset = CNP_PMC_SLP_S0_RES_COUNTER_OFFSET, - .slps0_dbg_maps = cnp_slps0_dbg_maps, + .slp_s0_res_counter_step = TGL_PMC_SLP_S0_RES_COUNTER_STEP, .ltr_show_sts = cnp_ltr_show_map, .msr_sts = msr_map, - .slps0_dbg_offset = CNP_PMC_SLPS0_DBG_OFFSET, .ltr_ignore_offset = CNP_PMC_LTR_IGNORE_OFFSET, .regmap_length = CNP_PMC_MMIO_REG_LEN, .ppfear0_offset = CNP_PMC_HOST_PPFEAR0A, @@ -422,6 +571,12 @@ .pm_cfg_offset = CNP_PMC_PM_CFG_OFFSET, .pm_read_disable_bit = CNP_PMC_READ_DISABLE_BIT, .ltr_ignore_max = TGL_NUM_IP_IGN_ALLOWED, + .lpm_modes = tgl_lpm_modes, + .lpm_en_offset = TGL_LPM_EN_OFFSET, + .lpm_residency_offset = TGL_LPM_RESIDENCY_OFFSET, + .lpm_sts = tgl_lpm_maps, + .lpm_status_offset = TGL_LPM_STATUS_OFFSET, + .lpm_live_status_offset = TGL_LPM_LIVE_STATUS_OFFSET, }; static inline u32 pmc_core_reg_read(struct pmc_dev *pmcdev, int reg_offset) @@ -435,9 +590,9 @@ writel(val, pmcdev->regbase + reg_offset); } -static inline u64 pmc_core_adjust_slp_s0_step(u32 value) +static inline u64 pmc_core_adjust_slp_s0_step(struct pmc_dev *pmcdev, u32 value) { - return (u64)value * SPT_PMC_SLP_S0_RES_COUNTER_STEP; + return (u64)value * pmcdev->map->slp_s0_res_counter_step; } static int pmc_core_dev_state_get(void *data, u64 *val) @@ -447,7 +602,7 @@ u32 value; value = pmc_core_reg_read(pmcdev, map->slp_s0_offset); - *val = pmc_core_adjust_slp_s0_step(value); + *val = pmc_core_adjust_slp_s0_step(pmcdev, value); return 0; } @@ -463,7 +618,84 @@ return value & BIT(pmcdev->map->pm_read_disable_bit); } -#if IS_ENABLED(CONFIG_DEBUG_FS) +static void pmc_core_slps0_display(struct pmc_dev *pmcdev, struct device *dev, + struct seq_file *s) +{ + const struct pmc_bit_map **maps = pmcdev->map->slps0_dbg_maps; + const struct pmc_bit_map *map; + int offset = pmcdev->map->slps0_dbg_offset; + u32 data; + + while (*maps) { + map = *maps; + data = pmc_core_reg_read(pmcdev, offset); + offset += 4; + while (map->name) { + if (dev) + dev_dbg(dev, "SLP_S0_DBG: %-32s\tState: %s\n", + map->name, + data & map->bit_mask ? "Yes" : "No"); + if (s) + seq_printf(s, "SLP_S0_DBG: %-32s\tState: %s\n", + map->name, + data & map->bit_mask ? "Yes" : "No"); + ++map; + } + ++maps; + } +} + +static int pmc_core_lpm_get_arr_size(const struct pmc_bit_map **maps) +{ + int idx; + + for (idx = 0; maps[idx]; idx++) + ;/* Nothing */ + + return idx; +} + +static void pmc_core_lpm_display(struct pmc_dev *pmcdev, struct device *dev, + struct seq_file *s, u32 offset, + const char *str, + const struct pmc_bit_map **maps) +{ + int index, idx, len = 32, bit_mask, arr_size; + u32 *lpm_regs; + + arr_size = pmc_core_lpm_get_arr_size(maps); + lpm_regs = kmalloc_array(arr_size, sizeof(*lpm_regs), GFP_KERNEL); + if (!lpm_regs) + return; + + for (index = 0; index < arr_size; index++) { + lpm_regs[index] = pmc_core_reg_read(pmcdev, offset); + offset += 4; + } + + for (idx = 0; idx < arr_size; idx++) { + if (dev) + dev_dbg(dev, "\nLPM_%s_%d:\t0x%x\n", str, idx, + lpm_regs[idx]); + if (s) + seq_printf(s, "\nLPM_%s_%d:\t0x%x\n", str, idx, + lpm_regs[idx]); + for (index = 0; maps[idx][index].name && index < len; index++) { + bit_mask = maps[idx][index].bit_mask; + if (dev) + dev_dbg(dev, "%-30s %-30d\n", + maps[idx][index].name, + lpm_regs[idx] & bit_mask ? 1 : 0); + if (s) + seq_printf(s, "%-30s %-30d\n", + maps[idx][index].name, + lpm_regs[idx] & bit_mask ? 1 : 0); + } + } + + kfree(lpm_regs); +} + static bool slps0_dbg_latch; static inline u8 pmc_core_reg_read_byte(struct pmc_dev *pmcdev, int offset) @@ -567,7 +799,7 @@ msleep(10); val_high = pmc_core_reg_read(pmcdev, SPT_PMC_MFPMC_OFFSET); - for (index = 0; map[index].name && index < 8; index++) { + for (index = 0; index < 8 && map[index].name; index++) { seq_printf(s, "%-32s\tState: %s\n", map[index].name, map[index].bit_mask & val_low ? "Not power gated" : @@ -698,27 +930,11 @@ static int pmc_core_slps0_dbg_show(struct seq_file *s, void *unused) { struct pmc_dev *pmcdev = s->private; - const struct pmc_bit_map **maps = pmcdev->map->slps0_dbg_maps; - const struct pmc_bit_map *map; - int offset; - u32 data; pmc_core_slps0_dbg_latch(pmcdev, false); - offset = pmcdev->map->slps0_dbg_offset; - while (*maps) { - map = *maps; - data = pmc_core_reg_read(pmcdev, offset); - offset += 4; - while (map->name) { - seq_printf(s, "SLP_S0_DBG: %-32s\tState: %s\n", - map->name, - data & map->bit_mask ? - "Yes" : "No"); - ++map; - } - ++maps; - } + pmc_core_slps0_display(pmcdev, NULL, s); pmc_core_slps0_dbg_latch(pmcdev, true); + return 0; } DEFINE_SHOW_ATTRIBUTE(pmc_core_slps0_dbg); @@ -794,6 +1010,51 @@ } DEFINE_SHOW_ATTRIBUTE(pmc_core_ltr); +static int pmc_core_substate_res_show(struct seq_file *s, void *unused) +{ + struct pmc_dev *pmcdev = s->private; + const char **lpm_modes = pmcdev->map->lpm_modes; + u32 offset = pmcdev->map->lpm_residency_offset; + u32 lpm_en; + int index; + + lpm_en = pmc_core_reg_read(pmcdev, pmcdev->map->lpm_en_offset); + seq_printf(s, "status substate residency\n"); + for (index = 0; lpm_modes[index]; index++) { + seq_printf(s, "%7s %7s %-15u\n", + BIT(index) & lpm_en ? "Enabled" : " ", + lpm_modes[index], pmc_core_reg_read(pmcdev, offset)); + offset += 4; + } + + return 0; +} +DEFINE_SHOW_ATTRIBUTE(pmc_core_substate_res); + +static int pmc_core_substate_sts_regs_show(struct seq_file *s, void *unused) +{ + struct pmc_dev *pmcdev = s->private; + const struct pmc_bit_map **maps = pmcdev->map->lpm_sts; + u32 offset = pmcdev->map->lpm_status_offset; + + pmc_core_lpm_display(pmcdev, NULL, s, offset, "STATUS", maps); + + return 0; +} +DEFINE_SHOW_ATTRIBUTE(pmc_core_substate_sts_regs); + +static int pmc_core_substate_l_sts_regs_show(struct seq_file *s, void *unused) +{ + struct pmc_dev *pmcdev = s->private; + const struct pmc_bit_map **maps = pmcdev->map->lpm_sts; + u32 offset = pmcdev->map->lpm_live_status_offset; + + pmc_core_lpm_display(pmcdev, NULL, s, offset, "LIVE_STATUS", maps); + + return 0; +} +DEFINE_SHOW_ATTRIBUTE(pmc_core_substate_l_sts_regs); + static int pmc_core_pkgc_show(struct seq_file *s, void *unused) { struct pmc_dev *pmcdev = s->private; @@ -859,30 +1120,37 @@ debugfs_create_bool("slp_s0_dbg_latch", 0644, dir, &slps0_dbg_latch); } -} -#else -static inline void pmc_core_dbgfs_register(struct pmc_dev *pmcdev) -{ -} -static inline void pmc_core_dbgfs_unregister(struct pmc_dev *pmcdev) -{ + if (pmcdev->map->lpm_en_offset) { + debugfs_create_file("substate_residencies", 0444, + pmcdev->dbgfs_dir, pmcdev, + &pmc_core_substate_res_fops); + } + + if (pmcdev->map->lpm_status_offset) { + debugfs_create_file("substate_status_registers", 0444, + pmcdev->dbgfs_dir, pmcdev, + &pmc_core_substate_sts_regs_fops); + debugfs_create_file("substate_live_status_registers", 0444, + pmcdev->dbgfs_dir, pmcdev, + &pmc_core_substate_l_sts_regs_fops); + } } -#endif /* CONFIG_DEBUG_FS */ static const struct x86_cpu_id intel_pmc_core_ids[] = { - INTEL_CPU_FAM6(SKYLAKE_L, spt_reg_map), - INTEL_CPU_FAM6(SKYLAKE, spt_reg_map), - INTEL_CPU_FAM6(KABYLAKE_L, spt_reg_map), - INTEL_CPU_FAM6(KABYLAKE, spt_reg_map), - INTEL_CPU_FAM6(CANNONLAKE_L, cnp_reg_map), - INTEL_CPU_FAM6(ICELAKE_L, icl_reg_map), - INTEL_CPU_FAM6(ICELAKE_NNPI, icl_reg_map), - INTEL_CPU_FAM6(COMETLAKE, cnp_reg_map), - INTEL_CPU_FAM6(COMETLAKE_L, cnp_reg_map), - INTEL_CPU_FAM6(TIGERLAKE_L, tgl_reg_map), - INTEL_CPU_FAM6(TIGERLAKE, tgl_reg_map), - INTEL_CPU_FAM6(ATOM_TREMONT, tgl_reg_map), + X86_MATCH_INTEL_FAM6_MODEL(SKYLAKE_L, &spt_reg_map), + X86_MATCH_INTEL_FAM6_MODEL(SKYLAKE, &spt_reg_map), + X86_MATCH_INTEL_FAM6_MODEL(KABYLAKE_L, &spt_reg_map), + X86_MATCH_INTEL_FAM6_MODEL(KABYLAKE, &spt_reg_map), + X86_MATCH_INTEL_FAM6_MODEL(CANNONLAKE_L, &cnp_reg_map), + X86_MATCH_INTEL_FAM6_MODEL(ICELAKE_L, &icl_reg_map), + X86_MATCH_INTEL_FAM6_MODEL(ICELAKE_NNPI, &icl_reg_map), + X86_MATCH_INTEL_FAM6_MODEL(COMETLAKE, &cnp_reg_map), + X86_MATCH_INTEL_FAM6_MODEL(COMETLAKE_L, &cnp_reg_map), + X86_MATCH_INTEL_FAM6_MODEL(TIGERLAKE_L, &tgl_reg_map), + X86_MATCH_INTEL_FAM6_MODEL(TIGERLAKE, &tgl_reg_map), + X86_MATCH_INTEL_FAM6_MODEL(ATOM_TREMONT, &tgl_reg_map), + X86_MATCH_INTEL_FAM6_MODEL(ATOM_TREMONT_L, &icl_reg_map), {} }; @@ -986,13 +1254,11 @@ return 0; } -#ifdef CONFIG_PM_SLEEP - static bool warn_on_s0ix_failures; module_param(warn_on_s0ix_failures, bool, 0644); MODULE_PARM_DESC(warn_on_s0ix_failures, "Check and warn for S0ix failures"); -static int pmc_core_suspend(struct device *dev) +static __maybe_unused int pmc_core_suspend(struct device *dev) { struct pmc_dev *pmcdev = dev_get_drvdata(dev); @@ -1044,13 +1310,11 @@ return false; } -static int pmc_core_resume(struct device *dev) +static __maybe_unused int pmc_core_resume(struct device *dev) { struct pmc_dev *pmcdev = dev_get_drvdata(dev); - const struct pmc_bit_map **maps = pmcdev->map->slps0_dbg_maps; - int offset = pmcdev->map->slps0_dbg_offset; - const struct pmc_bit_map *map; - u32 data; + const struct pmc_bit_map **maps = pmcdev->map->lpm_sts; + int offset = pmcdev->map->lpm_status_offset; if (!pmcdev->check_counters) return 0; @@ -1068,23 +1332,14 @@ /* The real interesting case - S0ix failed - lets ask PMC why. */ dev_warn(dev, "CPU did not enter SLP_S0!!! (S0ix cnt=%llu)\n", pmcdev->s0ix_counter); - while (*maps) { - map = *maps; - data = pmc_core_reg_read(pmcdev, offset); - offset += 4; - while (map->name) { - dev_dbg(dev, "SLP_S0_DBG: %-32s\tState: %s\n", - map->name, - data & map->bit_mask ? "Yes" : "No"); - map++; - } - maps++; - } + if (pmcdev->map->slps0_dbg_maps) + pmc_core_slps0_display(pmcdev, dev, NULL); + if (pmcdev->map->lpm_sts) + pmc_core_lpm_display(pmcdev, dev, NULL, offset, "STATUS", maps); + return 0; } -#endif - static const struct dev_pm_ops pmc_core_pm_ops = { SET_LATE_SYSTEM_SLEEP_PM_OPS(pmc_core_suspend, pmc_core_resume) }; only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/platform/x86/intel_pmc_core.h +++ linux-oem-5.6-5.6.0/drivers/platform/x86/intel_pmc_core.h @@ -30,7 +30,7 @@ #define SPT_PMC_MPHY_CORE_STS_1 0x1142 #define SPT_PMC_MPHY_COM_STS_0 0x1155 #define SPT_PMC_MMIO_REG_LEN 0x1000 -#define SPT_PMC_SLP_S0_RES_COUNTER_STEP 0x64 +#define SPT_PMC_SLP_S0_RES_COUNTER_STEP 0x68 #define PMC_BASE_ADDR_MASK ~(SPT_PMC_MMIO_REG_LEN - 1) #define MTPMC_MASK 0xffff0000 #define PPFEAR_MAX_NUM_ENTRIES 12 @@ -185,8 +185,32 @@ #define ICL_PPFEAR_NUM_ENTRIES 9 #define ICL_NUM_IP_IGN_ALLOWED 20 #define ICL_PMC_LTR_WIGIG 0x1BFC +#define ICL_PMC_SLP_S0_RES_COUNTER_STEP 0x64 #define TGL_NUM_IP_IGN_ALLOWED 22 +#define TGL_PMC_SLP_S0_RES_COUNTER_STEP 0x7A + +/* + * Tigerlake Power Management Controller register offsets + */ +#define TGL_LPM_EN_OFFSET 0x1C78 +#define TGL_LPM_RESIDENCY_OFFSET 0x1C80 + +/* Tigerlake Low Power Mode debug registers */ +#define TGL_LPM_STATUS_OFFSET 0x1C3C +#define TGL_LPM_LIVE_STATUS_OFFSET 0x1C5C + +const char *tgl_lpm_modes[] = { + "S0i2.0", + "S0i2.1", + "S0i2.2", + "S0i3.0", + "S0i3.1", + "S0i3.2", + "S0i3.3", + "S0i3.4", + NULL +}; struct pmc_bit_map { const char *name; @@ -221,7 +245,9 @@ const struct pmc_bit_map **slps0_dbg_maps; const struct pmc_bit_map *ltr_show_sts; const struct pmc_bit_map *msr_sts; + const struct pmc_bit_map **lpm_sts; const u32 slp_s0_offset; + const int slp_s0_res_counter_step; const u32 ltr_ignore_offset; const int regmap_length; const u32 ppfear0_offset; @@ -231,6 +257,12 @@ const u32 slps0_dbg_offset; const u32 ltr_ignore_max; const u32 pm_vric1_offset; + /* Low Power Mode registers */ + const char **lpm_modes; + const u32 lpm_en_offset; + const u32 lpm_residency_offset; + const u32 lpm_status_offset; + const u32 lpm_live_status_offset; }; /** @@ -253,9 +285,7 @@ u32 base_addr; void __iomem *regbase; const struct pmc_reg_map *map; -#if IS_ENABLED(CONFIG_DEBUG_FS) struct dentry *dbgfs_dir; -#endif /* CONFIG_DEBUG_FS */ int pmc_xram_read_bit; struct mutex lock; /* generic mutex lock for PMC Core */ only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/platform/x86/intel_pmc_core_pltdrv.c +++ linux-oem-5.6-5.6.0/drivers/platform/x86/intel_pmc_core_pltdrv.c @@ -38,14 +38,14 @@ * other list may grow, but this list should not. */ static const struct x86_cpu_id intel_pmc_core_platform_ids[] = { - INTEL_CPU_FAM6(SKYLAKE_L, pmc_core_device), - INTEL_CPU_FAM6(SKYLAKE, pmc_core_device), - INTEL_CPU_FAM6(KABYLAKE_L, pmc_core_device), - INTEL_CPU_FAM6(KABYLAKE, pmc_core_device), - INTEL_CPU_FAM6(CANNONLAKE_L, pmc_core_device), - INTEL_CPU_FAM6(ICELAKE_L, pmc_core_device), - INTEL_CPU_FAM6(COMETLAKE, pmc_core_device), - INTEL_CPU_FAM6(COMETLAKE_L, pmc_core_device), + X86_MATCH_INTEL_FAM6_MODEL(SKYLAKE_L, &pmc_core_device), + X86_MATCH_INTEL_FAM6_MODEL(SKYLAKE, &pmc_core_device), + X86_MATCH_INTEL_FAM6_MODEL(KABYLAKE_L, &pmc_core_device), + X86_MATCH_INTEL_FAM6_MODEL(KABYLAKE, &pmc_core_device), + X86_MATCH_INTEL_FAM6_MODEL(CANNONLAKE_L, &pmc_core_device), + X86_MATCH_INTEL_FAM6_MODEL(ICELAKE_L, &pmc_core_device), + X86_MATCH_INTEL_FAM6_MODEL(COMETLAKE, &pmc_core_device), + X86_MATCH_INTEL_FAM6_MODEL(COMETLAKE_L, &pmc_core_device), {} }; MODULE_DEVICE_TABLE(x86cpu, intel_pmc_core_platform_ids); only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/platform/x86/intel_speed_select_if/isst_if_mbox_msr.c +++ linux-oem-5.6-5.6.0/drivers/platform/x86/intel_speed_select_if/isst_if_mbox_msr.c @@ -160,10 +160,8 @@ .notifier_call = isst_pm_notify, }; -#define ICPU(model) { X86_VENDOR_INTEL, 6, model, X86_FEATURE_ANY, } - static const struct x86_cpu_id isst_if_cpu_ids[] = { - ICPU(INTEL_FAM6_SKYLAKE_X), + X86_MATCH_INTEL_FAM6_MODEL(SKYLAKE_X, NULL), {} }; MODULE_DEVICE_TABLE(x86cpu, isst_if_cpu_ids); only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/platform/x86/intel_telemetry_debugfs.c +++ linux-oem-5.6-5.6.0/drivers/platform/x86/intel_telemetry_debugfs.c @@ -308,11 +308,10 @@ }; static const struct x86_cpu_id telemetry_debugfs_cpu_ids[] = { - INTEL_CPU_FAM6(ATOM_GOLDMONT, telem_apl_debugfs_conf), - INTEL_CPU_FAM6(ATOM_GOLDMONT_PLUS, telem_apl_debugfs_conf), + X86_MATCH_INTEL_FAM6_MODEL(ATOM_GOLDMONT, &telem_apl_debugfs_conf), + X86_MATCH_INTEL_FAM6_MODEL(ATOM_GOLDMONT_PLUS, &telem_apl_debugfs_conf), {} }; - MODULE_DEVICE_TABLE(x86cpu, telemetry_debugfs_cpu_ids); static int telemetry_debugfs_check_evts(void) only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/platform/x86/intel_telemetry_pltdrv.c +++ linux-oem-5.6-5.6.0/drivers/platform/x86/intel_telemetry_pltdrv.c @@ -67,9 +67,6 @@ #define TELEM_CLEAR_VERBOSITY_BITS(x) ((x) &= ~(BIT(27) | BIT(28))) #define TELEM_SET_VERBOSITY_BITS(x, y) ((x) |= ((y) << 27)) -#define TELEM_CPU(model, data) \ - { X86_VENDOR_INTEL, 6, model, X86_FEATURE_ANY, (unsigned long)&data } - enum telemetry_action { TELEM_UPDATE = 0, TELEM_ADD, @@ -183,8 +180,8 @@ }; static const struct x86_cpu_id telemetry_cpu_ids[] = { - TELEM_CPU(INTEL_FAM6_ATOM_GOLDMONT, telem_apl_config), - TELEM_CPU(INTEL_FAM6_ATOM_GOLDMONT_PLUS, telem_glk_config), + X86_MATCH_INTEL_FAM6_MODEL(ATOM_GOLDMONT, &telem_apl_config), + X86_MATCH_INTEL_FAM6_MODEL(ATOM_GOLDMONT_PLUS, &telem_glk_config), {} }; only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/platform/x86/intel_turbo_max_3.c +++ linux-oem-5.6-5.6.0/drivers/platform/x86/intel_turbo_max_3.c @@ -113,11 +113,9 @@ return 0; } -#define ICPU(model) { X86_VENDOR_INTEL, 6, model, X86_FEATURE_ANY, } - static const struct x86_cpu_id itmt_legacy_cpu_ids[] = { - ICPU(INTEL_FAM6_BROADWELL_X), - ICPU(INTEL_FAM6_SKYLAKE_X), + X86_MATCH_INTEL_FAM6_MODEL(BROADWELL_X, NULL), + X86_MATCH_INTEL_FAM6_MODEL(SKYLAKE_X, NULL), {} }; only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/soc/qcom/Kconfig +++ linux-oem-5.6-5.6.0/drivers/soc/qcom/Kconfig @@ -88,7 +88,6 @@ config QCOM_QMI_HELPERS tristate - depends on ARCH_QCOM || COMPILE_TEST depends on NET config QCOM_RMTFS_MEM only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/thermal/intel/int340x_thermal/int340x_thermal_zone.c +++ linux-oem-5.6-5.6.0/drivers/thermal/intel/int340x_thermal/int340x_thermal_zone.c @@ -208,6 +208,7 @@ static struct thermal_zone_params int340x_thermal_params = { .governor_name = "user_space", .no_hwmon = true, + .userspace = true, }; struct int34x_thermal_zone *int340x_thermal_zone_add(struct acpi_device *adev, only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/thermal/intel/intel_pch_thermal.c +++ linux-oem-5.6-5.6.0/drivers/thermal/intel/intel_pch_thermal.c @@ -269,6 +269,10 @@ .get_trip_temp = pch_get_trip_temp, }; +static struct thermal_zone_params tzd_params = { + .userspace = true, +}; + enum board_ids { board_hsw, board_wpt, @@ -345,7 +349,7 @@ goto error_cleanup; ptd->tzd = thermal_zone_device_register(bi->name, nr_trips, 0, ptd, - &tzd_ops, NULL, 0, 0); + &tzd_ops, &tzd_params, 0, 0); if (IS_ERR(ptd->tzd)) { dev_err(&pdev->dev, "Failed to register thermal zone %s\n", bi->name); only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/drivers/thermal/thermal_core.c +++ linux-oem-5.6-5.6.0/drivers/thermal/thermal_core.c @@ -474,6 +474,9 @@ { int count; + if (tz->tzp && tz->tzp->userspace) + return; + if (atomic_read(&in_suspend)) return; only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/include/acpi/acpi_bus.h +++ linux-oem-5.6-5.6.0/include/acpi/acpi_bus.h @@ -614,7 +614,6 @@ bool acpi_pm_device_can_wakeup(struct device *dev); int acpi_pm_device_sleep_state(struct device *, int *, int); int acpi_pm_set_device_wakeup(struct device *dev, bool enable); -int acpi_pm_set_bridge_wakeup(struct device *dev, bool enable); #else static inline void acpi_pm_wakeup_event(struct device *dev) { @@ -645,10 +644,6 @@ { return -ENODEV; } -static inline int acpi_pm_set_bridge_wakeup(struct device *dev, bool enable) -{ - return -ENODEV; -} #endif #ifdef CONFIG_ACPI_SYSTEM_POWER_STATES_SUPPORT only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/include/linux/mhi.h +++ linux-oem-5.6-5.6.0/include/linux/mhi.h @@ -0,0 +1,739 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +/* + * Copyright (c) 2018-2020, The Linux Foundation. All rights reserved. + * + */ +#ifndef _MHI_H_ +#define _MHI_H_ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define MHI_MAX_OEM_PK_HASH_SEGMENTS 16 + +struct mhi_chan; +struct mhi_event; +struct mhi_ctxt; +struct mhi_cmd; +struct mhi_buf_info; + +/** + * enum mhi_callback - MHI callback + * @MHI_CB_IDLE: MHI entered idle state + * @MHI_CB_PENDING_DATA: New data available for client to process + * @MHI_CB_LPM_ENTER: MHI host entered low power mode + * @MHI_CB_LPM_EXIT: MHI host about to exit low power mode + * @MHI_CB_EE_RDDM: MHI device entered RDDM exec env + * @MHI_CB_EE_MISSION_MODE: MHI device entered Mission Mode exec env + * @MHI_CB_SYS_ERROR: MHI device entered error state (may recover) + * @MHI_CB_FATAL_ERROR: MHI device entered fatal error state + * @MHI_CB_BW_REQ: Received a bandwidth switch request from device + */ +enum mhi_callback { + MHI_CB_IDLE, + MHI_CB_PENDING_DATA, + MHI_CB_LPM_ENTER, + MHI_CB_LPM_EXIT, + MHI_CB_EE_RDDM, + MHI_CB_EE_MISSION_MODE, + MHI_CB_SYS_ERROR, + MHI_CB_FATAL_ERROR, + MHI_CB_BW_REQ, +}; + +/** + * enum mhi_flags - Transfer flags + * @MHI_EOB: End of buffer for bulk transfer + * @MHI_EOT: End of transfer + * @MHI_CHAIN: Linked transfer + */ +enum mhi_flags { + MHI_EOB, + MHI_EOT, + MHI_CHAIN, +}; + +/** + * enum mhi_device_type - Device types + * @MHI_DEVICE_XFER: Handles data transfer + * @MHI_DEVICE_CONTROLLER: Control device + */ +enum mhi_device_type { + MHI_DEVICE_XFER, + MHI_DEVICE_CONTROLLER, +}; + +/** + * enum mhi_ch_type - Channel types + * @MHI_CH_TYPE_INVALID: Invalid channel type + * @MHI_CH_TYPE_OUTBOUND: Outbound channel to the device + * @MHI_CH_TYPE_INBOUND: Inbound channel from the device + * @MHI_CH_TYPE_INBOUND_COALESCED: Coalesced channel for the device to combine + * multiple packets and send them as a single + * large packet to reduce CPU consumption + */ +enum mhi_ch_type { + MHI_CH_TYPE_INVALID = 0, + MHI_CH_TYPE_OUTBOUND = DMA_TO_DEVICE, + MHI_CH_TYPE_INBOUND = DMA_FROM_DEVICE, + MHI_CH_TYPE_INBOUND_COALESCED = 3, +}; + +/** + * struct image_info - Firmware and RDDM table table + * @mhi_buf - Buffer for firmware and RDDM table + * @entries - # of entries in table + */ +struct image_info { + struct mhi_buf *mhi_buf; + struct bhi_vec_entry *bhi_vec; + u32 entries; +}; + +/** + * struct mhi_link_info - BW requirement + * target_link_speed - Link speed as defined by TLS bits in LinkControl reg + * target_link_width - Link width as defined by NLW bits in LinkStatus reg + */ +struct mhi_link_info { + unsigned int target_link_speed; + unsigned int target_link_width; +}; + +/** + * enum mhi_ee_type - Execution environment types + * @MHI_EE_PBL: Primary Bootloader + * @MHI_EE_SBL: Secondary Bootloader + * @MHI_EE_AMSS: Modem, aka the primary runtime EE + * @MHI_EE_RDDM: Ram dump download mode + * @MHI_EE_WFW: WLAN firmware mode + * @MHI_EE_PTHRU: Passthrough + * @MHI_EE_EDL: Embedded downloader + */ +enum mhi_ee_type { + MHI_EE_PBL, + MHI_EE_SBL, + MHI_EE_AMSS, + MHI_EE_RDDM, + MHI_EE_WFW, + MHI_EE_PTHRU, + MHI_EE_EDL, + MHI_EE_MAX_SUPPORTED = MHI_EE_EDL, + MHI_EE_DISABLE_TRANSITION, /* local EE, not related to mhi spec */ + MHI_EE_NOT_SUPPORTED, + MHI_EE_MAX, +}; + +/** + * enum mhi_state - MHI states + * @MHI_STATE_RESET: Reset state + * @MHI_STATE_READY: Ready state + * @MHI_STATE_M0: M0 state + * @MHI_STATE_M1: M1 state + * @MHI_STATE_M2: M2 state + * @MHI_STATE_M3: M3 state + * @MHI_STATE_M3_FAST: M3 Fast state + * @MHI_STATE_BHI: BHI state + * @MHI_STATE_SYS_ERR: System Error state + */ +enum mhi_state { + MHI_STATE_RESET = 0x0, + MHI_STATE_READY = 0x1, + MHI_STATE_M0 = 0x2, + MHI_STATE_M1 = 0x3, + MHI_STATE_M2 = 0x4, + MHI_STATE_M3 = 0x5, + MHI_STATE_M3_FAST = 0x6, + MHI_STATE_BHI = 0x7, + MHI_STATE_SYS_ERR = 0xFF, + MHI_STATE_MAX, +}; + +/** + * enum mhi_ch_ee_mask - Execution environment mask for channel + * @MHI_CH_EE_PBL: Allow channel to be used in PBL EE + * @MHI_CH_EE_SBL: Allow channel to be used in SBL EE + * @MHI_CH_EE_AMSS: Allow channel to be used in AMSS EE + * @MHI_CH_EE_RDDM: Allow channel to be used in RDDM EE + * @MHI_CH_EE_PTHRU: Allow channel to be used in PTHRU EE + * @MHI_CH_EE_WFW: Allow channel to be used in WFW EE + * @MHI_CH_EE_EDL: Allow channel to be used in EDL EE + */ +enum mhi_ch_ee_mask { + MHI_CH_EE_PBL = BIT(MHI_EE_PBL), + MHI_CH_EE_SBL = BIT(MHI_EE_SBL), + MHI_CH_EE_AMSS = BIT(MHI_EE_AMSS), + MHI_CH_EE_RDDM = BIT(MHI_EE_RDDM), + MHI_CH_EE_PTHRU = BIT(MHI_EE_PTHRU), + MHI_CH_EE_WFW = BIT(MHI_EE_WFW), + MHI_CH_EE_EDL = BIT(MHI_EE_EDL), +}; + +/** + * enum mhi_er_data_type - Event ring data types + * @MHI_ER_DATA: Only client data over this ring + * @MHI_ER_CTRL: MHI control data and client data + */ +enum mhi_er_data_type { + MHI_ER_DATA, + MHI_ER_CTRL, +}; + +/** + * enum mhi_db_brst_mode - Doorbell mode + * @MHI_DB_BRST_DISABLE: Burst mode disable + * @MHI_DB_BRST_ENABLE: Burst mode enable + */ +enum mhi_db_brst_mode { + MHI_DB_BRST_DISABLE = 0x2, + MHI_DB_BRST_ENABLE = 0x3, +}; + +/** + * struct mhi_channel_config - Channel configuration structure for controller + * @name: The name of this channel + * @num: The number assigned to this channel + * @num_elements: The number of elements that can be queued to this channel + * @local_elements: The local ring length of the channel + * @event_ring: The event rung index that services this channel + * @dir: Direction that data may flow on this channel + * @type: Channel type + * @ee_mask: Execution Environment mask for this channel + * @pollcfg: Polling configuration for burst mode. 0 is default. milliseconds + for UL channels, multiple of 8 ring elements for DL channels + * @doorbell: Doorbell mode + * @lpm_notify: The channel master requires low power mode notifications + * @offload_channel: The client manages the channel completely + * @doorbell_mode_switch: Channel switches to doorbell mode on M0 transition + * @auto_queue: Framework will automatically queue buffers for DL traffic + * @auto_start: Automatically start (open) this channel + * @wake-capable: Channel capable of waking up the system + */ +struct mhi_channel_config { + char *name; + u32 num; + u32 num_elements; + u32 local_elements; + u32 event_ring; + enum dma_data_direction dir; + enum mhi_ch_type type; + u32 ee_mask; + u32 pollcfg; + enum mhi_db_brst_mode doorbell; + bool lpm_notify; + bool offload_channel; + bool doorbell_mode_switch; + bool auto_queue; + bool auto_start; + bool wake_capable; +}; + +/** + * struct mhi_event_config - Event ring configuration structure for controller + * @num_elements: The number of elements that can be queued to this ring + * @irq_moderation_ms: Delay irq for additional events to be aggregated + * @irq: IRQ associated with this ring + * @channel: Dedicated channel number. U32_MAX indicates a non-dedicated ring + * @priority: Priority of this ring. Use 1 for now + * @mode: Doorbell mode + * @data_type: Type of data this ring will process + * @hardware_event: This ring is associated with hardware channels + * @client_managed: This ring is client managed + * @offload_channel: This ring is associated with an offloaded channel + */ +struct mhi_event_config { + u32 num_elements; + u32 irq_moderation_ms; + u32 irq; + u32 channel; + u32 priority; + enum mhi_db_brst_mode mode; + enum mhi_er_data_type data_type; + bool hardware_event; + bool client_managed; + bool offload_channel; +}; + +/** + * struct mhi_controller_config - Root MHI controller configuration + * @max_channels: Maximum number of channels supported + * @timeout_ms: Timeout value for operations. 0 means use default + * @buf_len: Size of automatically allocated buffers. 0 means use default + * @num_channels: Number of channels defined in @ch_cfg + * @ch_cfg: Array of defined channels + * @num_events: Number of event rings defined in @event_cfg + * @event_cfg: Array of defined event rings + * @use_bounce_buf: Use a bounce buffer pool due to limited DDR access + * @m2_no_db: Host is not allowed to ring DB in M2 state + */ +struct mhi_controller_config { + u32 max_channels; + u32 timeout_ms; + u32 buf_len; + u32 num_channels; + const struct mhi_channel_config *ch_cfg; + u32 num_events; + const struct mhi_event_config *event_cfg; + bool use_bounce_buf; + bool m2_no_db; +}; + +/** + * struct mhi_controller - Master MHI controller structure + * @cntrl_dev: Pointer to the struct device of physical bus acting as the MHI + * controller (required) + * @mhi_dev: MHI device instance for the controller + * @debugfs_dentry: MHI controller debugfs directory + * @regs: Base address of MHI MMIO register space (required) + * @bhi: Points to base of MHI BHI register space + * @bhie: Points to base of MHI BHIe register space + * @wake_db: MHI WAKE doorbell register address + * @iova_start: IOMMU starting address for data (required) + * @iova_stop: IOMMU stop address for data (required) + * @fw_image: Firmware image name for normal booting (required) + * @edl_image: Firmware image name for emergency download mode (optional) + * @rddm_size: RAM dump size that host should allocate for debugging purpose + * @sbl_size: SBL image size downloaded through BHIe (optional) + * @seg_len: BHIe vector size (optional) + * @fbc_image: Points to firmware image buffer + * @rddm_image: Points to RAM dump buffer + * @mhi_chan: Points to the channel configuration table + * @lpm_chans: List of channels that require LPM notifications + * @irq: base irq # to request (required) + * @max_chan: Maximum number of channels the controller supports + * @total_ev_rings: Total # of event rings allocated + * @hw_ev_rings: Number of hardware event rings + * @sw_ev_rings: Number of software event rings + * @nr_irqs: Number of IRQ allocated by bus master (required) + * @family_number: MHI controller family number + * @device_number: MHI controller device number + * @major_version: MHI controller major revision number + * @minor_version: MHI controller minor revision number + * @serial_number: MHI controller serial number obtained from BHI + * @oem_pk_hash: MHI controller OEM PK Hash obtained from BHI + * @mhi_event: MHI event ring configurations table + * @mhi_cmd: MHI command ring configurations table + * @mhi_ctxt: MHI device context, shared memory between host and device + * @pm_mutex: Mutex for suspend/resume operation + * @pm_lock: Lock for protecting MHI power management state + * @timeout_ms: Timeout in ms for state transitions + * @pm_state: MHI power management state + * @db_access: DB access states + * @ee: MHI device execution environment + * @dev_state: MHI device state + * @dev_wake: Device wakeup count + * @pending_pkts: Pending packets for the controller + * @M0, M2, M3: Counters to track number of device MHI state changes + * @transition_list: List of MHI state transitions + * @transition_lock: Lock for protecting MHI state transition list + * @wlock: Lock for protecting device wakeup + * @mhi_link_info: Device bandwidth info + * @st_worker: State transition worker + * @state_event: State change event + * @status_cb: CB function to notify power states of the device (required) + * @wake_get: CB function to assert device wake (optional) + * @wake_put: CB function to de-assert device wake (optional) + * @wake_toggle: CB function to assert and de-assert device wake (optional) + * @runtime_get: CB function to controller runtime resume (required) + * @runtimet_put: CB function to decrement pm usage (required) + * @map_single: CB function to create TRE buffer + * @unmap_single: CB function to destroy TRE buffer + * @read_reg: Read a MHI register via the physical link (required) + * @write_reg: Write a MHI register via the physical link (required) + * @buffer_len: Bounce buffer length + * @bounce_buf: Use of bounce buffer + * @fbc_download: MHI host needs to do complete image transfer (optional) + * @pre_init: MHI host needs to do pre-initialization before power up + * @wake_set: Device wakeup set flag + * + * Fields marked as (required) need to be populated by the controller driver + * before calling mhi_register_controller(). For the fields marked as (optional) + * they can be populated depending on the usecase. + * + * The following fields are present for the purpose of implementing any device + * specific quirks or customizations for specific MHI revisions used in device + * by the controller drivers. The MHI stack will just populate these fields + * during mhi_register_controller(): + * family_number + * device_number + * major_version + * minor_version + */ +struct mhi_controller { + struct device *cntrl_dev; + struct mhi_device *mhi_dev; + struct dentry *debugfs_dentry; + void __iomem *regs; + void __iomem *bhi; + void __iomem *bhie; + void __iomem *wake_db; + + dma_addr_t iova_start; + dma_addr_t iova_stop; + const char *fw_image; + const char *edl_image; + size_t rddm_size; + size_t sbl_size; + size_t seg_len; + struct image_info *fbc_image; + struct image_info *rddm_image; + struct mhi_chan *mhi_chan; + struct list_head lpm_chans; + int *irq; + u32 max_chan; + u32 total_ev_rings; + u32 hw_ev_rings; + u32 sw_ev_rings; + u32 nr_irqs; + u32 family_number; + u32 device_number; + u32 major_version; + u32 minor_version; + u32 serial_number; + u32 oem_pk_hash[MHI_MAX_OEM_PK_HASH_SEGMENTS]; + + struct mhi_event *mhi_event; + struct mhi_cmd *mhi_cmd; + struct mhi_ctxt *mhi_ctxt; + + struct mutex pm_mutex; + rwlock_t pm_lock; + u32 timeout_ms; + u32 pm_state; + u32 db_access; + enum mhi_ee_type ee; + enum mhi_state dev_state; + atomic_t dev_wake; + atomic_t pending_pkts; + u32 M0, M2, M3; + struct list_head transition_list; + spinlock_t transition_lock; + spinlock_t wlock; + struct mhi_link_info mhi_link_info; + struct work_struct st_worker; + wait_queue_head_t state_event; + + void (*status_cb)(struct mhi_controller *mhi_cntrl, + enum mhi_callback cb); + void (*wake_get)(struct mhi_controller *mhi_cntrl, bool override); + void (*wake_put)(struct mhi_controller *mhi_cntrl, bool override); + void (*wake_toggle)(struct mhi_controller *mhi_cntrl); + int (*runtime_get)(struct mhi_controller *mhi_cntrl); + void (*runtime_put)(struct mhi_controller *mhi_cntrl); + int (*map_single)(struct mhi_controller *mhi_cntrl, + struct mhi_buf_info *buf); + void (*unmap_single)(struct mhi_controller *mhi_cntrl, + struct mhi_buf_info *buf); + int (*read_reg)(struct mhi_controller *mhi_cntrl, void __iomem *addr, + u32 *out); + void (*write_reg)(struct mhi_controller *mhi_cntrl, void __iomem *addr, + u32 val); + + size_t buffer_len; + bool bounce_buf; + bool fbc_download; + bool pre_init; + bool wake_set; +}; + +/** + * struct mhi_device - Structure representing an MHI device which binds + * to channels or is associated with controllers + * @id: Pointer to MHI device ID struct + * @name: Name of the associated MHI device + * @mhi_cntrl: Controller the device belongs to + * @ul_chan: UL channel for the device + * @dl_chan: DL channel for the device + * @dev: Driver model device node for the MHI device + * @dev_type: MHI device type + * @ul_chan_id: MHI channel id for UL transfer + * @dl_chan_id: MHI channel id for DL transfer + * @dev_wake: Device wakeup counter + */ +struct mhi_device { + const struct mhi_device_id *id; + const char *name; + struct mhi_controller *mhi_cntrl; + struct mhi_chan *ul_chan; + struct mhi_chan *dl_chan; + struct device dev; + enum mhi_device_type dev_type; + int ul_chan_id; + int dl_chan_id; + u32 dev_wake; +}; + +/** + * struct mhi_result - Completed buffer information + * @buf_addr: Address of data buffer + * @bytes_xferd: # of bytes transferred + * @dir: Channel direction + * @transaction_status: Status of last transaction + */ +struct mhi_result { + void *buf_addr; + size_t bytes_xferd; + enum dma_data_direction dir; + int transaction_status; +}; + +/** + * struct mhi_buf - MHI Buffer description + * @buf: Virtual address of the buffer + * @name: Buffer label. For offload channel, configurations name must be: + * ECA - Event context array data + * CCA - Channel context array data + * @dma_addr: IOMMU address of the buffer + * @len: # of bytes + */ +struct mhi_buf { + void *buf; + const char *name; + dma_addr_t dma_addr; + size_t len; +}; + +/** + * struct mhi_driver - Structure representing a MHI client driver + * @probe: CB function for client driver probe function + * @remove: CB function for client driver remove function + * @ul_xfer_cb: CB function for UL data transfer + * @dl_xfer_cb: CB function for DL data transfer + * @status_cb: CB functions for asynchronous status + * @driver: Device driver model driver + */ +struct mhi_driver { + const struct mhi_device_id *id_table; + int (*probe)(struct mhi_device *mhi_dev, + const struct mhi_device_id *id); + void (*remove)(struct mhi_device *mhi_dev); + void (*ul_xfer_cb)(struct mhi_device *mhi_dev, + struct mhi_result *result); + void (*dl_xfer_cb)(struct mhi_device *mhi_dev, + struct mhi_result *result); + void (*status_cb)(struct mhi_device *mhi_dev, enum mhi_callback mhi_cb); + struct device_driver driver; +}; + +#define to_mhi_driver(drv) container_of(drv, struct mhi_driver, driver) +#define to_mhi_device(dev) container_of(dev, struct mhi_device, dev) + +/** + * mhi_alloc_controller - Allocate the MHI Controller structure + * Allocate the mhi_controller structure using zero initialized memory + */ +struct mhi_controller *mhi_alloc_controller(void); + +/** + * mhi_free_controller - Free the MHI Controller structure + * Free the mhi_controller structure which was previously allocated + */ +void mhi_free_controller(struct mhi_controller *mhi_cntrl); + +/** + * mhi_register_controller - Register MHI controller + * @mhi_cntrl: MHI controller to register + * @config: Configuration to use for the controller + */ +int mhi_register_controller(struct mhi_controller *mhi_cntrl, + const struct mhi_controller_config *config); + +/** + * mhi_unregister_controller - Unregister MHI controller + * @mhi_cntrl: MHI controller to unregister + */ +void mhi_unregister_controller(struct mhi_controller *mhi_cntrl); + +/* + * module_mhi_driver() - Helper macro for drivers that don't do + * anything special other than using default mhi_driver_register() and + * mhi_driver_unregister(). This eliminates a lot of boilerplate. + * Each module may only use this macro once. + */ +#define module_mhi_driver(mhi_drv) \ + module_driver(mhi_drv, mhi_driver_register, \ + mhi_driver_unregister) + +/* + * Macro to avoid include chaining to get THIS_MODULE + */ +#define mhi_driver_register(mhi_drv) \ + __mhi_driver_register(mhi_drv, THIS_MODULE) + +/** + * __mhi_driver_register - Register driver with MHI framework + * @mhi_drv: Driver associated with the device + * @owner: The module owner + */ +int __mhi_driver_register(struct mhi_driver *mhi_drv, struct module *owner); + +/** + * mhi_driver_unregister - Unregister a driver for mhi_devices + * @mhi_drv: Driver associated with the device + */ +void mhi_driver_unregister(struct mhi_driver *mhi_drv); + +/** + * mhi_set_mhi_state - Set MHI device state + * @mhi_cntrl: MHI controller + * @state: State to set + */ +void mhi_set_mhi_state(struct mhi_controller *mhi_cntrl, + enum mhi_state state); + +/** + * mhi_notify - Notify the MHI client driver about client device status + * @mhi_dev: MHI device instance + * @cb_reason: MHI callback reason + */ +void mhi_notify(struct mhi_device *mhi_dev, enum mhi_callback cb_reason); + +/** + * mhi_prepare_for_power_up - Do pre-initialization before power up. + * This is optional, call this before power up if + * the controller does not want bus framework to + * automatically free any allocated memory during + * shutdown process. + * @mhi_cntrl: MHI controller + */ +int mhi_prepare_for_power_up(struct mhi_controller *mhi_cntrl); + +/** + * mhi_async_power_up - Start MHI power up sequence + * @mhi_cntrl: MHI controller + */ +int mhi_async_power_up(struct mhi_controller *mhi_cntrl); + +/** + * mhi_sync_power_up - Start MHI power up sequence and wait till the device + * device enters valid EE state + * @mhi_cntrl: MHI controller + */ +int mhi_sync_power_up(struct mhi_controller *mhi_cntrl); + +/** + * mhi_power_down - Start MHI power down sequence + * @mhi_cntrl: MHI controller + * @graceful: Link is still accessible, so do a graceful shutdown process + */ +void mhi_power_down(struct mhi_controller *mhi_cntrl, bool graceful); + +/** + * mhi_unprepare_after_power_down - Free any allocated memory after power down + * @mhi_cntrl: MHI controller + */ +void mhi_unprepare_after_power_down(struct mhi_controller *mhi_cntrl); + +/** + * mhi_pm_suspend - Move MHI into a suspended state + * @mhi_cntrl: MHI controller + */ +int mhi_pm_suspend(struct mhi_controller *mhi_cntrl); + +/** + * mhi_pm_resume - Resume MHI from suspended state + * @mhi_cntrl: MHI controller + */ +int mhi_pm_resume(struct mhi_controller *mhi_cntrl); + +/** + * mhi_download_rddm_img - Download ramdump image from device for + * debugging purpose. + * @mhi_cntrl: MHI controller + * @in_panic: Download rddm image during kernel panic + */ +int mhi_download_rddm_img(struct mhi_controller *mhi_cntrl, bool in_panic); + +/** + * mhi_force_rddm_mode - Force device into rddm mode + * @mhi_cntrl: MHI controller + */ +int mhi_force_rddm_mode(struct mhi_controller *mhi_cntrl); + +/** + * mhi_get_mhi_state - Get MHI state of the device + * @mhi_cntrl: MHI controller + */ +enum mhi_state mhi_get_mhi_state(struct mhi_controller *mhi_cntrl); + +/** + * mhi_device_get - Disable device low power mode + * @mhi_dev: Device associated with the channel + */ +void mhi_device_get(struct mhi_device *mhi_dev); + +/** + * mhi_device_get_sync - Disable device low power mode. Synchronously + * take the controller out of suspended state + * @mhi_dev: Device associated with the channel + */ +int mhi_device_get_sync(struct mhi_device *mhi_dev); + +/** + * mhi_device_put - Re-enable device low power mode + * @mhi_dev: Device associated with the channel + */ +void mhi_device_put(struct mhi_device *mhi_dev); + +/** + * mhi_prepare_for_transfer - Setup channel for data transfer + * @mhi_dev: Device associated with the channels + */ +int mhi_prepare_for_transfer(struct mhi_device *mhi_dev); + +/** + * mhi_unprepare_from_transfer - Unprepare the channels + * @mhi_dev: Device associated with the channels + */ +void mhi_unprepare_from_transfer(struct mhi_device *mhi_dev); + +/** + * mhi_poll - Poll for any available data in DL direction + * @mhi_dev: Device associated with the channels + * @budget: # of events to process + */ +int mhi_poll(struct mhi_device *mhi_dev, u32 budget); + +/** + * mhi_queue_dma - Send or receive DMA mapped buffers from client device + * over MHI channel + * @mhi_dev: Device associated with the channels + * @dir: DMA direction for the channel + * @mhi_buf: Buffer for holding the DMA mapped data + * @len: Buffer length + * @mflags: MHI transfer flags used for the transfer + */ +int mhi_queue_dma(struct mhi_device *mhi_dev, enum dma_data_direction dir, + struct mhi_buf *mhi_buf, size_t len, enum mhi_flags mflags); + +/** + * mhi_queue_buf - Send or receive raw buffers from client device over MHI + * channel + * @mhi_dev: Device associated with the channels + * @dir: DMA direction for the channel + * @buf: Buffer for holding the data + * @len: Buffer length + * @mflags: MHI transfer flags used for the transfer + */ +int mhi_queue_buf(struct mhi_device *mhi_dev, enum dma_data_direction dir, + void *buf, size_t len, enum mhi_flags mflags); + +/** + * mhi_queue_skb - Send or receive SKBs from client device over MHI channel + * @mhi_dev: Device associated with the channels + * @dir: DMA direction for the channel + * @skb: Buffer for holding SKBs + * @len: Buffer length + * @mflags: MHI transfer flags used for the transfer + */ +int mhi_queue_skb(struct mhi_device *mhi_dev, enum dma_data_direction dir, + struct sk_buff *skb, size_t len, enum mhi_flags mflags); + +#endif /* _MHI_H_ */ only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/include/linux/thermal.h +++ linux-oem-5.6-5.6.0/include/linux/thermal.h @@ -276,6 +276,8 @@ */ bool no_hwmon; + bool userspace; + int num_tbps; /* Number of tbp entries */ struct thermal_bind_params *tbp; only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/include/net/bluetooth/hci.h +++ linux-oem-5.6-5.6.0/include/net/bluetooth/hci.h @@ -205,6 +205,15 @@ * */ HCI_QUIRK_NON_PERSISTENT_SETUP, + + /* When this quirk is set, wide band speech is supported by + * the driver since no reliable mechanism exist to report + * this from the hardware, a driver flag is use to convey + * this support + * + * This quirk must be set before hci_register_dev is called. + */ + HCI_QUIRK_WIDEBAND_SPEECH_SUPPORTED, }; /* HCI device flags */ @@ -277,6 +286,7 @@ HCI_FAST_CONNECTABLE, HCI_BREDR_ENABLED, HCI_LE_SCAN_INTERRUPTED, + HCI_WIDEBAND_SPEECH_ENABLED, HCI_DUT_MODE, HCI_VENDOR_DIAG, @@ -935,7 +945,7 @@ struct hci_cp_set_event_flt { __u8 flt_type; __u8 cond_type; - __u8 condition[0]; + __u8 condition[]; } __packed; /* Filter types */ @@ -1086,6 +1096,19 @@ __s8 tx_power; } __packed; +#define HCI_OP_READ_DEF_ERR_DATA_REPORTING 0x0c5a + #define ERR_DATA_REPORTING_DISABLED 0x00 + #define ERR_DATA_REPORTING_ENABLED 0x01 +struct hci_rp_read_def_err_data_reporting { + __u8 status; + __u8 err_data_reporting; +} __packed; + +#define HCI_OP_WRITE_DEF_ERR_DATA_REPORTING 0x0c5b +struct hci_cp_write_def_err_data_reporting { + __u8 err_data_reporting; +} __packed; + #define HCI_OP_SET_EVENT_MASK_PAGE_2 0x0c63 #define HCI_OP_READ_LOCATION_DATA 0x0c64 @@ -1335,7 +1358,7 @@ __u8 status; __u8 phy_handle; __le16 rem_len; - __u8 frag[0]; + __u8 frag[]; } __packed; #define HCI_OP_WRITE_REMOTE_AMP_ASSOC 0x140b @@ -1343,7 +1366,7 @@ __u8 phy_handle; __le16 len_so_far; __le16 rem_len; - __u8 frag[0]; + __u8 frag[]; } __packed; struct hci_rp_write_remote_amp_assoc { __u8 status; @@ -1613,7 +1636,7 @@ __u8 own_addr_type; __u8 filter_policy; __u8 scanning_phys; - __u8 data[0]; + __u8 data[]; } __packed; #define LE_SCAN_PHY_1M 0x01 @@ -1641,7 +1664,7 @@ __u8 peer_addr_type; bdaddr_t peer_addr; __u8 phys; - __u8 data[0]; + __u8 data[]; } __packed; struct hci_cp_le_ext_conn_param { @@ -1693,7 +1716,7 @@ struct hci_cp_le_set_ext_adv_enable { __u8 enable; __u8 num_of_sets; - __u8 data[0]; + __u8 data[]; } __packed; struct hci_cp_ext_adv_set { @@ -1775,14 +1798,14 @@ __le16 m_latency; __le16 s_latency; __u8 num_cis; - struct hci_cis_params cis[0]; + struct hci_cis_params cis[]; } __packed; struct hci_rp_le_set_cig_params { __u8 status; __u8 cig_id; __u8 num_handles; - __le16 handle[0]; + __le16 handle[]; } __packed; #define HCI_OP_LE_CREATE_CIS 0x2064 @@ -1793,7 +1816,7 @@ struct hci_cp_le_create_cis { __u8 num_cis; - struct hci_cis cis[0]; + struct hci_cis cis[]; } __packed; #define HCI_OP_LE_REMOVE_CIG 0x2065 @@ -1937,7 +1960,7 @@ struct hci_ev_num_comp_pkts { __u8 num_hndl; - struct hci_comp_pkts_info handles[0]; + struct hci_comp_pkts_info handles[]; } __packed; #define HCI_EV_MODE_CHANGE 0x14 @@ -2170,7 +2193,7 @@ struct hci_ev_num_comp_blocks { __le16 num_blocks; __u8 num_hndl; - struct hci_comp_blocks_info handles[0]; + struct hci_comp_blocks_info handles[]; } __packed; #define HCI_EV_SYNC_TRAIN_COMPLETE 0x4F @@ -2226,7 +2249,7 @@ __u8 bdaddr_type; bdaddr_t bdaddr; __u8 length; - __u8 data[0]; + __u8 data[]; } __packed; #define HCI_EV_LE_CONN_UPDATE_COMPLETE 0x03 @@ -2302,7 +2325,7 @@ __u8 direct_addr_type; bdaddr_t direct_addr; __u8 length; - __u8 data[0]; + __u8 data[]; } __packed; #define HCI_EV_LE_ENHANCED_CONN_COMPLETE 0x0a @@ -2362,7 +2385,7 @@ #define HCI_EV_STACK_INTERNAL 0xfd struct hci_ev_stack_internal { __u16 type; - __u8 data[0]; + __u8 data[]; } __packed; #define HCI_EV_SI_DEVICE 0x01 @@ -2409,7 +2432,7 @@ struct hci_iso_hdr { __le16 handle; __le16 dlen; - __u8 data[0]; + __u8 data[]; } __packed; /* ISO data packet status flags */ only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/include/net/bluetooth/hci_core.h +++ linux-oem-5.6-5.6.0/include/net/bluetooth/hci_core.h @@ -260,6 +260,7 @@ __u8 stored_num_keys; __u8 io_capability; __s8 inq_tx_power; + __u8 err_data_reporting; __u16 page_scan_interval; __u16 page_scan_window; __u8 page_scan_type; only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/include/net/bluetooth/hci_sock.h +++ linux-oem-5.6-5.6.0/include/net/bluetooth/hci_sock.h @@ -144,19 +144,19 @@ struct hci_dev_list_req { __u16 dev_num; - struct hci_dev_req dev_req[0]; /* hci_dev_req structures */ + struct hci_dev_req dev_req[]; /* hci_dev_req structures */ }; struct hci_conn_list_req { __u16 dev_id; __u16 conn_num; - struct hci_conn_info conn_info[0]; + struct hci_conn_info conn_info[]; }; struct hci_conn_info_req { bdaddr_t bdaddr; __u8 type; - struct hci_conn_info conn_info[0]; + struct hci_conn_info conn_info[]; }; struct hci_auth_info_req { only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/include/net/bluetooth/mgmt.h +++ linux-oem-5.6-5.6.0/include/net/bluetooth/mgmt.h @@ -101,7 +101,8 @@ #define MGMT_SETTING_PRIVACY 0x00002000 #define MGMT_SETTING_CONFIGURATION 0x00004000 #define MGMT_SETTING_STATIC_ADDRESS 0x00008000 -#define MGMT_SETTING_PHY_CONFIGURATION 0x00010000 +#define MGMT_SETTING_PHY_CONFIGURATION 0x00010000 +#define MGMT_SETTING_WIDEBAND_SPEECH 0x00020000 #define MGMT_OP_READ_INFO 0x0004 #define MGMT_READ_INFO_SIZE 0 @@ -671,6 +672,8 @@ } __packed; #define MGMT_OP_SET_BLOCKED_KEYS_SIZE 2 +#define MGMT_OP_SET_WIDEBAND_SPEECH 0x0047 + #define MGMT_EV_CMD_COMPLETE 0x0001 struct mgmt_ev_cmd_complete { __le16 opcode; only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/include/net/bluetooth/rfcomm.h +++ linux-oem-5.6-5.6.0/include/net/bluetooth/rfcomm.h @@ -356,7 +356,7 @@ struct rfcomm_dev_list_req { u16 dev_num; - struct rfcomm_dev_info dev_info[0]; + struct rfcomm_dev_info dev_info[]; }; int rfcomm_dev_ioctl(struct sock *sk, unsigned int cmd, void __user *arg); only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/include/net/cfg80211.h +++ linux-oem-5.6-5.6.0/include/net/cfg80211.h @@ -7,7 +7,7 @@ * Copyright 2006-2010 Johannes Berg * Copyright 2013-2014 Intel Mobile Communications GmbH * Copyright 2015-2017 Intel Deutschland GmbH - * Copyright (C) 2018-2019 Intel Corporation + * Copyright (C) 2018-2020 Intel Corporation */ #include @@ -260,6 +260,32 @@ }; /** + * struct cfg80211_he_bss_color - AP settings for BSS coloring + * + * @color: the current color. + * @enabled: HE BSS color is used + * @partial: define the AID equation. + */ +struct cfg80211_he_bss_color { + u8 color; + bool enabled; + bool partial; +}; + +/** + * struct ieee80211_he_bss_color - AP settings for BSS coloring + * + * @color: the current color. + * @disabled: is the feature disabled. + * @partial: define the AID equation. + */ +struct ieee80211_he_bss_color { + u8 color; + bool disabled; + bool partial; +}; + +/** * struct ieee80211_sta_ht_cap - STA's HT capabilities * * This structure describes most essential parameters needed @@ -324,10 +350,13 @@ * * @types_mask: interface types mask * @he_cap: holds the HE capabilities + * @he_6ghz_capa: HE 6 GHz capabilities, must be filled in for a + * 6 GHz band channel (and 0 may be valid value). */ struct ieee80211_sband_iftype_data { u16 types_mask; struct ieee80211_sta_he_cap he_cap; + struct ieee80211_he_6ghz_capa he_6ghz_capa; }; /** @@ -480,6 +509,26 @@ } /** + * ieee80211_get_he_6ghz_capa - return HE 6 GHz capabilities + * @sband: the sband to search for the STA on + * @iftype: the iftype to search for + * + * Return: the 6GHz capabilities + */ +static inline __le16 +ieee80211_get_he_6ghz_capa(const struct ieee80211_supported_band *sband, + enum nl80211_iftype iftype) +{ + const struct ieee80211_sband_iftype_data *data = + ieee80211_get_sband_iftype_data(sband, iftype); + + if (WARN_ON(!data || !data->he_cap.has_he)) + return 0; + + return data->he_6ghz_capa.capa; +} + +/** * wiphy_read_of_freq_limits - read frequency limits from device tree * * @wiphy: the wireless device to get extra limits for @@ -990,6 +1039,8 @@ * @twt_responder: Enable Target Wait Time * @flags: flags, as defined in enum cfg80211_ap_settings_flags * @he_obss_pd: OBSS Packet Detection settings + * @he_bss_color: BSS Color settings + * @he_oper: HE operation IE (or %NULL if HE isn't enabled) */ struct cfg80211_ap_settings { struct cfg80211_chan_def chandef; @@ -1014,10 +1065,12 @@ const struct ieee80211_ht_cap *ht_cap; const struct ieee80211_vht_cap *vht_cap; const struct ieee80211_he_cap_elem *he_cap; + const struct ieee80211_he_operation *he_oper; bool ht_required, vht_required; bool twt_responder; u32 flags; struct ieee80211_he_obss_pd he_obss_pd; + struct cfg80211_he_bss_color he_bss_color; }; /** @@ -1154,6 +1207,8 @@ * @he_capa: HE capabilities of station * @he_capa_len: the length of the HE capabilities * @airtime_weight: airtime scheduler weight for this station + * @txpwr: transmit power for an associated station + * @he_6ghz_capa: HE 6 GHz Band capabilities of station */ struct station_parameters { const u8 *supported_rates; @@ -1186,6 +1241,7 @@ u8 he_capa_len; u16 airtime_weight; struct sta_txpwr txpwr; + const struct ieee80211_he_6ghz_capa *he_6ghz_capa; }; /** @@ -3945,7 +4001,8 @@ struct net_device *dev, const u8 *buf, size_t len, const u8 *dest, const __be16 proto, - const bool noencrypt); + const bool noencrypt, + u64 *cookie); int (*get_ftm_responder_stats)(struct wiphy *wiphy, struct net_device *dev, @@ -4542,6 +4599,9 @@ * @txq_memory_limit: configuration internal TX queue memory limit * @txq_quantum: configuration of internal TX queue scheduler quantum * + * @tx_queue_len: allow setting transmit queue len for drivers not using + * wake_tx_queue + * * @support_mbssid: can HW support association with nontransmitted AP * @support_only_he_mbssid: don't parse MBSSID elements if it is not * HE AP, in order to avoid compatibility issues. @@ -4687,6 +4747,8 @@ u32 txq_memory_limit; u32 txq_quantum; + unsigned long tx_queue_len; + u8 support_mbssid:1, support_only_he_mbssid:1; @@ -5044,6 +5106,21 @@ struct ieee80211_channel *ieee80211_get_channel(struct wiphy *wiphy, int freq); /** + * cfg80211_channel_is_psc - Check if the channel is a 6 GHz PSC + * @chan: control channel to check + * + * The Preferred Scanning Channels (PSC) are defined in + * Draft IEEE P802.11ax/D5.0, 26.17.2.3.3 + */ +static inline bool cfg80211_channel_is_psc(struct ieee80211_channel *chan) +{ + if (chan->band != NL80211_BAND_6GHZ) + return false; + + return ieee80211_frequency_to_channel(chan->center_freq) % 16 == 5; +} + +/** * ieee80211_get_response_rate - get basic rate for a given rate * * @sband: the band to look for rates in @@ -6792,6 +6869,23 @@ void cfg80211_mgmt_tx_status(struct wireless_dev *wdev, u64 cookie, const u8 *buf, size_t len, bool ack, gfp_t gfp); +/** + * cfg80211_control_port_tx_status - notification of TX status for control + * port frames + * @wdev: wireless device receiving the frame + * @cookie: Cookie returned by cfg80211_ops::tx_control_port() + * @buf: Data frame (header + body) + * @len: length of the frame data + * @ack: Whether frame was acknowledged + * @gfp: context flags + * + * This function is called whenever a control port frame was requested to be + * transmitted with cfg80211_ops::tx_control_port() to report the TX status of + * the transmission attempt. + */ +void cfg80211_control_port_tx_status(struct wireless_dev *wdev, u64 cookie, + const u8 *buf, size_t len, bool ack, + gfp_t gfp); /** * cfg80211_rx_control_port - notification about a received control port frame only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/include/trace/events/qrtr.h +++ linux-oem-5.6-5.6.0/include/trace/events/qrtr.h @@ -0,0 +1,115 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM qrtr + +#if !defined(_TRACE_QRTR_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_QRTR_H + +#include +#include + +TRACE_EVENT(qrtr_ns_service_announce_new, + + TP_PROTO(__le32 service, __le32 instance, __le32 node, __le32 port), + + TP_ARGS(service, instance, node, port), + + TP_STRUCT__entry( + __field(__le32, service) + __field(__le32, instance) + __field(__le32, node) + __field(__le32, port) + ), + + TP_fast_assign( + __entry->service = service; + __entry->instance = instance; + __entry->node = node; + __entry->port = port; + ), + + TP_printk("advertising new server [%d:%x]@[%d:%d]", + __entry->service, __entry->instance, __entry->node, + __entry->port + ) +); + +TRACE_EVENT(qrtr_ns_service_announce_del, + + TP_PROTO(__le32 service, __le32 instance, __le32 node, __le32 port), + + TP_ARGS(service, instance, node, port), + + TP_STRUCT__entry( + __field(__le32, service) + __field(__le32, instance) + __field(__le32, node) + __field(__le32, port) + ), + + TP_fast_assign( + __entry->service = service; + __entry->instance = instance; + __entry->node = node; + __entry->port = port; + ), + + TP_printk("advertising removal of server [%d:%x]@[%d:%d]", + __entry->service, __entry->instance, __entry->node, + __entry->port + ) +); + +TRACE_EVENT(qrtr_ns_server_add, + + TP_PROTO(__le32 service, __le32 instance, __le32 node, __le32 port), + + TP_ARGS(service, instance, node, port), + + TP_STRUCT__entry( + __field(__le32, service) + __field(__le32, instance) + __field(__le32, node) + __field(__le32, port) + ), + + TP_fast_assign( + __entry->service = service; + __entry->instance = instance; + __entry->node = node; + __entry->port = port; + ), + + TP_printk("add server [%d:%x]@[%d:%d]", + __entry->service, __entry->instance, __entry->node, + __entry->port + ) +); + +TRACE_EVENT(qrtr_ns_message, + + TP_PROTO(const char * const ctrl_pkt_str, __u32 sq_node, __u32 sq_port), + + TP_ARGS(ctrl_pkt_str, sq_node, sq_port), + + TP_STRUCT__entry( + __string(ctrl_pkt_str, ctrl_pkt_str) + __field(__u32, sq_node) + __field(__u32, sq_port) + ), + + TP_fast_assign( + __assign_str(ctrl_pkt_str, ctrl_pkt_str); + __entry->sq_node = sq_node; + __entry->sq_port = sq_port; + ), + + TP_printk("%s from %d:%d", + __get_str(ctrl_pkt_str), __entry->sq_node, __entry->sq_port + ) +); + +#endif /* _TRACE_QRTR_H */ + +/* This part must be outside protection */ +#include only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/include/uapi/linux/nl80211.h +++ linux-oem-5.6-5.6.0/include/uapi/linux/nl80211.h @@ -1125,6 +1125,12 @@ * peer MAC address and %NL80211_ATTR_FRAME is used to specify the frame * content. The frame is ethernet data. * + * @NL80211_CMD_CONTROL_PORT_FRAME_TX_STATUS: Report TX status of a control + * port frame transmitted with %NL80211_CMD_CONTROL_PORT_FRAME. + * %NL80211_ATTR_COOKIE identifies the TX command and %NL80211_ATTR_FRAME + * includes the contents of the frame. %NL80211_ATTR_ACK flag is included + * if the recipient acknowledged the frame. + * * @NL80211_CMD_MAX: highest used command number * @__NL80211_CMD_AFTER_LAST: internal use */ @@ -1349,6 +1355,8 @@ NL80211_CMD_PROBE_MESH_LINK, + NL80211_CMD_CONTROL_PORT_FRAME_TX_STATUS, + /* add new commands above here */ /* used to define NL80211_CMD_MAX below */ @@ -2400,6 +2408,11 @@ * @NL80211_ATTR_VLAN_ID: VLAN ID (1..4094) for the station and VLAN group key * (u16). * + * @NL80211_ATTR_HE_BSS_COLOR: nested attribute for BSS Color Settings. + * + * @NL80211_ATTR_HE_6GHZ_CAPABILITY: HE 6 GHz Band Capability element (from + * association request when used with NL80211_CMD_NEW_STATION). + * * @NUM_NL80211_ATTR: total number of nl80211_attrs available * @NL80211_ATTR_MAX: highest attribute number currently defined * @__NL80211_ATTR_AFTER_LAST: internal use @@ -2864,6 +2877,10 @@ NL80211_ATTR_VLAN_ID, + NL80211_ATTR_HE_BSS_COLOR, + + NL80211_ATTR_HE_6GHZ_CAPABILITY, + /* add attributes here, update the policy in nl80211.c */ __NL80211_ATTR_AFTER_LAST, @@ -3442,6 +3459,8 @@ * defined in HE capabilities IE * @NL80211_BAND_IFTYPE_ATTR_MAX: highest band HE capability attribute currently * defined + * @NL80211_BAND_IFTYPE_ATTR_HE_6GHZ_CAPA: HE 6GHz band capabilities (__le16), + * given for all 6 GHz band channels * @__NL80211_BAND_IFTYPE_ATTR_AFTER_LAST: internal use */ enum nl80211_band_iftype_attr { @@ -3452,6 +3471,7 @@ NL80211_BAND_IFTYPE_ATTR_HE_CAP_PHY, NL80211_BAND_IFTYPE_ATTR_HE_CAP_MCS_SET, NL80211_BAND_IFTYPE_ATTR_HE_CAP_PPE, + NL80211_BAND_IFTYPE_ATTR_HE_6GHZ_CAPA, /* keep last */ __NL80211_BAND_IFTYPE_ATTR_AFTER_LAST, @@ -5521,6 +5541,9 @@ * feature, which prevents bufferbloat by using the expected transmission * time to limit the amount of data buffered in the hardware. * + * @NL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211_TX_STATUS: The driver + * can report tx status for control port over nl80211 tx operations. + * * @NUM_NL80211_EXT_FEATURES: number of extended features. * @MAX_NL80211_EXT_FEATURES: highest extended feature index. */ @@ -5568,6 +5591,7 @@ NL80211_EXT_FEATURE_SAE_OFFLOAD, NL80211_EXT_FEATURE_VLAN_OFFLOAD, NL80211_EXT_FEATURE_AQL, + NL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211_TX_STATUS, /* add new features before the definition below */ NUM_NL80211_EXT_FEATURES, @@ -6587,5 +6611,27 @@ NL80211_HE_OBSS_PD_ATTR_MAX = __NL80211_HE_OBSS_PD_ATTR_LAST - 1, }; +/** + * enum nl80211_bss_color_attributes - BSS Color attributes + * @__NL80211_HE_BSS_COLOR_ATTR_INVALID: Invalid + * + * @NL80211_HE_BSS_COLOR_ATTR_COLOR: the current BSS Color. + * @NL80211_HE_BSS_COLOR_ATTR_DISABLED: is BSS coloring disabled. + * @NL80211_HE_BSS_COLOR_ATTR_PARTIAL: the AID equation to be used.. + * + * @__NL80211_HE_BSS_COLOR_ATTR_LAST: Internal + * @NL80211_HE_BSS_COLOR_ATTR_MAX: highest BSS Color attribute. + */ +enum nl80211_bss_color_attributes { + __NL80211_HE_BSS_COLOR_ATTR_INVALID, + + NL80211_HE_BSS_COLOR_ATTR_COLOR, + NL80211_HE_BSS_COLOR_ATTR_DISABLED, + NL80211_HE_BSS_COLOR_ATTR_PARTIAL, + + /* keep last */ + __NL80211_HE_BSS_COLOR_ATTR_LAST, + NL80211_HE_BSS_COLOR_ATTR_MAX = __NL80211_HE_BSS_COLOR_ATTR_LAST - 1, +}; #endif /* __LINUX_NL80211_H */ only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/kernel/reboot.c +++ linux-oem-5.6-5.6.0/kernel/reboot.c @@ -244,6 +244,8 @@ void kernel_restart(char *cmd) { kernel_restart_prepare(cmd); + if (pm_power_off_prepare) + pm_power_off_prepare(); migrate_to_reboot_cpu(); syscore_shutdown(); if (!cmd) only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/net/bluetooth/a2mp.h +++ linux-oem-5.6-5.6.0/net/bluetooth/a2mp.h @@ -36,14 +36,14 @@ __u8 code; __u8 ident; __le16 len; - __u8 data[0]; + __u8 data[]; } __packed; /* A2MP command codes */ #define A2MP_COMMAND_REJ 0x01 struct a2mp_cmd_rej { __le16 reason; - __u8 data[0]; + __u8 data[]; } __packed; #define A2MP_DISCOVER_REQ 0x02 @@ -62,7 +62,7 @@ struct a2mp_discov_rsp { __le16 mtu; __le16 ext_feat; - struct a2mp_cl cl[0]; + struct a2mp_cl cl[]; } __packed; #define A2MP_CHANGE_NOTIFY 0x04 @@ -93,7 +93,7 @@ struct a2mp_amp_assoc_rsp { __u8 id; __u8 status; - __u8 amp_assoc[0]; + __u8 amp_assoc[]; } __packed; #define A2MP_CREATEPHYSLINK_REQ 0x0A @@ -101,7 +101,7 @@ struct a2mp_physlink_req { __u8 local_id; __u8 remote_id; - __u8 amp_assoc[0]; + __u8 amp_assoc[]; } __packed; #define A2MP_CREATEPHYSLINK_RSP 0x0B only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/net/bluetooth/bnep/bnep.h +++ linux-oem-5.6-5.6.0/net/bluetooth/bnep/bnep.h @@ -74,14 +74,14 @@ __u8 type; __u8 ctrl; __u8 uuid_size; - __u8 service[0]; + __u8 service[]; } __packed; struct bnep_set_filter_req { __u8 type; __u8 ctrl; __be16 len; - __u8 list[0]; + __u8 list[]; } __packed; struct bnep_control_rsp { @@ -93,7 +93,7 @@ struct bnep_ext_hdr { __u8 type; __u8 len; - __u8 data[0]; + __u8 data[]; } __packed; /* BNEP ioctl defines */ only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/net/bluetooth/hci_core.c +++ linux-oem-5.6-5.6.0/net/bluetooth/hci_core.c @@ -603,6 +603,9 @@ if (hdev->commands[8] & 0x01) hci_req_add(req, HCI_OP_READ_PAGE_SCAN_ACTIVITY, 0, NULL); + if (hdev->commands[18] & 0x04) + hci_req_add(req, HCI_OP_READ_DEF_ERR_DATA_REPORTING, 0, NULL); + /* Some older Broadcom based Bluetooth 1.2 controllers do not * support the Read Page Scan Type command. Check support for * this command in the bit mask of supported commands. @@ -838,6 +841,26 @@ sizeof(support), &support); } + /* Set erroneous data reporting if supported to the wideband speech + * setting value + */ + if (hdev->commands[18] & 0x08) { + bool enabled = hci_dev_test_flag(hdev, + HCI_WIDEBAND_SPEECH_ENABLED); + + if (enabled != + (hdev->err_data_reporting == ERR_DATA_REPORTING_ENABLED)) { + struct hci_cp_write_def_err_data_reporting cp; + + cp.err_data_reporting = enabled ? + ERR_DATA_REPORTING_ENABLED : + ERR_DATA_REPORTING_DISABLED; + + hci_req_add(req, HCI_OP_WRITE_DEF_ERR_DATA_REPORTING, + sizeof(cp), &cp); + } + } + /* Set Suggested Default Data Length to maximum if supported */ if (hdev->le_features[0] & HCI_LE_DATA_LEN_EXT) { struct hci_cp_le_write_def_data_len cp; only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/net/bluetooth/hci_event.c +++ linux-oem-5.6-5.6.0/net/bluetooth/hci_event.c @@ -901,6 +901,37 @@ hdev->inq_tx_power = rp->tx_power; } +static void hci_cc_read_def_err_data_reporting(struct hci_dev *hdev, + struct sk_buff *skb) +{ + struct hci_rp_read_def_err_data_reporting *rp = (void *)skb->data; + + BT_DBG("%s status 0x%2.2x", hdev->name, rp->status); + + if (rp->status) + return; + + hdev->err_data_reporting = rp->err_data_reporting; +} + +static void hci_cc_write_def_err_data_reporting(struct hci_dev *hdev, + struct sk_buff *skb) +{ + __u8 status = *((__u8 *)skb->data); + struct hci_cp_write_def_err_data_reporting *cp; + + BT_DBG("%s status 0x%2.2x", hdev->name, status); + + if (status) + return; + + cp = hci_sent_cmd_data(hdev, HCI_OP_WRITE_DEF_ERR_DATA_REPORTING); + if (!cp) + return; + + hdev->err_data_reporting = cp->err_data_reporting; +} + static void hci_cc_pin_code_reply(struct hci_dev *hdev, struct sk_buff *skb) { struct hci_rp_pin_code_reply *rp = (void *) skb->data; @@ -3302,6 +3333,14 @@ hci_cc_read_inq_rsp_tx_power(hdev, skb); break; + case HCI_OP_READ_DEF_ERR_DATA_REPORTING: + hci_cc_read_def_err_data_reporting(hdev, skb); + break; + + case HCI_OP_WRITE_DEF_ERR_DATA_REPORTING: + hci_cc_write_def_err_data_reporting(hdev, skb); + break; + case HCI_OP_PIN_CODE_REPLY: hci_cc_pin_code_reply(hdev, skb); break; only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/net/mac80211/agg-rx.c +++ linux-oem-5.6-5.6.0/net/mac80211/agg-rx.c @@ -9,7 +9,7 @@ * Copyright 2007, Michael Wu * Copyright 2007-2010, Intel Corporation * Copyright(c) 2015-2017 Intel Deutschland GmbH - * Copyright (C) 2018 Intel Corporation + * Copyright (C) 2018-2020 Intel Corporation */ /** @@ -292,7 +292,8 @@ goto end; } - if (!sta->sta.ht_cap.ht_supported) { + if (!sta->sta.ht_cap.ht_supported && + sta->sdata->vif.bss_conf.chandef.chan->band != NL80211_BAND_6GHZ) { ht_dbg(sta->sdata, "STA %pM erroneously requests BA session on tid %d w/o QoS\n", sta->sta.addr, tid); only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/net/mac80211/agg-tx.c +++ linux-oem-5.6-5.6.0/net/mac80211/agg-tx.c @@ -578,7 +578,8 @@ "Requested to start BA session on reserved tid=%d", tid)) return -EINVAL; - if (!pubsta->ht_cap.ht_supported) + if (!pubsta->ht_cap.ht_supported && + sta->sdata->vif.bss_conf.chandef.chan->band != NL80211_BAND_6GHZ) return -EINVAL; if (WARN_ON_ONCE(!local->ops->ampdu_action)) only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/net/mac80211/airtime.c +++ linux-oem-5.6-5.6.0/net/mac80211/airtime.c @@ -487,14 +487,61 @@ } EXPORT_SYMBOL_GPL(ieee80211_calc_rx_airtime); +static bool ieee80211_fill_rate_info(struct ieee80211_hw *hw, + struct ieee80211_rx_status *stat, u8 band, + struct rate_info *ri) +{ + struct ieee80211_supported_band *sband = hw->wiphy->bands[band]; + int i; + + if (!ri || !sband) + return false; + + stat->bw = ri->bw; + stat->nss = ri->nss; + stat->rate_idx = ri->mcs; + + if (ri->flags & RATE_INFO_FLAGS_HE_MCS) + stat->encoding = RX_ENC_HE; + else if (ri->flags & RATE_INFO_FLAGS_VHT_MCS) + stat->encoding = RX_ENC_VHT; + else if (ri->flags & RATE_INFO_FLAGS_MCS) + stat->encoding = RX_ENC_HT; + else + stat->encoding = RX_ENC_LEGACY; + + if (ri->flags & RATE_INFO_FLAGS_SHORT_GI) + stat->enc_flags |= RX_ENC_FLAG_SHORT_GI; + + stat->he_gi = ri->he_gi; + + if (stat->encoding != RX_ENC_LEGACY) + return true; + + stat->rate_idx = 0; + for (i = 0; i < sband->n_bitrates; i++) { + if (ri->legacy != sband->bitrates[i].bitrate) + continue; + + stat->rate_idx = i; + return true; + } + + return false; +} + static u32 ieee80211_calc_tx_airtime_rate(struct ieee80211_hw *hw, struct ieee80211_tx_rate *rate, + struct rate_info *ri, u8 band, int len) { struct ieee80211_rx_status stat = { .band = band, }; + if (ieee80211_fill_rate_info(hw, &stat, band, ri)) + goto out; + if (rate->idx < 0 || !rate->count) return 0; @@ -522,6 +569,7 @@ stat.encoding = RX_ENC_LEGACY; } +out: return ieee80211_calc_rx_airtime(hw, &stat, len); } @@ -536,7 +584,7 @@ struct ieee80211_tx_rate *rate = &info->status.rates[i]; u32 cur_duration; - cur_duration = ieee80211_calc_tx_airtime_rate(hw, rate, + cur_duration = ieee80211_calc_tx_airtime_rate(hw, rate, NULL, info->band, len); if (!cur_duration) break; @@ -551,7 +599,7 @@ u32 ieee80211_calc_expected_tx_airtime(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_sta *pubsta, - int len) + int len, bool ampdu) { struct ieee80211_supported_band *sband; struct ieee80211_chanctx_conf *conf; @@ -572,10 +620,27 @@ if (pubsta) { struct sta_info *sta = container_of(pubsta, struct sta_info, sta); + struct ieee80211_tx_rate *rate = &sta->tx_stats.last_rate; + struct rate_info *ri = &sta->tx_stats.last_rate_info; + u32 airtime; + + if (!(rate->flags & (IEEE80211_TX_RC_VHT_MCS | + IEEE80211_TX_RC_MCS))) + ampdu = false; + + /* + * Assume that HT/VHT transmission on any AC except VO will + * use aggregation. Since we don't have reliable reporting + * of aggregation length, assume an average of 16. + * This will not be very accurate, but much better than simply + * assuming un-aggregated tx. + */ + airtime = ieee80211_calc_tx_airtime_rate(hw, rate, ri, band, + ampdu ? len * 16 : len); + if (ampdu) + airtime /= 16; - return ieee80211_calc_tx_airtime_rate(hw, - &sta->tx_stats.last_rate, - band, len); + return airtime; } if (!conf) only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/net/mac80211/cfg.c +++ linux-oem-5.6-5.6.0/net/mac80211/cfg.c @@ -5,8 +5,7 @@ * Copyright 2006-2010 Johannes Berg * Copyright 2013-2015 Intel Mobile Communications GmbH * Copyright (C) 2015-2017 Intel Deutschland GmbH - * Copyright (C) 2018-2019 Intel Corporation - * Copyright (C) 2018 Intel Corporation + * Copyright (C) 2018-2020 Intel Corporation */ #include @@ -815,9 +814,9 @@ memcpy(new->data, resp, resp_len); if (csa) - memcpy(new->csa_counter_offsets, csa->counter_offsets_presp, + memcpy(new->cntdwn_counter_offsets, csa->counter_offsets_presp, csa->n_counter_offsets_presp * - sizeof(new->csa_counter_offsets[0])); + sizeof(new->cntdwn_counter_offsets[0])); rcu_assign_pointer(sdata->u.ap.probe_resp, new); if (old) @@ -915,10 +914,10 @@ new->tail_len = new_tail_len; if (csa) { - new->csa_current_counter = csa->count; - memcpy(new->csa_counter_offsets, csa->counter_offsets_beacon, + new->cntdwn_current_counter = csa->count; + memcpy(new->cntdwn_counter_offsets, csa->counter_offsets_beacon, csa->n_counter_offsets_beacon * - sizeof(new->csa_counter_offsets[0])); + sizeof(new->cntdwn_counter_offsets[0])); } /* copy in head */ @@ -980,8 +979,7 @@ BSS_CHANGED_SSID | BSS_CHANGED_P2P_PS | BSS_CHANGED_TXPOWER | - BSS_CHANGED_TWT | - BSS_CHANGED_HE_OBSS_PD; + BSS_CHANGED_TWT; int err; int prev_beacon_int; @@ -1009,8 +1007,19 @@ prev_beacon_int = sdata->vif.bss_conf.beacon_int; sdata->vif.bss_conf.beacon_int = params->beacon_interval; - if (params->he_cap) + if (params->he_cap && params->he_oper) { sdata->vif.bss_conf.he_support = true; + sdata->vif.bss_conf.htc_trig_based_pkt_ext = + le32_get_bits(params->he_oper->he_oper_params, + IEEE80211_HE_OPERATION_DFLT_PE_DURATION_MASK); + sdata->vif.bss_conf.frame_time_rts_th = + le32_get_bits(params->he_oper->he_oper_params, + IEEE80211_HE_OPERATION_RTS_THRESHOLD_MASK); + changed |= BSS_CHANGED_HE_OBSS_PD; + + if (params->he_bss_color.enabled) + changed |= BSS_CHANGED_HE_BSS_COLOR; + } mutex_lock(&local->mtx); err = ieee80211_vif_use_channel(sdata, ¶ms->chandef, @@ -1054,6 +1063,8 @@ sdata->vif.bss_conf.twt_responder = params->twt_responder; memcpy(&sdata->vif.bss_conf.he_obss_pd, ¶ms->he_obss_pd, sizeof(struct ieee80211_he_obss_pd)); + memcpy(&sdata->vif.bss_conf.he_bss_color, ¶ms->he_bss_color, + sizeof(struct ieee80211_he_bss_color)); sdata->vif.bss_conf.ssid_len = params->ssid_len; if (params->ssid_len) @@ -1494,7 +1505,9 @@ if (params->he_capa) ieee80211_he_cap_ie_to_sta_he_cap(sdata, sband, (void *)params->he_capa, - params->he_capa_len, sta); + params->he_capa_len, + (void *)params->he_6ghz_capa, + sta); if (params->opmode_notif_used) { /* returned value is only needed for rc update, but the @@ -1666,6 +1679,7 @@ rcu_assign_pointer(vlansdata->u.vlan.sta, sta); __ieee80211_check_fast_rx_iface(vlansdata); + drv_sta_set_4addr(local, sta->sdata, &sta->sta, true); } if (sta->sdata->vif.type == NL80211_IFTYPE_AP_VLAN && @@ -2172,7 +2186,8 @@ } if (!sdata->vif.bss_conf.use_short_slot && - sband->band == NL80211_BAND_5GHZ) { + (sband->band == NL80211_BAND_5GHZ || + sband->band == NL80211_BAND_6GHZ)) { sdata->vif.bss_conf.use_short_slot = true; changed |= BSS_CHANGED_ERP_SLOT; } @@ -3219,9 +3234,9 @@ break; if ((params->n_counter_offsets_beacon > - IEEE80211_MAX_CSA_COUNTERS_NUM) || + IEEE80211_MAX_CNTDWN_COUNTERS_NUM) || (params->n_counter_offsets_presp > - IEEE80211_MAX_CSA_COUNTERS_NUM)) + IEEE80211_MAX_CNTDWN_COUNTERS_NUM)) return -EINVAL; csa.counter_offsets_beacon = params->counter_offsets_beacon; only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/net/mac80211/debugfs.c +++ linux-oem-5.6-5.6.0/net/mac80211/debugfs.c @@ -355,6 +355,7 @@ FLAG(SUPPORTS_MULTI_BSSID), FLAG(SUPPORTS_ONLY_HE_MULTI_BSSID), FLAG(AMPDU_KEYBORDER_SUPPORT), + FLAG(SUPPORTS_TX_ENCAP_OFFLOAD), #undef FLAG }; only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/net/mac80211/driver-ops.h +++ linux-oem-5.6-5.6.0/net/mac80211/driver-ops.h @@ -1358,4 +1358,32 @@ trace_drv_return_void(local); } +static inline void drv_update_vif_offload(struct ieee80211_local *local, + struct ieee80211_sub_if_data *sdata) +{ + might_sleep(); + check_sdata_in_driver(sdata); + + if (!local->ops->update_vif_offload) + return; + + trace_drv_update_vif_offload(local, sdata); + local->ops->update_vif_offload(&local->hw, &sdata->vif); + trace_drv_return_void(local); +} + +static inline void drv_sta_set_4addr(struct ieee80211_local *local, + struct ieee80211_sub_if_data *sdata, + struct ieee80211_sta *sta, bool enabled) +{ + sdata = get_bss_sdata(sdata); + if (!check_sdata_in_driver(sdata)) + return; + + trace_drv_sta_set_4addr(local, sdata, sta, enabled); + if (local->ops->sta_set_4addr) + local->ops->sta_set_4addr(&local->hw, &sdata->vif, sta, enabled); + trace_drv_return_void(local); +} + #endif /* __MAC80211_DRIVER_OPS */ only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/net/mac80211/he.c +++ linux-oem-5.6-5.6.0/net/mac80211/he.c @@ -7,10 +7,55 @@ #include "ieee80211_i.h" +static void +ieee80211_update_from_he_6ghz_capa(const struct ieee80211_he_6ghz_capa *he_6ghz_capa, + struct sta_info *sta) +{ + enum ieee80211_smps_mode smps_mode; + + if (sta->sdata->vif.type == NL80211_IFTYPE_AP || + sta->sdata->vif.type == NL80211_IFTYPE_AP_VLAN) { + switch (le16_get_bits(he_6ghz_capa->capa, + IEEE80211_HE_6GHZ_CAP_SM_PS)) { + case WLAN_HT_CAP_SM_PS_INVALID: + case WLAN_HT_CAP_SM_PS_STATIC: + smps_mode = IEEE80211_SMPS_STATIC; + break; + case WLAN_HT_CAP_SM_PS_DYNAMIC: + smps_mode = IEEE80211_SMPS_DYNAMIC; + break; + case WLAN_HT_CAP_SM_PS_DISABLED: + smps_mode = IEEE80211_SMPS_OFF; + break; + } + + sta->sta.smps_mode = smps_mode; + } else { + sta->sta.smps_mode = IEEE80211_SMPS_OFF; + } + + switch (le16_get_bits(he_6ghz_capa->capa, + IEEE80211_HE_6GHZ_CAP_MAX_MPDU_LEN)) { + case IEEE80211_VHT_CAP_MAX_MPDU_LENGTH_11454: + sta->sta.max_amsdu_len = IEEE80211_MAX_MPDU_LEN_VHT_11454; + break; + case IEEE80211_VHT_CAP_MAX_MPDU_LENGTH_7991: + sta->sta.max_amsdu_len = IEEE80211_MAX_MPDU_LEN_VHT_7991; + break; + case IEEE80211_VHT_CAP_MAX_MPDU_LENGTH_3895: + default: + sta->sta.max_amsdu_len = IEEE80211_MAX_MPDU_LEN_VHT_3895; + break; + } + + sta->sta.he_6ghz_capa = *he_6ghz_capa; +} + void ieee80211_he_cap_ie_to_sta_he_cap(struct ieee80211_sub_if_data *sdata, struct ieee80211_supported_band *sband, const u8 *he_cap_ie, u8 he_cap_len, + const struct ieee80211_he_6ghz_capa *he_6ghz_capa, struct sta_info *sta) { struct ieee80211_sta_he_cap *he_cap = &sta->sta.he_cap; @@ -49,21 +94,21 @@ he_ppe_size); he_cap->has_he = true; + + if (sband->band == NL80211_BAND_6GHZ && he_6ghz_capa) + ieee80211_update_from_he_6ghz_capa(he_6ghz_capa, sta); } void ieee80211_he_op_ie_to_bss_conf(struct ieee80211_vif *vif, - const struct ieee80211_he_operation *he_op_ie_elem) + const struct ieee80211_he_operation *he_op_ie) { - struct ieee80211_he_operation *he_operation = - &vif->bss_conf.he_operation; - - if (!he_op_ie_elem) { - memset(he_operation, 0, sizeof(*he_operation)); + memset(&vif->bss_conf.he_oper, 0, sizeof(vif->bss_conf.he_oper)); + if (!he_op_ie) return; - } - vif->bss_conf.he_operation = *he_op_ie_elem; + vif->bss_conf.he_oper.params = __le32_to_cpu(he_op_ie->he_oper_params); + vif->bss_conf.he_oper.nss_set = __le16_to_cpu(he_op_ie->he_mcs_nss_set); } void only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/net/mac80211/ibss.c +++ linux-oem-5.6-5.6.0/net/mac80211/ibss.c @@ -9,7 +9,7 @@ * Copyright 2009, Johannes Berg * Copyright 2013-2014 Intel Mobile Communications GmbH * Copyright(c) 2016 Intel Deutschland GmbH - * Copyright(c) 2018-2019 Intel Corporation + * Copyright(c) 2018-2020 Intel Corporation */ #include @@ -145,9 +145,9 @@ *pos++ = csa_settings->block_tx ? 1 : 0; *pos++ = ieee80211_frequency_to_channel( csa_settings->chandef.chan->center_freq); - presp->csa_counter_offsets[0] = (pos - presp->head); + presp->cntdwn_counter_offsets[0] = (pos - presp->head); *pos++ = csa_settings->count; - presp->csa_current_counter = csa_settings->count; + presp->cntdwn_current_counter = csa_settings->count; } /* put the remaining rates in WLAN_EID_EXT_SUPP_RATES */ @@ -781,6 +781,7 @@ enum nl80211_channel_type ch_type; int err; u32 sta_flags; + u32 vht_cap_info = 0; sdata_assert_lock(sdata); @@ -798,9 +799,13 @@ break; } + if (elems->vht_cap_elem) + vht_cap_info = le32_to_cpu(elems->vht_cap_elem->vht_cap_info); + memset(¶ms, 0, sizeof(params)); err = ieee80211_parse_ch_switch_ie(sdata, elems, ifibss->chandef.chan->band, + vht_cap_info, sta_flags, ifibss->bssid, &csa_ie); /* can't switch to destination channel, fail */ if (err < 0) @@ -1060,8 +1065,10 @@ /* we both use VHT */ struct ieee80211_vht_cap cap_ie; struct ieee80211_sta_vht_cap cap = sta->sta.vht_cap; + u32 vht_cap_info = + le32_to_cpu(elems->vht_cap_elem->vht_cap_info); - ieee80211_chandef_vht_oper(&local->hw, + ieee80211_chandef_vht_oper(&local->hw, vht_cap_info, elems->vht_operation, elems->ht_operation, &chandef); only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/net/mac80211/ieee80211_i.h +++ linux-oem-5.6-5.6.0/net/mac80211/ieee80211_i.h @@ -111,6 +111,8 @@ size_t supp_rates_len; struct ieee80211_rate *beacon_rate; + u32 vht_cap_info; + /* * During association, we save an ERP value from a probe response so * that we can feed ERP info to the driver when handling the @@ -258,15 +260,15 @@ u8 *head, *tail; int head_len, tail_len; struct ieee80211_meshconf_ie *meshconf; - u16 csa_counter_offsets[IEEE80211_MAX_CSA_COUNTERS_NUM]; - u8 csa_current_counter; + u16 cntdwn_counter_offsets[IEEE80211_MAX_CNTDWN_COUNTERS_NUM]; + u8 cntdwn_current_counter; struct rcu_head rcu_head; }; struct probe_resp { struct rcu_head rcu_head; int len; - u16 csa_counter_offsets[IEEE80211_MAX_CSA_COUNTERS_NUM]; + u16 cntdwn_counter_offsets[IEEE80211_MAX_CNTDWN_COUNTERS_NUM]; u8 data[0]; }; @@ -1486,6 +1488,7 @@ const struct ieee80211_he_operation *he_operation; const struct ieee80211_he_spr *he_spr; const struct ieee80211_mu_edca_param_set *mu_edca_param_set; + const struct ieee80211_he_6ghz_capa *he_6ghz_capa; const u8 *uora_element; const u8 *mesh_id; const u8 *peering; @@ -1749,6 +1752,7 @@ bool __ieee80211_recalc_txpower(struct ieee80211_sub_if_data *sdata); void ieee80211_recalc_txpower(struct ieee80211_sub_if_data *sdata, bool update_bss); +void ieee80211_recalc_offload(struct ieee80211_local *local); static inline bool ieee80211_sdata_running(struct ieee80211_sub_if_data *sdata) { @@ -1762,10 +1766,13 @@ struct net_device *dev); netdev_tx_t ieee80211_subif_start_xmit(struct sk_buff *skb, struct net_device *dev); +netdev_tx_t ieee80211_subif_start_xmit_8023(struct sk_buff *skb, + struct net_device *dev); void __ieee80211_subif_start_xmit(struct sk_buff *skb, struct net_device *dev, u32 info_flags, - u32 ctrl_flags); + u32 ctrl_flags, + u64 *cookie); void ieee80211_purge_tx_queue(struct ieee80211_hw *hw, struct sk_buff_head *skbs); struct sk_buff * @@ -1782,7 +1789,8 @@ void ieee80211_clear_fast_xmit(struct sta_info *sta); int ieee80211_tx_control_port(struct wiphy *wiphy, struct net_device *dev, const u8 *buf, size_t len, - const u8 *dest, __be16 proto, bool unencrypted); + const u8 *dest, __be16 proto, bool unencrypted, + u64 *cookie); int ieee80211_probe_mesh_link(struct wiphy *wiphy, struct net_device *dev, const u8 *buf, size_t len); @@ -1876,6 +1884,7 @@ ieee80211_he_cap_ie_to_sta_he_cap(struct ieee80211_sub_if_data *sdata, struct ieee80211_supported_band *sband, const u8 *he_cap_ie, u8 he_cap_len, + const struct ieee80211_he_6ghz_capa *he_6ghz_capa, struct sta_info *sta); void ieee80211_he_spr_ie_to_bss_conf(struct ieee80211_vif *vif, @@ -1894,6 +1903,7 @@ * @sdata: the sdata of the interface which has received the frame * @elems: parsed 802.11 elements received with the frame * @current_band: indicates the current band + * @vht_cap_info: VHT capabilities of the transmitter * @sta_flags: contains information about own capabilities and restrictions * to decide which channel switch announcements can be accepted. Only the * following subset of &enum ieee80211_sta_flags are evaluated: @@ -1908,6 +1918,7 @@ int ieee80211_parse_ch_switch_ie(struct ieee80211_sub_if_data *sdata, struct ieee802_11_elems *elems, enum nl80211_band current_band, + u32 vht_cap_info, u32 sta_flags, u8 *bssid, struct ieee80211_csa_ie *csa_ie); @@ -1948,6 +1959,11 @@ struct sk_buff *skb, int tid, enum nl80211_band band, u32 txdata_flags); +/* sta_out needs to be checked for ERR_PTR() before using */ +int ieee80211_lookup_ra_sta(struct ieee80211_sub_if_data *sdata, + struct sk_buff *skb, + struct sta_info **sta_out); + static inline void ieee80211_tx_skb_tid_band(struct ieee80211_sub_if_data *sdata, struct sk_buff *skb, int tid, @@ -2011,8 +2027,6 @@ void ieee80211_send_nullfunc(struct ieee80211_local *local, struct ieee80211_sub_if_data *sdata, bool powersave); -void ieee80211_sta_rx_notify(struct ieee80211_sub_if_data *sdata, - struct ieee80211_hdr *hdr); void ieee80211_sta_tx_notify(struct ieee80211_sub_if_data *sdata, struct ieee80211_hdr *hdr, bool ack, u16 tx_time); @@ -2113,7 +2127,7 @@ IEEE80211_PROBE_FLAG_RANDOM_SN = BIT(2), }; -int ieee80211_build_preq_ies(struct ieee80211_local *local, u8 *buffer, +int ieee80211_build_preq_ies(struct ieee80211_sub_if_data *sdata, u8 *buffer, size_t buffer_len, struct ieee80211_scan_ies *ie_desc, const u8 *ie, size_t ie_len, @@ -2153,7 +2167,9 @@ u8 *ieee80211_ie_build_he_cap(u8 *pos, const struct ieee80211_sta_he_cap *he_cap, u8 *end); -u8 *ieee80211_ie_build_he_oper(u8 *pos); +void ieee80211_ie_build_he_6ghz_cap(struct ieee80211_sub_if_data *sdata, + struct sk_buff *skb); +u8 *ieee80211_ie_build_he_oper(u8 *pos, struct cfg80211_chan_def *chandef); int ieee80211_parse_bitrates(struct cfg80211_chan_def *chandef, const struct ieee80211_supported_band *sband, const u8 *srates, int srates_len, u32 *rates); @@ -2168,10 +2184,13 @@ /* channel management */ bool ieee80211_chandef_ht_oper(const struct ieee80211_ht_operation *ht_oper, struct cfg80211_chan_def *chandef); -bool ieee80211_chandef_vht_oper(struct ieee80211_hw *hw, +bool ieee80211_chandef_vht_oper(struct ieee80211_hw *hw, u32 vht_cap_info, const struct ieee80211_vht_operation *oper, const struct ieee80211_ht_operation *htop, struct cfg80211_chan_def *chandef); +bool ieee80211_chandef_he_6ghz_oper(struct ieee80211_sub_if_data *sdata, + const struct ieee80211_he_operation *he_oper, + struct cfg80211_chan_def *chandef); u32 ieee80211_chandef_downgrade(struct cfg80211_chan_def *c); int __must_check @@ -2256,7 +2275,7 @@ u32 ieee80211_calc_expected_tx_airtime(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_sta *pubsta, - int len); + int len, bool ampdu); #ifdef CONFIG_MAC80211_NOINLINE #define debug_noinline noinline #else only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/net/mac80211/iface.c +++ linux-oem-5.6-5.6.0/net/mac80211/iface.c @@ -348,432 +348,6 @@ return 0; } -void ieee80211_adjust_monitor_flags(struct ieee80211_sub_if_data *sdata, - const int offset) -{ - struct ieee80211_local *local = sdata->local; - u32 flags = sdata->u.mntr.flags; - -#define ADJUST(_f, _s) do { \ - if (flags & MONITOR_FLAG_##_f) \ - local->fif_##_s += offset; \ - } while (0) - - ADJUST(FCSFAIL, fcsfail); - ADJUST(PLCPFAIL, plcpfail); - ADJUST(CONTROL, control); - ADJUST(CONTROL, pspoll); - ADJUST(OTHER_BSS, other_bss); - -#undef ADJUST -} - -static void ieee80211_set_default_queues(struct ieee80211_sub_if_data *sdata) -{ - struct ieee80211_local *local = sdata->local; - int i; - - for (i = 0; i < IEEE80211_NUM_ACS; i++) { - if (ieee80211_hw_check(&local->hw, QUEUE_CONTROL)) - sdata->vif.hw_queue[i] = IEEE80211_INVAL_HW_QUEUE; - else if (local->hw.queues >= IEEE80211_NUM_ACS) - sdata->vif.hw_queue[i] = i; - else - sdata->vif.hw_queue[i] = 0; - } - sdata->vif.cab_queue = IEEE80211_INVAL_HW_QUEUE; -} - -int ieee80211_add_virtual_monitor(struct ieee80211_local *local) -{ - struct ieee80211_sub_if_data *sdata; - int ret; - - if (!ieee80211_hw_check(&local->hw, WANT_MONITOR_VIF)) - return 0; - - ASSERT_RTNL(); - - if (local->monitor_sdata) - return 0; - - sdata = kzalloc(sizeof(*sdata) + local->hw.vif_data_size, GFP_KERNEL); - if (!sdata) - return -ENOMEM; - - /* set up data */ - sdata->local = local; - sdata->vif.type = NL80211_IFTYPE_MONITOR; - snprintf(sdata->name, IFNAMSIZ, "%s-monitor", - wiphy_name(local->hw.wiphy)); - sdata->wdev.iftype = NL80211_IFTYPE_MONITOR; - - sdata->encrypt_headroom = IEEE80211_ENCRYPT_HEADROOM; - - ieee80211_set_default_queues(sdata); - - ret = drv_add_interface(local, sdata); - if (WARN_ON(ret)) { - /* ok .. stupid driver, it asked for this! */ - kfree(sdata); - return ret; - } - - ret = ieee80211_check_queues(sdata, NL80211_IFTYPE_MONITOR); - if (ret) { - kfree(sdata); - return ret; - } - - mutex_lock(&local->iflist_mtx); - rcu_assign_pointer(local->monitor_sdata, sdata); - mutex_unlock(&local->iflist_mtx); - - mutex_lock(&local->mtx); - ret = ieee80211_vif_use_channel(sdata, &local->monitor_chandef, - IEEE80211_CHANCTX_EXCLUSIVE); - mutex_unlock(&local->mtx); - if (ret) { - mutex_lock(&local->iflist_mtx); - RCU_INIT_POINTER(local->monitor_sdata, NULL); - mutex_unlock(&local->iflist_mtx); - synchronize_net(); - drv_remove_interface(local, sdata); - kfree(sdata); - return ret; - } - - skb_queue_head_init(&sdata->skb_queue); - INIT_WORK(&sdata->work, ieee80211_iface_work); - - return 0; -} - -void ieee80211_del_virtual_monitor(struct ieee80211_local *local) -{ - struct ieee80211_sub_if_data *sdata; - - if (!ieee80211_hw_check(&local->hw, WANT_MONITOR_VIF)) - return; - - ASSERT_RTNL(); - - mutex_lock(&local->iflist_mtx); - - sdata = rcu_dereference_protected(local->monitor_sdata, - lockdep_is_held(&local->iflist_mtx)); - if (!sdata) { - mutex_unlock(&local->iflist_mtx); - return; - } - - RCU_INIT_POINTER(local->monitor_sdata, NULL); - mutex_unlock(&local->iflist_mtx); - - synchronize_net(); - - mutex_lock(&local->mtx); - ieee80211_vif_release_channel(sdata); - mutex_unlock(&local->mtx); - - drv_remove_interface(local, sdata); - - kfree(sdata); -} - -/* - * NOTE: Be very careful when changing this function, it must NOT return - * an error on interface type changes that have been pre-checked, so most - * checks should be in ieee80211_check_concurrent_iface. - */ -int ieee80211_do_open(struct wireless_dev *wdev, bool coming_up) -{ - struct ieee80211_sub_if_data *sdata = IEEE80211_WDEV_TO_SUB_IF(wdev); - struct net_device *dev = wdev->netdev; - struct ieee80211_local *local = sdata->local; - struct sta_info *sta; - u32 changed = 0; - int res; - u32 hw_reconf_flags = 0; - - switch (sdata->vif.type) { - case NL80211_IFTYPE_WDS: - if (!is_valid_ether_addr(sdata->u.wds.remote_addr)) - return -ENOLINK; - break; - case NL80211_IFTYPE_AP_VLAN: { - struct ieee80211_sub_if_data *master; - - if (!sdata->bss) - return -ENOLINK; - - mutex_lock(&local->mtx); - list_add(&sdata->u.vlan.list, &sdata->bss->vlans); - mutex_unlock(&local->mtx); - - master = container_of(sdata->bss, - struct ieee80211_sub_if_data, u.ap); - sdata->control_port_protocol = - master->control_port_protocol; - sdata->control_port_no_encrypt = - master->control_port_no_encrypt; - sdata->control_port_over_nl80211 = - master->control_port_over_nl80211; - sdata->vif.cab_queue = master->vif.cab_queue; - memcpy(sdata->vif.hw_queue, master->vif.hw_queue, - sizeof(sdata->vif.hw_queue)); - sdata->vif.bss_conf.chandef = master->vif.bss_conf.chandef; - - mutex_lock(&local->key_mtx); - sdata->crypto_tx_tailroom_needed_cnt += - master->crypto_tx_tailroom_needed_cnt; - mutex_unlock(&local->key_mtx); - - break; - } - case NL80211_IFTYPE_AP: - sdata->bss = &sdata->u.ap; - break; - case NL80211_IFTYPE_MESH_POINT: - case NL80211_IFTYPE_STATION: - case NL80211_IFTYPE_MONITOR: - case NL80211_IFTYPE_ADHOC: - case NL80211_IFTYPE_P2P_DEVICE: - case NL80211_IFTYPE_OCB: - case NL80211_IFTYPE_NAN: - /* no special treatment */ - break; - case NL80211_IFTYPE_UNSPECIFIED: - case NUM_NL80211_IFTYPES: - case NL80211_IFTYPE_P2P_CLIENT: - case NL80211_IFTYPE_P2P_GO: - /* cannot happen */ - WARN_ON(1); - break; - } - - if (local->open_count == 0) { - res = drv_start(local); - if (res) - goto err_del_bss; - /* we're brought up, everything changes */ - hw_reconf_flags = ~0; - ieee80211_led_radio(local, true); - ieee80211_mod_tpt_led_trig(local, - IEEE80211_TPT_LEDTRIG_FL_RADIO, 0); - } - - /* - * Copy the hopefully now-present MAC address to - * this interface, if it has the special null one. - */ - if (dev && is_zero_ether_addr(dev->dev_addr)) { - memcpy(dev->dev_addr, - local->hw.wiphy->perm_addr, - ETH_ALEN); - memcpy(dev->perm_addr, dev->dev_addr, ETH_ALEN); - - if (!is_valid_ether_addr(dev->dev_addr)) { - res = -EADDRNOTAVAIL; - goto err_stop; - } - } - - switch (sdata->vif.type) { - case NL80211_IFTYPE_AP_VLAN: - /* no need to tell driver, but set carrier and chanctx */ - if (rtnl_dereference(sdata->bss->beacon)) { - ieee80211_vif_vlan_copy_chanctx(sdata); - netif_carrier_on(dev); - } else { - netif_carrier_off(dev); - } - break; - case NL80211_IFTYPE_MONITOR: - if (sdata->u.mntr.flags & MONITOR_FLAG_COOK_FRAMES) { - local->cooked_mntrs++; - break; - } - - if (sdata->u.mntr.flags & MONITOR_FLAG_ACTIVE) { - res = drv_add_interface(local, sdata); - if (res) - goto err_stop; - } else if (local->monitors == 0 && local->open_count == 0) { - res = ieee80211_add_virtual_monitor(local); - if (res) - goto err_stop; - } - - /* must be before the call to ieee80211_configure_filter */ - local->monitors++; - if (local->monitors == 1) { - local->hw.conf.flags |= IEEE80211_CONF_MONITOR; - hw_reconf_flags |= IEEE80211_CONF_CHANGE_MONITOR; - } - - ieee80211_adjust_monitor_flags(sdata, 1); - ieee80211_configure_filter(local); - mutex_lock(&local->mtx); - ieee80211_recalc_idle(local); - mutex_unlock(&local->mtx); - - netif_carrier_on(dev); - break; - default: - if (coming_up) { - ieee80211_del_virtual_monitor(local); - - res = drv_add_interface(local, sdata); - if (res) - goto err_stop; - res = ieee80211_check_queues(sdata, - ieee80211_vif_type_p2p(&sdata->vif)); - if (res) - goto err_del_interface; - } - - if (sdata->vif.type == NL80211_IFTYPE_AP) { - local->fif_pspoll++; - local->fif_probe_req++; - - ieee80211_configure_filter(local); - } else if (sdata->vif.type == NL80211_IFTYPE_ADHOC) { - local->fif_probe_req++; - } - - if (sdata->vif.type != NL80211_IFTYPE_P2P_DEVICE && - sdata->vif.type != NL80211_IFTYPE_NAN) - changed |= ieee80211_reset_erp_info(sdata); - ieee80211_bss_info_change_notify(sdata, changed); - - switch (sdata->vif.type) { - case NL80211_IFTYPE_STATION: - case NL80211_IFTYPE_ADHOC: - case NL80211_IFTYPE_AP: - case NL80211_IFTYPE_MESH_POINT: - case NL80211_IFTYPE_OCB: - netif_carrier_off(dev); - break; - case NL80211_IFTYPE_WDS: - case NL80211_IFTYPE_P2P_DEVICE: - case NL80211_IFTYPE_NAN: - break; - default: - /* not reached */ - WARN_ON(1); - } - - /* - * Set default queue parameters so drivers don't - * need to initialise the hardware if the hardware - * doesn't start up with sane defaults. - * Enable QoS for anything but station interfaces. - */ - ieee80211_set_wmm_default(sdata, true, - sdata->vif.type != NL80211_IFTYPE_STATION); - } - - set_bit(SDATA_STATE_RUNNING, &sdata->state); - - switch (sdata->vif.type) { - case NL80211_IFTYPE_WDS: - /* Create STA entry for the WDS peer */ - sta = sta_info_alloc(sdata, sdata->u.wds.remote_addr, - GFP_KERNEL); - if (!sta) { - res = -ENOMEM; - goto err_del_interface; - } - - sta_info_pre_move_state(sta, IEEE80211_STA_AUTH); - sta_info_pre_move_state(sta, IEEE80211_STA_ASSOC); - sta_info_pre_move_state(sta, IEEE80211_STA_AUTHORIZED); - - res = sta_info_insert(sta); - if (res) { - /* STA has been freed */ - goto err_del_interface; - } - - rate_control_rate_init(sta); - netif_carrier_on(dev); - break; - case NL80211_IFTYPE_P2P_DEVICE: - rcu_assign_pointer(local->p2p_sdata, sdata); - break; - case NL80211_IFTYPE_MONITOR: - if (sdata->u.mntr.flags & MONITOR_FLAG_COOK_FRAMES) - break; - list_add_tail_rcu(&sdata->u.mntr.list, &local->mon_list); - break; - default: - break; - } - - /* - * set_multicast_list will be invoked by the networking core - * which will check whether any increments here were done in - * error and sync them down to the hardware as filter flags. - */ - if (sdata->flags & IEEE80211_SDATA_ALLMULTI) - atomic_inc(&local->iff_allmultis); - - if (coming_up) - local->open_count++; - - if (hw_reconf_flags) - ieee80211_hw_config(local, hw_reconf_flags); - - ieee80211_recalc_ps(local); - - if (sdata->vif.type == NL80211_IFTYPE_MONITOR || - sdata->vif.type == NL80211_IFTYPE_AP_VLAN || - local->ops->wake_tx_queue) { - /* XXX: for AP_VLAN, actually track AP queues */ - if (dev) - netif_tx_start_all_queues(dev); - } else if (dev) { - unsigned long flags; - int n_acs = IEEE80211_NUM_ACS; - int ac; - - if (local->hw.queues < IEEE80211_NUM_ACS) - n_acs = 1; - - spin_lock_irqsave(&local->queue_stop_reason_lock, flags); - if (sdata->vif.cab_queue == IEEE80211_INVAL_HW_QUEUE || - (local->queue_stop_reasons[sdata->vif.cab_queue] == 0 && - skb_queue_empty(&local->pending[sdata->vif.cab_queue]))) { - for (ac = 0; ac < n_acs; ac++) { - int ac_queue = sdata->vif.hw_queue[ac]; - - if (local->queue_stop_reasons[ac_queue] == 0 && - skb_queue_empty(&local->pending[ac_queue])) - netif_start_subqueue(dev, ac); - } - } - spin_unlock_irqrestore(&local->queue_stop_reason_lock, flags); - } - - return 0; - err_del_interface: - drv_remove_interface(local, sdata); - err_stop: - if (!local->open_count) - drv_stop(local); - err_del_bss: - sdata->bss = NULL; - if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN) { - mutex_lock(&local->mtx); - list_del(&sdata->u.vlan.list); - mutex_unlock(&local->mtx); - } - /* might already be clear but that doesn't matter */ - clear_bit(SDATA_STATE_RUNNING, &sdata->state); - return res; -} - static int ieee80211_open(struct net_device *dev) { struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); @@ -1205,6 +779,552 @@ .ndo_get_stats64 = ieee80211_get_stats64, }; +static const struct net_device_ops ieee80211_dataif_8023_ops = { + .ndo_open = ieee80211_open, + .ndo_stop = ieee80211_stop, + .ndo_uninit = ieee80211_uninit, + .ndo_start_xmit = ieee80211_subif_start_xmit_8023, + .ndo_set_rx_mode = ieee80211_set_multicast_list, + .ndo_set_mac_address = ieee80211_change_mac, + .ndo_select_queue = ieee80211_netdev_select_queue, + .ndo_get_stats64 = ieee80211_get_stats64, +}; + +static bool ieee80211_iftype_supports_encap_offload(enum nl80211_iftype iftype) +{ + switch (iftype) { + /* P2P GO and client are mapped to AP/STATION types */ + case NL80211_IFTYPE_AP: + case NL80211_IFTYPE_STATION: + return true; + default: + return false; + } +} + +static bool ieee80211_set_sdata_offload_flags(struct ieee80211_sub_if_data *sdata) +{ + struct ieee80211_local *local = sdata->local; + u32 flags; + + flags = sdata->vif.offload_flags; + + if (ieee80211_hw_check(&local->hw, SUPPORTS_TX_ENCAP_OFFLOAD) && + ieee80211_iftype_supports_encap_offload(sdata->vif.type)) { + flags |= IEEE80211_OFFLOAD_ENCAP_ENABLED; + + if (!ieee80211_hw_check(&local->hw, SUPPORTS_TX_FRAG) && + local->hw.wiphy->frag_threshold != (u32)-1) + flags &= ~IEEE80211_OFFLOAD_ENCAP_ENABLED; + + if (local->monitors) + flags &= ~IEEE80211_OFFLOAD_ENCAP_ENABLED; + } else { + flags &= ~IEEE80211_OFFLOAD_ENCAP_ENABLED; + } + + if (sdata->vif.offload_flags == flags) + return false; + + sdata->vif.offload_flags = flags; + return true; +} + +static void ieee80211_set_vif_encap_ops(struct ieee80211_sub_if_data *sdata) +{ + struct ieee80211_local *local = sdata->local; + struct ieee80211_sub_if_data *bss = sdata; + bool enabled; + + if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN) { + if (!sdata->bss) + return; + + bss = container_of(sdata->bss, struct ieee80211_sub_if_data, u.ap); + } + + if (!ieee80211_hw_check(&local->hw, SUPPORTS_TX_ENCAP_OFFLOAD) || + !ieee80211_iftype_supports_encap_offload(bss->vif.type)) + return; + + enabled = bss->vif.offload_flags & IEEE80211_OFFLOAD_ENCAP_ENABLED; + if (sdata->wdev.use_4addr && + !(bss->vif.offload_flags & IEEE80211_OFFLOAD_ENCAP_4ADDR)) + enabled = false; + + sdata->dev->netdev_ops = enabled ? &ieee80211_dataif_8023_ops : + &ieee80211_dataif_ops; +} + +static void ieee80211_recalc_sdata_offload(struct ieee80211_sub_if_data *sdata) +{ + struct ieee80211_local *local = sdata->local; + struct ieee80211_sub_if_data *vsdata; + + if (ieee80211_set_sdata_offload_flags(sdata)) { + drv_update_vif_offload(local, sdata); + ieee80211_set_vif_encap_ops(sdata); + } + + list_for_each_entry(vsdata, &local->interfaces, list) { + if (vsdata->vif.type != NL80211_IFTYPE_AP_VLAN || + vsdata->bss != &sdata->u.ap) + continue; + + ieee80211_set_vif_encap_ops(vsdata); + } +} + +void ieee80211_recalc_offload(struct ieee80211_local *local) +{ + struct ieee80211_sub_if_data *sdata; + + if (!ieee80211_hw_check(&local->hw, SUPPORTS_TX_ENCAP_OFFLOAD)) + return; + + mutex_lock(&local->iflist_mtx); + + list_for_each_entry(sdata, &local->interfaces, list) { + if (!ieee80211_sdata_running(sdata)) + continue; + + ieee80211_recalc_sdata_offload(sdata); + } + + mutex_unlock(&local->iflist_mtx); +} + +void ieee80211_adjust_monitor_flags(struct ieee80211_sub_if_data *sdata, + const int offset) +{ + struct ieee80211_local *local = sdata->local; + u32 flags = sdata->u.mntr.flags; + +#define ADJUST(_f, _s) do { \ + if (flags & MONITOR_FLAG_##_f) \ + local->fif_##_s += offset; \ + } while (0) + + ADJUST(FCSFAIL, fcsfail); + ADJUST(PLCPFAIL, plcpfail); + ADJUST(CONTROL, control); + ADJUST(CONTROL, pspoll); + ADJUST(OTHER_BSS, other_bss); + +#undef ADJUST +} + +static void ieee80211_set_default_queues(struct ieee80211_sub_if_data *sdata) +{ + struct ieee80211_local *local = sdata->local; + int i; + + for (i = 0; i < IEEE80211_NUM_ACS; i++) { + if (ieee80211_hw_check(&local->hw, QUEUE_CONTROL)) + sdata->vif.hw_queue[i] = IEEE80211_INVAL_HW_QUEUE; + else if (local->hw.queues >= IEEE80211_NUM_ACS) + sdata->vif.hw_queue[i] = i; + else + sdata->vif.hw_queue[i] = 0; + } + sdata->vif.cab_queue = IEEE80211_INVAL_HW_QUEUE; +} + +int ieee80211_add_virtual_monitor(struct ieee80211_local *local) +{ + struct ieee80211_sub_if_data *sdata; + int ret; + + if (!ieee80211_hw_check(&local->hw, WANT_MONITOR_VIF)) + return 0; + + ASSERT_RTNL(); + + if (local->monitor_sdata) + return 0; + + sdata = kzalloc(sizeof(*sdata) + local->hw.vif_data_size, GFP_KERNEL); + if (!sdata) + return -ENOMEM; + + /* set up data */ + sdata->local = local; + sdata->vif.type = NL80211_IFTYPE_MONITOR; + snprintf(sdata->name, IFNAMSIZ, "%s-monitor", + wiphy_name(local->hw.wiphy)); + sdata->wdev.iftype = NL80211_IFTYPE_MONITOR; + + sdata->encrypt_headroom = IEEE80211_ENCRYPT_HEADROOM; + + ieee80211_set_default_queues(sdata); + + ret = drv_add_interface(local, sdata); + if (WARN_ON(ret)) { + /* ok .. stupid driver, it asked for this! */ + kfree(sdata); + return ret; + } + + ret = ieee80211_check_queues(sdata, NL80211_IFTYPE_MONITOR); + if (ret) { + kfree(sdata); + return ret; + } + + mutex_lock(&local->iflist_mtx); + rcu_assign_pointer(local->monitor_sdata, sdata); + mutex_unlock(&local->iflist_mtx); + + mutex_lock(&local->mtx); + ret = ieee80211_vif_use_channel(sdata, &local->monitor_chandef, + IEEE80211_CHANCTX_EXCLUSIVE); + mutex_unlock(&local->mtx); + if (ret) { + mutex_lock(&local->iflist_mtx); + RCU_INIT_POINTER(local->monitor_sdata, NULL); + mutex_unlock(&local->iflist_mtx); + synchronize_net(); + drv_remove_interface(local, sdata); + kfree(sdata); + return ret; + } + + skb_queue_head_init(&sdata->skb_queue); + INIT_WORK(&sdata->work, ieee80211_iface_work); + + return 0; +} + +void ieee80211_del_virtual_monitor(struct ieee80211_local *local) +{ + struct ieee80211_sub_if_data *sdata; + + if (!ieee80211_hw_check(&local->hw, WANT_MONITOR_VIF)) + return; + + ASSERT_RTNL(); + + mutex_lock(&local->iflist_mtx); + + sdata = rcu_dereference_protected(local->monitor_sdata, + lockdep_is_held(&local->iflist_mtx)); + if (!sdata) { + mutex_unlock(&local->iflist_mtx); + return; + } + + RCU_INIT_POINTER(local->monitor_sdata, NULL); + mutex_unlock(&local->iflist_mtx); + + synchronize_net(); + + mutex_lock(&local->mtx); + ieee80211_vif_release_channel(sdata); + mutex_unlock(&local->mtx); + + drv_remove_interface(local, sdata); + + kfree(sdata); +} + +/* + * NOTE: Be very careful when changing this function, it must NOT return + * an error on interface type changes that have been pre-checked, so most + * checks should be in ieee80211_check_concurrent_iface. + */ +int ieee80211_do_open(struct wireless_dev *wdev, bool coming_up) +{ + struct ieee80211_sub_if_data *sdata = IEEE80211_WDEV_TO_SUB_IF(wdev); + struct net_device *dev = wdev->netdev; + struct ieee80211_local *local = sdata->local; + struct sta_info *sta; + u32 changed = 0; + int res; + u32 hw_reconf_flags = 0; + + switch (sdata->vif.type) { + case NL80211_IFTYPE_WDS: + if (!is_valid_ether_addr(sdata->u.wds.remote_addr)) + return -ENOLINK; + break; + case NL80211_IFTYPE_AP_VLAN: { + struct ieee80211_sub_if_data *master; + + if (!sdata->bss) + return -ENOLINK; + + mutex_lock(&local->mtx); + list_add(&sdata->u.vlan.list, &sdata->bss->vlans); + mutex_unlock(&local->mtx); + + master = container_of(sdata->bss, + struct ieee80211_sub_if_data, u.ap); + sdata->control_port_protocol = + master->control_port_protocol; + sdata->control_port_no_encrypt = + master->control_port_no_encrypt; + sdata->control_port_over_nl80211 = + master->control_port_over_nl80211; + sdata->vif.cab_queue = master->vif.cab_queue; + memcpy(sdata->vif.hw_queue, master->vif.hw_queue, + sizeof(sdata->vif.hw_queue)); + sdata->vif.bss_conf.chandef = master->vif.bss_conf.chandef; + + mutex_lock(&local->key_mtx); + sdata->crypto_tx_tailroom_needed_cnt += + master->crypto_tx_tailroom_needed_cnt; + mutex_unlock(&local->key_mtx); + + break; + } + case NL80211_IFTYPE_AP: + sdata->bss = &sdata->u.ap; + break; + case NL80211_IFTYPE_MESH_POINT: + case NL80211_IFTYPE_STATION: + case NL80211_IFTYPE_MONITOR: + case NL80211_IFTYPE_ADHOC: + case NL80211_IFTYPE_P2P_DEVICE: + case NL80211_IFTYPE_OCB: + case NL80211_IFTYPE_NAN: + /* no special treatment */ + break; + case NL80211_IFTYPE_UNSPECIFIED: + case NUM_NL80211_IFTYPES: + case NL80211_IFTYPE_P2P_CLIENT: + case NL80211_IFTYPE_P2P_GO: + /* cannot happen */ + WARN_ON(1); + break; + } + + if (local->open_count == 0) { + res = drv_start(local); + if (res) + goto err_del_bss; + /* we're brought up, everything changes */ + hw_reconf_flags = ~0; + ieee80211_led_radio(local, true); + ieee80211_mod_tpt_led_trig(local, + IEEE80211_TPT_LEDTRIG_FL_RADIO, 0); + } + + /* + * Copy the hopefully now-present MAC address to + * this interface, if it has the special null one. + */ + if (dev && is_zero_ether_addr(dev->dev_addr)) { + memcpy(dev->dev_addr, + local->hw.wiphy->perm_addr, + ETH_ALEN); + memcpy(dev->perm_addr, dev->dev_addr, ETH_ALEN); + + if (!is_valid_ether_addr(dev->dev_addr)) { + res = -EADDRNOTAVAIL; + goto err_stop; + } + } + + switch (sdata->vif.type) { + case NL80211_IFTYPE_AP_VLAN: + /* no need to tell driver, but set carrier and chanctx */ + if (rtnl_dereference(sdata->bss->beacon)) { + ieee80211_vif_vlan_copy_chanctx(sdata); + netif_carrier_on(dev); + ieee80211_set_vif_encap_ops(sdata); + } else { + netif_carrier_off(dev); + } + break; + case NL80211_IFTYPE_MONITOR: + if (sdata->u.mntr.flags & MONITOR_FLAG_COOK_FRAMES) { + local->cooked_mntrs++; + break; + } + + if (sdata->u.mntr.flags & MONITOR_FLAG_ACTIVE) { + res = drv_add_interface(local, sdata); + if (res) + goto err_stop; + } else if (local->monitors == 0 && local->open_count == 0) { + res = ieee80211_add_virtual_monitor(local); + if (res) + goto err_stop; + } + + /* must be before the call to ieee80211_configure_filter */ + local->monitors++; + if (local->monitors == 1) { + local->hw.conf.flags |= IEEE80211_CONF_MONITOR; + hw_reconf_flags |= IEEE80211_CONF_CHANGE_MONITOR; + } + + ieee80211_adjust_monitor_flags(sdata, 1); + ieee80211_configure_filter(local); + ieee80211_recalc_offload(local); + mutex_lock(&local->mtx); + ieee80211_recalc_idle(local); + mutex_unlock(&local->mtx); + + netif_carrier_on(dev); + break; + default: + if (coming_up) { + ieee80211_del_virtual_monitor(local); + ieee80211_set_sdata_offload_flags(sdata); + + res = drv_add_interface(local, sdata); + if (res) + goto err_stop; + + ieee80211_set_vif_encap_ops(sdata); + res = ieee80211_check_queues(sdata, + ieee80211_vif_type_p2p(&sdata->vif)); + if (res) + goto err_del_interface; + } + + if (sdata->vif.type == NL80211_IFTYPE_AP) { + local->fif_pspoll++; + local->fif_probe_req++; + + ieee80211_configure_filter(local); + } else if (sdata->vif.type == NL80211_IFTYPE_ADHOC) { + local->fif_probe_req++; + } + + if (sdata->vif.type != NL80211_IFTYPE_P2P_DEVICE && + sdata->vif.type != NL80211_IFTYPE_NAN) + changed |= ieee80211_reset_erp_info(sdata); + ieee80211_bss_info_change_notify(sdata, changed); + + switch (sdata->vif.type) { + case NL80211_IFTYPE_STATION: + case NL80211_IFTYPE_ADHOC: + case NL80211_IFTYPE_AP: + case NL80211_IFTYPE_MESH_POINT: + case NL80211_IFTYPE_OCB: + netif_carrier_off(dev); + break; + case NL80211_IFTYPE_WDS: + case NL80211_IFTYPE_P2P_DEVICE: + case NL80211_IFTYPE_NAN: + break; + default: + /* not reached */ + WARN_ON(1); + } + + /* + * Set default queue parameters so drivers don't + * need to initialise the hardware if the hardware + * doesn't start up with sane defaults. + * Enable QoS for anything but station interfaces. + */ + ieee80211_set_wmm_default(sdata, true, + sdata->vif.type != NL80211_IFTYPE_STATION); + } + + set_bit(SDATA_STATE_RUNNING, &sdata->state); + + switch (sdata->vif.type) { + case NL80211_IFTYPE_WDS: + /* Create STA entry for the WDS peer */ + sta = sta_info_alloc(sdata, sdata->u.wds.remote_addr, + GFP_KERNEL); + if (!sta) { + res = -ENOMEM; + goto err_del_interface; + } + + sta_info_pre_move_state(sta, IEEE80211_STA_AUTH); + sta_info_pre_move_state(sta, IEEE80211_STA_ASSOC); + sta_info_pre_move_state(sta, IEEE80211_STA_AUTHORIZED); + + res = sta_info_insert(sta); + if (res) { + /* STA has been freed */ + goto err_del_interface; + } + + rate_control_rate_init(sta); + netif_carrier_on(dev); + break; + case NL80211_IFTYPE_P2P_DEVICE: + rcu_assign_pointer(local->p2p_sdata, sdata); + break; + case NL80211_IFTYPE_MONITOR: + if (sdata->u.mntr.flags & MONITOR_FLAG_COOK_FRAMES) + break; + list_add_tail_rcu(&sdata->u.mntr.list, &local->mon_list); + break; + default: + break; + } + + /* + * set_multicast_list will be invoked by the networking core + * which will check whether any increments here were done in + * error and sync them down to the hardware as filter flags. + */ + if (sdata->flags & IEEE80211_SDATA_ALLMULTI) + atomic_inc(&local->iff_allmultis); + + if (coming_up) + local->open_count++; + + if (hw_reconf_flags) + ieee80211_hw_config(local, hw_reconf_flags); + + ieee80211_recalc_ps(local); + + if (sdata->vif.type == NL80211_IFTYPE_MONITOR || + sdata->vif.type == NL80211_IFTYPE_AP_VLAN || + local->ops->wake_tx_queue) { + /* XXX: for AP_VLAN, actually track AP queues */ + if (dev) + netif_tx_start_all_queues(dev); + } else if (dev) { + unsigned long flags; + int n_acs = IEEE80211_NUM_ACS; + int ac; + + if (local->hw.queues < IEEE80211_NUM_ACS) + n_acs = 1; + + spin_lock_irqsave(&local->queue_stop_reason_lock, flags); + if (sdata->vif.cab_queue == IEEE80211_INVAL_HW_QUEUE || + (local->queue_stop_reasons[sdata->vif.cab_queue] == 0 && + skb_queue_empty(&local->pending[sdata->vif.cab_queue]))) { + for (ac = 0; ac < n_acs; ac++) { + int ac_queue = sdata->vif.hw_queue[ac]; + + if (local->queue_stop_reasons[ac_queue] == 0 && + skb_queue_empty(&local->pending[ac_queue])) + netif_start_subqueue(dev, ac); + } + } + spin_unlock_irqrestore(&local->queue_stop_reason_lock, flags); + } + + return 0; + err_del_interface: + drv_remove_interface(local, sdata); + err_stop: + if (!local->open_count) + drv_stop(local); + err_del_bss: + sdata->bss = NULL; + if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN) { + mutex_lock(&local->mtx); + list_del(&sdata->u.vlan.list); + mutex_unlock(&local->mtx); + } + /* might already be clear but that doesn't matter */ + clear_bit(SDATA_STATE_RUNNING, &sdata->state); + return res; +} + static void ieee80211_if_free(struct net_device *dev) { free_percpu(dev->tstats); @@ -1541,6 +1661,7 @@ ieee80211_teardown_sdata(sdata); + ieee80211_set_sdata_offload_flags(sdata); ret = drv_change_interface(local, sdata, internal_type, p2p); if (ret) type = ieee80211_vif_type_p2p(&sdata->vif); @@ -1553,6 +1674,7 @@ ieee80211_check_queues(sdata, type); ieee80211_setup_sdata(sdata, type); + ieee80211_set_vif_encap_ops(sdata); err = ieee80211_do_open(&sdata->wdev, false); WARN(err, "type change: do_open returned %d", err); @@ -1772,6 +1894,10 @@ if_setup, txqs, 1); if (!ndev) return -ENOMEM; + + if (!local->ops->wake_tx_queue && local->hw.wiphy->tx_queue_len) + ndev->tx_queue_len = local->hw.wiphy->tx_queue_len; + dev_net_set(ndev, wiphy_net(local->hw.wiphy)); ndev->tstats = netdev_alloc_pcpu_stats(struct pcpu_sw_netstats); only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/net/mac80211/key.c +++ linux-oem-5.6-5.6.0/net/mac80211/key.c @@ -210,12 +210,12 @@ case WLAN_CIPHER_SUITE_TKIP: case WLAN_CIPHER_SUITE_CCMP: case WLAN_CIPHER_SUITE_CCMP_256: + case WLAN_CIPHER_SUITE_GCMP: + case WLAN_CIPHER_SUITE_GCMP_256: case WLAN_CIPHER_SUITE_AES_CMAC: case WLAN_CIPHER_SUITE_BIP_CMAC_256: case WLAN_CIPHER_SUITE_BIP_GMAC_128: case WLAN_CIPHER_SUITE_BIP_GMAC_256: - case WLAN_CIPHER_SUITE_GCMP: - case WLAN_CIPHER_SUITE_GCMP_256: /* all of these we can do in software - if driver can */ if (ret == 1) return 0; only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/net/mac80211/mesh.h +++ linux-oem-5.6-5.6.0/net/mac80211/mesh.h @@ -222,6 +222,8 @@ struct sk_buff *skb, u8 ie_len); int mesh_add_he_oper_ie(struct ieee80211_sub_if_data *sdata, struct sk_buff *skb); +int mesh_add_he_6ghz_cap_ie(struct ieee80211_sub_if_data *sdata, + struct sk_buff *skb); void mesh_rmc_free(struct ieee80211_sub_if_data *sdata); int mesh_rmc_init(struct ieee80211_sub_if_data *sdata); void ieee80211s_init(void); only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/net/mac80211/mesh_plink.c +++ linux-oem-5.6-5.6.0/net/mac80211/mesh_plink.c @@ -238,6 +238,8 @@ 2 + sizeof(struct ieee80211_vht_operation) + ie_len_he_cap + 2 + 1 + sizeof(struct ieee80211_he_operation) + + sizeof(struct ieee80211_he_6ghz_oper) + + 2 + 1 + sizeof(struct ieee80211_he_6ghz_capa) + 2 + 8 + /* peering IE */ sdata->u.mesh.ie_len); if (!skb) @@ -328,7 +330,8 @@ mesh_add_vht_cap_ie(sdata, skb) || mesh_add_vht_oper_ie(sdata, skb) || mesh_add_he_cap_ie(sdata, skb, ie_len_he_cap) || - mesh_add_he_oper_ie(sdata, skb)) + mesh_add_he_oper_ie(sdata, skb) || + mesh_add_he_6ghz_cap_ie(sdata, skb)) goto free; } @@ -441,7 +444,9 @@ elems->vht_cap_elem, sta); ieee80211_he_cap_ie_to_sta_he_cap(sdata, sband, elems->he_cap, - elems->he_cap_len, sta); + elems->he_cap_len, + elems->he_6ghz_capa, + sta); if (bw != sta->sta.bandwidth) changed |= IEEE80211_RC_BW_CHANGED; only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/net/mac80211/mesh_ps.c +++ linux-oem-5.6-5.6.0/net/mac80211/mesh_ps.c @@ -432,7 +432,7 @@ info = IEEE80211_SKB_CB(new_skb); info->control.vif = &sdata->vif; - info->flags |= IEEE80211_TX_INTFL_NEED_TXPROCESSING; + info->control.flags |= IEEE80211_TX_INTCFL_NEED_TXPROCESSING; __skb_queue_tail(frames, new_skb); } only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/net/mac80211/offchannel.c +++ linux-oem-5.6-5.6.0/net/mac80211/offchannel.c @@ -912,7 +912,7 @@ if (beacon) for (i = 0; i < params->n_csa_offsets; i++) data[params->csa_offsets[i]] = - beacon->csa_current_counter; + beacon->cntdwn_current_counter; rcu_read_unlock(); } only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/net/mac80211/scan.c +++ linux-oem-5.6-5.6.0/net/mac80211/scan.c @@ -132,6 +132,12 @@ bss->beacon_rate = &sband->bitrates[rx_status->rate_idx]; } + + if (elems->vht_cap_elem) + bss->vht_cap_info = + le32_to_cpu(elems->vht_cap_elem->vht_cap_info); + else + bss->vht_cap_info = 0; } struct ieee80211_bss * @@ -307,8 +313,9 @@ } /* return false if no more work */ -static bool ieee80211_prep_hw_scan(struct ieee80211_local *local) +static bool ieee80211_prep_hw_scan(struct ieee80211_sub_if_data *sdata) { + struct ieee80211_local *local = sdata->local; struct cfg80211_scan_request *req; struct cfg80211_chan_def chandef; u8 bands_used = 0; @@ -355,7 +362,7 @@ if (req->flags & NL80211_SCAN_FLAG_MIN_PREQ_CONTENT) flags |= IEEE80211_PROBE_FLAG_MIN_CONTENT; - ielen = ieee80211_build_preq_ies(local, + ielen = ieee80211_build_preq_ies(sdata, (u8 *)local->hw_scan_req->req.ie, local->hw_scan_ies_bufsize, &local->hw_scan_req->ies, @@ -395,9 +402,12 @@ if (WARN_ON(!local->scan_req)) return; + scan_sdata = rcu_dereference_protected(local->scan_sdata, + lockdep_is_held(&local->mtx)); + if (hw_scan && !aborted && !ieee80211_hw_check(&local->hw, SINGLE_SCAN_ON_ALL_BANDS) && - ieee80211_prep_hw_scan(local)) { + ieee80211_prep_hw_scan(scan_sdata)) { int rc; rc = drv_hw_scan(local, @@ -426,9 +436,6 @@ cfg80211_scan_done(scan_req, &local->scan_info); } RCU_INIT_POINTER(local->scan_req, NULL); - - scan_sdata = rcu_dereference_protected(local->scan_sdata, - lockdep_is_held(&local->mtx)); RCU_INIT_POINTER(local->scan_sdata, NULL); local->scanning = 0; @@ -770,7 +777,7 @@ ieee80211_recalc_idle(local); if (hw_scan) { - WARN_ON(!ieee80211_prep_hw_scan(local)); + WARN_ON(!ieee80211_prep_hw_scan(sdata)); rc = drv_hw_scan(local, sdata, local->hw_scan_req); } else { rc = ieee80211_start_sw_scan(local, sdata); @@ -1267,7 +1274,7 @@ ieee80211_prepare_scan_chandef(&chandef, req->scan_width); - ieee80211_build_preq_ies(local, ie, num_bands * iebufsz, + ieee80211_build_preq_ies(sdata, ie, num_bands * iebufsz, &sched_scan_ies, req->ie, req->ie_len, bands_used, rate_masks, &chandef, flags); only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/net/mac80211/spectmgmt.c +++ linux-oem-5.6-5.6.0/net/mac80211/spectmgmt.c @@ -9,7 +9,7 @@ * Copyright 2007, Michael Wu * Copyright 2007-2008, Intel Corporation * Copyright 2008, Johannes Berg - * Copyright (C) 2018 Intel Corporation + * Copyright (C) 2018, 2020 Intel Corporation */ #include @@ -22,6 +22,7 @@ int ieee80211_parse_ch_switch_ie(struct ieee80211_sub_if_data *sdata, struct ieee802_11_elems *elems, enum nl80211_band current_band, + u32 vht_cap_info, u32 sta_flags, u8 *bssid, struct ieee80211_csa_ie *csa_ie) { @@ -150,6 +151,7 @@ /* ignore if parsing fails */ if (!ieee80211_chandef_vht_oper(&sdata->local->hw, + vht_cap_info, &vht_oper, &ht_oper, &new_vht_chandef)) new_vht_chandef.chan = NULL; only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/net/mac80211/sta_info.h +++ linux-oem-5.6-5.6.0/net/mac80211/sta_info.h @@ -68,6 +68,8 @@ * @WLAN_STA_MPSP_RECIPIENT: local STA is recipient of a MPSP. * @WLAN_STA_PS_DELIVER: station woke up, but we're still blocking TX * until pending frames are delivered + * @WLAN_STA_USES_ENCRYPTION: This station was configured for encryption, + * so drop all packets without a key later. * * @NUM_WLAN_STA_FLAGS: number of defined flags */ @@ -332,7 +334,6 @@ * @expected_ds_bits: from/to DS bits expected * @icv_len: length of the MIC if present * @key: bool indicating encryption is expected (key is set) - * @sta_notify: notify the MLME code (once) * @internal_forward: forward froms internally on AP/VLAN type interfaces * @uses_rss: copy of USES_RSS hw flag * @da_offs: offset of the DA in the header (for header conversion) @@ -348,7 +349,6 @@ __le16 expected_ds_bits; u8 icv_len; u8 key:1, - sta_notify:1, internal_forward:1, uses_rss:1; u8 da_offs, sa_offs; @@ -518,7 +518,7 @@ * @status_stats.retry_failed: # of frames that failed after retry * @status_stats.retry_count: # of retries attempted * @status_stats.lost_packets: # of lost packets - * @status_stats.last_tdls_pkt_time: timestamp of last TDLS packet + * @status_stats.last_pkt_time: timestamp of last ACKed packet * @status_stats.msdu_retries: # of MSDU retries * @status_stats.msdu_failed: # of failed MSDUs * @status_stats.last_ack: last ack timestamp (jiffies) @@ -589,7 +589,7 @@ unsigned long filtered; unsigned long retry_failed, retry_count; unsigned int lost_packets; - unsigned long last_tdls_pkt_time; + unsigned long last_pkt_time; u64 msdu_retries[IEEE80211_NUM_TIDS + 1]; u64 msdu_failed[IEEE80211_NUM_TIDS + 1]; unsigned long last_ack; @@ -603,6 +603,7 @@ u64 packets[IEEE80211_NUM_ACS]; u64 bytes[IEEE80211_NUM_ACS]; struct ieee80211_tx_rate last_rate; + struct rate_info last_rate_info; u64 msdu[IEEE80211_NUM_TIDS + 1]; } tx_stats; u16 tid_seq[IEEE80211_QOS_CTL_TID_MASK + 1]; only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/net/mac80211/tdls.c +++ linux-oem-5.6-5.6.0/net/mac80211/tdls.c @@ -1055,7 +1055,7 @@ /* disable bottom halves when entering the Tx path */ local_bh_disable(); - __ieee80211_subif_start_xmit(skb, dev, flags, 0); + __ieee80211_subif_start_xmit(skb, dev, flags, 0, NULL); local_bh_enable(); return ret; only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/net/mac80211/trace.h +++ linux-oem-5.6-5.6.0/net/mac80211/trace.h @@ -2708,6 +2708,39 @@ ) ); +DEFINE_EVENT(local_sdata_addr_evt, drv_update_vif_offload, + TP_PROTO(struct ieee80211_local *local, + struct ieee80211_sub_if_data *sdata), + TP_ARGS(local, sdata) +); + +TRACE_EVENT(drv_sta_set_4addr, + TP_PROTO(struct ieee80211_local *local, + struct ieee80211_sub_if_data *sdata, + struct ieee80211_sta *sta, bool enabled), + + TP_ARGS(local, sdata, sta, enabled), + + TP_STRUCT__entry( + LOCAL_ENTRY + VIF_ENTRY + STA_ENTRY + __field(bool, enabled) + ), + + TP_fast_assign( + LOCAL_ASSIGN; + VIF_ASSIGN; + STA_ASSIGN; + __entry->enabled = enabled; + ), + + TP_printk( + LOCAL_PR_FMT VIF_PR_FMT STA_PR_FMT " enabled:%d", + LOCAL_PR_ARG, VIF_PR_ARG, STA_PR_ARG, __entry->enabled + ) +); + #endif /* !__MAC80211_DRIVER_TRACE || TRACE_HEADER_MULTI_READ */ #undef TRACE_INCLUDE_PATH only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/net/mac80211/util.c +++ linux-oem-5.6-5.6.0/net/mac80211/util.c @@ -891,6 +891,55 @@ } EXPORT_SYMBOL(ieee80211_queue_delayed_work); +static void ieee80211_parse_extension_element(u32 *crc, + const struct element *elem, + struct ieee802_11_elems *elems) +{ + const void *data = elem->data + 1; + u8 len = elem->datalen - 1; + + switch (elem->data[0]) { + case WLAN_EID_EXT_HE_MU_EDCA: + if (len == sizeof(*elems->mu_edca_param_set)) { + elems->mu_edca_param_set = data; + if (crc) + *crc = crc32_be(*crc, (void *)elem, + elem->datalen + 2); + } + break; + case WLAN_EID_EXT_HE_CAPABILITY: + elems->he_cap = data; + elems->he_cap_len = len; + break; + case WLAN_EID_EXT_HE_OPERATION: + if (len >= sizeof(*elems->he_operation) && + len == ieee80211_he_oper_size(data) - 1) + elems->he_operation = data; + break; + case WLAN_EID_EXT_UORA: + if (len == 1) + elems->uora_element = data; + break; + case WLAN_EID_EXT_MAX_CHANNEL_SWITCH_TIME: + if (len == 3) + elems->max_channel_switch_time = data; + break; + case WLAN_EID_EXT_MULTIPLE_BSSID_CONFIGURATION: + if (len == sizeof(*elems->mbssid_config_ie)) + elems->mbssid_config_ie = data; + break; + case WLAN_EID_EXT_HE_SPR: + if (len >= sizeof(*elems->he_spr) && + len >= ieee80211_he_spr_size(data)) + elems->he_spr = data; + break; + case WLAN_EID_EXT_HE_6GHZ_CAPA: + if (len == sizeof(*elems->he_6ghz_capa)) + elems->he_6ghz_capa = data; + break; + } +} + static u32 _ieee802_11_parse_elems_crc(const u8 *start, size_t len, bool action, struct ieee802_11_elems *elems, @@ -1227,33 +1276,9 @@ elems->max_idle_period_ie = (void *)pos; break; case WLAN_EID_EXTENSION: - if (pos[0] == WLAN_EID_EXT_HE_MU_EDCA && - elen >= (sizeof(*elems->mu_edca_param_set) + 1)) { - elems->mu_edca_param_set = (void *)&pos[1]; - if (calc_crc) - crc = crc32_be(crc, pos - 2, elen + 2); - } else if (pos[0] == WLAN_EID_EXT_HE_CAPABILITY) { - elems->he_cap = (void *)&pos[1]; - elems->he_cap_len = elen - 1; - } else if (pos[0] == WLAN_EID_EXT_HE_OPERATION && - elen >= sizeof(*elems->he_operation) && - elen >= ieee80211_he_oper_size(&pos[1])) { - elems->he_operation = (void *)&pos[1]; - } else if (pos[0] == WLAN_EID_EXT_UORA && elen >= 1) { - elems->uora_element = (void *)&pos[1]; - } else if (pos[0] == - WLAN_EID_EXT_MAX_CHANNEL_SWITCH_TIME && - elen == 4) { - elems->max_channel_switch_time = pos + 1; - } else if (pos[0] == - WLAN_EID_EXT_MULTIPLE_BSSID_CONFIGURATION && - elen == 3) { - elems->mbssid_config_ie = (void *)&pos[1]; - } else if (pos[0] == WLAN_EID_EXT_HE_SPR && - elen >= sizeof(*elems->he_spr) && - elen >= ieee80211_he_spr_size(&pos[1])) { - elems->he_spr = (void *)&pos[1]; - } + ieee80211_parse_extension_element(calc_crc ? + &crc : NULL, + elem, elems); break; default: break; @@ -1630,7 +1655,20 @@ } } -static int ieee80211_build_preq_ies_band(struct ieee80211_local *local, +static u8 *ieee80211_write_he_6ghz_cap(u8 *pos, __le16 cap, u8 *end) +{ + if ((end - pos) < 5) + return pos; + + *pos++ = WLAN_EID_EXTENSION; + *pos++ = 1 + sizeof(cap); + *pos++ = WLAN_EID_EXT_HE_6GHZ_CAPA; + memcpy(pos, &cap, sizeof(cap)); + + return pos + 2; +} + +static int ieee80211_build_preq_ies_band(struct ieee80211_sub_if_data *sdata, u8 *buffer, size_t buffer_len, const u8 *ie, size_t ie_len, enum nl80211_band band, @@ -1638,6 +1676,7 @@ struct cfg80211_chan_def *chandef, size_t *offset, u32 flags) { + struct ieee80211_local *local = sdata->local; struct ieee80211_supported_band *sband; const struct ieee80211_sta_he_cap *he_cap; u8 *pos = buffer, *end = buffer + buffer_len; @@ -1815,6 +1854,14 @@ pos = ieee80211_ie_build_he_cap(pos, he_cap, end); if (!pos) goto out_err; + + if (sband->band == NL80211_BAND_6GHZ) { + enum nl80211_iftype iftype = + ieee80211_vif_type_p2p(&sdata->vif); + __le16 cap = ieee80211_get_he_6ghz_capa(sband, iftype); + + pos = ieee80211_write_he_6ghz_cap(pos, cap, end); + } } /* @@ -1829,7 +1876,7 @@ return pos - buffer; } -int ieee80211_build_preq_ies(struct ieee80211_local *local, u8 *buffer, +int ieee80211_build_preq_ies(struct ieee80211_sub_if_data *sdata, u8 *buffer, size_t buffer_len, struct ieee80211_scan_ies *ie_desc, const u8 *ie, size_t ie_len, @@ -1844,7 +1891,7 @@ for (i = 0; i < NUM_NL80211_BANDS; i++) { if (bands_used & BIT(i)) { - pos += ieee80211_build_preq_ies_band(local, + pos += ieee80211_build_preq_ies_band(sdata, buffer + pos, buffer_len - pos, ie, ie_len, i, @@ -1906,7 +1953,7 @@ return NULL; rate_masks[chan->band] = ratemask; - ies_len = ieee80211_build_preq_ies(local, skb_tail_pointer(skb), + ies_len = ieee80211_build_preq_ies(sdata, skb_tail_pointer(skb), skb_tailroom(skb), &dummy_ie_desc, ie, ie_len, BIT(chan->band), rate_masks, &chandef, flags); @@ -2806,6 +2853,50 @@ return pos; } +void ieee80211_ie_build_he_6ghz_cap(struct ieee80211_sub_if_data *sdata, + struct sk_buff *skb) +{ + struct ieee80211_supported_band *sband; + const struct ieee80211_sband_iftype_data *iftd; + enum nl80211_iftype iftype = ieee80211_vif_type_p2p(&sdata->vif); + u8 *pos; + u16 cap; + + sband = ieee80211_get_sband(sdata); + if (!sband) + return; + + iftd = ieee80211_get_sband_iftype_data(sband, iftype); + if (WARN_ON(!iftd)) + return; + + cap = le16_to_cpu(iftd->he_6ghz_capa.capa); + cap &= ~IEEE80211_HE_6GHZ_CAP_SM_PS; + + switch (sdata->smps_mode) { + case IEEE80211_SMPS_AUTOMATIC: + case IEEE80211_SMPS_NUM_MODES: + WARN_ON(1); + /* fall through */ + case IEEE80211_SMPS_OFF: + cap |= u16_encode_bits(WLAN_HT_CAP_SM_PS_DISABLED, + IEEE80211_HE_6GHZ_CAP_SM_PS); + break; + case IEEE80211_SMPS_STATIC: + cap |= u16_encode_bits(WLAN_HT_CAP_SM_PS_STATIC, + IEEE80211_HE_6GHZ_CAP_SM_PS); + break; + case IEEE80211_SMPS_DYNAMIC: + cap |= u16_encode_bits(WLAN_HT_CAP_SM_PS_DYNAMIC, + IEEE80211_HE_6GHZ_CAP_SM_PS); + break; + } + + pos = skb_put(skb, 2 + 1 + sizeof(cap)); + ieee80211_write_he_6ghz_cap(pos, cpu_to_le16(cap), + pos + 2 + 1 + sizeof(cap)); +} + u8 *ieee80211_ie_build_ht_oper(u8 *pos, struct ieee80211_sta_ht_cap *ht_cap, const struct cfg80211_chan_def *chandef, u16 prot_mode, bool rifs_mode) @@ -2929,13 +3020,18 @@ return pos + sizeof(struct ieee80211_vht_operation); } -u8 *ieee80211_ie_build_he_oper(u8 *pos) +u8 *ieee80211_ie_build_he_oper(u8 *pos, struct cfg80211_chan_def *chandef) { struct ieee80211_he_operation *he_oper; + struct ieee80211_he_6ghz_oper *he_6ghz_op; u32 he_oper_params; + u8 ie_len = 1 + sizeof(struct ieee80211_he_operation); + + if (chandef->chan->band == NL80211_BAND_6GHZ) + ie_len += sizeof(struct ieee80211_he_6ghz_oper); *pos++ = WLAN_EID_EXTENSION; - *pos++ = 1 + sizeof(struct ieee80211_he_operation); + *pos++ = ie_len; *pos++ = WLAN_EID_EXT_HE_OPERATION; he_oper_params = 0; @@ -2945,16 +3041,68 @@ IEEE80211_HE_OPERATION_ER_SU_DISABLE); he_oper_params |= u32_encode_bits(1, IEEE80211_HE_OPERATION_BSS_COLOR_DISABLED); + if (chandef->chan->band == NL80211_BAND_6GHZ) + he_oper_params |= u32_encode_bits(1, + IEEE80211_HE_OPERATION_6GHZ_OP_INFO); he_oper = (struct ieee80211_he_operation *)pos; he_oper->he_oper_params = cpu_to_le32(he_oper_params); /* don't require special HE peer rates */ he_oper->he_mcs_nss_set = cpu_to_le16(0xffff); + pos += sizeof(struct ieee80211_he_operation); - /* TODO add VHT operational and 6GHz operational subelement? */ + if (chandef->chan->band != NL80211_BAND_6GHZ) + goto out; - return pos + sizeof(struct ieee80211_vht_operation); + /* TODO add VHT operational */ + he_6ghz_op = (struct ieee80211_he_6ghz_oper *)pos; + he_6ghz_op->minrate = 6; /* 6 Mbps */ + he_6ghz_op->primary = + ieee80211_frequency_to_channel(chandef->chan->center_freq); + he_6ghz_op->ccfs0 = + ieee80211_frequency_to_channel(chandef->center_freq1); + if (chandef->center_freq2) + he_6ghz_op->ccfs1 = + ieee80211_frequency_to_channel(chandef->center_freq2); + else + he_6ghz_op->ccfs1 = 0; + + switch (chandef->width) { + case NL80211_CHAN_WIDTH_160: + /* Convert 160 MHz channel width to new style as interop + * workaround. + */ + he_6ghz_op->control = + IEEE80211_HE_6GHZ_OPER_CTRL_CHANWIDTH_160MHZ; + he_6ghz_op->ccfs1 = he_6ghz_op->ccfs0; + if (chandef->chan->center_freq < chandef->center_freq1) + he_6ghz_op->ccfs0 -= 8; + else + he_6ghz_op->ccfs0 += 8; + fallthrough; + case NL80211_CHAN_WIDTH_80P80: + he_6ghz_op->control = + IEEE80211_HE_6GHZ_OPER_CTRL_CHANWIDTH_160MHZ; + break; + case NL80211_CHAN_WIDTH_80: + he_6ghz_op->control = + IEEE80211_HE_6GHZ_OPER_CTRL_CHANWIDTH_80MHZ; + break; + case NL80211_CHAN_WIDTH_40: + he_6ghz_op->control = + IEEE80211_HE_6GHZ_OPER_CTRL_CHANWIDTH_40MHZ; + break; + default: + he_6ghz_op->control = + IEEE80211_HE_6GHZ_OPER_CTRL_CHANWIDTH_20MHZ; + break; + } + + pos += sizeof(struct ieee80211_he_6ghz_oper); + +out: + return pos; } bool ieee80211_chandef_ht_oper(const struct ieee80211_ht_operation *ht_oper, @@ -2984,7 +3132,7 @@ return true; } -bool ieee80211_chandef_vht_oper(struct ieee80211_hw *hw, +bool ieee80211_chandef_vht_oper(struct ieee80211_hw *hw, u32 vht_cap_info, const struct ieee80211_vht_operation *oper, const struct ieee80211_ht_operation *htop, struct cfg80211_chan_def *chandef) @@ -2996,6 +3144,10 @@ u32 vht_cap; bool support_80_80 = false; bool support_160 = false; + u8 ext_nss_bw_supp = u32_get_bits(vht_cap_info, + IEEE80211_VHT_CAP_EXT_NSS_BW_MASK); + u8 supp_chwidth = u32_get_bits(vht_cap_info, + IEEE80211_VHT_CAP_SUPP_CHAN_WIDTH_MASK); if (!oper || !htop) return false; @@ -3015,11 +3167,48 @@ IEEE80211_HT_OP_MODE_CCFS2_MASK) >> IEEE80211_HT_OP_MODE_CCFS2_SHIFT; - /* when parsing (and we know how to) CCFS1 and CCFS2 are equivalent */ ccf0 = ccfs0; - ccf1 = ccfs1; - if (!ccfs1 && ieee80211_hw_check(hw, SUPPORTS_VHT_EXT_NSS_BW)) + + /* if not supported, parse as though we didn't understand it */ + if (!ieee80211_hw_check(hw, SUPPORTS_VHT_EXT_NSS_BW)) + ext_nss_bw_supp = 0; + + /* + * Cf. IEEE 802.11 Table 9-250 + * + * We really just consider that because it's inefficient to connect + * at a higher bandwidth than we'll actually be able to use. + */ + switch ((supp_chwidth << 4) | ext_nss_bw_supp) { + default: + case 0x00: + ccf1 = 0; + support_160 = false; + support_80_80 = false; + break; + case 0x01: + support_80_80 = false; + /* fall through */ + case 0x02: + case 0x03: ccf1 = ccfs2; + break; + case 0x10: + ccf1 = ccfs1; + break; + case 0x11: + case 0x12: + if (!ccfs1) + ccf1 = ccfs2; + else + ccf1 = ccfs1; + break; + case 0x13: + case 0x20: + case 0x23: + ccf1 = ccfs1; + break; + } cf0 = ieee80211_channel_to_frequency(ccf0, chandef->chan->band); cf1 = ieee80211_channel_to_frequency(ccf1, chandef->chan->band); @@ -3067,6 +3256,112 @@ return true; } +bool ieee80211_chandef_he_6ghz_oper(struct ieee80211_sub_if_data *sdata, + const struct ieee80211_he_operation *he_oper, + struct cfg80211_chan_def *chandef) +{ + struct ieee80211_local *local = sdata->local; + struct ieee80211_supported_band *sband; + enum nl80211_iftype iftype = ieee80211_vif_type_p2p(&sdata->vif); + const struct ieee80211_sta_he_cap *he_cap; + struct cfg80211_chan_def he_chandef = *chandef; + const struct ieee80211_he_6ghz_oper *he_6ghz_oper; + bool support_80_80, support_160; + u8 he_phy_cap; + u32 freq; + + if (chandef->chan->band != NL80211_BAND_6GHZ) + return true; + + sband = local->hw.wiphy->bands[NL80211_BAND_6GHZ]; + + he_cap = ieee80211_get_he_iftype_cap(sband, iftype); + if (!he_cap) { + sdata_info(sdata, "Missing iftype sband data/HE cap"); + return false; + } + + he_phy_cap = he_cap->he_cap_elem.phy_cap_info[0]; + support_160 = + he_phy_cap & + IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_160MHZ_IN_5G; + support_80_80 = + he_phy_cap & + IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_80PLUS80_MHZ_IN_5G; + + if (!he_oper) { + sdata_info(sdata, + "HE is not advertised on (on %d MHz), expect issues\n", + chandef->chan->center_freq); + return false; + } + + he_6ghz_oper = ieee80211_he_6ghz_oper(he_oper); + + if (!he_6ghz_oper) { + sdata_info(sdata, + "HE 6GHz operation missing (on %d MHz), expect issues\n", + chandef->chan->center_freq); + return false; + } + + freq = ieee80211_channel_to_frequency(he_6ghz_oper->primary, + NL80211_BAND_6GHZ); + he_chandef.chan = ieee80211_get_channel(sdata->local->hw.wiphy, freq); + + switch (u8_get_bits(he_6ghz_oper->control, + IEEE80211_HE_6GHZ_OPER_CTRL_CHANWIDTH)) { + case IEEE80211_HE_6GHZ_OPER_CTRL_CHANWIDTH_20MHZ: + he_chandef.width = NL80211_CHAN_WIDTH_20; + break; + case IEEE80211_HE_6GHZ_OPER_CTRL_CHANWIDTH_40MHZ: + he_chandef.width = NL80211_CHAN_WIDTH_40; + break; + case IEEE80211_HE_6GHZ_OPER_CTRL_CHANWIDTH_80MHZ: + he_chandef.width = NL80211_CHAN_WIDTH_80; + break; + case IEEE80211_HE_6GHZ_OPER_CTRL_CHANWIDTH_160MHZ: + he_chandef.width = NL80211_CHAN_WIDTH_80; + if (!he_6ghz_oper->ccfs1) + break; + if (abs(he_6ghz_oper->ccfs1 - he_6ghz_oper->ccfs0) == 8) { + if (support_160) + he_chandef.width = NL80211_CHAN_WIDTH_160; + } else { + if (support_80_80) + he_chandef.width = NL80211_CHAN_WIDTH_80P80; + } + break; + } + + if (he_chandef.width == NL80211_CHAN_WIDTH_160) { + he_chandef.center_freq1 = + ieee80211_channel_to_frequency(he_6ghz_oper->ccfs1, + NL80211_BAND_6GHZ); + } else { + he_chandef.center_freq1 = + ieee80211_channel_to_frequency(he_6ghz_oper->ccfs0, + NL80211_BAND_6GHZ); + he_chandef.center_freq2 = + ieee80211_channel_to_frequency(he_6ghz_oper->ccfs1, + NL80211_BAND_6GHZ); + } + + if (!cfg80211_chandef_valid(&he_chandef)) { + sdata_info(sdata, + "HE 6GHz operation resulted in invalid chandef: %d MHz/%d/%d MHz/%d MHz\n", + he_chandef.chan ? he_chandef.chan->center_freq : 0, + he_chandef.width, + he_chandef.center_freq1, + he_chandef.center_freq2); + return false; + } + + *chandef = he_chandef; + + return true; +} + int ieee80211_parse_bitrates(struct cfg80211_chan_def *chandef, const struct ieee80211_supported_band *sband, const u8 *srates, int srates_len, u32 *rates) only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/net/qrtr/Kconfig +++ linux-oem-5.6-5.6.0/net/qrtr/Kconfig @@ -4,7 +4,6 @@ config QRTR tristate "Qualcomm IPC Router support" - depends on ARCH_QCOM || COMPILE_TEST ---help--- Say Y if you intend to use Qualcomm IPC router protocol. The protocol is used to communicate with services provided by other @@ -29,4 +28,11 @@ implement endpoints of QRTR, for purpose of tunneling data to other hosts or testing purposes. +config QRTR_MHI + tristate "MHI IPC Router channels" + depends on MHI_BUS + help + Say Y here to support MHI based ipcrouter channels. MHI is the + transport used for communicating to external modems. + endif # QRTR only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/net/qrtr/Makefile +++ linux-oem-5.6-5.6.0/net/qrtr/Makefile @@ -1,7 +1,9 @@ # SPDX-License-Identifier: GPL-2.0-only -obj-$(CONFIG_QRTR) := qrtr.o +obj-$(CONFIG_QRTR) := qrtr.o ns.o obj-$(CONFIG_QRTR_SMD) += qrtr-smd.o qrtr-smd-y := smd.o obj-$(CONFIG_QRTR_TUN) += qrtr-tun.o qrtr-tun-y := tun.o +obj-$(CONFIG_QRTR_MHI) += qrtr-mhi.o +qrtr-mhi-y := mhi.o only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/net/qrtr/mhi.c +++ linux-oem-5.6-5.6.0/net/qrtr/mhi.c @@ -0,0 +1,127 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Copyright (c) 2018-2020, The Linux Foundation. All rights reserved. + */ + +#include +#include +#include +#include +#include + +#include "qrtr.h" + +struct qrtr_mhi_dev { + struct qrtr_endpoint ep; + struct mhi_device *mhi_dev; + struct device *dev; +}; + +/* From MHI to QRTR */ +static void qcom_mhi_qrtr_dl_callback(struct mhi_device *mhi_dev, + struct mhi_result *mhi_res) +{ + struct qrtr_mhi_dev *qdev = dev_get_drvdata(&mhi_dev->dev); + int rc; + + if (!qdev || mhi_res->transaction_status) + return; + + rc = qrtr_endpoint_post(&qdev->ep, mhi_res->buf_addr, + mhi_res->bytes_xferd); + if (rc == -EINVAL) + dev_err(qdev->dev, "invalid ipcrouter packet\n"); +} + +/* From QRTR to MHI */ +static void qcom_mhi_qrtr_ul_callback(struct mhi_device *mhi_dev, + struct mhi_result *mhi_res) +{ + struct sk_buff *skb = mhi_res->buf_addr; + + if (skb->sk) + sock_put(skb->sk); + consume_skb(skb); +} + +/* Send data over MHI */ +static int qcom_mhi_qrtr_send(struct qrtr_endpoint *ep, struct sk_buff *skb) +{ + struct qrtr_mhi_dev *qdev = container_of(ep, struct qrtr_mhi_dev, ep); + int rc; + + rc = skb_linearize(skb); + if (rc) + goto free_skb; + + rc = mhi_queue_skb(qdev->mhi_dev, DMA_TO_DEVICE, skb, skb->len, + MHI_EOT); + if (rc) + goto free_skb; + + if (skb->sk) + sock_hold(skb->sk); + + return rc; + +free_skb: + kfree_skb(skb); + + return rc; +} + +static int qcom_mhi_qrtr_probe(struct mhi_device *mhi_dev, + const struct mhi_device_id *id) +{ + struct qrtr_mhi_dev *qdev; + int rc; + + qdev = devm_kzalloc(&mhi_dev->dev, sizeof(*qdev), GFP_KERNEL); + if (!qdev) + return -ENOMEM; + + qdev->mhi_dev = mhi_dev; + qdev->dev = &mhi_dev->dev; + qdev->ep.xmit = qcom_mhi_qrtr_send; + + dev_set_drvdata(&mhi_dev->dev, qdev); + rc = qrtr_endpoint_register(&qdev->ep, QRTR_EP_NID_AUTO); + if (rc) + return rc; + + dev_dbg(qdev->dev, "Qualcomm MHI QRTR driver probed\n"); + + return 0; +} + +static void qcom_mhi_qrtr_remove(struct mhi_device *mhi_dev) +{ + struct qrtr_mhi_dev *qdev = dev_get_drvdata(&mhi_dev->dev); + + qrtr_endpoint_unregister(&qdev->ep); + dev_set_drvdata(&mhi_dev->dev, NULL); +} + +static const struct mhi_device_id qcom_mhi_qrtr_id_table[] = { + { .chan = "IPCR" }, + {} +}; +MODULE_DEVICE_TABLE(mhi, qcom_mhi_qrtr_id_table); + +static struct mhi_driver qcom_mhi_qrtr_driver = { + .probe = qcom_mhi_qrtr_probe, + .remove = qcom_mhi_qrtr_remove, + .dl_xfer_cb = qcom_mhi_qrtr_dl_callback, + .ul_xfer_cb = qcom_mhi_qrtr_ul_callback, + .id_table = qcom_mhi_qrtr_id_table, + .driver = { + .name = "qcom_mhi_qrtr", + }, +}; + +module_mhi_driver(qcom_mhi_qrtr_driver); + +MODULE_AUTHOR("Chris Lew "); +MODULE_AUTHOR("Manivannan Sadhasivam "); +MODULE_DESCRIPTION("Qualcomm IPC-Router MHI interface driver"); +MODULE_LICENSE("GPL v2"); only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/net/qrtr/ns.c +++ linux-oem-5.6-5.6.0/net/qrtr/ns.c @@ -0,0 +1,827 @@ +// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause +/* + * Copyright (c) 2015, Sony Mobile Communications Inc. + * Copyright (c) 2013, The Linux Foundation. All rights reserved. + * Copyright (c) 2020, Linaro Ltd. + */ + +#include +#include +#include +#include + +#include "qrtr.h" + +#define CREATE_TRACE_POINTS +#include + +static RADIX_TREE(nodes, GFP_KERNEL); + +static struct { + struct socket *sock; + struct sockaddr_qrtr bcast_sq; + struct list_head lookups; + struct workqueue_struct *workqueue; + struct work_struct work; + int local_node; +} qrtr_ns; + +static const char * const qrtr_ctrl_pkt_strings[] = { + [QRTR_TYPE_HELLO] = "hello", + [QRTR_TYPE_BYE] = "bye", + [QRTR_TYPE_NEW_SERVER] = "new-server", + [QRTR_TYPE_DEL_SERVER] = "del-server", + [QRTR_TYPE_DEL_CLIENT] = "del-client", + [QRTR_TYPE_RESUME_TX] = "resume-tx", + [QRTR_TYPE_EXIT] = "exit", + [QRTR_TYPE_PING] = "ping", + [QRTR_TYPE_NEW_LOOKUP] = "new-lookup", + [QRTR_TYPE_DEL_LOOKUP] = "del-lookup", +}; + +struct qrtr_server_filter { + unsigned int service; + unsigned int instance; + unsigned int ifilter; +}; + +struct qrtr_lookup { + unsigned int service; + unsigned int instance; + + struct sockaddr_qrtr sq; + struct list_head li; +}; + +struct qrtr_server { + unsigned int service; + unsigned int instance; + + unsigned int node; + unsigned int port; + + struct list_head qli; +}; + +struct qrtr_node { + unsigned int id; + struct radix_tree_root servers; +}; + +static struct qrtr_node *node_get(unsigned int node_id) +{ + struct qrtr_node *node; + + node = radix_tree_lookup(&nodes, node_id); + if (node) + return node; + + /* If node didn't exist, allocate and insert it to the tree */ + node = kzalloc(sizeof(*node), GFP_KERNEL); + if (!node) + return NULL; + + node->id = node_id; + + radix_tree_insert(&nodes, node_id, node); + + return node; +} + +static int server_match(const struct qrtr_server *srv, + const struct qrtr_server_filter *f) +{ + unsigned int ifilter = f->ifilter; + + if (f->service != 0 && srv->service != f->service) + return 0; + if (!ifilter && f->instance) + ifilter = ~0; + + return (srv->instance & ifilter) == f->instance; +} + +static int service_announce_new(struct sockaddr_qrtr *dest, + struct qrtr_server *srv) +{ + struct qrtr_ctrl_pkt pkt; + struct msghdr msg = { }; + struct kvec iv; + + trace_qrtr_ns_service_announce_new(srv->service, srv->instance, + srv->node, srv->port); + + iv.iov_base = &pkt; + iv.iov_len = sizeof(pkt); + + memset(&pkt, 0, sizeof(pkt)); + pkt.cmd = cpu_to_le32(QRTR_TYPE_NEW_SERVER); + pkt.server.service = cpu_to_le32(srv->service); + pkt.server.instance = cpu_to_le32(srv->instance); + pkt.server.node = cpu_to_le32(srv->node); + pkt.server.port = cpu_to_le32(srv->port); + + msg.msg_name = (struct sockaddr *)dest; + msg.msg_namelen = sizeof(*dest); + + return kernel_sendmsg(qrtr_ns.sock, &msg, &iv, 1, sizeof(pkt)); +} + +static int service_announce_del(struct sockaddr_qrtr *dest, + struct qrtr_server *srv) +{ + struct qrtr_ctrl_pkt pkt; + struct msghdr msg = { }; + struct kvec iv; + int ret; + + trace_qrtr_ns_service_announce_del(srv->service, srv->instance, + srv->node, srv->port); + + iv.iov_base = &pkt; + iv.iov_len = sizeof(pkt); + + memset(&pkt, 0, sizeof(pkt)); + pkt.cmd = cpu_to_le32(QRTR_TYPE_DEL_SERVER); + pkt.server.service = cpu_to_le32(srv->service); + pkt.server.instance = cpu_to_le32(srv->instance); + pkt.server.node = cpu_to_le32(srv->node); + pkt.server.port = cpu_to_le32(srv->port); + + msg.msg_name = (struct sockaddr *)dest; + msg.msg_namelen = sizeof(*dest); + + ret = kernel_sendmsg(qrtr_ns.sock, &msg, &iv, 1, sizeof(pkt)); + if (ret < 0) + pr_err("failed to announce del service\n"); + + return ret; +} + +static void lookup_notify(struct sockaddr_qrtr *to, struct qrtr_server *srv, + bool new) +{ + struct qrtr_ctrl_pkt pkt; + struct msghdr msg = { }; + struct kvec iv; + int ret; + + iv.iov_base = &pkt; + iv.iov_len = sizeof(pkt); + + memset(&pkt, 0, sizeof(pkt)); + pkt.cmd = new ? cpu_to_le32(QRTR_TYPE_NEW_SERVER) : + cpu_to_le32(QRTR_TYPE_DEL_SERVER); + if (srv) { + pkt.server.service = cpu_to_le32(srv->service); + pkt.server.instance = cpu_to_le32(srv->instance); + pkt.server.node = cpu_to_le32(srv->node); + pkt.server.port = cpu_to_le32(srv->port); + } + + msg.msg_name = (struct sockaddr *)to; + msg.msg_namelen = sizeof(*to); + + ret = kernel_sendmsg(qrtr_ns.sock, &msg, &iv, 1, sizeof(pkt)); + if (ret < 0) + pr_err("failed to send lookup notification\n"); +} + +static int announce_servers(struct sockaddr_qrtr *sq) +{ + struct radix_tree_iter iter; + struct qrtr_server *srv; + struct qrtr_node *node; + void __rcu **slot; + int ret; + + node = node_get(qrtr_ns.local_node); + if (!node) + return 0; + + rcu_read_lock(); + /* Announce the list of servers registered in this node */ + radix_tree_for_each_slot(slot, &node->servers, &iter, 0) { + srv = radix_tree_deref_slot(slot); + if (!srv) + continue; + if (radix_tree_deref_retry(srv)) { + slot = radix_tree_iter_retry(&iter); + continue; + } + slot = radix_tree_iter_resume(slot, &iter); + rcu_read_unlock(); + + ret = service_announce_new(sq, srv); + if (ret < 0) { + pr_err("failed to announce new service\n"); + return ret; + } + + rcu_read_lock(); + } + + rcu_read_unlock(); + + return 0; +} + +static struct qrtr_server *server_add(unsigned int service, + unsigned int instance, + unsigned int node_id, + unsigned int port) +{ + struct qrtr_server *srv; + struct qrtr_server *old; + struct qrtr_node *node; + + if (!service || !port) + return NULL; + + srv = kzalloc(sizeof(*srv), GFP_KERNEL); + if (!srv) + return NULL; + + srv->service = service; + srv->instance = instance; + srv->node = node_id; + srv->port = port; + + node = node_get(node_id); + if (!node) + goto err; + + /* Delete the old server on the same port */ + old = radix_tree_lookup(&node->servers, port); + if (old) { + radix_tree_delete(&node->servers, port); + kfree(old); + } + + radix_tree_insert(&node->servers, port, srv); + + trace_qrtr_ns_server_add(srv->service, srv->instance, + srv->node, srv->port); + + return srv; + +err: + kfree(srv); + return NULL; +} + +static int server_del(struct qrtr_node *node, unsigned int port) +{ + struct qrtr_lookup *lookup; + struct qrtr_server *srv; + struct list_head *li; + + srv = radix_tree_lookup(&node->servers, port); + if (!srv) + return -ENOENT; + + radix_tree_delete(&node->servers, port); + + /* Broadcast the removal of local servers */ + if (srv->node == qrtr_ns.local_node) + service_announce_del(&qrtr_ns.bcast_sq, srv); + + /* Announce the service's disappearance to observers */ + list_for_each(li, &qrtr_ns.lookups) { + lookup = container_of(li, struct qrtr_lookup, li); + if (lookup->service && lookup->service != srv->service) + continue; + if (lookup->instance && lookup->instance != srv->instance) + continue; + + lookup_notify(&lookup->sq, srv, false); + } + + kfree(srv); + + return 0; +} + +static int say_hello(struct sockaddr_qrtr *dest) +{ + struct qrtr_ctrl_pkt pkt; + struct msghdr msg = { }; + struct kvec iv; + int ret; + + iv.iov_base = &pkt; + iv.iov_len = sizeof(pkt); + + memset(&pkt, 0, sizeof(pkt)); + pkt.cmd = cpu_to_le32(QRTR_TYPE_HELLO); + + msg.msg_name = (struct sockaddr *)dest; + msg.msg_namelen = sizeof(*dest); + + ret = kernel_sendmsg(qrtr_ns.sock, &msg, &iv, 1, sizeof(pkt)); + if (ret < 0) + pr_err("failed to send hello msg\n"); + + return ret; +} + +/* Announce the list of servers registered on the local node */ +static int ctrl_cmd_hello(struct sockaddr_qrtr *sq) +{ + int ret; + + ret = say_hello(sq); + if (ret < 0) + return ret; + + return announce_servers(sq); +} + +static int ctrl_cmd_bye(struct sockaddr_qrtr *from) +{ + struct qrtr_node *local_node; + struct radix_tree_iter iter; + struct qrtr_ctrl_pkt pkt; + struct qrtr_server *srv; + struct sockaddr_qrtr sq; + struct msghdr msg = { }; + struct qrtr_node *node; + void __rcu **slot; + struct kvec iv; + int ret; + + iv.iov_base = &pkt; + iv.iov_len = sizeof(pkt); + + node = node_get(from->sq_node); + if (!node) + return 0; + + rcu_read_lock(); + /* Advertise removal of this client to all servers of remote node */ + radix_tree_for_each_slot(slot, &node->servers, &iter, 0) { + srv = radix_tree_deref_slot(slot); + if (!srv) + continue; + if (radix_tree_deref_retry(srv)) { + slot = radix_tree_iter_retry(&iter); + continue; + } + slot = radix_tree_iter_resume(slot, &iter); + rcu_read_unlock(); + server_del(node, srv->port); + rcu_read_lock(); + } + rcu_read_unlock(); + + /* Advertise the removal of this client to all local servers */ + local_node = node_get(qrtr_ns.local_node); + if (!local_node) + return 0; + + memset(&pkt, 0, sizeof(pkt)); + pkt.cmd = cpu_to_le32(QRTR_TYPE_BYE); + pkt.client.node = cpu_to_le32(from->sq_node); + + rcu_read_lock(); + radix_tree_for_each_slot(slot, &local_node->servers, &iter, 0) { + srv = radix_tree_deref_slot(slot); + if (!srv) + continue; + if (radix_tree_deref_retry(srv)) { + slot = radix_tree_iter_retry(&iter); + continue; + } + slot = radix_tree_iter_resume(slot, &iter); + rcu_read_unlock(); + + sq.sq_family = AF_QIPCRTR; + sq.sq_node = srv->node; + sq.sq_port = srv->port; + + msg.msg_name = (struct sockaddr *)&sq; + msg.msg_namelen = sizeof(sq); + + ret = kernel_sendmsg(qrtr_ns.sock, &msg, &iv, 1, sizeof(pkt)); + if (ret < 0) { + pr_err("failed to send bye cmd\n"); + return ret; + } + rcu_read_lock(); + } + + rcu_read_unlock(); + + return 0; +} + +static int ctrl_cmd_del_client(struct sockaddr_qrtr *from, + unsigned int node_id, unsigned int port) +{ + struct qrtr_node *local_node; + struct radix_tree_iter iter; + struct qrtr_lookup *lookup; + struct qrtr_ctrl_pkt pkt; + struct msghdr msg = { }; + struct qrtr_server *srv; + struct sockaddr_qrtr sq; + struct qrtr_node *node; + struct list_head *tmp; + struct list_head *li; + void __rcu **slot; + struct kvec iv; + int ret; + + iv.iov_base = &pkt; + iv.iov_len = sizeof(pkt); + + /* Don't accept spoofed messages */ + if (from->sq_node != node_id) + return -EINVAL; + + /* Local DEL_CLIENT messages comes from the port being closed */ + if (from->sq_node == qrtr_ns.local_node && from->sq_port != port) + return -EINVAL; + + /* Remove any lookups by this client */ + list_for_each_safe(li, tmp, &qrtr_ns.lookups) { + lookup = container_of(li, struct qrtr_lookup, li); + if (lookup->sq.sq_node != node_id) + continue; + if (lookup->sq.sq_port != port) + continue; + + list_del(&lookup->li); + kfree(lookup); + } + + /* Remove the server belonging to this port */ + node = node_get(node_id); + if (node) + server_del(node, port); + + /* Advertise the removal of this client to all local servers */ + local_node = node_get(qrtr_ns.local_node); + if (!local_node) + return 0; + + memset(&pkt, 0, sizeof(pkt)); + pkt.cmd = cpu_to_le32(QRTR_TYPE_DEL_CLIENT); + pkt.client.node = cpu_to_le32(node_id); + pkt.client.port = cpu_to_le32(port); + + rcu_read_lock(); + radix_tree_for_each_slot(slot, &local_node->servers, &iter, 0) { + srv = radix_tree_deref_slot(slot); + if (!srv) + continue; + if (radix_tree_deref_retry(srv)) { + slot = radix_tree_iter_retry(&iter); + continue; + } + slot = radix_tree_iter_resume(slot, &iter); + rcu_read_unlock(); + + sq.sq_family = AF_QIPCRTR; + sq.sq_node = srv->node; + sq.sq_port = srv->port; + + msg.msg_name = (struct sockaddr *)&sq; + msg.msg_namelen = sizeof(sq); + + ret = kernel_sendmsg(qrtr_ns.sock, &msg, &iv, 1, sizeof(pkt)); + if (ret < 0) { + pr_err("failed to send del client cmd\n"); + return ret; + } + rcu_read_lock(); + } + + rcu_read_unlock(); + + return 0; +} + +static int ctrl_cmd_new_server(struct sockaddr_qrtr *from, + unsigned int service, unsigned int instance, + unsigned int node_id, unsigned int port) +{ + struct qrtr_lookup *lookup; + struct qrtr_server *srv; + struct list_head *li; + int ret = 0; + + /* Ignore specified node and port for local servers */ + if (from->sq_node == qrtr_ns.local_node) { + node_id = from->sq_node; + port = from->sq_port; + } + + /* Don't accept spoofed messages */ + if (from->sq_node != node_id) + return -EINVAL; + + srv = server_add(service, instance, node_id, port); + if (!srv) + return -EINVAL; + + if (srv->node == qrtr_ns.local_node) { + ret = service_announce_new(&qrtr_ns.bcast_sq, srv); + if (ret < 0) { + pr_err("failed to announce new service\n"); + return ret; + } + } + + /* Notify any potential lookups about the new server */ + list_for_each(li, &qrtr_ns.lookups) { + lookup = container_of(li, struct qrtr_lookup, li); + if (lookup->service && lookup->service != service) + continue; + if (lookup->instance && lookup->instance != instance) + continue; + + lookup_notify(&lookup->sq, srv, true); + } + + return ret; +} + +static int ctrl_cmd_del_server(struct sockaddr_qrtr *from, + unsigned int service, unsigned int instance, + unsigned int node_id, unsigned int port) +{ + struct qrtr_node *node; + + /* Ignore specified node and port for local servers*/ + if (from->sq_node == qrtr_ns.local_node) { + node_id = from->sq_node; + port = from->sq_port; + } + + /* Don't accept spoofed messages */ + if (from->sq_node != node_id) + return -EINVAL; + + /* Local servers may only unregister themselves */ + if (from->sq_node == qrtr_ns.local_node && from->sq_port != port) + return -EINVAL; + + node = node_get(node_id); + if (!node) + return -ENOENT; + + return server_del(node, port); +} + +static int ctrl_cmd_new_lookup(struct sockaddr_qrtr *from, + unsigned int service, unsigned int instance) +{ + struct radix_tree_iter node_iter; + struct qrtr_server_filter filter; + struct radix_tree_iter srv_iter; + struct qrtr_lookup *lookup; + struct qrtr_node *node; + void __rcu **node_slot; + void __rcu **srv_slot; + + /* Accept only local observers */ + if (from->sq_node != qrtr_ns.local_node) + return -EINVAL; + + lookup = kzalloc(sizeof(*lookup), GFP_KERNEL); + if (!lookup) + return -ENOMEM; + + lookup->sq = *from; + lookup->service = service; + lookup->instance = instance; + list_add_tail(&lookup->li, &qrtr_ns.lookups); + + memset(&filter, 0, sizeof(filter)); + filter.service = service; + filter.instance = instance; + + rcu_read_lock(); + radix_tree_for_each_slot(node_slot, &nodes, &node_iter, 0) { + node = radix_tree_deref_slot(node_slot); + if (!node) + continue; + if (radix_tree_deref_retry(node)) { + node_slot = radix_tree_iter_retry(&node_iter); + continue; + } + node_slot = radix_tree_iter_resume(node_slot, &node_iter); + + radix_tree_for_each_slot(srv_slot, &node->servers, + &srv_iter, 0) { + struct qrtr_server *srv; + + srv = radix_tree_deref_slot(srv_slot); + if (!srv) + continue; + if (radix_tree_deref_retry(srv)) { + srv_slot = radix_tree_iter_retry(&srv_iter); + continue; + } + + if (!server_match(srv, &filter)) + continue; + + srv_slot = radix_tree_iter_resume(srv_slot, &srv_iter); + + rcu_read_unlock(); + lookup_notify(from, srv, true); + rcu_read_lock(); + } + } + rcu_read_unlock(); + + /* Empty notification, to indicate end of listing */ + lookup_notify(from, NULL, true); + + return 0; +} + +static void ctrl_cmd_del_lookup(struct sockaddr_qrtr *from, + unsigned int service, unsigned int instance) +{ + struct qrtr_lookup *lookup; + struct list_head *tmp; + struct list_head *li; + + list_for_each_safe(li, tmp, &qrtr_ns.lookups) { + lookup = container_of(li, struct qrtr_lookup, li); + if (lookup->sq.sq_node != from->sq_node) + continue; + if (lookup->sq.sq_port != from->sq_port) + continue; + if (lookup->service != service) + continue; + if (lookup->instance && lookup->instance != instance) + continue; + + list_del(&lookup->li); + kfree(lookup); + } +} + +static void qrtr_ns_worker(struct work_struct *work) +{ + const struct qrtr_ctrl_pkt *pkt; + size_t recv_buf_size = 4096; + struct sockaddr_qrtr sq; + struct msghdr msg = { }; + unsigned int cmd; + ssize_t msglen; + void *recv_buf; + struct kvec iv; + int ret; + + msg.msg_name = (struct sockaddr *)&sq; + msg.msg_namelen = sizeof(sq); + + recv_buf = kzalloc(recv_buf_size, GFP_KERNEL); + if (!recv_buf) + return; + + for (;;) { + iv.iov_base = recv_buf; + iv.iov_len = recv_buf_size; + + msglen = kernel_recvmsg(qrtr_ns.sock, &msg, &iv, 1, + iv.iov_len, MSG_DONTWAIT); + + if (msglen == -EAGAIN) + break; + + if (msglen < 0) { + pr_err("error receiving packet: %zd\n", msglen); + break; + } + + pkt = recv_buf; + cmd = le32_to_cpu(pkt->cmd); + if (cmd < ARRAY_SIZE(qrtr_ctrl_pkt_strings) && + qrtr_ctrl_pkt_strings[cmd]) + trace_qrtr_ns_message(qrtr_ctrl_pkt_strings[cmd], + sq.sq_node, sq.sq_port); + + ret = 0; + switch (cmd) { + case QRTR_TYPE_HELLO: + ret = ctrl_cmd_hello(&sq); + break; + case QRTR_TYPE_BYE: + ret = ctrl_cmd_bye(&sq); + break; + case QRTR_TYPE_DEL_CLIENT: + ret = ctrl_cmd_del_client(&sq, + le32_to_cpu(pkt->client.node), + le32_to_cpu(pkt->client.port)); + break; + case QRTR_TYPE_NEW_SERVER: + ret = ctrl_cmd_new_server(&sq, + le32_to_cpu(pkt->server.service), + le32_to_cpu(pkt->server.instance), + le32_to_cpu(pkt->server.node), + le32_to_cpu(pkt->server.port)); + break; + case QRTR_TYPE_DEL_SERVER: + ret = ctrl_cmd_del_server(&sq, + le32_to_cpu(pkt->server.service), + le32_to_cpu(pkt->server.instance), + le32_to_cpu(pkt->server.node), + le32_to_cpu(pkt->server.port)); + break; + case QRTR_TYPE_EXIT: + case QRTR_TYPE_PING: + case QRTR_TYPE_RESUME_TX: + break; + case QRTR_TYPE_NEW_LOOKUP: + ret = ctrl_cmd_new_lookup(&sq, + le32_to_cpu(pkt->server.service), + le32_to_cpu(pkt->server.instance)); + break; + case QRTR_TYPE_DEL_LOOKUP: + ctrl_cmd_del_lookup(&sq, + le32_to_cpu(pkt->server.service), + le32_to_cpu(pkt->server.instance)); + break; + } + + if (ret < 0) + pr_err("failed while handling packet from %d:%d", + sq.sq_node, sq.sq_port); + } + + kfree(recv_buf); +} + +static void qrtr_ns_data_ready(struct sock *sk) +{ + queue_work(qrtr_ns.workqueue, &qrtr_ns.work); +} + +void qrtr_ns_init(void) +{ + struct sockaddr_qrtr sq; + int ret; + + INIT_LIST_HEAD(&qrtr_ns.lookups); + INIT_WORK(&qrtr_ns.work, qrtr_ns_worker); + + ret = sock_create_kern(&init_net, AF_QIPCRTR, SOCK_DGRAM, + PF_QIPCRTR, &qrtr_ns.sock); + if (ret < 0) + return; + + ret = kernel_getsockname(qrtr_ns.sock, (struct sockaddr *)&sq); + if (ret < 0) { + pr_err("failed to get socket name\n"); + goto err_sock; + } + + qrtr_ns.workqueue = alloc_workqueue("qrtr_ns_handler", WQ_UNBOUND, 1); + if (!qrtr_ns.workqueue) + goto err_sock; + + qrtr_ns.sock->sk->sk_data_ready = qrtr_ns_data_ready; + + sq.sq_port = QRTR_PORT_CTRL; + qrtr_ns.local_node = sq.sq_node; + + ret = kernel_bind(qrtr_ns.sock, (struct sockaddr *)&sq, sizeof(sq)); + if (ret < 0) { + pr_err("failed to bind to socket\n"); + goto err_wq; + } + + qrtr_ns.bcast_sq.sq_family = AF_QIPCRTR; + qrtr_ns.bcast_sq.sq_node = QRTR_NODE_BCAST; + qrtr_ns.bcast_sq.sq_port = QRTR_PORT_CTRL; + + ret = say_hello(&qrtr_ns.bcast_sq); + if (ret < 0) + goto err_wq; + + return; + +err_wq: + destroy_workqueue(qrtr_ns.workqueue); +err_sock: + sock_release(qrtr_ns.sock); +} +EXPORT_SYMBOL_GPL(qrtr_ns_init); + +void qrtr_ns_remove(void) +{ + cancel_work_sync(&qrtr_ns.work); + destroy_workqueue(qrtr_ns.workqueue); + sock_release(qrtr_ns.sock); +} +EXPORT_SYMBOL_GPL(qrtr_ns_remove); + +MODULE_AUTHOR("Manivannan Sadhasivam "); +MODULE_DESCRIPTION("Qualcomm IPC Router Nameservice"); +MODULE_LICENSE("Dual BSD/GPL"); only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/net/qrtr/qrtr.h +++ linux-oem-5.6-5.6.0/net/qrtr/qrtr.h @@ -29,4 +29,8 @@ int qrtr_endpoint_post(struct qrtr_endpoint *ep, const void *data, size_t len); +void qrtr_ns_init(void); + +void qrtr_ns_remove(void); + #endif only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/net/wireless/chan.c +++ linux-oem-5.6-5.6.0/net/wireless/chan.c @@ -6,7 +6,7 @@ * * Copyright 2009 Johannes Berg * Copyright 2013-2014 Intel Mobile Communications GmbH - * Copyright 2018 Intel Corporation + * Copyright 2018-2020 Intel Corporation */ #include @@ -910,7 +910,8 @@ width = 10; break; case NL80211_CHAN_WIDTH_20: - if (!ht_cap->ht_supported) + if (!ht_cap->ht_supported && + chandef->chan->band != NL80211_BAND_6GHZ) return false; /* fall through */ case NL80211_CHAN_WIDTH_20_NOHT: @@ -919,6 +920,8 @@ break; case NL80211_CHAN_WIDTH_40: width = 40; + if (chandef->chan->band == NL80211_BAND_6GHZ) + break; if (!ht_cap->ht_supported) return false; if (!(ht_cap->cap & IEEE80211_HT_CAP_SUP_WIDTH_20_40) || @@ -933,24 +936,29 @@ break; case NL80211_CHAN_WIDTH_80P80: cap = vht_cap->cap & IEEE80211_VHT_CAP_SUPP_CHAN_WIDTH_MASK; - if (cap != IEEE80211_VHT_CAP_SUPP_CHAN_WIDTH_160_80PLUS80MHZ) + if (chandef->chan->band != NL80211_BAND_6GHZ && + cap != IEEE80211_VHT_CAP_SUPP_CHAN_WIDTH_160_80PLUS80MHZ) return false; /* fall through */ case NL80211_CHAN_WIDTH_80: - if (!vht_cap->vht_supported) - return false; prohibited_flags |= IEEE80211_CHAN_NO_80MHZ; width = 80; + if (chandef->chan->band == NL80211_BAND_6GHZ) + break; + if (!vht_cap->vht_supported) + return false; break; case NL80211_CHAN_WIDTH_160: + prohibited_flags |= IEEE80211_CHAN_NO_160MHZ; + width = 160; + if (chandef->chan->band == NL80211_BAND_6GHZ) + break; if (!vht_cap->vht_supported) return false; cap = vht_cap->cap & IEEE80211_VHT_CAP_SUPP_CHAN_WIDTH_MASK; if (cap != IEEE80211_VHT_CAP_SUPP_CHAN_WIDTH_160MHZ && cap != IEEE80211_VHT_CAP_SUPP_CHAN_WIDTH_160_80PLUS80MHZ) return false; - prohibited_flags |= IEEE80211_CHAN_NO_160MHZ; - width = 160; break; default: WARN_ON_ONCE(1); only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/net/wireless/rdev-ops.h +++ linux-oem-5.6-5.6.0/net/wireless/rdev-ops.h @@ -735,14 +735,17 @@ struct net_device *dev, const void *buf, size_t len, const u8 *dest, __be16 proto, - const bool noencrypt) + const bool noencrypt, u64 *cookie) { int ret; trace_rdev_tx_control_port(&rdev->wiphy, dev, buf, len, dest, proto, noencrypt); ret = rdev->ops->tx_control_port(&rdev->wiphy, dev, buf, len, - dest, proto, noencrypt); - trace_rdev_return_int(&rdev->wiphy, ret); + dest, proto, noencrypt, cookie); + if (cookie) + trace_rdev_return_int_cookie(&rdev->wiphy, ret, *cookie); + else + trace_rdev_return_int(&rdev->wiphy, ret); return ret; } only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/net/wireless/trace.h +++ linux-oem-5.6-5.6.0/net/wireless/trace.h @@ -2833,6 +2833,23 @@ WDEV_PR_ARG, __entry->cookie, BOOL_TO_STR(__entry->ack)) ); +TRACE_EVENT(cfg80211_control_port_tx_status, + TP_PROTO(struct wireless_dev *wdev, u64 cookie, bool ack), + TP_ARGS(wdev, cookie, ack), + TP_STRUCT__entry( + WDEV_ENTRY + __field(u64, cookie) + __field(bool, ack) + ), + TP_fast_assign( + WDEV_ASSIGN; + __entry->cookie = cookie; + __entry->ack = ack; + ), + TP_printk(WDEV_PR_FMT", cookie: %llu, ack: %s", + WDEV_PR_ARG, __entry->cookie, BOOL_TO_STR(__entry->ack)) +); + TRACE_EVENT(cfg80211_rx_control_port, TP_PROTO(struct net_device *netdev, struct sk_buff *skb, bool unencrypted), only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/scripts/mod/devicetable-offsets.c +++ linux-oem-5.6-5.6.0/scripts/mod/devicetable-offsets.c @@ -231,5 +231,8 @@ DEVID(wmi_device_id); DEVID_FIELD(wmi_device_id, guid_string); + DEVID(mhi_device_id); + DEVID_FIELD(mhi_device_id, chan); + return 0; } only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/scripts/mod/file2alias.c +++ linux-oem-5.6-5.6.0/scripts/mod/file2alias.c @@ -1335,6 +1335,15 @@ return 1; } +/* Looks like: mhi:S */ +static int do_mhi_entry(const char *filename, void *symval, char *alias) +{ + DEF_FIELD_ADDR(symval, mhi_device_id, chan); + sprintf(alias, MHI_DEVICE_MODALIAS_FMT, *chan); + + return 1; +} + /* Does namelen bytes of name exactly match the symbol? */ static bool sym_is(const char *name, unsigned namelen, const char *symbol) { @@ -1407,6 +1416,7 @@ {"typec", SIZE_typec_device_id, do_typec_entry}, {"tee", SIZE_tee_client_device_id, do_tee_entry}, {"wmi", SIZE_wmi_device_id, do_wmi_entry}, + {"mhi", SIZE_mhi_device_id, do_mhi_entry}, }; /* Create MODULE_ALIAS() statements. only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/sound/pci/hda/hda_controller.h +++ linux-oem-5.6-5.6.0/sound/pci/hda/hda_controller.h @@ -143,6 +143,7 @@ unsigned int align_buffer_size:1; unsigned int region_requested:1; unsigned int disabled:1; /* disabled by vga_switcheroo */ + unsigned int pm_prepared:1; /* GTS present */ unsigned int gts_present:1; only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/tools/testing/selftests/net/config +++ linux-oem-5.6-5.6.0/tools/testing/selftests/net/config @@ -29,3 +29,4 @@ CONFIG_NET_SCH_ETF=m CONFIG_TEST_BLACKHOLE_DEV=m CONFIG_KALLSYMS=y +CONFIG_NET_FOU=m only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/tools/testing/selftests/net/fib_nexthop_multiprefix.sh +++ linux-oem-5.6-5.6.0/tools/testing/selftests/net/fib_nexthop_multiprefix.sh @@ -144,7 +144,7 @@ cleanup() { - for n in h1 r1 h2 h3 h4 + for n in h0 r1 h1 h2 h3 do ip netns del ${n} 2>/dev/null done only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/tools/testing/selftests/net/ip_defrag.c +++ linux-oem-5.6-5.6.0/tools/testing/selftests/net/ip_defrag.c @@ -192,9 +192,9 @@ } res = sendto(fd_raw, ip_frame, frag_len, 0, addr, alen); - if (res < 0) + if (res < 0 && errno != EPERM) error(1, errno, "send_fragment"); - if (res != frag_len) + if (res >= 0 && res != frag_len) error(1, 0, "send_fragment: %d vs %d", res, frag_len); frag_counter++; @@ -313,9 +313,9 @@ iphdr->ip_len = htons(frag_len); } res = sendto(fd_raw, ip_frame, frag_len, 0, addr, alen); - if (res < 0) + if (res < 0 && errno != EPERM) error(1, errno, "sendto overlap: %d", frag_len); - if (res != frag_len) + if (res >= 0 && res != frag_len) error(1, 0, "sendto overlap: %d vs %d", (int)res, frag_len); frag_counter++; } only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/tools/testing/selftests/net/rtnetlink.sh +++ linux-oem-5.6-5.6.0/tools/testing/selftests/net/rtnetlink.sh @@ -521,6 +521,11 @@ return $ksft_skip fi + if ! /sbin/modprobe -q -n fou; then + echo "SKIP: module fou is not found" + return $ksft_skip + fi + /sbin/modprobe -q fou ip -netns "$testns" fou add port 7777 ipproto 47 2>/dev/null if [ $? -ne 0 ];then echo "FAIL: can't add fou port 7777, skipping test" only in patch2: unchanged: --- linux-oem-5.6-5.6.0.orig/tools/testing/selftests/net/udpgso_bench_rx.c +++ linux-oem-5.6-5.6.0/tools/testing/selftests/net/udpgso_bench_rx.c @@ -113,6 +113,9 @@ interrupted = true; break; } + + /* no events and more time to wait, do poll again */ + continue; } if (pfd.revents != POLLIN) error(1, errno, "poll: 0x%x expected 0x%x\n",