From: Christoph Hellwig <hch@lst.de> To: Arnd Bergmann <arnd@arndb.de>, Guo Ren <guoren@kernel.org>, Michal Simek <monstr@monstr.eu>, Greentime Hu <green.hu@gmail.com>, Vincent Chen <deanbo422@gmail.com>, Guan Xuetao <gxt@pku.edu.cn>, x86@kernel.org Cc: linux-alpha@vger.kernel.org, linux-snps-arc@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-hexagon@vger.kernel.org, linux-ia64@vger.kernel.org, linux-m68k@lists.linux-m68k.org, linux-mips@vger.kernel.org, nios2-dev@lists.rocketboards.org, openrisc@lists.librecores.org, linux-parisc@vger.kernel.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, linux-sh@vger.kernel.org, sparclinux@vger.kernel.org, linux-xtensa@linux-xtensa.org, linux-mtd@lists.infradead.org, linux-arch@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 10/21] asm-generic: ioremap_uc should behave the same with and without MMU Date: Tue, 29 Oct 2019 07:48:23 +0100 Message-ID: <20191029064834.23438-11-hch@lst.de> (raw) In-Reply-To: <20191029064834.23438-1-hch@lst.de> Whatever reason there is for the existence of ioremap_uc, and the fact that it returns NULL by default on architectures with an MMU applies equally to nommu architectures, so don't provide different defaults. In practice the difference is meaningless as the only portable driver that uses ioremap_uc is atyfb which probably doesn't show up on nommu devices. Signed-off-by: Christoph Hellwig <hch@lst.de> --- include/asm-generic/io.h | 36 ++++++++++++++++-------------------- 1 file changed, 16 insertions(+), 20 deletions(-) diff --git a/include/asm-generic/io.h b/include/asm-generic/io.h index d02806513670..a98ed6325727 100644 --- a/include/asm-generic/io.h +++ b/include/asm-generic/io.h @@ -935,18 +935,7 @@ static inline void *phys_to_virt(unsigned long address) * defined your own ioremap_*() variant you must then declare your own * ioremap_*() variant as defined to itself to avoid the default NULL return. */ - -#ifdef CONFIG_MMU - -#ifndef ioremap_uc -#define ioremap_uc ioremap_uc -static inline void __iomem *ioremap_uc(phys_addr_t offset, size_t size) -{ - return NULL; -} -#endif - -#else /* !CONFIG_MMU */ +#ifndef CONFIG_MMU /* * Change "struct page" to physical address. @@ -980,14 +969,6 @@ static inline void __iomem *ioremap_nocache(phys_addr_t offset, size_t size) } #endif -#ifndef ioremap_uc -#define ioremap_uc ioremap_uc -static inline void __iomem *ioremap_uc(phys_addr_t offset, size_t size) -{ - return ioremap_nocache(offset, size); -} -#endif - #ifndef ioremap_wc #define ioremap_wc ioremap_wc static inline void __iomem *ioremap_wc(phys_addr_t offset, size_t size) @@ -1004,6 +985,21 @@ static inline void __iomem *ioremap_wt(phys_addr_t offset, size_t size) } #endif +/* + * ioremap_uc is special in that we do require an explicit architecture + * implementation. In general you do now want to use this function in a + * driver and use plain ioremap, which is uncached by default. Similarly + * architectures should not implement it unless they have a very good + * reason. + */ +#ifndef ioremap_uc +#define ioremap_uc ioremap_uc +static inline void __iomem *ioremap_uc(phys_addr_t offset, size_t size) +{ + return NULL; +} +#endif + #ifdef CONFIG_HAS_IOPORT_MAP #ifndef CONFIG_GENERIC_IOMAP #ifndef ioport_map -- 2.20.1
next prev parent reply index Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-10-29 6:48 generic ioremap (and lots of cleanups) v3 Christoph Hellwig 2019-10-29 6:48 ` [PATCH 01/21] arm: remove ioremap_cached Christoph Hellwig 2019-11-11 10:33 ` Arnd Bergmann 2019-10-29 6:48 ` [PATCH 02/21] unicore32: " Christoph Hellwig 2019-10-29 6:48 ` [PATCH 03/21] ia64: rename ioremap_nocache to ioremap_uc Christoph Hellwig 2019-11-11 10:36 ` Arnd Bergmann 2019-10-29 6:48 ` [PATCH 04/21] hexagon: clean up ioremap Christoph Hellwig 2019-10-29 6:48 ` [PATCH 05/21] alpha: remove the unused __ioremap wrapper Christoph Hellwig 2019-10-29 6:48 ` [PATCH 06/21] nios2: remove __ioremap Christoph Hellwig 2019-10-29 6:48 ` [PATCH 07/21] parisc: " Christoph Hellwig 2019-11-05 14:29 ` Helge Deller 2019-10-29 6:48 ` [PATCH 08/21] x86: Clean up ioremap() Christoph Hellwig 2019-10-30 10:39 ` Thomas Gleixner 2019-10-29 6:48 ` [PATCH 09/21] xtensa: clean up ioremap Christoph Hellwig 2019-10-29 6:48 ` Christoph Hellwig [this message] 2019-11-06 17:56 ` [PATCH 10/21] asm-generic: ioremap_uc should behave the same with and without MMU Palmer Dabbelt 2019-11-11 10:09 ` Arnd Bergmann 2019-11-11 10:15 ` Christoph Hellwig 2019-11-11 10:27 ` Arnd Bergmann 2019-11-11 10:29 ` Christoph Hellwig 2019-11-11 19:33 ` Arnd Bergmann 2019-10-29 6:48 ` [PATCH 11/21] asm-generic: don't provide ioremap for CONFIG_MMU Christoph Hellwig 2019-11-06 18:11 ` Palmer Dabbelt 2019-11-06 18:16 ` Geert Uytterhoeven 2019-11-06 18:28 ` Christoph Hellwig 2019-11-11 10:31 ` Arnd Bergmann 2019-11-11 10:29 ` Arnd Bergmann 2019-10-29 6:48 ` [PATCH 12/21] arch: rely on asm-generic/io.h for default ioremap_* definitions Christoph Hellwig 2019-11-07 15:29 ` Palmer Dabbelt 2019-11-11 10:10 ` Arnd Bergmann 2019-10-29 6:48 ` [PATCH 13/21] m68k: rename __iounmap and mark it static Christoph Hellwig 2019-10-30 8:51 ` Geert Uytterhoeven 2019-10-29 6:48 ` [PATCH 14/21] hexagon: remove __iounmap Christoph Hellwig 2019-10-29 6:48 ` [PATCH 15/21] nios2: " Christoph Hellwig 2019-10-29 6:48 ` [PATCH 16/21] sh: " Christoph Hellwig 2019-10-29 6:48 ` [PATCH 17/21] lib: provide a simple generic ioremap implementation Christoph Hellwig 2019-11-07 15:29 ` Palmer Dabbelt 2019-11-11 10:10 ` Arnd Bergmann 2019-10-29 6:48 ` [PATCH 18/21] riscv: use the generic ioremap code Christoph Hellwig 2019-10-29 6:48 ` [PATCH 19/21] nds32: use generic ioremap Christoph Hellwig 2019-11-12 8:51 ` Greentime Hu 2019-10-29 6:48 ` [PATCH 20/21] csky: remove ioremap_cache Christoph Hellwig 2019-10-29 6:48 ` [PATCH 21/21] csky: use generic ioremap Christoph Hellwig 2019-11-05 1:31 ` generic ioremap (and lots of cleanups) v3 Christoph Hellwig 2019-11-07 20:47 ` generic-iomap tree for linux-next Christoph Hellwig 2019-11-08 2:20 ` Stephen Rothwell 2019-11-08 4:52 ` Stephen Rothwell 2019-11-08 5:14 ` Christoph Hellwig -- strict thread matches above, loose matches on Subject: below -- 2019-10-17 17:45 generic ioremap (and lots of cleanups) v2 Christoph Hellwig 2019-10-17 17:45 ` [PATCH 10/21] asm-generic: ioremap_uc should behave the same with and without MMU Christoph Hellwig
Reply instructions: You may reply publically to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20191029064834.23438-11-hch@lst.de \ --to=hch@lst.de \ --cc=arnd@arndb.de \ --cc=deanbo422@gmail.com \ --cc=green.hu@gmail.com \ --cc=guoren@kernel.org \ --cc=gxt@pku.edu.cn \ --cc=linux-alpha@vger.kernel.org \ --cc=linux-arch@vger.kernel.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-hexagon@vger.kernel.org \ --cc=linux-ia64@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-m68k@lists.linux-m68k.org \ --cc=linux-mips@vger.kernel.org \ --cc=linux-mtd@lists.infradead.org \ --cc=linux-parisc@vger.kernel.org \ --cc=linux-riscv@lists.infradead.org \ --cc=linux-s390@vger.kernel.org \ --cc=linux-sh@vger.kernel.org \ --cc=linux-snps-arc@lists.infradead.org \ --cc=linux-xtensa@linux-xtensa.org \ --cc=monstr@monstr.eu \ --cc=nios2-dev@lists.rocketboards.org \ --cc=openrisc@lists.librecores.org \ --cc=sparclinux@vger.kernel.org \ --cc=x86@kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
Linux-MIPS Archive on lore.kernel.org Archives are clonable: git clone --mirror https://lore.kernel.org/linux-mips/0 linux-mips/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 linux-mips linux-mips/ https://lore.kernel.org/linux-mips \ linux-mips@vger.kernel.org public-inbox-index linux-mips Example config snippet for mirrors Newsgroup available over NNTP: nntp://nntp.lore.kernel.org/org.kernel.vger.linux-mips AGPL code for this site: git clone https://public-inbox.org/public-inbox.git