Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  1) /* SPDX-License-Identifier: GPL-2.0 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  2) // Copyright (C) 2018 Hangzhou C-SKY Microsystems co.,ltd.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  3) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  4) #ifndef __ASM_CSKY_CHECKSUM_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  5) #define __ASM_CSKY_CHECKSUM_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  6) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  7) #include <linux/in6.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  8) #include <asm/byteorder.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  9) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) static inline __sum16 csum_fold(__wsum csum)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) 	u32 tmp;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) 	asm volatile(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) 	"mov	%1, %0\n"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) 	"rori	%0, 16\n"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) 	"addu	%0, %1\n"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) 	"lsri	%0, 16\n"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) 	: "=r"(csum), "=r"(tmp)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) 	: "0"(csum));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) 	return (__force __sum16) ~csum;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) #define csum_fold csum_fold
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) static inline __wsum csum_tcpudp_nofold(__be32 saddr, __be32 daddr,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) 		unsigned short len, unsigned short proto, __wsum sum)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) 	asm volatile(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) 	"clrc\n"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) 	"addc    %0, %1\n"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) 	"addc    %0, %2\n"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) 	"addc    %0, %3\n"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) 	"inct    %0\n"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) 	: "=r"(sum)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) 	: "r"((__force u32)saddr), "r"((__force u32)daddr),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) #ifdef __BIG_ENDIAN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) 	"r"(proto + len),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) #else
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) 	"r"((proto + len) << 8),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) 	"0" ((__force unsigned long)sum)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) 	: "cc");
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) 	return sum;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) #define csum_tcpudp_nofold csum_tcpudp_nofold
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) #include <asm-generic/checksum.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) #endif /* __ASM_CSKY_CHECKSUM_H */