linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 00/12] powerpc/mm: cleanup and refactoring in ioremap
@ 2019-08-20 14:07 Christophe Leroy
  2019-08-20 14:07 ` [PATCH v2 01/12] powerpc: remove the ppc44x ocm.c file Christophe Leroy
                   ` (11 more replies)
  0 siblings, 12 replies; 19+ messages in thread
From: Christophe Leroy @ 2019-08-20 14:07 UTC (permalink / raw)
  To: Benjamin Herrenschmidt, Paul Mackerras, Michael Ellerman, npiggin, hch
  Cc: linuxppc-dev, linux-kernel

The purpose of this series is to cleanup and refactor ioremap.

At the time being, ioremap is duplicated in PPC32 and PPC64.
In addition, some additional duplication also appear within PPC64.

First part of this series drops as much as unused functions.
Then io-workaround is reworked to avoid indirect function call.
Then common parts of PPC32 and PPC64 are regrouped into a new file
called ioremap.c
Then other parts linked to ioremap are respectively moved out of
pgtable_32/64.c
The last part of the series tries to refactor ioremap_range() and
make use of ioremap_page_range() for all, then separates the early
path from the regular ioremap.

A future follow-up of this series will be to try and eliminate the
early ioremap part and use the generic early_ioremap instead.

v2:
- dropped the change of ioremap_bot growing direction for PPC64 and
  kept separate __ioremap_caller() and friends.
- separating more clearly early_ioremap() from regular ioremap()
- addressed received comments.

Christophe Leroy (12):
  powerpc: remove the ppc44x ocm.c file
  powerpc/ps3: replace __ioremap() by ioremap_prot()
  powerpc/mm: drop ppc_md.iounmap() and __iounmap()
  powerpc/mm: drop function __ioremap()
  powerpc/mm: rework io-workaround invocation.
  powerpc/mm: move common 32/64 bits ioremap functions into ioremap.c
  powerpc/mm: move ioremap_prot() into ioremap.c
  powerpc/mm: make ioremap_bot common to all
  powerpc/mm: Move ioremap functions out of pgtable_32/64.c
  powerpc/mm: refactor ioremap_range() and use ioremap_page_range()
  powerpc/mm: refactor ioremap vm area setup.
  powerpc/mm: split out early ioremap path.

 arch/powerpc/configs/ppc40x_defconfig        |   1 -
 arch/powerpc/include/asm/book3s/32/pgtable.h |   6 +-
 arch/powerpc/include/asm/book3s/64/pgtable.h |   2 +-
 arch/powerpc/include/asm/book3s/64/radix.h   |   3 -
 arch/powerpc/include/asm/io-workarounds.h    |  20 ++
 arch/powerpc/include/asm/io.h                |  16 +-
 arch/powerpc/include/asm/machdep.h           |   4 -
 arch/powerpc/include/asm/nohash/32/pgtable.h |   6 +-
 arch/powerpc/include/asm/nohash/64/pgtable.h |   1 +
 arch/powerpc/include/asm/pgtable.h           |   2 +
 arch/powerpc/include/asm/ppc4xx_ocm.h        |  31 ---
 arch/powerpc/kernel/io-workarounds.c         |  13 +-
 arch/powerpc/mm/Makefile                     |   2 +-
 arch/powerpc/mm/book3s64/pgtable.c           |  21 --
 arch/powerpc/mm/book3s64/radix_pgtable.c     |  20 --
 arch/powerpc/mm/ioremap.c                    |  99 +++++++
 arch/powerpc/mm/ioremap_32.c                 |  92 +++++++
 arch/powerpc/mm/ioremap_64.c                 | 113 ++++++++
 arch/powerpc/mm/mmu_decl.h                   |   1 -
 arch/powerpc/mm/nohash/tlb.c                 |   2 +
 arch/powerpc/mm/pgtable_32.c                 | 153 -----------
 arch/powerpc/mm/pgtable_64.c                 | 203 +-------------
 arch/powerpc/platforms/44x/Kconfig           |   8 -
 arch/powerpc/platforms/4xx/Makefile          |   1 -
 arch/powerpc/platforms/4xx/ocm.c             | 390 ---------------------------
 arch/powerpc/platforms/ps3/spu.c             |  10 +-
 26 files changed, 353 insertions(+), 867 deletions(-)
 delete mode 100644 arch/powerpc/include/asm/ppc4xx_ocm.h
 create mode 100644 arch/powerpc/mm/ioremap.c
 create mode 100644 arch/powerpc/mm/ioremap_32.c
 create mode 100644 arch/powerpc/mm/ioremap_64.c
 delete mode 100644 arch/powerpc/platforms/4xx/ocm.c

-- 
2.13.3


^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2019-08-28  4:39 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-08-20 14:07 [PATCH v2 00/12] powerpc/mm: cleanup and refactoring in ioremap Christophe Leroy
2019-08-20 14:07 ` [PATCH v2 01/12] powerpc: remove the ppc44x ocm.c file Christophe Leroy
2019-08-28  4:24   ` Michael Ellerman
2019-08-20 14:07 ` [PATCH v2 02/12] powerpc/ps3: replace __ioremap() by ioremap_prot() Christophe Leroy
2019-08-20 22:24   ` Christoph Hellwig
2019-08-20 14:07 ` [PATCH v2 03/12] powerpc/mm: drop ppc_md.iounmap() and __iounmap() Christophe Leroy
2019-08-20 14:07 ` [PATCH v2 04/12] powerpc/mm: drop function __ioremap() Christophe Leroy
2019-08-20 22:24   ` Christoph Hellwig
2019-08-20 14:07 ` [PATCH v2 05/12] powerpc/mm: rework io-workaround invocation Christophe Leroy
2019-08-20 22:28   ` Christoph Hellwig
2019-08-21  0:42     ` Benjamin Herrenschmidt
2019-08-20 14:07 ` [PATCH v2 06/12] powerpc/mm: move common 32/64 bits ioremap functions into ioremap.c Christophe Leroy
2019-08-20 14:07 ` [PATCH v2 07/12] powerpc/mm: move ioremap_prot() " Christophe Leroy
2019-08-20 22:28   ` Christoph Hellwig
2019-08-20 14:07 ` [PATCH v2 08/12] powerpc/mm: make ioremap_bot common to all Christophe Leroy
2019-08-20 14:07 ` [PATCH v2 09/12] powerpc/mm: Move ioremap functions out of pgtable_32/64.c Christophe Leroy
2019-08-20 14:07 ` [PATCH v2 10/12] powerpc/mm: refactor ioremap_range() and use ioremap_page_range() Christophe Leroy
2019-08-20 14:07 ` [PATCH v2 11/12] powerpc/mm: refactor ioremap vm area setup Christophe Leroy
2019-08-20 14:07 ` [PATCH v2 12/12] powerpc/mm: split out early ioremap path Christophe Leroy

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).