Quoting Stephen Boyd (2021-03-23 15:43:36) > These scm calls are never used outside of legacy ARMv7 based platforms. > That's because PSCI, mandated on arm64, implements them for modern SoCs > via the PSCI spec. Let's move them to the legacy file and only compile > the legacy file into the kernel when CONFIG_ARM=y. Otherwise provide > stubs and fail the calls. This saves a little bit of space in an > arm64 allmodconfig. > > $ ./scripts/bloat-o-meter vmlinux.before vmlinux.after > add/remove: 0/8 grow/shrink: 5/6 up/down: 509/-4401 (-3892) > Function old new delta > __qcom_scm_set_dload_mode.constprop 312 452 +140 > qcom_scm_qsmmu500_wait_safe_toggle 288 416 +128 > qcom_scm_io_writel 288 408 +120 > qcom_scm_io_readl 376 492 +116 > __param_str_download_mode 23 28 +5 > __warned 4327 4326 -1 > e843419@0b3f_00010432_324 8 - -8 > qcom_scm_call 228 208 -20 > CSWTCH 5925 5877 -48 > _sub_I_65535_1 163100 163040 -60 > _sub_D_65535_0 163100 163040 -60 > qcom_scm_wb 64 - -64 > qcom_scm_lock 320 160 -160 > qcom_scm_call_atomic 212 - -212 > qcom_scm_cpu_power_down 308 - -308 > scm_legacy_call_atomic 520 - -520 > qcom_scm_set_warm_boot_addr 720 - -720 > qcom_scm_set_cold_boot_addr 728 - -728 > scm_legacy_call 1492 - -1492 > Total: Before=66737606, After=66733714, chg -0.01% > > Commit 9a434cee773a ("firmware: qcom_scm: Dynamically support SMCCC and > legacy conventions") didn't mention any motivating factors for keeping > the legacy code around on arm64 kernels, i.e. presumably that commit > wasn't trying to support these legacy APIs on arm64 kernels. > > Cc: Elliot Berman <eberman@xxxxxxxxxxxxxx> > Cc: Brian Masney <masneyb@xxxxxxxxxxxxx> > Cc: Stephan Gerhold <stephan@xxxxxxxxxxx> > Cc: Jeffrey Hugo <jhugo@xxxxxxxxxxxxxx> > Cc: Douglas Anderson <dianders@xxxxxxxxxxxx> > Signed-off-by: Stephen Boyd <swboyd@xxxxxxxxxxxx> > --- > Elliot, can you ack/review this? > Followup to v1 (https://lore.kernel.org/r/20210223214539.1336155-7-swboyd@xxxxxxxxxxxx): > * Don't change the legacy file to use legacy calls only > * Wrap more things in CONFIG_ARM checks >