Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

powerpc: asm/io.h: remove split ioread64/iowrite64 helpers

In previous kernels, there were conflicting definitions for what
ioread64_lo_hi() and similar functions were supposed to do on
architectures with native 64-bit MMIO. Based on the actual usage in
drivers, they are in fact expected to be a pair of 32-bit accesses on
all architectures, which makes the powerpc64 definition wrong.

Remove it and use the generic implementation instead.

Drivers that want to have split lo/hi or hi/lo accesses on 32-bit
architectures but can use 64-bit accesses where supported should instead
use ioread64()/iowrite64() after including the corresponding header file.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>

-48
-48
arch/powerpc/include/asm/io.h
··· 738 738 #define ioread32be ioread32be 739 739 740 740 #ifdef __powerpc64__ 741 - static inline u64 ioread64_lo_hi(const void __iomem *addr) 742 - { 743 - return readq(addr); 744 - } 745 - #define ioread64_lo_hi ioread64_lo_hi 746 - 747 - static inline u64 ioread64_hi_lo(const void __iomem *addr) 748 - { 749 - return readq(addr); 750 - } 751 - #define ioread64_hi_lo ioread64_hi_lo 752 - 753 741 static inline u64 ioread64be(const void __iomem *addr) 754 742 { 755 743 return readq_be(addr); 756 744 } 757 745 #define ioread64be ioread64be 758 - 759 - static inline u64 ioread64be_lo_hi(const void __iomem *addr) 760 - { 761 - return readq_be(addr); 762 - } 763 - #define ioread64be_lo_hi ioread64be_lo_hi 764 - 765 - static inline u64 ioread64be_hi_lo(const void __iomem *addr) 766 - { 767 - return readq_be(addr); 768 - } 769 - #define ioread64be_hi_lo ioread64be_hi_lo 770 746 #endif /* __powerpc64__ */ 771 747 772 748 static inline void iowrite16be(u16 val, void __iomem *addr) ··· 758 782 #define iowrite32be iowrite32be 759 783 760 784 #ifdef __powerpc64__ 761 - static inline void iowrite64_lo_hi(u64 val, void __iomem *addr) 762 - { 763 - writeq(val, addr); 764 - } 765 - #define iowrite64_lo_hi iowrite64_lo_hi 766 - 767 - static inline void iowrite64_hi_lo(u64 val, void __iomem *addr) 768 - { 769 - writeq(val, addr); 770 - } 771 - #define iowrite64_hi_lo iowrite64_hi_lo 772 - 773 785 static inline void iowrite64be(u64 val, void __iomem *addr) 774 786 { 775 787 writeq_be(val, addr); 776 788 } 777 789 #define iowrite64be iowrite64be 778 - 779 - static inline void iowrite64be_lo_hi(u64 val, void __iomem *addr) 780 - { 781 - writeq_be(val, addr); 782 - } 783 - #define iowrite64be_lo_hi iowrite64be_lo_hi 784 - 785 - static inline void iowrite64be_hi_lo(u64 val, void __iomem *addr) 786 - { 787 - writeq_be(val, addr); 788 - } 789 - #define iowrite64be_hi_lo iowrite64be_hi_lo 790 790 #endif /* __powerpc64__ */ 791 791 792 792 struct pci_dev;