Hi folks, This series unfied LoongArch and MIPS's IOCSR functions and macros so they will expose same interface to arch-indenpendent drivers. This can reduce code deuplication, and also help my unifed IPI driver and MIPS extio driver effort. This is touching many sub-systems in once so might be hard to merge. Huacai, can you apply first three patch via loongarch-next tree. For last two patch maybe better merge them via a second PR after all subsystem PRs merged. No functional change so hope it's not too late for 6.12 :-) Please review. Thanks Signed-off-by: Jiaxun Yang <jiaxun.yang@xxxxxxxxxxx> --- Changes in v3: - Convert if to switch case in patch 1 - Fix typo in patch 2 - Link to v2: https://lore.kernel.org/r/20240912-iocsr-v2-0-e88f75b37da4@xxxxxxxxxxx Changes in v2: - Drop patch 1 - Move IOCSR probing to cpu_probe_loongson - Fix build error for CPUFREQ driver - Link to v1: https://lore.kernel.org/r/20240907-iocsr-v1-0-0c99b3334444@xxxxxxxxxxx --- Jiaxun Yang (4): LoongArch: Probe more CPU features from CPUCFG LoongArch: cpu-probe: Move IOCSR probing out of cpu_probe_common LoongArch: Extract IOCSR definitions to standalone header MIPS: Loongson64: Use shared IOCSR header MAINTAINERS | 1 + arch/loongarch/include/asm/cpu.h | 4 + arch/loongarch/include/asm/loongarch.h | 93 +--------------- arch/loongarch/kernel/cpu-probe.c | 117 ++++++++++++--------- arch/loongarch/kernel/relocate_kernel.S | 5 +- arch/loongarch/kernel/smp.c | 23 ++-- .../include/asm/mach-loongson64/loongson_regs.h | 58 +++------- arch/mips/kvm/vz.c | 2 +- arch/mips/loongson64/smp.c | 44 ++++---- drivers/cpufreq/loongson3_cpufreq.c | 11 +- drivers/irqchip/irq-loongarch-avec.c | 5 +- drivers/irqchip/irq-loongson-eiointc.c | 5 +- drivers/platform/mips/cpu_hwmon.c | 7 +- include/linux/loongson/iocsr.h | 113 ++++++++++++++++++++ 14 files changed, 258 insertions(+), 230 deletions(-) --- base-commit: 9aaeb87ce1e966169a57f53a02ba05b30880ffb8 change-id: 20240906-iocsr-829075458511 Best regards, -- Jiaxun Yang <jiaxun.yang@xxxxxxxxxxx>