diff --git a/android/GKI_VERSION b/android/GKI_VERSION index 28f2366794e6..ff5db118dee3 100644 --- a/android/GKI_VERSION +++ b/android/GKI_VERSION @@ -1 +1 @@ -LTS_5.4.61_dc2d5a0ace05 +LTS_5.4.61_37201331c48d diff --git a/android/abi_gki_aarch64.xml b/android/abi_gki_aarch64.xml index 715bd63ce516..599c5c28ba4c 100644 --- a/android/abi_gki_aarch64.xml +++ b/android/abi_gki_aarch64.xml @@ -16,6 +16,7 @@ + @@ -80,6 +81,7 @@ + @@ -164,6 +166,7 @@ + @@ -366,10 +369,12 @@ + + @@ -561,6 +566,7 @@ + @@ -1039,6 +1045,7 @@ + @@ -1136,6 +1143,8 @@ + + @@ -1149,6 +1158,7 @@ + @@ -1170,7 +1180,9 @@ + + @@ -1186,6 +1198,7 @@ + @@ -1222,6 +1235,8 @@ + + @@ -1264,6 +1279,8 @@ + + @@ -1288,6 +1305,8 @@ + + @@ -1300,6 +1319,7 @@ + @@ -1345,6 +1365,7 @@ + @@ -1363,17 +1384,21 @@ + + + + @@ -1394,6 +1419,7 @@ + @@ -1422,6 +1448,7 @@ + @@ -1429,6 +1456,7 @@ + @@ -1454,12 +1482,15 @@ + + + @@ -1538,8 +1569,11 @@ + + + @@ -1587,9 +1621,14 @@ + + + + + @@ -1667,6 +1706,7 @@ + @@ -2238,6 +2278,7 @@ + @@ -2392,6 +2433,7 @@ + @@ -2524,6 +2566,7 @@ + @@ -2532,12 +2575,16 @@ + + + + @@ -2566,9 +2613,14 @@ + + + + + @@ -2633,6 +2685,12 @@ + + + + + + @@ -2689,6 +2747,7 @@ + @@ -2703,15 +2762,21 @@ + + + + + + @@ -2720,24 +2785,41 @@ + + + + + + + + + + + + + + + + + @@ -3635,6 +3717,7 @@ + @@ -3819,6 +3902,7 @@ + @@ -4201,6 +4285,8 @@ + + @@ -4391,6 +4477,7 @@ + @@ -4444,6 +4531,7 @@ + @@ -5326,6 +5414,17 @@ + + + + + + + + + + + @@ -14433,17 +14532,6 @@ - - - - - - - - - - - @@ -15371,6 +15459,20 @@ + + + + + + + + + + + + + + @@ -22863,102 +22965,102 @@ - - + + - - - - - + + + + + - - - - + + + + - - - - - + + + + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - - - + + + + + - - - + + + - - - + + + - - - + + + - - - + + + @@ -23169,6 +23271,14 @@ + + + + + + + + @@ -23712,10 +23822,24 @@ + + + + + + + + + + + + + + @@ -30708,6 +30832,18 @@ + + + + + + + + + + + + @@ -30719,7 +30855,6 @@ - @@ -30762,7 +30897,6 @@ - @@ -30941,6 +31075,16 @@ + + + + + + + + + + @@ -31010,6 +31154,10 @@ + + + + @@ -31048,6 +31196,11 @@ + + + + + @@ -31170,6 +31323,11 @@ + + + + + @@ -31395,10 +31553,26 @@ + + + + + + + + + + + + + + + + @@ -31458,6 +31632,7 @@ + @@ -31513,7 +31688,7 @@ - + @@ -31746,7 +31921,7 @@ - + @@ -32044,7 +32219,7 @@ - + @@ -34657,7 +34832,7 @@ - + @@ -34849,6 +35024,11 @@ + + + + + @@ -35164,7 +35344,7 @@ - + @@ -35436,7 +35616,7 @@ - + @@ -35793,6 +35973,15 @@ + + + + + + + + + @@ -36350,6 +36539,7 @@ + @@ -36487,6 +36677,10 @@ + + + + @@ -36518,7 +36712,7 @@ - + @@ -36528,6 +36722,312 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -36541,6 +37041,16 @@ + + + + + + + + + + @@ -36602,7 +37112,7 @@ - + @@ -36664,7 +37174,6 @@ - @@ -36773,6 +37282,14 @@ + + + + + + + + @@ -37166,6 +37683,10 @@ + + + + @@ -37237,7 +37758,7 @@ - + @@ -37686,6 +38207,14 @@ + + + + + + + + @@ -37718,6 +38247,11 @@ + + + + + @@ -37728,6 +38262,10 @@ + + + + @@ -37758,14 +38296,6 @@ - - - - - - - - @@ -53987,6 +54517,7 @@ + @@ -54010,7 +54541,7 @@ - + @@ -54018,7 +54549,7 @@ - + @@ -54210,17 +54741,6 @@ - - - - - - - - - - - @@ -54582,8 +55102,8 @@ - - + + @@ -54648,17 +55168,17 @@ - - + + - - + + - - - + + + @@ -55034,23 +55554,6 @@ - - - - - - - - - - - - - - - - - @@ -55096,16 +55599,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -55219,7 +55755,7 @@ - + @@ -55483,6 +56019,14 @@ + + + + + + + + @@ -55500,8 +56044,8 @@ - - + + @@ -55529,20 +56073,19 @@ - - - - - - - - - - - - - - + + + + + + + + + + + + + @@ -55576,6 +56119,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -55609,20 +56182,41 @@ + + + + + + + + + + + + + + + + + + + + + @@ -55645,18 +56239,23 @@ + + + + + - + - + - + @@ -55779,6 +56378,7 @@ + @@ -55794,15 +56394,31 @@ + + + + + - + + + + + + + + + + + + - + @@ -55812,11 +56428,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + @@ -55825,11 +56465,22 @@ + + + + + + + + + + + @@ -55842,6 +56493,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -63140,7 +63817,7 @@ - + @@ -63149,7 +63826,7 @@ - + @@ -64925,8 +65602,31 @@ + + + + + + + + + + + + + + + + + + + + + + + @@ -64995,13 +65695,18 @@ + + + + + - + @@ -65025,12 +65730,21 @@ + + + + + + + + + @@ -65370,6 +66084,279 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -65381,6 +66368,109 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -65447,17 +66537,10 @@ - - - - - - - @@ -65808,244 +66891,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -66073,36 +66918,17 @@ - - - - - - - - - - - - - - - - - - - @@ -66112,14 +66938,9 @@ - - - - - @@ -66127,10 +66948,6 @@ - - - - @@ -66258,74 +67075,10 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -66408,26 +67161,6 @@ - - - - - - - - - - - - - - - - - - - - @@ -66444,6 +67177,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -66969,6 +67745,11 @@ + + + + + @@ -67113,6 +67894,18 @@ + + + + + + + + + + + + @@ -71383,6 +72176,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + @@ -74347,6 +75164,11 @@ + + + + + @@ -74689,17 +75511,17 @@ - - - + + + - - + + - - + + @@ -77317,14 +78139,6 @@ - - - - - - - - @@ -86414,6 +87228,85 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -86866,7 +87759,21 @@ + + + + + + + + + + + + + + @@ -86899,27 +87806,20 @@ - - - - - - - - - - - - - - - - + + + + - - - - + + + + + + + + + @@ -88563,14 +89463,6 @@ - - - - - - - - @@ -91222,6 +92114,20 @@ + + + + + + + + + + + + + + @@ -99818,13 +100724,13 @@ - + - + - + @@ -99866,7 +100772,7 @@ - + @@ -104029,7 +104935,7 @@ - + @@ -104045,7 +104951,7 @@ - + @@ -104053,7 +104959,7 @@ - + @@ -104067,7 +104973,7 @@ - + @@ -106011,6 +106917,13 @@ + + + + + + + @@ -106182,6 +107095,18 @@ + + + + + + + + + + + + @@ -107973,240 +108898,9 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -108359,18 +109053,7 @@ - - - - - - - - - - - @@ -108553,13 +109236,12 @@ - - - - - - - + + + + + + @@ -108567,10 +109249,6 @@ - - - - @@ -108785,7 +109463,7 @@ - + @@ -108963,33 +109641,33 @@ - - - - - + + + + + - - - - - + + + + + - - - - + + + + - - - + + + - - + + @@ -111630,14 +112308,6 @@ - - - - - - - - @@ -112804,6 +113474,28 @@ + + + + + + + + + + + + + + + + + + + + + + @@ -114619,29 +115311,7 @@ - - - - - - - - - - - - - - - - - - - - - - - + @@ -114649,7 +115319,7 @@ - + @@ -114657,7 +115327,7 @@ - + @@ -114665,7 +115335,7 @@ - + @@ -114673,7 +115343,7 @@ - + @@ -114681,7 +115351,7 @@ - + @@ -114692,7 +115362,7 @@ - + @@ -114703,7 +115373,15 @@ - + + + + + + + + + @@ -114711,14 +115389,6 @@ - - - - - - - - @@ -114741,7 +115411,7 @@ - + @@ -114811,45 +115481,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -114857,7 +115489,7 @@ - + @@ -114942,8 +115574,8 @@ - - + + @@ -116705,14 +117337,6 @@ - - - - - - - - @@ -117620,7 +118244,268 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -117704,6 +118589,17 @@ + + + + + + + + + + + @@ -121625,6 +122521,12 @@ + + + + + + @@ -122334,15 +123236,12 @@ - + - + - - - - + @@ -122820,7 +123719,7 @@ - + @@ -122846,13 +123745,13 @@ - + - + @@ -122860,35 +123759,35 @@ - + - + - + - + - + @@ -122897,28 +123796,28 @@ - + - + - + - + @@ -122926,12 +123825,12 @@ - + - + @@ -122939,18 +123838,18 @@ - + - + - + @@ -129051,6 +129950,14 @@ + + + + + + + + @@ -129249,14 +130156,6 @@ - - - - - - - - diff --git a/android/abi_gki_aarch64_d6430e6763.xml b/android/abi_gki_aarch64_d6430e6763.xml index 5c75765b2018..3178f71f91ca 100644 --- a/android/abi_gki_aarch64_d6430e6763.xml +++ b/android/abi_gki_aarch64_d6430e6763.xml @@ -340,6 +340,7 @@ + @@ -779,6 +780,7 @@ + @@ -896,9 +898,11 @@ + + @@ -1868,6 +1872,8 @@ + + @@ -2415,6 +2421,8 @@ + + @@ -2659,6 +2667,29 @@ + + + + + + + + + + + + + + + + + + + + + + + @@ -2671,6 +2702,10 @@ + + + + @@ -7071,7 +7106,7 @@ - + @@ -7667,48 +7702,48 @@ - - - - - + + + + + - - - - + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + @@ -10266,7 +10301,7 @@ - + @@ -18897,6 +18932,10 @@ + + + + @@ -18952,6 +18991,16 @@ + + + + + + + + + + @@ -20131,33 +20180,33 @@ - + - + - + - + - + - + - + @@ -21658,7 +21707,6 @@ - @@ -21670,8 +21718,6 @@ - - @@ -29900,7 +29946,7 @@ - + @@ -30818,9 +30864,9 @@ - - - + + + @@ -31291,8 +31337,8 @@ - - + + @@ -31304,47 +31350,47 @@ - - - + + + - - - + + + - - + + - - - + + + - - - - - + + + + + - - + + - - + + - - + + - - - + + + @@ -35227,7 +35273,7 @@ - + @@ -41139,231 +41185,231 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -41714,18 +41760,18 @@ - + - + - + - + - + @@ -41792,57 +41838,57 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -41882,68 +41928,68 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -42101,39 +42147,39 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -42214,50 +42260,50 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -51535,6 +51581,219 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -65617,7 +65876,7 @@ - + @@ -67261,8 +67520,8 @@ - - + + @@ -90841,11 +91100,11 @@ - - - - - + + + + + @@ -96125,6 +96384,12 @@ + + + + + + @@ -97580,9 +97845,9 @@ - - - + + + @@ -98282,8 +98547,8 @@ - - + + diff --git a/android/abi_gki_aarch64_exynosauto b/android/abi_gki_aarch64_exynosauto new file mode 100644 index 000000000000..084429b560c2 --- /dev/null +++ b/android/abi_gki_aarch64_exynosauto @@ -0,0 +1,1462 @@ +[abi_symbol_list] +# commonly used symbols + add_timer + __alloc_pages_nodemask + alloc_workqueue + __arch_copy_from_user + __arch_copy_to_user + arm64_const_caps_ready + atomic_notifier_call_chain + atomic_notifier_chain_register + __bitmap_and + __bitmap_andnot + blocking_notifier_call_chain + blocking_notifier_chain_register + blocking_notifier_chain_unregister + bpf_trace_run1 + bpf_trace_run2 + bpf_trace_run3 + bpf_trace_run4 + cancel_delayed_work + cancel_delayed_work_sync + cancel_work_sync + cdev_init + __cfi_slowpath + __check_object_size + __class_create + class_destroy + clk_bulk_disable + clk_bulk_unprepare + clk_disable + clk_enable + clk_get + clk_get_rate + clk_prepare + clk_put + clk_set_rate + clk_unprepare + complete + complete_all + __const_udelay + cpu_bit_bitmap + cpu_hwcap_keys + cpu_hwcaps + cpumask_next + cpu_number + __cpu_online_mask + __cpu_possible_mask + crc32_le + delayed_work_timer_fn + del_timer + del_timer_sync + destroy_workqueue + dev_driver_string + _dev_emerg + _dev_err + device_create + device_create_file + device_destroy + device_for_each_child + device_initialize + device_init_wakeup + device_property_present + device_property_read_u32_array + device_remove_file + _dev_info + devm_add_action + devm_clk_get + devm_free_irq + devm_gpiod_get_optional + devm_gpio_request_one + devm_ioremap + devm_ioremap_nocache + devm_ioremap_resource + devm_kfree + devm_kmalloc + __devm_of_phy_provider_register + devm_phy_create + devm_phy_get + devm_pinctrl_get + devm_platform_ioremap_resource + devm_request_threaded_irq + devm_usb_get_phy_by_phandle + _dev_notice + dev_pm_opp_add + dev_set_name + _dev_warn + disable_irq + disable_irq_nosync + display_timings_release + dma_alloc_attrs + dma_buf_attach + dma_buf_begin_cpu_access + dma_buf_detach + dma_buf_end_cpu_access + dma_buf_export + dma_buf_get + dma_buf_kmap + dma_buf_kunmap + dma_buf_map_attachment + dma_buf_mmap + dma_buf_put + dma_buf_unmap_attachment + dma_buf_vmap + dma_buf_vunmap + dma_direct_map_page + dma_direct_map_sg + dma_direct_sync_sg_for_cpu + dma_direct_sync_sg_for_device + dma_direct_sync_single_for_cpu + dma_direct_sync_single_for_device + dma_direct_unmap_page + dma_direct_unmap_sg + dma_fence_add_callback + dma_fence_context_alloc + dma_fence_default_wait + dma_fence_init + dma_fence_release + dma_fence_remove_callback + dma_fence_signal + dma_free_attrs + dma_release_channel + dma_request_slave_channel + dma_set_coherent_mask + dma_set_mask + down + down_read + down_trylock + drm_add_edid_modes + drm_atomic_helper_connector_destroy_state + drm_atomic_helper_connector_duplicate_state + drm_atomic_helper_connector_reset + drm_bridge_add + drm_bridge_remove + drm_connector_attach_encoder + drm_connector_cleanup + drm_connector_init + drm_connector_register + drm_connector_update_edid_property + drm_display_mode_from_videomode + drm_err + drm_helper_probe_single_connector_modes + drm_kms_helper_hotplug_event + drm_mode_copy + drm_mode_create + drm_mode_duplicate + drm_mode_probed_add + drm_mode_vrefresh + drm_panel_detach + enable_irq + event_triggers_call + fd_install + find_next_bit + find_vma + finish_wait + flush_delayed_work + flush_work + flush_workqueue + fput + frame_vector_to_pages + free_irq + __free_pages + free_pages + freezing_slow_path + generic_handle_irq + get_device + __get_free_pages + get_random_bytes + get_task_mm + get_unused_fd_flags + get_user_pages + gpiod_direction_input + gpiod_direction_output_raw + gpiod_get_raw_value + gpiod_set_raw_value + gpiod_set_value_cansleep + gpiod_to_irq + gpio_free + gpio_request + gpio_request_one + gpio_to_desc + handle_edge_irq + handle_level_irq + handle_nested_irq + i2c_add_numbered_adapter + i2c_del_driver + i2c_get_adapter + i2c_new_dummy + i2c_register_driver + i2c_transfer + i2c_unregister_device + __init_rwsem + init_timer_key + init_wait_entry + __init_waitqueue_head + iomem_resource + iommu_register_device_fault_handler + iommu_unregister_device_fault_handler + ion_alloc + ion_query_heaps_kernel + __ioremap + iounmap + __irq_alloc_descs + __irq_domain_add + irq_domain_remove + irq_find_mapping + irq_get_irq_data + irq_modify_status + irq_of_parse_and_map + irq_set_affinity_hint + irq_set_chip_and_handler_name + irq_set_chip_data + irq_set_irq_wake + irq_to_desc + jiffies + kasprintf + kernel_kobj + kfree + kimage_vaddr + kimage_voffset + __kmalloc + kmalloc_caches + kmalloc_order_trace + kmem_cache_alloc + kmem_cache_alloc_trace + kmem_cache_free + kmemdup + kobject_create_and_add + krealloc + kstrdup + kstrtobool + kstrtoint + kstrtou8 + kstrtouint + kstrtoull + kthread_create_on_node + __kthread_init_worker + kthread_queue_work + kthread_stop + kthread_worker_fn + ktime_get + ktime_get_mono_fast_ns + ktime_get_raw_ts64 + ktime_get_real_ts64 + __list_add_valid + __list_del_entry_valid + mdiobus_read + mdiobus_write + memcpy + memdup_user + memset + mfd_add_devices + mfd_remove_devices + mipi_dsi_attach + mipi_dsi_detach + mipi_dsi_device_register_full + mipi_dsi_device_unregister + mipi_dsi_driver_register_full + mipi_dsi_driver_unregister + misc_deregister + misc_register + mmput + mod_delayed_work_on + mod_timer + module_layout + __msecs_to_jiffies + msleep + __mutex_init + mutex_is_locked + mutex_lock + mutex_unlock + names_cachep + netif_carrier_off + no_llseek + nr_cpu_ids + __num_online_cpus + of_address_to_resource + of_alias_get_id + of_clk_get + of_device_get_match_data + of_device_is_available + of_device_is_compatible + of_find_compatible_node + of_find_device_by_node + of_find_matching_node_and_match + of_find_mipi_dsi_host_by_node + of_find_node_by_name + of_find_property + of_get_child_by_name + of_get_display_timings + of_get_drm_display_mode + of_get_named_gpio_flags + of_get_next_child + of_get_property + of_get_regulator_init_data + of_graph_get_remote_node + of_iomap + of_match_device + of_match_node + of_parse_phandle + of_platform_populate + of_property_count_elems_of_size + of_property_read_string + of_property_read_string_helper + of_property_read_u32_index + of_property_read_variable_u16_array + of_property_read_variable_u32_array + of_property_read_variable_u8_array + of_prop_next_string + of_reserved_mem_lookup + of_root + panic + panic_notifier_list + param_ops_bool + param_ops_int + param_ops_uint + perf_trace_buf_alloc + perf_trace_run_bpf_submit + pfn_valid + phy_disconnect + phy_ethtool_get_eee + phy_ethtool_ksettings_get + phy_ethtool_ksettings_set + phy_ethtool_set_eee + phy_get_eee_err + phy_init_eee + phy_mii_ioctl + phy_power_off + phy_power_on + phy_stop + physvirt_offset + pinctrl_lookup_state + pinctrl_pm_select_sleep_state + pinctrl_select_state + platform_bus_type + platform_device_add + platform_device_add_properties + platform_device_add_resources + platform_device_alloc + platform_device_put + platform_device_unregister + __platform_driver_register + platform_driver_unregister + platform_get_irq + platform_get_resource + platform_get_resource_byname + pm_qos_update_request + pm_runtime_allow + __pm_runtime_disable + pm_runtime_enable + pm_runtime_forbid + __pm_runtime_idle + __pm_runtime_resume + pm_runtime_set_autosuspend_delay + __pm_runtime_set_status + __pm_runtime_suspend + __pm_runtime_use_autosuspend + preempt_schedule + preempt_schedule_notrace + prepare_to_wait_event + print_hex_dump + printk + put_device + __put_page + __put_task_struct + put_unused_fd + queue_delayed_work_on + queue_work_on + ___ratelimit + _raw_spin_lock + _raw_spin_lock_irq + _raw_spin_lock_irqsave + _raw_spin_unlock + _raw_spin_unlock_irq + _raw_spin_unlock_irqrestore + __rcu_read_lock + __rcu_read_unlock + rdev_get_drvdata + rdev_get_id + refcount_dec_and_test_checked + refcount_inc_checked + refcount_inc_not_zero_checked + __refrigerator + register_pm_notifier + register_reboot_notifier + register_restart_handler + register_syscore_ops + regmap_read + regmap_update_bits_base + regmap_write + regulator_disable + regulator_enable + regulator_get_optional + regulator_list_voltage_linear + regulator_map_voltage_linear + regulator_put + regulator_register + regulator_unregister + release_firmware + __release_region + request_firmware + __request_region + request_threaded_irq + reset_control_assert + sched_clock + schedule + schedule_timeout + scnprintf + seq_printf + set_cpus_allowed_ptr + set_page_dirty_lock + sg_alloc_table + sg_alloc_table_from_pages + sg_free_table + sg_init_table + sg_next + simple_read_from_buffer + simple_strtoul + snprintf + sprintf + sscanf + __stack_chk_fail + __stack_chk_guard + strcasecmp + strcmp + strcpy + strlcpy + strlen + strncmp + strncpy + strnlen + strstr + subsys_system_register + __sw_hweight32 + __sw_hweight64 + sync_file_create + sync_file_get_fence + synchronize_irq + syscon_regmap_lookup_by_phandle + sysfs_create_file_ns + sysfs_create_group + sysfs_create_groups + sysfs_remove_group + system_freezing_cnt + system_wq + tasklet_init + tasklet_kill + __tasklet_schedule + _totalram_pages + trace_define_field + trace_event_buffer_commit + trace_event_buffer_reserve + trace_event_ignore_this_pid + trace_event_raw_init + trace_event_reg + trace_handle_return + trace_print_symbols_seq + trace_raw_output_prep + trace_seq_printf + __udelay + unregister_chrdev_region + unregister_pm_notifier + up + up_read + usb_add_hcd + usb_disabled + usb_hcd_is_primary_hcd + usb_put_hcd + usb_remove_hcd + __usecs_to_jiffies + usleep_range + v4l2_device_register + v4l2_device_unregister + v4l2_fh_add + v4l2_fh_del + v4l2_fh_exit + v4l2_fh_init + v4l2_subdev_init + vabits_actual + vb2_buffer_done + vb2_dqbuf + vb2_mmap + vb2_plane_cookie + vb2_plane_vaddr + vb2_poll + vb2_prepare_buf + vb2_qbuf + vb2_querybuf + vb2_queue_init + vb2_queue_release + vb2_reqbufs + vb2_streamoff + vb2_streamon + vfree + video_devdata + video_device_alloc + video_device_release + video_ioctl2 + __video_register_device + video_unregister_device + vmalloc + vmalloc_to_page + vmap + vmemmap + vsnprintf + vunmap + vzalloc + wait_for_completion + wait_for_completion_interruptible_timeout + wait_for_completion_timeout + __wake_up + wake_up_process + __warn_printk + work_busy + +# required by adv7511.ko + cec_allocate_adapter + cec_delete_adapter + cec_received_msg_ts + cec_register_adapter + cec_s_phys_addr + cec_s_phys_addr_from_edid + cec_transmit_attempt_done_ts + cec_transmit_done_ts + cec_unregister_adapter + __devm_regmap_init_i2c + devm_regulator_bulk_get + drm_detect_hdmi_monitor + drm_do_get_edid + hdmi_avi_infoframe_init + hdmi_avi_infoframe_pack + i2c_new_ancillary_device + regcache_mark_dirty + regcache_sync + regmap_bulk_write + regmap_register_patch + regulator_bulk_disable + regulator_bulk_enable + +# required by bufq.ko + kstrndup + +# required by clk-exynos-audss.ko + __clk_get_name + clk_hw_register_divider + clk_hw_register_gate + clk_hw_register_mux + clk_hw_unregister_divider + clk_hw_unregister_gate + clk_hw_unregister_mux + of_clk_add_hw_provider + of_clk_del_provider + of_clk_hw_onecell_get + pm_runtime_force_resume + pm_runtime_force_suspend + +# required by clk_exynos.ko + __clk_get_hw + clk_hw_get_parent + clk_register + clk_register_clkdev + clk_register_fixed_factor + clk_register_fixed_rate + of_clk_add_provider + of_clk_src_onecell_get + +# required by cmupmucal.ko + pm_qos_add_request + +# required by dss.ko + __alloc_percpu + init_task + kstat + nr_irqs + of_count_phandle_with_args + __per_cpu_offset + proc_create + register_die_notifier + return_address + sched_show_task + smp_call_function + touch_softlockup_watchdog + __tracepoint_android_vh_ipi_stop + __tracepoint_device_pm_callback_end + __tracepoint_device_pm_callback_start + tracepoint_probe_register + __tracepoint_suspend_resume + +# required by dwc3-of-simple.ko + clk_bulk_enable + clk_bulk_get_all + clk_bulk_prepare + clk_bulk_put_all + of_platform_depopulate + of_reset_control_array_get + reset_control_deassert + reset_control_put + reset_control_reset + +# required by dwc3.ko + dev_fwnode + device_property_read_string + device_property_read_u8_array + devm_regulator_get + devm_usb_get_phy + extcon_find_edev_by_node + extcon_get_edev_by_phandle + extcon_get_extcon_dev + extcon_get_state + extcon_register_notifier + extcon_unregister_notifier + of_usb_get_phy_mode + phy_calibrate + phy_create_lookup + phy_exit + phy_init + phy_remove_lookup + phy_reset + phy_set_mode_ext + platform_device_add_data + platform_device_del + platform_get_irq_byname_optional + typec_register_partner + typec_register_port + typec_set_data_role + typec_set_pwr_opmode + typec_set_pwr_role + typec_unregister_partner + typec_unregister_port + usb_add_gadget_udc + usb_decode_ctrl + usb_del_gadget_udc + usb_ep_set_maxpacket_limit + usb_gadget_giveback_request + usb_gadget_map_request_by_dev + usb_gadget_set_state + usb_gadget_udc_reset + usb_gadget_unmap_request_by_dev + usb_gadget_vbus_connect + usb_gadget_vbus_disconnect + usb_get_dr_mode + usb_get_maximum_speed + usb_otg_state_string + usb_role_switch_register + usb_role_switch_unregister + wakeup_source_register + wakeup_source_unregister + +# required by ect_parser.ko + seq_lseek + seq_read + single_open + single_release + +# required by exynos-acme.ko + bitmap_parselist + __cpu_active_mask + cpufreq_cpu_get + cpufreq_cpu_get_raw + cpufreq_cpu_put + __cpufreq_driver_target + cpufreq_freq_transition_begin + cpufreq_freq_transition_end + cpufreq_frequency_table_verify + cpufreq_generic_attr + cpufreq_register_driver + cpufreq_table_index_unsorted + cpuhp_tasks_frozen + freq_qos_add_request + freq_qos_update_request + get_cpu_device + strsep + system_state + +# required by exynos-chipid_v2.ko + of_find_node_opts_by_path + soc_device_register + +# required by exynos-pd.ko + of_genpd_add_provider_simple + pm_genpd_add_subdomain + pm_genpd_init + +# required by exynos-pd_el3.ko + __arm_smccc_smc + +# required by exynos-pmu-if.ko + cpu_topology + +# required by exynos-reboot.ko + pm_power_off + +# required by exynos9drm.ko + add_wait_queue + bus_find_device + component_add + component_bind_all + component_del + component_master_add_with_match + component_master_del + component_unbind_all + console_trylock + console_unlock + device_rename + drm_atomic_helper_async_check + drm_atomic_helper_check + drm_atomic_helper_cleanup_planes + drm_atomic_helper_commit + drm_atomic_helper_commit_modeset_disables + drm_atomic_helper_commit_modeset_enables + drm_atomic_helper_commit_planes + drm_atomic_helper_crtc_destroy_state + drm_atomic_helper_crtc_duplicate_state + drm_atomic_helper_crtc_reset + drm_atomic_helper_disable_plane + drm_atomic_helper_disable_planes_on_crtc + drm_atomic_helper_fake_vblank + drm_atomic_helper_page_flip + __drm_atomic_helper_plane_destroy_state + __drm_atomic_helper_plane_duplicate_state + __drm_atomic_helper_plane_reset + drm_atomic_helper_set_config + drm_atomic_helper_shutdown + drm_atomic_helper_update_plane + drm_atomic_helper_wait_for_vblanks + drm_atomic_normalize_zpos + drm_atomic_private_obj_init + drm_bridge_attach + drm_compat_ioctl + drm_connector_list_iter_begin + drm_connector_list_iter_end + drm_connector_list_iter_next + drm_connector_set_path_property + drm_connector_set_tile_property + drm_connector_unregister + drm_crtc_arm_vblank_event + drm_crtc_cleanup + __drm_crtc_commit_free + drm_crtc_handle_vblank + drm_crtc_init_with_planes + drm_crtc_send_vblank_event + drm_crtc_vblank_count + drm_crtc_vblank_get + drm_crtc_vblank_off + drm_crtc_vblank_on + drm_crtc_vblank_put + drm_crtc_vblank_waitqueue + drm_dbg + drm_dev_alloc + drm_dev_dbg + drm_dev_printk + drm_dev_put + drm_dev_register + drm_dev_unregister + drm_display_mode_to_videomode + drm_dp_aux_register + drm_dp_aux_unregister + drm_dp_bw_code_to_link_rate + drm_dp_calc_pbn_mode + drm_dp_channel_eq_ok + drm_dp_check_act_status + drm_dp_clock_recovery_ok + drm_dp_dpcd_read + drm_dp_dpcd_read_link_status + drm_dp_dpcd_write + drm_dp_dsc_sink_line_buf_depth + drm_dp_dsc_sink_max_slice_count + drm_dp_find_vcpi_slots + drm_dp_link_train_channel_eq_delay + drm_dp_link_train_clock_recovery_delay + drm_dp_mst_allocate_vcpi + drm_dp_mst_deallocate_vcpi + drm_dp_mst_detect_port + drm_dp_mst_hpd_irq + drm_dp_mst_put_port_malloc + drm_dp_mst_reset_vcpi_slots + drm_dp_mst_topology_mgr_init + drm_dp_mst_topology_mgr_set_mst + drm_dp_mst_topology_state_funcs + drm_dp_update_payload_part1 + drm_dp_update_payload_part2 + drm_dsc_compute_rc_parameters + drm_dsc_pps_payload_pack + drm_encoder_cleanup + drm_encoder_init + drm_flip_work_cleanup + drm_flip_work_commit + drm_flip_work_init + drm_flip_work_queue + drm_framebuffer_cleanup + drm_framebuffer_init + drm_gem_create_mmap_offset + drm_gem_handle_create + drm_gem_mmap + drm_gem_object_lookup + drm_gem_object_put + drm_gem_object_put_unlocked + drm_gem_object_release + drm_gem_prime_fd_to_handle + drm_gem_prime_handle_to_fd + drm_gem_private_object_init + drm_gem_vm_close + drm_gem_vm_open + drm_get_connector_status_name + drm_get_edid + drm_get_format_info + drm_helper_connector_dpms + drm_helper_hpd_irq_event + drm_helper_mode_fill_fb_struct + drm_ioctl + drm_kms_helper_poll_fini + drm_kms_helper_poll_init + drm_mode_config_cleanup + drm_mode_config_helper_resume + drm_mode_config_helper_suspend + drm_mode_config_init + drm_mode_config_reset + drm_mode_object_find + drm_mode_object_get + drm_mode_object_put + drm_object_attach_property + drm_of_component_match_add + drm_of_crtc_port_mask + drm_of_find_possible_crtcs + drm_open + drm_panel_attach + drm_panel_disable + drm_panel_enable + drm_panel_get_modes + drm_panel_prepare + drm_panel_unprepare + drm_plane_cleanup + drm_plane_create_zpos_immutable_property + drm_plane_create_zpos_property + drm_poll + drm_prime_gem_destroy + drm_property_add_enum + drm_property_create + drm_property_create_range + drm_property_destroy + drm_read + drm_release + drm_universal_plane_init + drm_vblank_init + mipi_dsi_host_register + mipi_dsi_host_unregister + of_drm_find_bridge + of_drm_find_panel + of_get_next_available_child + of_graph_get_endpoint_by_regs + of_graph_get_endpoint_count + of_graph_get_next_endpoint + of_graph_get_port_by_id + of_graph_get_remote_port + of_graph_get_remote_port_parent + of_graph_parse_endpoint + of_io_request_and_map + of_platform_device_create + of_platform_device_destroy + of_property_match_string + strlcat + videomode_from_timings + +# required by exynos_devfreq.ko + devfreq_add_device + devfreq_add_governor + devfreq_recommended_opp + devfreq_register_opp_notifier + devfreq_remove_device + devfreq_unregister_opp_notifier + dev_pm_opp_disable + dev_pm_opp_get_freq + dev_pm_opp_put + unregister_reboot_notifier + update_devfreq + +# required by exynos_mfc.ko + iommu_dma_reserve_iova + iommu_get_domain_for_dev + iommu_map_sg + iommu_unmap + mutex_lock_interruptible + ns_to_timeval + +# required by exynos_pm_qos.ko + kstrtoint_from_user + noop_llseek + _raw_read_lock_irqsave + _raw_read_unlock_irqrestore + +# required by exynos_thermal.ko + of_thermal_get_ntrips + of_thermal_is_trip_valid + thermal_zone_device_update + thermal_zone_of_sensor_register + thermal_zone_of_sensor_unregister + +# required by exynos_tty.ko + dma_get_slave_caps + dma_request_chan + do_SAK + handle_sysrq + register_console + tty_flip_buffer_push + tty_insert_flip_string_fixed_flag + tty_kref_put + tty_port_tty_get + uart_add_one_port + uart_console_write + uart_get_baud_rate + uart_parse_options + uart_register_driver + uart_remove_one_port + uart_resume_port + uart_set_options + uart_suspend_port + uart_unregister_driver + uart_update_timeout + uart_write_wakeup + +# required by exynosauto9-itmon.ko + atomic_notifier_chain_unregister + +# required by g2d.ko + __arch_copy_in_user + compat_alloc_user_space + device_get_dma_attr + dma_fence_signal_locked + frame_vector_create + frame_vector_destroy + get_vaddr_frames + put_vaddr_frames + +# required by i2c-dev.ko + bus_register_notifier + bus_unregister_notifier + cdev_device_add + cdev_device_del + i2c_adapter_type + i2c_bus_type + i2c_for_each_dev + i2c_put_adapter + i2c_smbus_xfer + i2c_transfer_buffer_flags + i2c_verify_client + register_chrdev_region + +# required by i2c-exynosauto.ko + i2c_del_adapter + +# required by ion_exynos_mod.ko + adjust_managed_page_count + arch_setup_dma_ops + cma_alloc + cma_get_name + cma_release + contig_page_data + gen_pool_add_owner + gen_pool_alloc_algo_owner + gen_pool_create + gen_pool_destroy + gen_pool_free_owner + ion_buffer_prep_noncached + ion_buffer_zero + __ion_device_add_heap + ion_device_remove_heap + ion_free + ion_heap_map_kernel + ion_heap_map_user + ion_heap_unmap_kernel + kthread_should_stop + list_sort + mod_node_page_state + of_reserved_mem_device_init_by_idx + of_reserved_mem_device_release + register_oom_notifier + sched_setscheduler + +# required by mali_kbase.ko + anon_inode_getfd + __arch_clear_user + __bitmap_weight + bpf_trace_run5 + cache_line_size + clear_page + __clk_is_enabled + __close_fd + dev_pm_opp_of_add_table + dev_pm_opp_of_remove_table + dev_pm_opp_put_regulators + dev_pm_opp_set_regulators + dma_fence_get_status + downgrade_write + down_write + dump_stack + __get_task_comm + get_user_pages_fast + get_user_pages_remote + hrtimer_active + hrtimer_cancel + hrtimer_forward + hrtimer_init + hrtimer_start_range_ns + kfree_call_rcu + kobject_put + ktime_get_raw + __mmdrop + module_put + of_machine_is_compatible + param_ops_byte + rb_erase + rb_first + rb_insert_color + rb_next + rb_prev + rb_replace_node + register_shrinker + remap_pfn_range + remap_vmalloc_range + static_key_slow_dec + static_key_slow_inc + strcspn + strncasecmp + synchronize_rcu + sysfs_remove_file_ns + sysfs_streq + system_highpri_wq + trace_output_call + __tracepoint_gpu_mem_total + trace_print_array_seq + trace_print_flags_seq + try_module_get + unmap_mapping_range + unregister_shrinker + up_write + vmalloc_user + vmf_insert_pfn_prot + +# required by marvell.ko + __genphy_config_aneg + genphy_loopback + genphy_read_status + genphy_restart_aneg + genphy_resume + genphy_setup_forced + genphy_soft_reset + genphy_suspend + genphy_update_link + __mdiobus_read + __mdiobus_write + phy_drivers_register + phy_drivers_unregister + phy_gbit_fibre_features + __phy_modify + phy_modify + phy_modify_paged + phy_read_paged + phy_restore_page + phy_save_page + phy_select_page + phy_write_paged + +# required by mcDrvModule.ko + alloc_chrdev_region + cdev_add + cdev_del + crypto_alloc_shash + crypto_destroy_tfm + crypto_shash_final + crypto_shash_update + d_path + get_task_exe_file + get_zeroed_page + release_pages + sg_miter_next + sg_miter_start + sg_miter_stop + wait_for_completion_interruptible + wait_for_completion_killable + +# required by panel-samsung-dummy.ko + drm_panel_add + drm_panel_init + drm_panel_remove + videomode_from_timing + +# required by pcie-exynos-dw-ep.ko + dw_pcie_ep_init + dw_pcie_read_dbi + dw_pcie_write_dbi + pci_epc_clear_bar + pci_epc_map_addr + pci_epc_mem_alloc_addr + pci_epc_mem_free_addr + pci_epc_set_bar + pci_epc_unmap_addr + +# required by pcie-exynos-dw-rc.ko + bitmap_find_free_region + bitmap_release_region + dw_pcie_host_init + dw_pcie_msi_init + dw_pcie_read + dw_pcie_setup_rc + dw_pcie_write + irq_chip_ack_parent + irq_chip_mask_parent + irq_chip_unmask_parent + irq_domain_get_irq_data + irq_domain_set_info + irq_domain_update_bus_token + pcie_set_mps + pci_find_bus + pci_get_device + pci_load_saved_state + pci_msi_create_irq_domain + pci_msi_mask_irq + pci_msi_unmask_irq + pci_rescan_bus + pci_restore_state + pci_save_state + pci_store_saved_state + +# required by phylink.ko + __bitmap_or + dev_printk + fwnode_get_named_child_node + fwnode_get_named_gpiod + fwnode_handle_put + fwnode_property_get_reference_args + fwnode_property_present + fwnode_property_read_string + fwnode_property_read_u32_array + gpiod_get_value_cansleep + gpiod_put + netdev_printk + netif_carrier_on + of_phy_attach + phy_attach_direct + phy_detach + phy_duplex_to_str + phy_ethtool_get_wol + phy_ethtool_set_wol + phy_lookup_setting + phy_request_interrupt + phy_restart_aneg + phy_set_asym_pause + phy_speed_to_str + phy_start + rtnl_is_locked + swphy_read_reg + system_power_efficient_wq + +# required by pinctrl-samsung-core.ko + devm_gpiochip_add_data + devm_pinctrl_register + gpiochip_generic_free + gpiochip_generic_request + gpiochip_get_data + gpiochip_lock_as_irq + gpiochip_unlock_as_irq + irq_create_mapping + irq_domain_xlate_twocell + irq_set_chained_handler_and_data + of_node_name_eq + pinctrl_add_gpio_range + pinctrl_dev_get_drvdata + pinctrl_remove_gpio_range + +# required by pl330.ko + amba_driver_register + amba_driver_unregister + dma_async_device_register + dma_async_device_unregister + dma_async_tx_descriptor_init + dma_direct_map_resource + dmaengine_unmap_put + dma_get_slave_channel + of_dma_controller_free + of_dma_controller_register + pm_runtime_irq_safe + +# required by rtc-s2vps01.ko + devm_rtc_device_register + pm_wakeup_ws_event + rtc_time64_to_tm + rtc_tm_to_time64 + rtc_update_irq + rtc_valid_tm + +# required by s3c2410_wdt.ko + rtc_class_close + rtc_class_open + rtc_read_time + watchdog_init_timeout + watchdog_register_device + watchdog_set_restart_priority + watchdog_unregister_device + +# required by sam-is-cis-4ec.ko + v4l2_i2c_subdev_init + +# required by sam-is.ko + down_interruptible + filp_close + filp_open + get_random_u32 + get_task_pid + i2c_new_device + jiffies_to_msecs + kstrtou16 + kthread_flush_work + kthread_flush_worker + ktime_get_ts64 + ktime_get_with_offset + mutex_trylock + ns_to_timespec + param_ops_string + phy_configure + pm_relax + pm_stay_awake + regulator_get_voltage + regulator_is_enabled + regulator_set_voltage + sched_setscheduler_nocheck + v4l2_device_register_subdev + v4l2_device_set_name + v4l2_device_unregister_subdev + v4l2_subdev_call_wrappers + vscnprintf + +# required by samsung-iommu-group.ko + iommu_group_alloc + iommu_group_set_name + +# required by samsung-seqos.ko + alloc_etherdev_mqs + capable + consume_skb + dev_close + device_set_wakeup_capable + device_set_wakeup_enable + __dev_kfree_skb_any + dev_open + dql_completed + dql_reset + eth_mac_addr + ethtool_op_get_link + ethtool_op_get_ts_info + eth_type_trans + free_netdev + in4_pton + in6_pton + jiffies_to_usecs + mdiobus_alloc_size + mdiobus_free + mdiobus_get_phy + __mdiobus_register + mdiobus_unregister + napi_complete_done + napi_disable + napi_gro_receive + __napi_schedule + __napi_schedule_irqoff + napi_schedule_prep + netdev_alert + __netdev_alloc_skb + netdev_err + netdev_info + netdev_update_features + netdev_warn + netif_device_attach + netif_device_detach + netif_napi_add + netif_napi_del + netif_schedule_queue + netif_set_real_num_rx_queues + netif_set_real_num_tx_queues + netif_tx_wake_queue + net_ratelimit + ns_to_timespec64 + of_get_mac_address + of_get_phy_mode + of_mdiobus_register + of_phy_deregister_fixed_link + of_phy_is_fixed_link + of_phy_register_fixed_link + phy_attached_info + phy_ethtool_nway_reset + phy_mac_interrupt + phy_resume + phy_start_aneg + phy_suspend + pinctrl_pm_select_default_state + platform_get_irq_byname + pm_wakeup_dev_event + _raw_spin_lock_bh + _raw_spin_unlock_bh + register_netdev + rtnl_lock + rtnl_unlock + skb_pull + skb_put + skb_tstamp_tx + unregister_netdev + +# required by samsung_iommu.ko + bus_set_iommu + device_link_add + device_link_del + devres_add + devres_alloc_node + iommu_attach_group + iommu_device_link + iommu_device_register + iommu_device_sysfs_add + iommu_device_sysfs_remove + iommu_device_unlink + iommu_device_unregister + iommu_domain_alloc + iommu_fwspec_add_ids + iommu_fwspec_free + iommu_get_dma_cookie + iommu_group_for_each_dev + iommu_group_get + iommu_group_get_for_dev + iommu_group_get_iommudata + iommu_group_put + iommu_group_remove_device + iommu_group_set_iommudata + iommu_put_dma_cookie + iommu_report_device_fault + kmem_cache_create + kmem_cache_destroy + of_get_dma_window + pm_runtime_get_if_in_use + +# required by scaler.ko + clk_set_parent + pm_qos_remove_request + sort + v4l2_ctrl_handler_free + v4l2_ctrl_handler_init_class + v4l2_ctrl_handler_setup + v4l2_ctrl_new_custom + v4l2_ctrl_new_std + v4l_bound_align_image + +# required by spi-exynosauto.ko + loops_per_jiffy + __spi_alloc_controller + spi_controller_resume + spi_controller_suspend + spi_finalize_current_message + spi_register_controller + spi_unregister_controller + +# required by spidev.ko + driver_unregister + find_next_zero_bit + __register_chrdev + __spi_register_driver + spi_setup + spi_sync + stream_open + __unregister_chrdev + +# required by ufs-exynos-core.ko + ufshcd_config_pwr_mode + ufshcd_dme_get_attr + ufshcd_dme_set_attr + ufshcd_pltfrm_init + ufshcd_remove + ufshcd_shutdown + ufshcd_system_resume + ufshcd_system_suspend + +# required by v4l2-mem2mem.ko + media_create_intf_link + media_create_pad_link + media_device_register_entity + media_device_unregister_entity + media_devnode_create + media_devnode_remove + media_entity_pads_init + media_entity_remove_links + media_remove_intf_links + v4l2_event_pending + vb2_create_bufs + vb2_expbuf + vb2_request_object_is_buffer + +# required by videobuf2-dma-sg.ko + kvfree + kvmalloc_node + split_page + vb2_common_vm_ops + vb2_create_framevec + vb2_destroy_framevec + vm_map_pages + vm_map_ram + vm_unmap_ram + +# required by xhci-hcd.ko + dma_pool_alloc + dma_pool_create + dma_pool_destroy + dma_pool_free + param_ops_ullong + pci_alloc_irq_vectors_affinity + pci_free_irq_vectors + pci_irq_vector + radix_tree_delete + radix_tree_insert + radix_tree_lookup + radix_tree_maybe_preload + schedule_timeout_uninterruptible + sg_pcopy_from_buffer + sg_pcopy_to_buffer + usb_amd_dev_put + usb_amd_pt_check_port + usb_amd_quirk_pll_disable + usb_amd_quirk_pll_enable + usb_asmedia_modifyflowcontrol + usb_disable_xhci_ports + usb_hcd_check_unlink_urb + usb_hcd_end_port_resume + usb_hcd_giveback_urb + usb_hc_died + usb_hcd_irq + usb_hcd_link_urb_to_ep + usb_hcd_map_urb_for_dma + usb_hcd_poll_rh_status + usb_hcd_resume_root_hub + usb_hcd_start_port_resume + usb_hcd_unlink_urb_from_ep + usb_hub_clear_tt_buffer + usb_root_hub_lost_power + usb_wakeup_notification + +# required by xhci-pci.ko + pci_d3cold_disable + pci_read_config_byte + __pci_register_driver + pci_set_mwi + pci_set_power_state + pci_unregister_driver + usb_amd_quirk_pll_check + usb_create_shared_hcd + usb_enable_intel_xhci_ports + usb_hcd_pci_pm_ops + usb_hcd_pci_probe + usb_hcd_pci_remove + usb_hcd_pci_shutdown + +# required by xhci-plat-hcd.ko + device_wakeup_enable + devm_clk_get_optional + of_fwnode_ops + of_usb_host_tpl_support + pci_bus_type + __usb_create_hcd + usb_hcd_platform_shutdown diff --git a/android/abi_gki_aarch64_galaxy b/android/abi_gki_aarch64_galaxy index 400b3a7699ca..7d254cd6dd84 100644 --- a/android/abi_gki_aarch64_galaxy +++ b/android/abi_gki_aarch64_galaxy @@ -144,8 +144,11 @@ __spi_alloc_controller __spi_register_driver __spmi_driver_register + __srcu_read_lock + __srcu_read_unlock __stack_chk_fail __stack_chk_guard + __sw_hweight8 __sw_hweight32 __sw_hweight64 __sync_dirty_buffer @@ -177,6 +180,7 @@ __wake_up __wake_up_locked __warn_printk + __xa_alloc _bcd2bin _bin2bcd _copy_from_iter_full @@ -441,6 +445,7 @@ cpufreq_table_index_unsorted cpufreq_unregister_driver cpufreq_unregister_notifier + cpufreq_update_policy cpuhp_tasks_frozen cpuidle_pause_and_lock cpuidle_resume_and_unlock @@ -457,6 +462,8 @@ crypto_destroy_tfm crypto_register_rngs crypto_shash_digest + crypto_shash_final + crypto_shash_update crypto_unregister_rngs csum_partial d_add @@ -575,6 +582,7 @@ devm_gpio_request_one devm_gpiochip_add_data devm_gpiod_get + devm_gpiod_get_index devm_gpiod_get_optional devm_iio_channel_get devm_iio_device_alloc @@ -678,6 +686,7 @@ dma_fence_context_alloc dma_fence_default_wait dma_fence_enable_sw_signaling + dma_fence_free dma_fence_get_status dma_fence_init dma_fence_release @@ -1079,6 +1088,7 @@ gpiod_direction_input gpiod_direction_output gpiod_direction_output_raw + gpiod_cansleep gpiod_get_optional gpiod_get_raw_value gpiod_get_raw_value_cansleep @@ -1115,6 +1125,7 @@ hrtimer_try_to_cancel hvc_alloc hvc_kick + hvc_poll hvc_remove hwrng_register hwrng_unregister @@ -1192,6 +1203,7 @@ in6_pton init_dummy_netdev init_net + init_srcu_struct init_task init_timer_key init_uts_ns @@ -1336,6 +1348,7 @@ kernel_kobj kernel_read kernel_recvmsg + kernel_restart kernel_sendmsg kernel_setsockopt kernel_write @@ -1376,6 +1389,7 @@ kstat kstrdup kstrdup_quotable + kstrdup_quotable_cmdline kstrndup kstrtobool kstrtobool_from_user @@ -1812,6 +1826,7 @@ power_supply_unregister preempt_schedule preempt_schedule_notrace + prepare_to_wait prepare_to_wait_event print_hex_dump printk @@ -1913,6 +1928,7 @@ regulator_enable regulator_force_disable regulator_get + regulator_get_current_limit regulator_get_mode regulator_get_optional regulator_get_voltage @@ -1933,6 +1949,7 @@ regulatory_hint release_firmware release_sock + regmap_mmio_detach_clk remap_pfn_range remap_vmalloc_range remove_proc_entry @@ -2113,6 +2130,7 @@ smp_call_function_single smp_call_function_single_async smp_call_on_cpu + smpboot_register_percpu_thread smpboot_unregister_percpu_thread snd_card_free snd_card_new @@ -2321,6 +2339,7 @@ sync_filesystem synchronize_irq synchronize_rcu + synchronize_srcu sys_tz syscon_node_to_regmap syscon_regmap_lookup_by_phandle @@ -2379,6 +2398,7 @@ trace_raw_output_prep trace_seq_printf tracepoint_probe_register + tracing_off truncate_inode_pages try_module_get try_wait_for_completion diff --git a/android/abi_gki_aarch64_qcom b/android/abi_gki_aarch64_qcom index 2eec223cb60a..e1cc280307ec 100644 --- a/android/abi_gki_aarch64_qcom +++ b/android/abi_gki_aarch64_qcom @@ -164,6 +164,7 @@ cfg80211_scan_done cfg80211_sched_scan_results __cfg80211_send_event_skb + cfg80211_stop_iface cfg80211_tdls_oper_request cfg80211_unlink_bss cfg80211_update_owe_info_event @@ -663,6 +664,7 @@ drm_connector_list_iter_end drm_connector_list_iter_next drm_connector_register + drm_connector_set_tile_property drm_connector_unregister drm_connector_update_edid_property drm_crtc_cleanup @@ -781,9 +783,11 @@ drm_mode_copy drm_mode_create drm_mode_create_dp_colorspace_property + drm_mode_create_tile_group drm_mode_debug_printmodeline drm_mode_duplicate drm_mode_equal + drm_mode_get_tile_group drm_mode_object_find drm_mode_object_get drm_mode_object_put @@ -1882,6 +1886,8 @@ register_shrinker register_syscore_ops register_sysctl_table + register_virtio_device + register_virtio_driver regmap_bulk_read regmap_bulk_write regmap_field_read @@ -2485,6 +2491,8 @@ unregister_shrinker unregister_syscore_ops unregister_sysctl_table + unregister_virtio_device + unregister_virtio_driver up update_devfreq up_read @@ -2741,6 +2749,29 @@ video_ioctl2 __video_register_device video_unregister_device + virtio_check_driver_offered_feature + virtio_config_changed + virtio_max_dma_size + virtqueue_add_inbuf + virtqueue_add_inbuf_ctx + virtqueue_add_outbuf + virtqueue_add_sgs + virtqueue_detach_unused_buf + virtqueue_disable_cb + virtqueue_enable_cb + virtqueue_enable_cb_delayed + virtqueue_enable_cb_prepare + virtqueue_get_avail_addr + virtqueue_get_buf + virtqueue_get_buf_ctx + virtqueue_get_desc_addr + virtqueue_get_used_addr + virtqueue_get_vring_size + virtqueue_is_broken + virtqueue_kick + virtqueue_kick_prepare + virtqueue_notify + virtqueue_poll vmalloc vmalloc_to_page vmalloc_user @@ -2754,6 +2785,10 @@ vm_map_ram vm_unmap_ram vprintk + vring_create_virtqueue + vring_del_virtqueue + vring_interrupt + vring_transport_features vscnprintf vsnprintf vunmap diff --git a/arch/arm/configs/bcm2835_defconfig b/arch/arm/configs/bcm2835_defconfig index 519ff58e67b3..0afcae9f7cf8 100644 --- a/arch/arm/configs/bcm2835_defconfig +++ b/arch/arm/configs/bcm2835_defconfig @@ -178,6 +178,7 @@ CONFIG_SCHED_TRACER=y CONFIG_STACK_TRACER=y CONFIG_FUNCTION_PROFILER=y CONFIG_TEST_KSTRTOX=y +CONFIG_DEBUG_FS=y CONFIG_KGDB=y CONFIG_KGDB_KDB=y CONFIG_STRICT_DEVMEM=y diff --git a/arch/arm/configs/socfpga_defconfig b/arch/arm/configs/socfpga_defconfig index fe2e1e82e233..e73c97b0f5b0 100644 --- a/arch/arm/configs/socfpga_defconfig +++ b/arch/arm/configs/socfpga_defconfig @@ -157,6 +157,7 @@ CONFIG_NLS_ISO8859_1=y CONFIG_PRINTK_TIME=y CONFIG_DEBUG_INFO=y CONFIG_MAGIC_SYSRQ=y +CONFIG_DEBUG_FS=y CONFIG_DETECT_HUNG_TASK=y # CONFIG_SCHED_DEBUG is not set CONFIG_FUNCTION_TRACER=y diff --git a/arch/mips/vdso/Makefile b/arch/mips/vdso/Makefile index 996a934ece7d..267bd182946d 100644 --- a/arch/mips/vdso/Makefile +++ b/arch/mips/vdso/Makefile @@ -18,6 +18,10 @@ ccflags-vdso := \ $(filter -mno-loongson-%,$(KBUILD_CFLAGS)) \ -D__VDSO__ +ifndef CONFIG_64BIT +ccflags-vdso += -DBUILD_VDSO32 +endif + ifdef CONFIG_CC_IS_CLANG ccflags-vdso += $(filter --target=%,$(KBUILD_CFLAGS)) endif diff --git a/arch/x86/include/asm/vgtod.h b/arch/x86/include/asm/vgtod.h index a2638c6124ed..f3fe0057647c 100644 --- a/arch/x86/include/asm/vgtod.h +++ b/arch/x86/include/asm/vgtod.h @@ -2,6 +2,11 @@ #ifndef _ASM_X86_VGTOD_H #define _ASM_X86_VGTOD_H +/* + * This check is required to prevent ARCH=um to include + * unwanted headers. + */ +#ifdef CONFIG_GENERIC_GETTIMEOFDAY #include #include #include @@ -14,6 +19,7 @@ typedef u64 gtod_long_t; #else typedef unsigned long gtod_long_t; #endif +#endif /* CONFIG_GENERIC_GETTIMEOFDAY */ extern int vclocks_used; static inline bool vclock_was_used(int vclock) diff --git a/build.config.gki.aarch64 b/build.config.gki.aarch64 index b5aef871837c..58ea308926f0 100644 --- a/build.config.gki.aarch64 +++ b/build.config.gki.aarch64 @@ -8,6 +8,7 @@ ADDITIONAL_KMI_SYMBOL_LISTS=" android/abi_gki_aarch64_cuttlefish android/abi_gki_aarch64_db845c android/abi_gki_aarch64_exynos +android/abi_gki_aarch64_exynosauto android/abi_gki_aarch64_galaxy android/abi_gki_aarch64_goldfish android/abi_gki_aarch64_hikey960 diff --git a/drivers/base/core.c b/drivers/base/core.c index 67e58a4ca3f4..0d9fe94b7089 100644 --- a/drivers/base/core.c +++ b/drivers/base/core.c @@ -806,9 +806,7 @@ static void device_link_put_kref(struct device_link *link) void device_link_del(struct device_link *link) { device_links_write_lock(); - device_pm_lock(); device_link_put_kref(link); - device_pm_unlock(); device_links_write_unlock(); } EXPORT_SYMBOL_GPL(device_link_del); @@ -829,7 +827,6 @@ void device_link_remove(void *consumer, struct device *supplier) return; device_links_write_lock(); - device_pm_lock(); list_for_each_entry(link, &supplier->links.consumers, s_node) { if (link->consumer == consumer) { @@ -838,7 +835,6 @@ void device_link_remove(void *consumer, struct device *supplier) } } - device_pm_unlock(); device_links_write_unlock(); } EXPORT_SYMBOL_GPL(device_link_remove); diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h index 966c7277f6c9..5c023ecb922c 100644 --- a/drivers/hid/hid-ids.h +++ b/drivers/hid/hid-ids.h @@ -449,6 +449,10 @@ #define USB_VENDOR_ID_FRUCTEL 0x25B6 #define USB_DEVICE_ID_GAMETEL_MT_MODE 0x0002 +#define USB_VENDOR_ID_GAMEVICE 0x27F8 +#define USB_DEVICE_ID_GAMEVICE_GV186 0x0BBE +#define USB_DEVICE_ID_GAMEVICE_KISHI 0x0BBF + #define USB_VENDOR_ID_GAMERON 0x0810 #define USB_DEVICE_ID_GAMERON_DUAL_PSX_ADAPTOR 0x0001 #define USB_DEVICE_ID_GAMERON_DUAL_PCS_ADAPTOR 0x0002 diff --git a/drivers/hid/hid-quirks.c b/drivers/hid/hid-quirks.c index 1e666cd3d090..f3042643e4dd 100644 --- a/drivers/hid/hid-quirks.c +++ b/drivers/hid/hid-quirks.c @@ -84,6 +84,10 @@ static const struct hid_device_id hid_quirks[] = { { HID_USB_DEVICE(USB_VENDOR_ID_FREESCALE, USB_DEVICE_ID_FREESCALE_MX28), HID_QUIRK_NOGET }, { HID_USB_DEVICE(USB_VENDOR_ID_FUTABA, USB_DEVICE_ID_LED_DISPLAY), HID_QUIRK_NO_INIT_REPORTS }, { HID_USB_DEVICE(USB_VENDOR_ID_GREENASIA, USB_DEVICE_ID_GREENASIA_DUAL_USB_JOYPAD), HID_QUIRK_MULTI_INPUT }, + { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_GAMEVICE, USB_DEVICE_ID_GAMEVICE_GV186), + HID_QUIRK_INCREMENT_USAGE_ON_DUPLICATE }, + { HID_USB_DEVICE(USB_VENDOR_ID_GAMEVICE, USB_DEVICE_ID_GAMEVICE_KISHI), + HID_QUIRK_INCREMENT_USAGE_ON_DUPLICATE }, { HID_USB_DEVICE(USB_VENDOR_ID_HAPP, USB_DEVICE_ID_UGCI_DRIVING), HID_QUIRK_BADPAD | HID_QUIRK_MULTI_INPUT }, { HID_USB_DEVICE(USB_VENDOR_ID_HAPP, USB_DEVICE_ID_UGCI_FIGHTING), HID_QUIRK_BADPAD | HID_QUIRK_MULTI_INPUT }, { HID_USB_DEVICE(USB_VENDOR_ID_HAPP, USB_DEVICE_ID_UGCI_FLYING), HID_QUIRK_BADPAD | HID_QUIRK_MULTI_INPUT }, diff --git a/drivers/mfd/sprd-sc27xx-spi.c b/drivers/mfd/sprd-sc27xx-spi.c index ebdf2f11ae28..bb502f4c56df 100644 --- a/drivers/mfd/sprd-sc27xx-spi.c +++ b/drivers/mfd/sprd-sc27xx-spi.c @@ -256,7 +256,7 @@ static int sprd_pmic_probe(struct spi_device *spi) } ret = devm_regmap_add_irq_chip(&spi->dev, ddata->regmap, ddata->irq, - IRQF_ONESHOT | IRQF_NO_SUSPEND, 0, + IRQF_ONESHOT, 0, &ddata->irq_chip, &ddata->irq_data); if (ret) { dev_err(&spi->dev, "Failed to add PMIC irq chip %d\n", ret); @@ -272,9 +272,34 @@ static int sprd_pmic_probe(struct spi_device *spi) return ret; } + device_init_wakeup(&spi->dev, true); return 0; } +#ifdef CONFIG_PM_SLEEP +static int sprd_pmic_suspend(struct device *dev) +{ + struct sprd_pmic *ddata = dev_get_drvdata(dev); + + if (device_may_wakeup(dev)) + enable_irq_wake(ddata->irq); + + return 0; +} + +static int sprd_pmic_resume(struct device *dev) +{ + struct sprd_pmic *ddata = dev_get_drvdata(dev); + + if (device_may_wakeup(dev)) + disable_irq_wake(ddata->irq); + + return 0; +} +#endif + +static SIMPLE_DEV_PM_OPS(sprd_pmic_pm_ops, sprd_pmic_suspend, sprd_pmic_resume); + static const struct of_device_id sprd_pmic_match[] = { { .compatible = "sprd,sc2731", .data = &sc2731_data }, {}, @@ -286,6 +311,7 @@ static struct spi_driver sprd_pmic_driver = { .name = "sc27xx-pmic", .bus = &spi_bus_type, .of_match_table = sprd_pmic_match, + .pm = &sprd_pmic_pm_ops, }, .probe = sprd_pmic_probe, }; diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c index 520f7b5ee6dc..0a65377dc1c8 100644 --- a/drivers/mmc/host/sdhci.c +++ b/drivers/mmc/host/sdhci.c @@ -4014,9 +4014,6 @@ int sdhci_setup_host(struct sdhci_host *host) mmc_hostname(mmc), host->version); } - if (host->quirks & SDHCI_QUIRK_BROKEN_CQE) - mmc->caps2 &= ~MMC_CAP2_CQE; - if (host->quirks & SDHCI_QUIRK_FORCE_DMA) host->flags |= SDHCI_USE_SDMA; else if (!(host->caps & SDHCI_CAN_DO_SDMA)) @@ -4557,6 +4554,12 @@ int __sdhci_add_host(struct sdhci_host *host) struct mmc_host *mmc = host->mmc; int ret; + if ((mmc->caps2 & MMC_CAP2_CQE) && + (host->quirks & SDHCI_QUIRK_BROKEN_CQE)) { + mmc->caps2 &= ~MMC_CAP2_CQE; + mmc->cqe_ops = NULL; + } + host->complete_wq = alloc_workqueue("sdhci", flags, 0); if (!host->complete_wq) return -ENOMEM; diff --git a/drivers/net/wireless/ath/wil6210/txrx.c b/drivers/net/wireless/ath/wil6210/txrx.c index ced6751f2def..48526c6509e9 100644 --- a/drivers/net/wireless/ath/wil6210/txrx.c +++ b/drivers/net/wireless/ath/wil6210/txrx.c @@ -921,7 +921,6 @@ static void wil_rx_handle_eapol(struct wil6210_vif *vif, struct sk_buff *skb) void wil_netif_rx(struct sk_buff *skb, struct net_device *ndev, int cid, struct wil_net_stats *stats, bool gro) { - gro_result_t rc = GRO_NORMAL; struct wil6210_vif *vif = ndev_to_vif(ndev); struct wil6210_priv *wil = ndev_to_wil(ndev); struct wireless_dev *wdev = vif_to_wdev(vif); @@ -932,22 +931,16 @@ void wil_netif_rx(struct sk_buff *skb, struct net_device *ndev, int cid, */ int mcast = is_multicast_ether_addr(da); struct sk_buff *xmit_skb = NULL; - static const char * const gro_res_str[] = { - [GRO_MERGED] = "GRO_MERGED", - [GRO_MERGED_FREE] = "GRO_MERGED_FREE", - [GRO_HELD] = "GRO_HELD", - [GRO_NORMAL] = "GRO_NORMAL", - [GRO_DROP] = "GRO_DROP", - [GRO_CONSUMED] = "GRO_CONSUMED", - }; if (wdev->iftype == NL80211_IFTYPE_STATION) { sa = wil_skb_get_sa(skb); if (mcast && ether_addr_equal(sa, ndev->dev_addr)) { /* mcast packet looped back to us */ - rc = GRO_DROP; dev_kfree_skb(skb); - goto stats; + ndev->stats.rx_dropped++; + stats->rx_dropped++; + wil_dbg_txrx(wil, "Rx drop %d bytes\n", len); + return; } } else if (wdev->iftype == NL80211_IFTYPE_AP && !vif->ap_isolate) { if (mcast) { @@ -991,26 +984,16 @@ void wil_netif_rx(struct sk_buff *skb, struct net_device *ndev, int cid, wil_rx_handle_eapol(vif, skb); if (gro) - rc = napi_gro_receive(&wil->napi_rx, skb); + napi_gro_receive(&wil->napi_rx, skb); else netif_rx_ni(skb); - wil_dbg_txrx(wil, "Rx complete %d bytes => %s\n", - len, gro_res_str[rc]); - } -stats: - /* statistics. rc set to GRO_NORMAL for AP bridging */ - if (unlikely(rc == GRO_DROP)) { - ndev->stats.rx_dropped++; - stats->rx_dropped++; - wil_dbg_txrx(wil, "Rx drop %d bytes\n", len); - } else { - ndev->stats.rx_packets++; - stats->rx_packets++; - ndev->stats.rx_bytes += len; - stats->rx_bytes += len; - if (mcast) - ndev->stats.multicast++; } + ndev->stats.rx_packets++; + stats->rx_packets++; + ndev->stats.rx_bytes += len; + stats->rx_bytes += len; + if (mcast) + ndev->stats.multicast++; } void wil_netif_rx_any(struct sk_buff *skb, struct net_device *ndev) diff --git a/drivers/nvmem/sprd-efuse.c b/drivers/nvmem/sprd-efuse.c index 925feb21d5ad..59523245db8a 100644 --- a/drivers/nvmem/sprd-efuse.c +++ b/drivers/nvmem/sprd-efuse.c @@ -378,8 +378,8 @@ static int sprd_efuse_probe(struct platform_device *pdev) return -ENOMEM; efuse->base = devm_platform_ioremap_resource(pdev, 0); - if (!efuse->base) - return -ENOMEM; + if (IS_ERR(efuse->base)) + return PTR_ERR(efuse->base); ret = of_hwspin_lock_get_id(np, 0); if (ret < 0) { diff --git a/drivers/of/platform.c b/drivers/of/platform.c index c616c4d9f082..55d719347810 100644 --- a/drivers/of/platform.c +++ b/drivers/of/platform.c @@ -518,10 +518,11 @@ static int __init of_platform_default_populate_init(void) { struct device_node *node; + device_links_supplier_sync_state_pause(); + if (!of_have_populated_dt()) return -ENODEV; - device_links_supplier_sync_state_pause(); /* * Handle certain compatibles explicitly, since we don't want to create * platform_devices for every node in /reserved-memory with a @@ -547,8 +548,7 @@ arch_initcall_sync(of_platform_default_populate_init); static int __init of_platform_sync_state_init(void) { - if (of_have_populated_dt()) - device_links_supplier_sync_state_resume(); + device_links_supplier_sync_state_resume(); return 0; } late_initcall_sync(of_platform_sync_state_init); diff --git a/drivers/of/property.c b/drivers/of/property.c index 277d2d854ad5..c3cca636e8ea 100644 --- a/drivers/of/property.c +++ b/drivers/of/property.c @@ -1031,8 +1031,20 @@ static int of_link_to_phandle(struct device *dev, struct device_node *sup_np, * Find the device node that contains the supplier phandle. It may be * @sup_np or it may be an ancestor of @sup_np. */ - while (sup_np && !of_find_property(sup_np, "compatible", NULL)) + while (sup_np) { + + /* Don't allow linking to a disabled supplier */ + if (!of_device_is_available(sup_np)) { + of_node_put(sup_np); + sup_np = NULL; + } + + if (of_find_property(sup_np, "compatible", NULL)) + break; + sup_np = of_get_next_parent(sup_np); + } + if (!sup_np) { dev_dbg(dev, "Not linking to %pOFP - No device\n", tmp_np); return -ENODEV; @@ -1311,7 +1323,7 @@ static int of_link_to_suppliers(struct device *dev, if (of_link_property(dev, con_np, p->name)) ret = -ENODEV; - for_each_child_of_node(con_np, child) + for_each_available_child_of_node(con_np, child) if (of_link_to_suppliers(dev, child) && !ret) ret = -EAGAIN; diff --git a/drivers/scsi/ufs/ufs-mediatek.c b/drivers/scsi/ufs/ufs-mediatek.c index f435c938455e..e22f91695b04 100644 --- a/drivers/scsi/ufs/ufs-mediatek.c +++ b/drivers/scsi/ufs/ufs-mediatek.c @@ -129,7 +129,10 @@ static int ufs_mtk_bind_mphy(struct ufs_hba *hba) __func__, err); } else if (IS_ERR(host->mphy)) { err = PTR_ERR(host->mphy); - dev_info(dev, "%s: PHY get failed %d\n", __func__, err); + if (err != -ENODEV) { + dev_info(dev, "%s: PHY get failed %d\n", __func__, + err); + } } if (err) @@ -669,13 +672,7 @@ static int ufs_mtk_apply_dev_quirks(struct ufs_hba *hba) static void ufs_mtk_fixup_dev_quirks(struct ufs_hba *hba) { - struct ufs_dev_info *dev_info = &hba->dev_info; - u16 mid = dev_info->wmanufacturerid; - ufshcd_fixup_dev_quirks(hba, ufs_mtk_dev_fixups); - - if (mid == UFS_VENDOR_SAMSUNG) - hba->dev_quirks &= ~UFS_DEVICE_QUIRK_HOST_PA_TACTIVATE; } /** diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c index e0e9019f890d..e33744ae391c 100644 --- a/drivers/scsi/ufs/ufshcd.c +++ b/drivers/scsi/ufs/ufshcd.c @@ -6339,7 +6339,7 @@ static irqreturn_t ufshcd_intr(int irq, void *__hba) intr_status = ufshcd_readl(hba, REG_INTERRUPT_STATUS); } while (intr_status && --retries); - if (retval == IRQ_NONE) { + if (enabled_intr_status && retval == IRQ_NONE) { dev_err(hba->dev, "%s: Unhandled interrupt 0x%08x\n", __func__, intr_status); ufshcd_dump_regs(hba, 0, UFSHCI_REG_SPACE_SIZE, "host_regs: "); diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c index bb3066cedb7e..cbcb40924824 100644 --- a/drivers/spi/spi.c +++ b/drivers/spi/spi.c @@ -3119,6 +3119,15 @@ int spi_setup(struct spi_device *spi) status); return status; } + + /* + * We do not want to return positive value from pm_runtime_get, + * there are many instances of devices calling spi_setup() and + * checking for a non-zero return value instead of a negative + * return value. + */ + status = 0; + spi_set_cs(spi, false); pm_runtime_mark_last_busy(spi->controller->dev.parent); pm_runtime_put_autosuspend(spi->controller->dev.parent); diff --git a/drivers/thermal/Kconfig b/drivers/thermal/Kconfig index c324074fc67c..690e53f22ddf 100644 --- a/drivers/thermal/Kconfig +++ b/drivers/thermal/Kconfig @@ -108,7 +108,7 @@ config THERMAL_DEFAULT_GOV_USER_SPACE config THERMAL_DEFAULT_GOV_POWER_ALLOCATOR bool "power_allocator" - select THERMAL_GOV_POWER_ALLOCATOR + depends on THERMAL_GOV_POWER_ALLOCATOR help Select this if you want to control temperature based on system and device power allocation. This governor can only diff --git a/drivers/thermal/sprd_thermal.c b/drivers/thermal/sprd_thermal.c index a340374e8c51..4cde70dcf655 100644 --- a/drivers/thermal/sprd_thermal.c +++ b/drivers/thermal/sprd_thermal.c @@ -348,8 +348,8 @@ static int sprd_thm_probe(struct platform_device *pdev) thm->var_data = pdata; thm->base = devm_platform_ioremap_resource(pdev, 0); - if (!thm->base) - return -ENOMEM; + if (IS_ERR(thm->base)) + return PTR_ERR(thm->base); thm->nr_sensors = of_get_child_count(np); if (thm->nr_sensors == 0 || thm->nr_sensors > SPRD_THM_MAX_SENSOR) { diff --git a/drivers/thermal/thermal_sysfs.c b/drivers/thermal/thermal_sysfs.c index b3b85aca479c..ad76b1e9c934 100644 --- a/drivers/thermal/thermal_sysfs.c +++ b/drivers/thermal/thermal_sysfs.c @@ -980,10 +980,8 @@ void thermal_cooling_device_stats_update(struct thermal_cooling_device *cdev, { struct cooling_dev_stats *stats = cdev->stats; -#ifdef CONFIG_QTI_THERMAL if (!stats) return; -#endif spin_lock(&stats->lock); diff --git a/drivers/usb/host/xhci-pci-renesas.c b/drivers/usb/host/xhci-pci-renesas.c index be2e7eff492f..02fcb01bc2b9 100644 --- a/drivers/usb/host/xhci-pci-renesas.c +++ b/drivers/usb/host/xhci-pci-renesas.c @@ -7,7 +7,7 @@ #include #include #include -#include +#include #include "xhci.h" #include "xhci-trace.h" diff --git a/fs/crypto/fscrypt_private.h b/fs/crypto/fscrypt_private.h index ea28dd500d2b..688ae13f8f5f 100644 --- a/fs/crypto/fscrypt_private.h +++ b/fs/crypto/fscrypt_private.h @@ -363,13 +363,16 @@ fscrypt_is_key_prepared(struct fscrypt_prepared_key *prep_key, const struct fscrypt_info *ci) { /* - * The READ_ONCE() here pairs with the smp_store_release() in - * fscrypt_prepare_key(). (This only matters for the per-mode keys, - * which are shared by multiple inodes.) + * The two smp_load_acquire()'s here pair with the smp_store_release()'s + * in fscrypt_prepare_inline_crypt_key() and fscrypt_prepare_key(). + * I.e., in some cases (namely, if this prep_key is a per-mode + * encryption key) another task can publish blk_key or tfm concurrently, + * executing a RELEASE barrier. We need to use smp_load_acquire() here + * to safely ACQUIRE the memory the other task published. */ if (fscrypt_using_inline_encryption(ci)) - return READ_ONCE(prep_key->blk_key) != NULL; - return READ_ONCE(prep_key->tfm) != NULL; + return smp_load_acquire(&prep_key->blk_key) != NULL; + return smp_load_acquire(&prep_key->tfm) != NULL; } #else /* CONFIG_FS_ENCRYPTION_INLINE_CRYPT */ @@ -416,7 +419,7 @@ static inline bool fscrypt_is_key_prepared(struct fscrypt_prepared_key *prep_key, const struct fscrypt_info *ci) { - return READ_ONCE(prep_key->tfm) != NULL; + return smp_load_acquire(&prep_key->tfm) != NULL; } #endif /* !CONFIG_FS_ENCRYPTION_INLINE_CRYPT */ diff --git a/fs/crypto/inline_crypt.c b/fs/crypto/inline_crypt.c index 6504f053ae57..3b3a684c19d5 100644 --- a/fs/crypto/inline_crypt.c +++ b/fs/crypto/inline_crypt.c @@ -202,8 +202,10 @@ int fscrypt_prepare_inline_crypt_key(struct fscrypt_prepared_key *prep_key, } } /* - * Pairs with READ_ONCE() in fscrypt_is_key_prepared(). (Only matters - * for the per-mode keys, which are shared by multiple inodes.) + * Pairs with the smp_load_acquire() in fscrypt_is_key_prepared(). + * I.e., here we publish ->blk_key with a RELEASE barrier so that + * concurrent tasks can ACQUIRE it. Note that this concurrency is only + * possible for per-mode keys, not for per-file keys. */ smp_store_release(&prep_key->blk_key, blk_key); return 0; diff --git a/fs/crypto/keysetup.c b/fs/crypto/keysetup.c index 2ce4d48b6655..96609a5c3843 100644 --- a/fs/crypto/keysetup.c +++ b/fs/crypto/keysetup.c @@ -134,8 +134,10 @@ int fscrypt_prepare_key(struct fscrypt_prepared_key *prep_key, if (IS_ERR(tfm)) return PTR_ERR(tfm); /* - * Pairs with READ_ONCE() in fscrypt_is_key_prepared(). (Only matters - * for the per-mode keys, which are shared by multiple inodes.) + * Pairs with the smp_load_acquire() in fscrypt_is_key_prepared(). + * I.e., here we publish ->tfm with a RELEASE barrier so that + * concurrent tasks can ACQUIRE it. Note that this concurrency is only + * possible for per-mode keys, not for per-file keys. */ smp_store_release(&prep_key->tfm, tfm); return 0; diff --git a/fs/crypto/policy.c b/fs/crypto/policy.c index d23ff162c78b..026dbb2fa36f 100644 --- a/fs/crypto/policy.c +++ b/fs/crypto/policy.c @@ -77,6 +77,20 @@ static bool supported_iv_ino_lblk_policy(const struct fscrypt_policy_v2 *policy, struct super_block *sb = inode->i_sb; int ino_bits = 64, lblk_bits = 64; + /* + * IV_INO_LBLK_* exist only because of hardware limitations, and + * currently the only known use case for them involves AES-256-XTS. + * That's also all we test currently. For these reasons, for now only + * allow AES-256-XTS here. This can be relaxed later if a use case for + * IV_INO_LBLK_* with other encryption modes arises. + */ + if (policy->contents_encryption_mode != FSCRYPT_MODE_AES_256_XTS) { + fscrypt_warn(inode, + "Can't use %s policy with contents mode other than AES-256-XTS", + type); + return false; + } + /* * It's unsafe to include inode numbers in the IVs if the filesystem can * potentially renumber inodes, e.g. via filesystem shrinking. @@ -178,10 +192,15 @@ static bool fscrypt_supported_v2_policy(const struct fscrypt_policy_v2 *policy, 32, 32)) return false; + /* + * IV_INO_LBLK_32 hashes the inode number, so in principle it can + * support any ino_bits. However, currently the inode number is gotten + * from inode::i_ino which is 'unsigned long'. So for now the + * implementation limit is 32 bits. + */ if ((policy->flags & FSCRYPT_POLICY_FLAG_IV_INO_LBLK_32) && - /* This uses hashed inode numbers, so ino_bits doesn't matter. */ !supported_iv_ino_lblk_policy(policy, inode, "IV_INO_LBLK_32", - INT_MAX, 32)) + 32, 32)) return false; if (memchr_inv(policy->__reserved, 0, sizeof(policy->__reserved))) { diff --git a/include/linux/mfd/syscon.h b/include/linux/mfd/syscon.h index 714cab1e09d3..7f20e9b502a5 100644 --- a/include/linux/mfd/syscon.h +++ b/include/linux/mfd/syscon.h @@ -51,7 +51,7 @@ static inline struct regmap *syscon_regmap_lookup_by_phandle( return ERR_PTR(-ENOTSUPP); } -static struct regmap *syscon_regmap_lookup_by_phandle_args( +static inline struct regmap *syscon_regmap_lookup_by_phandle_args( struct device_node *np, const char *property, int arg_count, diff --git a/include/net/ndisc.h b/include/net/ndisc.h index 5ffba5a4e5c5..6cb3e6c11132 100644 --- a/include/net/ndisc.h +++ b/include/net/ndisc.h @@ -41,7 +41,7 @@ enum { ND_OPT_DNSSL = 31, /* RFC6106 */ ND_OPT_6CO = 34, /* RFC6775 */ ND_OPT_CAPTIVE_PORTAL = 37, /* RFC7710 */ - ND_OPT_PREF64 = 38, /* RFC-ietf-6man-ra-pref64-09 */ + ND_OPT_PREF64 = 38, /* RFC8781 */ __ND_OPT_MAX }; diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index a7f4a780d0ca..b97769950354 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -7209,7 +7209,9 @@ int find_energy_efficient_cpu(struct task_struct *p, int prev_cpu, continue; util = cpu_util_next(cpu, p, cpu); cpu_cap = capacity_of(cpu); - spare_cap = cpu_cap - util; + spare_cap = cpu_cap; + lsub_positive(&spare_cap, util); + /* * Skip CPUs that cannot satisfy the capacity request. * IOW, placing the task there would make the CPU diff --git a/kernel/time/tick-common.c b/kernel/time/tick-common.c index 59225b484e4e..7e5d3524e924 100644 --- a/kernel/time/tick-common.c +++ b/kernel/time/tick-common.c @@ -11,6 +11,7 @@ #include #include #include +#include #include #include #include @@ -558,6 +559,7 @@ void tick_unfreeze(void) trace_suspend_resume(TPS("timekeeping_freeze"), smp_processor_id(), false); } else { + touch_softlockup_watchdog(); tick_resume_local(); } diff --git a/net/core/skbuff.c b/net/core/skbuff.c index e53fe52dd764..b2c203bcf24c 100644 --- a/net/core/skbuff.c +++ b/net/core/skbuff.c @@ -3671,6 +3671,7 @@ struct sk_buff *skb_segment_list(struct sk_buff *skb, skb_push(nskb, -skb_network_offset(nskb) + offset); + skb_release_head_state(nskb); __copy_skb_header(nskb, skb); skb_headers_offset_update(nskb, skb_headroom(nskb) - skb_headroom(skb)); diff --git a/net/mac80211/mesh.c b/net/mac80211/mesh.c index 4d7d23e47829..66e830727c98 100644 --- a/net/mac80211/mesh.c +++ b/net/mac80211/mesh.c @@ -590,6 +590,19 @@ int mesh_add_he_oper_ie(struct ieee80211_sub_if_data *sdata, int mesh_add_he_6ghz_cap_ie(struct ieee80211_sub_if_data *sdata, struct sk_buff *skb) { + struct ieee80211_supported_band *sband; + const struct ieee80211_sband_iftype_data *iftd; + + sband = ieee80211_get_sband(sdata); + if (!sband) + return -EINVAL; + + iftd = ieee80211_get_sband_iftype_data(sband, + NL80211_IFTYPE_MESH_POINT); + /* The device doesn't support HE in mesh mode or at all */ + if (!iftd) + return 0; + ieee80211_ie_build_he_6ghz_cap(sdata, skb); return 0; } diff --git a/net/mac80211/util.c b/net/mac80211/util.c index a27f7aa3f9c9..9fdee728f29b 100644 --- a/net/mac80211/util.c +++ b/net/mac80211/util.c @@ -2845,6 +2845,10 @@ void ieee80211_ie_build_he_6ghz_cap(struct ieee80211_sub_if_data *sdata, if (WARN_ON(!iftd)) return; + /* Check for device HE 6 GHz capability before adding element */ + if (!iftd->he_6ghz_capa.capa) + return; + cap = le16_to_cpu(iftd->he_6ghz_capa.capa); cap &= ~IEEE80211_HE_6GHZ_CAP_SM_PS; diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c index 2b01f92388ac..fec0dbcfa9ed 100644 --- a/net/wireless/nl80211.c +++ b/net/wireless/nl80211.c @@ -4995,7 +4995,7 @@ static int nl80211_start_ap(struct sk_buff *skb, struct genl_info *info) info->attrs[NL80211_ATTR_HE_BSS_COLOR], ¶ms.he_bss_color); if (err) - return err; + goto out; } nl80211_calculate_ap_params(¶ms); diff --git a/net/wireless/util.c b/net/wireless/util.c index e3053aaedbf8..6b009f41ccf6 100644 --- a/net/wireless/util.c +++ b/net/wireless/util.c @@ -95,7 +95,7 @@ u32 ieee80211_channel_to_freq_khz(int chan, enum nl80211_band band) /* see 802.11ax D6.1 27.3.23.2 */ if (chan == 2) return MHZ_TO_KHZ(5935); - if (chan <= 253) + if (chan <= 233) return MHZ_TO_KHZ(5950 + chan * 5); break; case NL80211_BAND_60GHZ: diff --git a/security/selinux/ss/services.c b/security/selinux/ss/services.c index e352ce1e1779..5199dd3f3db5 100644 --- a/security/selinux/ss/services.c +++ b/security/selinux/ss/services.c @@ -1261,6 +1261,12 @@ int security_sidtab_hash_stats(struct selinux_state *state, char *page) { int rc; + if (!state->initialized) { + pr_err("SELinux: %s: called before initial load_policy\n", + __func__); + return -EINVAL; + } + read_lock(&state->ss->policy_rwlock); rc = sidtab_hash_stats(state->ss->sidtab, page); read_unlock(&state->ss->policy_rwlock);