linux-parisc.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
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 15/26] asm-generic: ioremap_uc should behave the same with and without MMU
Date: Sat, 17 Aug 2019 09:32:42 +0200	[thread overview]
Message-ID: <20190817073253.27819-16-hch@lst.de> (raw)
In-Reply-To: <20190817073253.27819-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


  parent reply	other threads:[~2019-08-17  7:50 UTC|newest]

Thread overview: 53+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-08-17  7:32 generic ioremap (and lots of cleanups) Christoph Hellwig
2019-08-17  7:32 ` [PATCH 01/26] mtd/maps/pxa2xx: use ioremap_cache insted of ioremap_cached Christoph Hellwig
2019-08-17  7:32 ` [PATCH 02/26] arm, unicore32: remove ioremap_cached Christoph Hellwig
2019-08-17  7:32 ` [PATCH 03/26] m68k, microblaze: remove ioremap_fullcache Christoph Hellwig
2019-08-19  8:50   ` Geert Uytterhoeven
2019-09-02 14:16   ` Michal Simek
2019-08-17  7:32 ` [PATCH 04/26] mips: remove ioremap_cachable Christoph Hellwig
2019-08-19 20:57   ` Paul Burton
2019-08-30 16:06     ` Christoph Hellwig
2019-09-03  8:57   ` Paul Burton
2019-08-17  7:32 ` [PATCH 05/26] openrisc: map as uncached in ioremap Christoph Hellwig
2019-08-23 13:55   ` Stafford Horne
2019-08-30 16:07     ` Christoph Hellwig
2019-08-30 21:45       ` Stafford Horne
2019-08-17  7:32 ` [PATCH 06/26] ia64: rename ioremap_nocache to ioremap_uc Christoph Hellwig
2019-08-17 16:00   ` Sergei Shtylyov
2019-08-17  7:32 ` [PATCH 07/26] hexagon: clean up ioremap Christoph Hellwig
2019-08-17  7:32 ` [PATCH 08/26] m68k: simplify ioremap_nocache Christoph Hellwig
2019-08-19  8:56   ` Geert Uytterhoeven
2019-08-19  9:18     ` Christoph Hellwig
2019-08-30 16:06     ` Christoph Hellwig
2019-09-02  7:53       ` Geert Uytterhoeven
2019-08-17  7:32 ` [PATCH 09/26] alpha: remove the unused __ioremap wrapper Christoph Hellwig
2019-08-17  7:32 ` [PATCH 10/26] nios2: remove __ioremap Christoph Hellwig
2019-08-17  7:32 ` [PATCH 11/26] parisc: " Christoph Hellwig
2019-08-17  7:32 ` [PATCH 12/26] x86: clean up ioremap Christoph Hellwig
2019-08-17 10:34   ` Ingo Molnar
2019-08-30 16:04     ` Christoph Hellwig
2019-08-17  7:32 ` [PATCH 13/26] xtensa: " Christoph Hellwig
2019-08-17  7:32 ` [PATCH 14/26] asm-generic: don't provide __ioremap Christoph Hellwig
2019-08-17 20:58   ` Paul Walmsley
2019-08-17 21:27     ` Paul Walmsley
2019-08-17  7:32 ` Christoph Hellwig [this message]
2019-08-17 21:07   ` [PATCH 15/26] asm-generic: ioremap_uc should behave the same with and without MMU Paul Walmsley
2019-08-17  7:32 ` [PATCH 16/26] asm-generic: don't provide ioremap for CONFIG_MMU Christoph Hellwig
2019-08-17 21:15   ` Paul Walmsley
2019-08-17  7:32 ` [PATCH 17/26] arch: rely on asm-generic/io.h for default ioremap_* definitions Christoph Hellwig
2019-08-17 21:13   ` Paul Walmsley
2019-08-17  7:32 ` [PATCH 18/26] m68k: rename __iounmap and mark it static Christoph Hellwig
2019-08-19  9:00   ` Geert Uytterhoeven
2019-08-17  7:32 ` [PATCH 19/26] arm64: remove __iounmap Christoph Hellwig
2019-08-19  7:36   ` Will Deacon
2019-08-30 16:05     ` Christoph Hellwig
2019-08-31 16:29       ` Will Deacon
2019-08-17  7:32 ` [PATCH 20/26] hexagon: " Christoph Hellwig
2019-08-17  7:32 ` [PATCH 21/26] nios2: " Christoph Hellwig
2019-08-17  7:32 ` [PATCH 22/26] sh: " Christoph Hellwig
2019-08-17  7:32 ` [PATCH 23/26] lib: provide a simple generic ioremap implementation Christoph Hellwig
2019-08-17  7:32 ` [PATCH 24/26] riscv: use the generic ioremap code Christoph Hellwig
2019-08-17 21:22   ` Paul Walmsley
2019-09-01  8:02     ` Christoph Hellwig
2019-08-17  7:32 ` [PATCH 25/26] csky: use generic ioremap Christoph Hellwig
2019-08-17  7:32 ` [PATCH 26/26] nds32: " Christoph Hellwig

Reply instructions:

You may reply publicly 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=20190817073253.27819-16-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
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).