<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/arch/loongarch/kernel/reset.c, branch linux-6.19.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-6.19.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-6.19.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2025-02-13T04:02:35Z</updated>
<entry>
<title>LoongArch: Fix idle VS timer enqueue</title>
<updated>2025-02-13T04:02:35Z</updated>
<author>
<name>Marco Crivellari</name>
</author>
<published>2025-02-13T04:02:35Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=edb1942542bc538707cea221e9c7923a6270465f'/>
<id>urn:sha1:edb1942542bc538707cea221e9c7923a6270465f</id>
<content type='text'>
LoongArch re-enables interrupts on its idle routine and performs a
TIF_NEED_RESCHED check afterwards before putting the CPU to sleep.

The IRQs firing between the check and the idle instruction may set the
TIF_NEED_RESCHED flag. In order to deal with such a race, IRQs
interrupting __arch_cpu_idle() rollback their return address to the
beginning of __arch_cpu_idle() so that TIF_NEED_RESCHED is checked
again before going back to sleep.

However idle IRQs can also queue timers that may require a tick
reprogramming through a new generic idle loop iteration but those timers
would go unnoticed here because __arch_cpu_idle() only checks
TIF_NEED_RESCHED. It doesn't check for pending timers.

Fix this with fast-forwarding idle IRQs return address to the end of the
idle routine instead of the beginning, so that the generic idle loop can
handle both TIF_NEED_RESCHED and pending timers.

Fixes: 0603839b18f4 ("LoongArch: Add exception/interrupt handling")
Signed-off-by: Peter Zijlstra (Intel) &lt;peterz@infradead.org&gt;
Signed-off-by: Frederic Weisbecker &lt;frederic@kernel.org&gt;
Signed-off-by: Marco Crivellari &lt;marco.crivellari@suse.com&gt;
Signed-off-by: Huacai Chen &lt;chenhuacai@loongson.cn&gt;
</content>
</entry>
<entry>
<title>LoongArch: Add hibernation (ACPI S4) support</title>
<updated>2022-12-14T00:41:53Z</updated>
<author>
<name>Huacai Chen</name>
</author>
<published>2022-12-10T14:40:15Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=7db54bfe44a662c8f2c10277bccfa02c2f4c719c'/>
<id>urn:sha1:7db54bfe44a662c8f2c10277bccfa02c2f4c719c</id>
<content type='text'>
Add hibernation (Suspend to Disk, aka ACPI S4) support for LoongArch.

Signed-off-by: Huacai Chen &lt;chenhuacai@loongson.cn&gt;
</content>
</entry>
<entry>
<title>LoongArch: Cleanup reset routines with new API</title>
<updated>2022-08-25T11:34:59Z</updated>
<author>
<name>Huacai Chen</name>
</author>
<published>2022-08-25T11:34:59Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=da48b67cfb6b4f115ae652dd5995c56fe2a2cf9b'/>
<id>urn:sha1:da48b67cfb6b4f115ae652dd5995c56fe2a2cf9b</id>
<content type='text'>
Cleanup reset routines by using new do_kernel_power_off() instead of old
pm_power_off(), and then simplify the whole file (reset.c) organization
by inlining some functions. This cleanup also fix a poweroff error if EFI
runtime is disabled.

Signed-off-by: Huacai Chen &lt;chenhuacai@loongson.cn&gt;
</content>
</entry>
<entry>
<title>LoongArch: Remove useless header compiler.h</title>
<updated>2022-07-29T10:22:32Z</updated>
<author>
<name>Jun Yi</name>
</author>
<published>2022-07-21T11:10:49Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f62b7626cb79dfbfe292145b7ebeee4dc63c9499'/>
<id>urn:sha1:f62b7626cb79dfbfe292145b7ebeee4dc63c9499</id>
<content type='text'>
The content of LoongArch's compiler.h is trivial, with some unused
anywhere, so inline the definitions and remove the header.

Signed-off-by: Jun Yi &lt;yijun@loongson.cn&gt;
Signed-off-by: Huacai Chen &lt;chenhuacai@loongson.cn&gt;
</content>
</entry>
<entry>
<title>LoongArch: Add multi-processor (SMP) support</title>
<updated>2022-06-03T12:09:29Z</updated>
<author>
<name>Huacai Chen</name>
</author>
<published>2022-05-31T10:04:12Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=46859ac8af52ae599e1b51992ddef3eb43f295fc'/>
<id>urn:sha1:46859ac8af52ae599e1b51992ddef3eb43f295fc</id>
<content type='text'>
LoongArch-based procesors have 4, 8 or 16 cores per package. This patch
adds multi-processor (SMP) support for LoongArch.

Reviewed-by: WANG Xuerui &lt;git@xen0n.name&gt;
Reviewed-by: Jiaxun Yang &lt;jiaxun.yang@flygoat.com&gt;
Signed-off-by: Huacai Chen &lt;chenhuacai@loongson.cn&gt;
</content>
</entry>
<entry>
<title>LoongArch: Add boot and setup routines</title>
<updated>2022-06-03T12:09:28Z</updated>
<author>
<name>Huacai Chen</name>
</author>
<published>2022-05-31T10:04:11Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=628c3bb40e9a8cefc0a6fde28b7b66bfe46d1dc2'/>
<id>urn:sha1:628c3bb40e9a8cefc0a6fde28b7b66bfe46d1dc2</id>
<content type='text'>
Add basic boot, setup and reset routines for LoongArch. Now, LoongArch
machines use UEFI-based firmware. The firmware passes configuration
information to the kernel via ACPI and DMI/SMBIOS.

Currently an existing interface between the kernel and the bootloader
is implemented. Kernel gets 2 values from the bootloader, passed in
registers a0 and a1; a0 is an "EFI boot flag" distinguishing UEFI and
non-UEFI firmware, while a1 is a pointer to an FDT with systable,
memmap, cmdline and initrd information.

The standard UEFI boot protocol (EFISTUB) will be added later.

Cc: linux-efi@vger.kernel.org
Cc: Ard Biesheuvel &lt;ardb@kernel.org&gt;
Reviewed-by: WANG Xuerui &lt;git@xen0n.name&gt;
Reviewed-by: Jiaxun Yang &lt;jiaxun.yang@flygoat.com&gt;
Co-developed-by: Yun Liu &lt;liuyun@loongson.cn&gt;
Signed-off-by: Yun Liu &lt;liuyun@loongson.cn&gt;
Signed-off-by: Huacai Chen &lt;chenhuacai@loongson.cn&gt;
</content>
</entry>
</feed>
