You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
Merge branch 'for-joerg/arm-smmu/updates' of git://git.kernel.org/pub/scm/linux/kernel/git/will/linux into arm/smmu
This commit is contained in:
@@ -53,7 +53,9 @@ stable kernels.
|
||||
| ARM | Cortex-A57 | #832075 | ARM64_ERRATUM_832075 |
|
||||
| ARM | Cortex-A57 | #852523 | N/A |
|
||||
| ARM | Cortex-A57 | #834220 | ARM64_ERRATUM_834220 |
|
||||
| ARM | MMU-500 | #841119,#826419 | N/A |
|
||||
| | | | |
|
||||
| Cavium | ThunderX ITS | #22375, #24313 | CAVIUM_ERRATUM_22375 |
|
||||
| Cavium | ThunderX GICv3 | #23154 | CAVIUM_ERRATUM_23154 |
|
||||
| Cavium | ThunderX Core | #27456 | CAVIUM_ERRATUM_27456 |
|
||||
| Cavium | ThunderX SMMUv2 | #27704 | N/A |
|
||||
|
||||
@@ -16,6 +16,7 @@ conditions.
|
||||
"arm,mmu-400"
|
||||
"arm,mmu-401"
|
||||
"arm,mmu-500"
|
||||
"cavium,smmu-v2"
|
||||
|
||||
depending on the particular implementation and/or the
|
||||
version of the architecture implemented.
|
||||
|
||||
+210
-81
File diff suppressed because it is too large
Load Diff
@@ -191,7 +191,7 @@ static inline void writeq(u64 value, volatile void __iomem *addr)
|
||||
#define readl_relaxed readl
|
||||
#endif
|
||||
|
||||
#ifndef readq_relaxed
|
||||
#if defined(readq) && !defined(readq_relaxed)
|
||||
#define readq_relaxed readq
|
||||
#endif
|
||||
|
||||
@@ -207,7 +207,7 @@ static inline void writeq(u64 value, volatile void __iomem *addr)
|
||||
#define writel_relaxed writel
|
||||
#endif
|
||||
|
||||
#ifndef writeq_relaxed
|
||||
#if defined(writeq) && !defined(writeq_relaxed)
|
||||
#define writeq_relaxed writeq
|
||||
#endif
|
||||
|
||||
|
||||
@@ -21,6 +21,23 @@ static inline void hi_lo_writeq(__u64 val, volatile void __iomem *addr)
|
||||
writel(val, addr);
|
||||
}
|
||||
|
||||
static inline __u64 hi_lo_readq_relaxed(const volatile void __iomem *addr)
|
||||
{
|
||||
const volatile u32 __iomem *p = addr;
|
||||
u32 low, high;
|
||||
|
||||
high = readl_relaxed(p + 1);
|
||||
low = readl_relaxed(p);
|
||||
|
||||
return low + ((u64)high << 32);
|
||||
}
|
||||
|
||||
static inline void hi_lo_writeq_relaxed(__u64 val, volatile void __iomem *addr)
|
||||
{
|
||||
writel_relaxed(val >> 32, addr + 4);
|
||||
writel_relaxed(val, addr);
|
||||
}
|
||||
|
||||
#ifndef readq
|
||||
#define readq hi_lo_readq
|
||||
#endif
|
||||
@@ -29,4 +46,12 @@ static inline void hi_lo_writeq(__u64 val, volatile void __iomem *addr)
|
||||
#define writeq hi_lo_writeq
|
||||
#endif
|
||||
|
||||
#ifndef readq_relaxed
|
||||
#define readq_relaxed hi_lo_readq_relaxed
|
||||
#endif
|
||||
|
||||
#ifndef writeq_relaxed
|
||||
#define writeq_relaxed hi_lo_writeq_relaxed
|
||||
#endif
|
||||
|
||||
#endif /* _LINUX_IO_64_NONATOMIC_HI_LO_H_ */
|
||||
|
||||
@@ -21,6 +21,23 @@ static inline void lo_hi_writeq(__u64 val, volatile void __iomem *addr)
|
||||
writel(val >> 32, addr + 4);
|
||||
}
|
||||
|
||||
static inline __u64 lo_hi_readq_relaxed(const volatile void __iomem *addr)
|
||||
{
|
||||
const volatile u32 __iomem *p = addr;
|
||||
u32 low, high;
|
||||
|
||||
low = readl_relaxed(p);
|
||||
high = readl_relaxed(p + 1);
|
||||
|
||||
return low + ((u64)high << 32);
|
||||
}
|
||||
|
||||
static inline void lo_hi_writeq_relaxed(__u64 val, volatile void __iomem *addr)
|
||||
{
|
||||
writel_relaxed(val, addr);
|
||||
writel_relaxed(val >> 32, addr + 4);
|
||||
}
|
||||
|
||||
#ifndef readq
|
||||
#define readq lo_hi_readq
|
||||
#endif
|
||||
@@ -29,4 +46,12 @@ static inline void lo_hi_writeq(__u64 val, volatile void __iomem *addr)
|
||||
#define writeq lo_hi_writeq
|
||||
#endif
|
||||
|
||||
#ifndef readq_relaxed
|
||||
#define readq_relaxed lo_hi_readq_relaxed
|
||||
#endif
|
||||
|
||||
#ifndef writeq_relaxed
|
||||
#define writeq_relaxed lo_hi_writeq_relaxed
|
||||
#endif
|
||||
|
||||
#endif /* _LINUX_IO_64_NONATOMIC_LO_HI_H_ */
|
||||
|
||||
Reference in New Issue
Block a user