Linux Framebuffer Layer development
 help / color / mirror / Atom feed
From: Dan Williams <dan.j.williams@intel.com>
To: tglx@linutronix.de, mingo@kernel.org, hpa@zytor.com
Cc: linux-fbdev@vger.kernel.org, David Airlie <airlied@linux.ie>,
	dri-devel@lists.freedesktop.org, Lv Zheng <lv.zheng@intel.com>,
	Daniel Vetter <daniel.vetter@intel.com>,
	Benjamin Romer <benjamin.romer@unisys.com>,
	hch@lst.de, linux-arch@vger.kernel.org,
	linux-nvdimm@lists.01.org, Joerg Roedel <joro@8bytes.org>,
	"Rafael J. Wysocki" <rafael.j.wysocki@intel.com>,
	Bob Moore <robert.moore@intel.com>,
	Mike Waychison <mikew@google.com>,
	Tomi Valkeinen <tomi.valkeinen@ti.com>,
	rmk+kernel@arm.linux.org.uk,
	Ross Zwisler <ross.zwisler@linux.intel.com>,
	David Kershner <david.kershner@unisys.com>,
	Jean-Christophe Plagniol-Villard <plagnioj@jcrosoft.com>,
	mcgrof@suse.com, Len Brown <lenb@kernel.org>,
	Joerg Roedel <jroedel@suse.de>, Arnd Bergmann <arnd@arndb.de>,
	intel-gfx@lists.freedesktop.org, Borislav Petkov <bp@alien8.de>,
	Ingo Molnar <mingo@redhat.com>,
	linux-arm-kernel@lists.infra
Subject: [PATCH v3 00/24] replace ioremap_{cache|wt} with memremap
Date: Thu, 30 Jul 2015 16:53:39 +0000	[thread overview]
Message-ID: <20150730165155.33962.64121.stgit@dwillia2-desk3.amr.corp.intel.com> (raw)

Changes since v2 [1]:

1/ Move arch_memremap() and arch_memunmap() out of line (Christoph)

2/ Convert region_is_ram() to region_intersects() and define an enum for
   its 3 return values. (Luis)

3/ Fix gma500 and i915 to explicitly use cached mappings and clean up
   the __iomem usage. (Daniel)

4/ Kill unused ioremap aliases (ioremap_cached() and
   ioremap_fullcache()) (Christoph)

5/ Clarify some change logs and documentation (Luis, Christoph, and
   Ross)

6/ Add a unified CONFIG_MMU=n implementation with __weak symbols. (Luis)

---
While developing the pmem driver we noticed that the __iomem annotation
on the return value from ioremap_cache() was being mishandled by several
callers.  We also observed that all of the call sites expected to be
able to treat the return value from ioremap_cache() as normal
(non-__iomem) pointer to memory.

This patchset takes the opportunity to clean up the above confusion as
well as a few issues with the ioremap_{cache|wt} interface, including:

1/ Eliminating the possibility of function prototypes differing between
   architectures by defining a central memremap() prototype that takes
   flags to determine the mapping type.

2/ Returning NULL rather than falling back silently to a different
   mapping-type.  This allows drivers to be stricter about the
   mapping-type fallbacks that are permissible.

[1]: http://marc.info/?l=linux-arch&m\x143779222217405&w=2

---

Dan Williams (24):
      mm: enhance region_is_ram() to region_intersects()
      arch, drivers: don't include <asm/io.h> directly, use <linux/io.h> instead
      cleanup IORESOURCE_CACHEABLE vs ioremap()
      intel_iommu: fix leaked ioremap mapping
      arch: introduce memremap()
      arm: switch from ioremap_cache to memremap
      x86: switch from ioremap_cache to memremap
      gma500: switch from acpi_os_ioremap to memremap
      i915: switch from acpi_os_ioremap to memremap
      acpi: switch from ioremap_cache to memremap
      toshiba laptop: replace ioremap_cache with ioremap
      memconsole: fix __iomem mishandling, switch to memremap
      visorbus: switch from ioremap_cache to memremap
      intel-iommu: switch from ioremap_cache to memremap
      libnvdimm, pmem: push call to ioremap_cache out of line
      pxa2xx-flash: switch from ioremap_cache to memremap
      sfi: switch from ioremap_cache to memremap
      fbdev: switch from ioremap_wt to memremap
      pmem: switch from ioremap_wt to memremap
      arch: kill ioremap_cached()
      arch: kill ioremap_fullcache()
      arch: remove ioremap_cache, replace with arch_memremap
      arch: remove ioremap_wt, optionally replace with arch_memremap
      pmem: convert to generic memremap


 Documentation/x86/pat.txt                      |    6 +
 arch/arc/include/asm/io.h                      |    1 
 arch/arm/Kconfig                               |    1 
 arch/arm/include/asm/io.h                      |    7 --
 arch/arm/include/asm/xen/page.h                |    4 -
 arch/arm/mach-clps711x/board-cdb89712.c        |    2 
 arch/arm/mach-shmobile/pm-rcar.c               |    2 
 arch/arm/mm/ioremap.c                          |   18 +++-
 arch/arm/mm/mmu.c                              |    2 
 arch/arm/mm/nommu.c                            |   11 ++
 arch/arm64/Kconfig                             |    1 
 arch/arm64/include/asm/acpi.h                  |   11 --
 arch/arm64/include/asm/dmi.h                   |    8 +-
 arch/arm64/include/asm/io.h                    |    2 
 arch/arm64/kernel/efi.c                        |    9 +-
 arch/arm64/kernel/smp_spin_table.c             |   19 ++--
 arch/arm64/mm/ioremap.c                        |   20 ++--
 arch/avr32/include/asm/io.h                    |    1 
 arch/frv/include/asm/io.h                      |   12 ---
 arch/ia64/Kconfig                              |    1 
 arch/ia64/include/asm/io.h                     |    5 -
 arch/ia64/kernel/cyclone.c                     |    2 
 arch/ia64/mm/ioremap.c                         |   16 +++
 arch/m32r/include/asm/io.h                     |    1 
 arch/m68k/Kconfig                              |    1 
 arch/m68k/include/asm/io_mm.h                  |   12 ---
 arch/m68k/include/asm/io_no.h                  |   11 --
 arch/m68k/include/asm/raw_io.h                 |    1 
 arch/m68k/mm/kmap.c                            |   17 +++-
 arch/m68k/mm/sun3kmap.c                        |    6 +
 arch/metag/include/asm/io.h                    |    6 -
 arch/microblaze/include/asm/io.h               |    2 
 arch/mn10300/include/asm/io.h                  |    1 
 arch/nios2/include/asm/io.h                    |    1 
 arch/powerpc/kernel/pci_of_scan.c              |    2 
 arch/s390/include/asm/io.h                     |    1 
 arch/sh/Kconfig                                |    1 
 arch/sh/include/asm/io.h                       |    6 -
 arch/sh/mm/ioremap.c                           |   15 +++
 arch/sparc/include/asm/io_32.h                 |    1 
 arch/sparc/include/asm/io_64.h                 |    1 
 arch/sparc/kernel/pci.c                        |    3 -
 arch/tile/include/asm/io.h                     |    2 
 arch/unicore32/include/asm/io.h                |    4 -
 arch/unicore32/mm/ioremap.c                    |    8 --
 arch/x86/Kconfig                               |    1 
 arch/x86/include/asm/efi.h                     |    3 -
 arch/x86/include/asm/io.h                      |   11 --
 arch/x86/kernel/crash_dump_64.c                |    6 +
 arch/x86/kernel/kdebugfs.c                     |    8 +-
 arch/x86/kernel/ksysfs.c                       |   28 +++---
 arch/x86/mm/ioremap.c                          |   59 +++++++------
 arch/xtensa/include/asm/io.h                   |   11 --
 drivers/acpi/apei/einj.c                       |    9 +-
 drivers/acpi/apei/erst.c                       |    6 +
 drivers/acpi/nvs.c                             |    6 +
 drivers/acpi/osl.c                             |   70 ++++-----------
 drivers/char/toshiba.c                         |    2 
 drivers/firmware/google/memconsole.c           |    7 +-
 drivers/gpu/drm/gma500/opregion.c              |    8 +-
 drivers/gpu/drm/gma500/psb_drv.h               |    2 
 drivers/gpu/drm/gma500/psb_lid.c               |    8 +-
 drivers/gpu/drm/i915/i915_debugfs.c            |    2 
 drivers/gpu/drm/i915/i915_drv.h                |   12 +--
 drivers/gpu/drm/i915/intel_bios.c              |    7 +-
 drivers/gpu/drm/i915/intel_opregion.c          |   87 +++++++++----------
 drivers/gpu/drm/i915/intel_panel.c             |    2 
 drivers/iommu/intel-iommu.c                    |   10 +-
 drivers/iommu/intel_irq_remapping.c            |    4 +
 drivers/isdn/icn/icn.h                         |    2 
 drivers/mtd/devices/slram.c                    |    2 
 drivers/mtd/maps/pxa2xx-flash.c                |    4 -
 drivers/mtd/nand/diskonchip.c                  |    2 
 drivers/mtd/onenand/generic.c                  |    2 
 drivers/nvdimm/Kconfig                         |    2 
 drivers/pci/probe.c                            |    3 -
 drivers/pnp/manager.c                          |    2 
 drivers/scsi/aic94xx/aic94xx_init.c            |    7 --
 drivers/scsi/arcmsr/arcmsr_hba.c               |    5 -
 drivers/scsi/mvsas/mv_init.c                   |   15 +--
 drivers/scsi/sun3x_esp.c                       |    2 
 drivers/sfi/sfi_core.c                         |    4 -
 drivers/staging/comedi/drivers/ii_pci20kc.c    |    1 
 drivers/staging/unisys/visorbus/visorchannel.c |   16 ++-
 drivers/staging/unisys/visorbus/visorchipset.c |   17 ++--
 drivers/tty/serial/8250/8250_core.c            |    2 
 drivers/video/fbdev/Kconfig                    |    2 
 drivers/video/fbdev/amifb.c                    |    5 +
 drivers/video/fbdev/atafb.c                    |    5 +
 drivers/video/fbdev/hpfb.c                     |    6 +
 drivers/video/fbdev/ocfb.c                     |    1 
 drivers/video/fbdev/s1d13xxxfb.c               |    3 -
 drivers/video/fbdev/stifb.c                    |    1 
 include/acpi/acpi_io.h                         |    6 -
 include/asm-generic/io.h                       |    8 --
 include/asm-generic/iomap.h                    |    4 -
 include/linux/io-mapping.h                     |    2 
 include/linux/io.h                             |   11 ++
 include/linux/mm.h                             |    9 ++
 include/linux/mtd/map.h                        |    2 
 include/linux/pmem.h                           |   26 +++---
 include/video/vga.h                            |    2 
 kernel/Makefile                                |    2 
 kernel/memremap.c                              |  110 ++++++++++++++++++++++++
 kernel/resource.c                              |   61 ++++++++-----
 lib/Kconfig                                    |    5 +
 lib/devres.c                                   |   13 +--
 lib/pci_iomap.c                                |    7 --
 tools/testing/nvdimm/Kbuild                    |    4 -
 tools/testing/nvdimm/test/iomap.c              |   34 +++++--
 110 files changed, 553 insertions(+), 497 deletions(-)
 create mode 100644 kernel/memremap.c

             reply	other threads:[~2015-07-30 16:53 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-07-30 16:53 Dan Williams [this message]
2015-07-30 16:55 ` [PATCH v3 18/24] fbdev: switch from ioremap_wt to memremap Dan Williams

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=20150730165155.33962.64121.stgit@dwillia2-desk3.amr.corp.intel.com \
    --to=dan.j.williams@intel.com \
    --cc=airlied@linux.ie \
    --cc=arnd@arndb.de \
    --cc=benjamin.romer@unisys.com \
    --cc=bp@alien8.de \
    --cc=daniel.vetter@intel.com \
    --cc=david.kershner@unisys.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=hch@lst.de \
    --cc=hpa@zytor.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=joro@8bytes.org \
    --cc=jroedel@suse.de \
    --cc=lenb@kernel.org \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infra \
    --cc=linux-fbdev@vger.kernel.org \
    --cc=linux-nvdimm@lists.01.org \
    --cc=lv.zheng@intel.com \
    --cc=mcgrof@suse.com \
    --cc=mikew@google.com \
    --cc=mingo@kernel.org \
    --cc=mingo@redhat.com \
    --cc=plagnioj@jcrosoft.com \
    --cc=rafael.j.wysocki@intel.com \
    --cc=rmk+kernel@arm.linux.org.uk \
    --cc=robert.moore@intel.com \
    --cc=ross.zwisler@linux.intel.com \
    --cc=tglx@linutronix.de \
    --cc=tomi.valkeinen@ti.com \
    /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