mbox series

[GIT,PULL] IXP4xx modernizations for v5.14

Message ID CACRpkdbw6HSpp7k6q1FYGmtafLmdAu8bFnpHQOdfBDYYsdLbkw@mail.gmail.com
State New
Headers show
Series [GIT,PULL] IXP4xx modernizations for v5.14 | expand

Pull-request

git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-nomadik.git tags/ixp4xx-arm-soc-v5.14

Message

Linus Walleij June 18, 2021, 8:50 a.m. UTC
Hi ARM SoC maintainers,

here is a constructive pull request for modernizing IXP4xx.

As modernizing architectures go, it's cutting some corners
and being a bit different from regular new architectures.
The main details of the contents are in the signed tag, but
note the following:

Arnd's patch to move CPU detection hits drivers all
over the place - that is natural.

hwrandom changes are ACKed by the hwrandom
maintainer and PCI changes are ACKed by the PCI
maintainers.

Some modernization was merged in parallel into the
crypto subsystem for dependencies on other modernizations
of the crypto driver. These make rid of the need to include
<mach/*> or <soc/*> headers but in order to not create a
fuzz during the merge window or in linux-next I have added
these three lines to the crypto driver:

+/* Intermittent includes, delete this after v5.14-rc1 */
+#include <linux/soc/ixp4xx/cpu.h>
+#include <mach/ixp4xx-regs.h>

This makes everything compile and merge nicely in -next.
(Tested to merge things into -next, no colissions.)
We will get rid of them after the merge window. No big deal.

For the next merge window we will be able to start
to delete boardfiles and surplus ixp4xx drivers as
modernization continues. Main stakeholder is the OpenWrt
community.

I would really like this to land in v5.14 as we have some
momentum but I know it may be a bit late in the merge
cycle. Pretty please.

Please pull it in!

Yours,
Linus Walleij

The following changes since commit 6efb943b8616ec53a5e444193dccf1af9ad627b5:

  Linux 5.13-rc1 (2021-05-09 14:17:44 -0700)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-nomadik.git
tags/ixp4xx-arm-soc-v5.14

for you to fetch changes up to 0da518dae87dd18e5f23e406e15575f393e4a97c:

  ixp4xx: fix spelling mistake in Kconfig "Devce" -> "Device"
(2021-06-17 15:31:05 +0200)

----------------------------------------------------------------
This is a major chunk of IXP4xx modernization:

- Fist we move some registers around to make room for
  the predetermined PCI I/O space.

- Then we add some Kconfig options to make it possible
  to use the old PCI driver in parallell with the new
  shiny one.

- Then we add the new PCI driver and some bindings for
  it.

- On top of this we add an (ages old) patch from Arnd
  that centralize the CPU/SoC detection in drivers/soc
  and make the header a standard Linux header to avoid
  the <mach/*> business in drivers.

- Then we split out and modernize some platform data
  headers for pata, and hwrandom, and top it up with
  DT bindings and support for hwrandom.

----------------------------------------------------------------
Arnd Bergmann (3):
      soc: ixp4xx: move cpu detection to linux/soc/ixp4xx/cpu.h
      pata: ixp4xx: split platform data to its own header
      hw_random: ixp4xx: enable compile-testing

Colin Ian King (1):
      ixp4xx: fix spelling mistake in Kconfig "Devce" -> "Device"

Linus Walleij (8):
      ARM/ixp4xx: Move the virtual IObases
      ARM/ixp4xx: Make NEED_MACH_IO_H optional
      PCI: ixp4xx: Add device tree bindings for IXP4xx
      PCI: ixp4xx: Add a new driver for IXP4xx
      hw_random: ixp4xx: Use SPDX license tag
      hw_random: ixp4xx: Turn into a module
      hw_random: ixp4xx: Add DT bindings
      hw_random: ixp4xx: Add OF support

 .../devicetree/bindings/pci/intel,ixp4xx-pci.yaml  | 100 +++
 .../devicetree/bindings/rng/intel,ixp46x-rng.yaml  |  36 ++
 MAINTAINERS                                        |   7 +
 arch/arm/Kconfig                                   |   3 +-
 arch/arm/Kconfig.debug                             |   4 +-
 arch/arm/mach-ixp4xx/Kconfig                       |  35 +-
 arch/arm/mach-ixp4xx/avila-setup.c                 |   1 +
 arch/arm/mach-ixp4xx/common.c                      |  47 +-
 arch/arm/mach-ixp4xx/fsg-setup.c                   |   1 +
 arch/arm/mach-ixp4xx/include/mach/cpu.h            |  54 --
 arch/arm/mach-ixp4xx/include/mach/hardware.h       |   2 +-
 arch/arm/mach-ixp4xx/include/mach/ixp4xx-regs.h    |  61 +-
 arch/arm/mach-ixp4xx/include/mach/platform.h       |  14 -
 arch/arm/mach-ixp4xx/ixp4xx-of.c                   |   8 +-
 arch/arm/mach-ixp4xx/nas100d-setup.c               |   1 +
 arch/arm/mach-ixp4xx/nslu2-setup.c                 |   1 +
 drivers/ata/Kconfig                                |   2 +-
 drivers/ata/pata_ixp4xx_cf.c                       |   1 +
 drivers/char/hw_random/Kconfig                     |   2 +-
 drivers/char/hw_random/ixp4xx-rng.c                |  53 +-
 drivers/crypto/ixp4xx_crypto.c                     |   4 +
 drivers/net/ethernet/xscale/ixp4xx_eth.c           |   2 +
 drivers/net/ethernet/xscale/ptp_ixp46x.c           |   3 +-
 drivers/net/wan/ixp4xx_hss.c                       |   1 +
 drivers/pci/controller/Kconfig                     |   8 +
 drivers/pci/controller/Makefile                    |   1 +
 drivers/pci/controller/pci-ixp4xx.c                | 671 +++++++++++++++++++++
 drivers/soc/ixp4xx/ixp4xx-npe.c                    |   2 +
 drivers/soc/ixp4xx/ixp4xx-qmgr.c                   |   2 +
 include/linux/platform_data/pata_ixp4xx_cf.h       |  21 +
 include/linux/soc/ixp4xx/cpu.h                     | 106 ++++
 31 files changed, 1079 insertions(+), 175 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/pci/intel,ixp4xx-pci.yaml
 create mode 100644 Documentation/devicetree/bindings/rng/intel,ixp46x-rng.yaml
 delete mode 100644 arch/arm/mach-ixp4xx/include/mach/cpu.h
 create mode 100644 drivers/pci/controller/pci-ixp4xx.c
 create mode 100644 include/linux/platform_data/pata_ixp4xx_cf.h
 create mode 100644 include/linux/soc/ixp4xx/cpu.h