Loading Documentation/arm64/silicon-errata.txt +2 −0 Original line number Diff line number Diff line Loading @@ -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 | Documentation/devicetree/bindings/iommu/arm,smmu.txt +1 −0 Original line number Diff line number Diff line Loading @@ -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. Loading drivers/iommu/arm-smmu.c +210 −81 File changed.Preview size limit exceeded, changes collapsed. Show changes include/asm-generic/io.h +2 −2 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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 Loading include/linux/io-64-nonatomic-hi-lo.h +25 −0 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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_ */ Loading
Documentation/arm64/silicon-errata.txt +2 −0 Original line number Diff line number Diff line Loading @@ -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 |
Documentation/devicetree/bindings/iommu/arm,smmu.txt +1 −0 Original line number Diff line number Diff line Loading @@ -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. Loading
drivers/iommu/arm-smmu.c +210 −81 File changed.Preview size limit exceeded, changes collapsed. Show changes
include/asm-generic/io.h +2 −2 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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 Loading
include/linux/io-64-nonatomic-hi-lo.h +25 −0 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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_ */