Commit b7191581 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'loongarch-6.16' of...

Merge tag 'loongarch-6.16' of git://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson

Pull LoongArch updates from Huacai Chen:

 - Adjust the 'make install' operation

 - Support SCHED_MC (Multi-core scheduler)

 - Enable ARCH_SUPPORTS_MSEAL_SYSTEM_MAPPINGS

 - Enable HAVE_ARCH_STACKLEAK

 - Increase max supported CPUs up to 2048

 - Introduce the numa_memblks conversion

 - Add PWM controller nodes in dts

 - Some bug fixes and other small changes

* tag 'loongarch-6.16' of git://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson:
  platform/loongarch: laptop: Unregister generic_sub_drivers on exit
  platform/loongarch: laptop: Add backlight power control support
  platform/loongarch: laptop: Get brightness setting from EC on probe
  LoongArch: dts: Add PWM support to Loongson-2K2000
  LoongArch: dts: Add PWM support to Loongson-2K1000
  LoongArch: dts: Add PWM support to Loongson-2K0500
  LoongArch: vDSO: Correctly use asm parameters in syscall wrappers
  LoongArch: Fix panic caused by NULL-PMD in huge_pte_offset()
  LoongArch: Preserve firmware configuration when desired
  LoongArch: Avoid using $r0/$r1 as "mask" for csrxchg
  LoongArch: Introduce the numa_memblks conversion
  LoongArch: Increase max supported CPUs up to 2048
  LoongArch: Enable HAVE_ARCH_STACKLEAK
  LoongArch: Enable ARCH_SUPPORTS_MSEAL_SYSTEM_MAPPINGS
  LoongArch: Add SCHED_MC (Multi-core scheduler) support
  LoongArch: Add some annotations in archhelp
  LoongArch: Using generic scripts/install.sh in `make install`
  LoongArch: Add a default install.sh
parents af477f4d f78fb257
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -12,7 +12,7 @@
    |       arm64: |  ok  |
    |        csky: |  N/A |
    |     hexagon: |  N/A |
    |   loongarch: | TODO |
    |   loongarch: |  ok  |
    |        m68k: |  N/A |
    |  microblaze: |  N/A |
    |        mips: | TODO |
+1 −1
Original line number Diff line number Diff line
@@ -144,7 +144,7 @@ Use cases
  architecture.

  The following architectures currently support this feature: x86-64, arm64,
  and s390.
  loongarch and s390.

  WARNING: This feature breaks programs which rely on relocating
  or unmapping system mappings. Known broken software at the time
+15 −3
Original line number Diff line number Diff line
@@ -69,6 +69,7 @@ config LOONGARCH
	select ARCH_SUPPORTS_INT128 if CC_HAS_INT128
	select ARCH_SUPPORTS_LTO_CLANG
	select ARCH_SUPPORTS_LTO_CLANG_THIN
	select ARCH_SUPPORTS_MSEAL_SYSTEM_MAPPINGS
	select ARCH_SUPPORTS_NUMA_BALANCING
	select ARCH_SUPPORTS_RT
	select ARCH_USE_BUILTIN_BSWAP
@@ -123,6 +124,7 @@ config LOONGARCH
	select HAVE_ARCH_RANDOMIZE_KSTACK_OFFSET
	select HAVE_ARCH_SECCOMP
	select HAVE_ARCH_SECCOMP_FILTER
	select HAVE_ARCH_STACKLEAK
	select HAVE_ARCH_TRACEHOOK
	select HAVE_ARCH_TRANSPARENT_HUGEPAGE
	select HAVE_ARCH_USERFAULTFD_MINOR if USERFAULTFD
@@ -187,6 +189,7 @@ config LOONGARCH
	select MODULES_USE_ELF_RELA if MODULES
	select NEED_PER_CPU_EMBED_FIRST_CHUNK
	select NEED_PER_CPU_PAGE_FIRST_CHUNK
	select NUMA_MEMBLKS if NUMA
	select OF
	select OF_EARLY_FLATTREE
	select PCI
@@ -456,6 +459,15 @@ config SCHED_SMT
	  Improves scheduler's performance when there are multiple
	  threads in one physical core.

config SCHED_MC
	bool "Multi-core scheduler support"
	depends on SMP
	default y
	help
	  Multi-core scheduler support improves the CPU scheduler's decision
	  making when dealing with multi-core CPU chips at a cost of slightly
	  increased overhead in some places.

config SMP
	bool "Multi-Processing support"
	help
@@ -485,10 +497,10 @@ config HOTPLUG_CPU
	  Say N if you want to disable CPU hotplug.

config NR_CPUS
	int "Maximum number of CPUs (2-256)"
	range 2 256
	int "Maximum number of CPUs (2-2048)"
	range 2 2048
	default "2048"
	depends on SMP
	default "64"
	help
	  This allows you to specify the maximum number of CPUs which this
	  kernel will support.
+7 −4
Original line number Diff line number Diff line
@@ -181,11 +181,14 @@ vmlinux.elf vmlinux.efi vmlinuz.efi: vmlinux
	$(Q)$(MAKE) $(build)=$(boot) $(bootvars-y) $(boot)/$@

install:
	$(Q)install -D -m 755 $(KBUILD_IMAGE) $(INSTALL_PATH)/$(image-name-y)-$(KERNELRELEASE)
	$(Q)install -D -m 644 .config $(INSTALL_PATH)/config-$(KERNELRELEASE)
	$(Q)install -D -m 644 System.map $(INSTALL_PATH)/System.map-$(KERNELRELEASE)
	$(call cmd,install)

define archhelp
	echo '  install              - install kernel into $(INSTALL_PATH)'
	echo '  vmlinux.elf    - Uncompressed ELF kernel image (arch/loongarch/boot/vmlinux.elf)'
	echo '  vmlinux.efi    - Uncompressed EFI kernel image (arch/loongarch/boot/vmlinux.efi)'
	echo '  vmlinuz.efi    - GZIP/ZSTD-compressed EFI kernel image (arch/loongarch/boot/vmlinuz.efi)'
	echo '                   Default when CONFIG_EFI_ZBOOT=y'
	echo '  install        - Install kernel using (your) ~/bin/$(INSTALLKERNEL) or'
	echo '                   (distribution) /sbin/$(INSTALLKERNEL) or install.sh to $$(INSTALL_PATH)'
	echo
endef
+160 −0
Original line number Diff line number Diff line
@@ -169,6 +169,166 @@ eiointc: interrupt-controller@1fe11600 {
			interrupts = <3>;
		};

		pwm@1ff5c000 {
			compatible = "loongson,ls2k0500-pwm", "loongson,ls7a-pwm";
			reg = <0x0 0x1ff5c000 0x0 0x10>;
			interrupt-parent = <&liointc0>;
			interrupts = <24 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&clk LOONGSON2_APB_CLK>;
			#pwm-cells = <3>;
			status = "disabled";
		};

		pwm@1ff5c010 {
			compatible = "loongson,ls2k0500-pwm", "loongson,ls7a-pwm";
			reg = <0x0 0x1ff5c010 0x0 0x10>;
			interrupt-parent = <&liointc0>;
			interrupts = <24 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&clk LOONGSON2_APB_CLK>;
			#pwm-cells = <3>;
			status = "disabled";
		};

		pwm@1ff5c020 {
			compatible = "loongson,ls2k0500-pwm", "loongson,ls7a-pwm";
			reg = <0x0 0x1ff5c020 0x0 0x10>;
			interrupt-parent = <&liointc0>;
			interrupts = <24 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&clk LOONGSON2_APB_CLK>;
			#pwm-cells = <3>;
			status = "disabled";
		};

		pwm@1ff5c030 {
			compatible = "loongson,ls2k0500-pwm", "loongson,ls7a-pwm";
			reg = <0x0 0x1ff5c030 0x0 0x10>;
			interrupt-parent = <&liointc0>;
			interrupts = <24 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&clk LOONGSON2_APB_CLK>;
			#pwm-cells = <3>;
			status = "disabled";
		};

		pwm@1ff5c040 {
			compatible = "loongson,ls2k0500-pwm", "loongson,ls7a-pwm";
			reg = <0x0 0x1ff5c040 0x0 0x10>;
			interrupt-parent = <&liointc0>;
			interrupts = <25 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&clk LOONGSON2_APB_CLK>;
			#pwm-cells = <3>;
			status = "disabled";
		};

		pwm@1ff5c050 {
			compatible = "loongson,ls2k0500-pwm", "loongson,ls7a-pwm";
			reg = <0x0 0x1ff5c050 0x0 0x10>;
			interrupt-parent = <&liointc0>;
			interrupts = <25 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&clk LOONGSON2_APB_CLK>;
			#pwm-cells = <3>;
			status = "disabled";
		};

		pwm@1ff5c060 {
			compatible = "loongson,ls2k0500-pwm", "loongson,ls7a-pwm";
			reg = <0x0 0x1ff5c060 0x0 0x10>;
			interrupt-parent = <&liointc0>;
			interrupts = <25 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&clk LOONGSON2_APB_CLK>;
			#pwm-cells = <3>;
			status = "disabled";
		};

		pwm@1ff5c070 {
			compatible = "loongson,ls2k0500-pwm", "loongson,ls7a-pwm";
			reg = <0x0 0x1ff5c070 0x0 0x10>;
			interrupt-parent = <&liointc0>;
			interrupts = <25 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&clk LOONGSON2_APB_CLK>;
			#pwm-cells = <3>;
			status = "disabled";
		};

		pwm@1ff5c080 {
			compatible = "loongson,ls2k0500-pwm", "loongson,ls7a-pwm";
			reg = <0x0 0x1ff5c080 0x0 0x10>;
			interrupt-parent = <&liointc0>;
			interrupts = <26 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&clk LOONGSON2_APB_CLK>;
			#pwm-cells = <3>;
			status = "disabled";
		};

		pwm@1ff5c090 {
			compatible = "loongson,ls2k0500-pwm", "loongson,ls7a-pwm";
			reg = <0x0 0x1ff5c090 0x0 0x10>;
			interrupt-parent = <&liointc0>;
			interrupts = <26 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&clk LOONGSON2_APB_CLK>;
			#pwm-cells = <3>;
			status = "disabled";
		};

		pwm@1ff5c0a0 {
			compatible = "loongson,ls2k0500-pwm", "loongson,ls7a-pwm";
			reg = <0x0 0x1ff5c0a0 0x0 0x10>;
			interrupt-parent = <&liointc0>;
			interrupts = <26 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&clk LOONGSON2_APB_CLK>;
			#pwm-cells = <3>;
			status = "disabled";
		};

		pwm@1ff5c0b0 {
			compatible = "loongson,ls2k0500-pwm", "loongson,ls7a-pwm";
			reg = <0x0 0x1ff5c0b0 0x0 0x10>;
			interrupt-parent = <&liointc0>;
			interrupts = <26 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&clk LOONGSON2_APB_CLK>;
			#pwm-cells = <3>;
			status = "disabled";
		};

		pwm@1ff5c0c0 {
			compatible = "loongson,ls2k0500-pwm", "loongson,ls7a-pwm";
			reg = <0x0 0x1ff5c0c0 0x0 0x10>;
			interrupt-parent = <&liointc0>;
			interrupts = <27 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&clk LOONGSON2_APB_CLK>;
			#pwm-cells = <3>;
			status = "disabled";
		};

		pwm@1ff5c0d0 {
			compatible = "loongson,ls2k0500-pwm", "loongson,ls7a-pwm";
			reg = <0x0 0x1ff5c0d0 0x0 0x10>;
			interrupt-parent = <&liointc0>;
			interrupts = <27 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&clk LOONGSON2_APB_CLK>;
			#pwm-cells = <3>;
			status = "disabled";
		};

		pwm@1ff5c0e0 {
			compatible = "loongson,ls2k0500-pwm", "loongson,ls7a-pwm";
			reg = <0x0 0x1ff5c0e0 0x0 0x10>;
			interrupt-parent = <&liointc0>;
			interrupts = <27 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&clk LOONGSON2_APB_CLK>;
			#pwm-cells = <3>;
			status = "disabled";
		};

		pwm@1ff5c0f0 {
			compatible = "loongson,ls2k0500-pwm", "loongson,ls7a-pwm";
			reg = <0x0 0x1ff5c0f0 0x0 0x10>;
			interrupt-parent = <&liointc0>;
			interrupts = <27 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&clk LOONGSON2_APB_CLK>;
			#pwm-cells = <3>;
			status = "disabled";
		};

		gmac0: ethernet@1f020000 {
			compatible = "snps,dwmac-3.70a";
			reg = <0x0 0x1f020000 0x0 0x10000>;
Loading