mbox series

[GIT,PULL,3/6] ARM: SoC driver updates for 5.1

Message ID CAK8P3a1-j-rr1MKnVqD8__YnqPsP8y4S_TWr+TRJScRvkrFymA@mail.gmail.com
State New
Headers show
Series ARM: SoC changes for 5.1 | expand

Pull-request

git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc.git tags/armsoc-drivers

Message

Arnd Bergmann March 6, 2019, 3:34 p.m. UTC
The following changes since commit f17b5f06cb92ef2250513a1e154c47b78df07d40:

  Linux 5.0-rc4 (2019-01-27 15:18:05 -0800)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc.git tags/armsoc-drivers

for you to fetch changes up to 8ceb820b69fe6ff58234ff604146a9e88e6c1974:

  Merge tag 'soc-fsl-next-v5.1-4' of
git://git.kernel.org/pub/scm/linux/kernel/git/leo/linux into
arm/drivers (2019-03-01 15:05:54 +0100)

----------------------------------------------------------------
ARM: SoC driver updates for 5.1

As usual, the drivers/tee and drivers/reset subsystems get merged
here, with the expected set of smaller updates and some new hardware
support. The tee subsystem now supports device drivers to be attached
to a tee, the first example here is a random number driver with its
implementation in the secure world.

Three new power domain drivers get added for specific chip families:
 - Broadcom BCM283x chips (used in Raspberry Pi)
 - Qualcomm Snapdragon phone chips
 - Xilinx ZynqMP FPGA SoCs

One new driver is added to talk to the BPMP firmware on NVIDIA
Tegra210

Existing drivers are extended for new SoC variants from NXP,
NVIDIA, Amlogic and Qualcomm.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>

----------------------------------------------------------------
Abel Vesa (1):
      soc: imx: Break dependency on SOC_IMX8MQ for GPCv2

Aisheng Dong (3):
      dt-bindings: fsl: scu: add fallback compatible string for power domain
      dt-bindings: fsl: scu: add imx8qm scu power domain support
      firmware: imx: scu-pd: add fallback compatible string support

Alexey Khoroshilov (1):
      soc: qcom: gsbi: Fix error handling in gsbi_probe()

Amit Kucheria (1):
      MAINTAINERS: update list of qcom drivers

Andrey Smirnov (3):
      dt-bindings: reset: imx7: Document usage on i.MX8MQ SoCs
      reset: imx7: Add plubming to support multiple IP variants
      reset: imx7: Add support for i.MX8MQ IP block variant

Andy Gross (2):
      Merge tag 'qcom-fixes-for-5.0-rc1' into drivers-for-5.1
      soc: qcom: llcc-slice: Fix typos

Arnd Bergmann (19):
      Merge tag 'soc-fsl-next-v5.1-2' of
git://git.kernel.org/.../leo/linux into arm/drivers
      Merge tag 'zynqmp-soc-for-v5.1' of
https://github.com/Xilinx/linux-xlnx into arm/drivers
      Merge tag 'imx-drivers-5.1' of
git://git.kernel.org/.../shawnguo/linux into arm/drivers
      Merge tag 'amlogic-drivers' of
git://git.kernel.org/.../khilman/linux-amlogic into arm/drivers
      Merge tag 'reset-for-5.1' of
git://git.pengutronix.de/git/pza/linux into arm/drivers
      Merge tag 'tegra-for-5.1-firmware' of
git://git.kernel.org/.../tegra/linux into arm/drivers
      Merge tag 'tegra-for-5.1-soc' of
git://git.kernel.org/.../tegra/linux into arm/drivers
      Merge tag 'tegra-for-5.1-cpufreq' of
git://git.kernel.org/.../tegra/linux into arm/drivers
      Merge tag 'tegra-for-5.1-clk' of
git://git.kernel.org/.../tegra/linux into arm/drivers
      Merge tag 'hisi-drivers-for-5.1' of
git://github.com/hisilicon/linux-hisi into arm/drivers
      Merge tag 'tee-bus-for-5.1' of
https://git.linaro.org/people/jens.wiklander/linux-tee into
arm/drivers
      Merge tag 'qcom-drivers-for-5.1' of
git://git.kernel.org/.../agross/linux into arm/drivers
      Merge tag 'arm-soc/for-5.1/drivers' of
https://github.com/Broadcom/stblinux into arm/drivers
      Merge tag 'drivers_soc_for_5.1' of
git://git.kernel.org/.../ssantosh/linux-keystone into arm/drivers
      Merge tag 'qcom-drivers-for-5.1-2' of
git://git.kernel.org/.../agross/linux into arm/drivers
      Merge tag 'qcom-drivers-for-5.1-3' of
git://git.kernel.org/.../agross/linux into arm/drivers
      Merge tag 'soc-fsl-next-v5.1-3' of
git://git.kernel.org/.../leo/linux into arm/drivers
      Merge tag 'tee-misc-for-v5.1' of
https://git.linaro.org/people/jens.wiklander/linux-tee into
arm/drivers
      Merge tag 'soc-fsl-next-v5.1-4' of
git://git.kernel.org/.../leo/linux into arm/drivers

Bjorn Andersson (1):
      soc: qcom: rpmpd: Drop family A RPM dependency

Colin Ian King (1):
      soc: fsl: dpio: fix memory leak of a struct qbman on error exit path

Craig Tatlor (1):
      soc: qcom: smd-rpm: Add sdm660 compatible

Dan Carpenter (1):
      soc: fsl: dpio: Use after free in dpaa2_dpio_remove()

Daniel Baluta (1):
      firmware: imx: Add support to start/stop a CPU

Eric Anholt (5):
      dt-bindings: soc: Add a new binding for the BCM2835 PM node. (v4)
      bcm2835-pm: Move bcm2835-watchdog's DT probe to an MFD.
      soc: bcm: bcm2835-pm: Add support for power domains under a new binding.
      ARM: bcm283x: Extend the WDT DT node out to cover the whole PM block. (v4)
      ARM: bcm283x: Switch V3D over to using the PM driver instead of firmware.

Evan Green (2):
      soc: qcom: rmtfs-mem: Add class to enable uevents
      soc: qcom: rmtfs-mem: Make sysfs attributes world-readable

Florian Fainelli (3):
      dt-bindings: reset: Add document for Broadcom STB reset controller
      reset: Add Broadcom STB SW_INIT reset controller driver
      Merge tag 'tags/bcm2835-drivers-next-2019-02-01' into drivers/next

Horia Geantă (1):
      soc: fsl: guts: make fsl_guts_get_svr() static

Igor Opaniuk (1):
      tee: add cancellation support to client interface

Ioana Ciocoi Radulescu (2):
      soc: fsl: dpio: Add prefetch instruction
      soc: fsl: dpio: Change bpid type to u16

Ioana Ciornei (3):
      soc: fsl: dpio: enable frame data cache stashing per software portal
      soc: fsl: dpio: configure cache stashing destination
      dpaa2-eth: configure the cache stashing amount on a queue

Jerome Brunet (3):
      dt-bindings: amlogic: add new compatible devices to clk_measure
      soc: amlogic: clk-measure: add axg and g12a support
      dt-bindings: reset: meson: add g12a bindings

Jerome Forissier (1):
      tee: optee: update optee_msg.h and optee_smc.h to dual license

John Garry (1):
      bus: hisi_lpc: Don't fail probe for unrecognised child devices

Jolly Shah (2):
      firmware: xilinx: Implement ZynqMP power management APIs
      drivers: soc: xilinx: Add ZynqMP power domain driver

Jon Hunter (1):
      soc/tegra: pmc: Make tegra_powergate_is_powered() a local function

Jordan Crouse (2):
      qcom: soc: llcc-slice: Clear the global drv_data pointer on error
      qcom: soc: llcc-slice: Consolidate some code

Joseph Lo (8):
      soc/tegra: fuse: Fix typo in tegra210_init_speedo_data
      clk: tegra: dfll: CVB calculation alignment with the regulator
      clk: tegra: dfll: support PWM regulator control
      clk: tegra: dfll: round down voltages based on alignment
      clk: tegra: dfll: add CVB tables for Tegra210
      cpufreq: tegra124: do not handle the CPU rail
      cpufreq: tegra124: extend to support Tegra210
      cpufreq: dt-platdev: add Tegra210 to blacklist

Li Yang (1):
      soc: fsl: guts: reuse machine name from device tree

Lucas Stach (2):
      soc: imx: gpcv2: handle additional power-down bits in handshake register
      soc: imx: gpcv2: handle reset clocks

Mikko Perttunen (1):
      soc/tegra: pmc: Support systems where PMC is marked secure

Nathan Chancellor (3):
      soc: ti: knav_dma: Use proper enum in pktdma_init_chan
      tee: optee: Initialize some structs using memset instead of braces
      hwrng: optee: Initialize some structs using memset instead of braces

Nava kishore Manne (6):
      firmware: xilinx: Add reset API's
      dt-bindings: reset: Add bindings for ZynqMP reset driver
      reset: reset-zynqmp: Adding support for Xilinx zynqmp reset controller.
      firmware: xilinx: Add zynqmp_pm_get_chipid() API
      dt-bindings: nvmem: Add bindings for ZynqMP nvmem driver
      nvmem: zynqmp: Added zynqmp nvmem firmware driver

Neil Armstrong (1):
      soc: amlogic: canvas: Fix meson_canvas_get when probe failed

Peter De Schrijver (2):
      clk: tegra: dfll: registration for multiple SoCs
      clk: tegra: dfll: build clk-dfll.c for Tegra124 and Tegra210

Philipp Zabel (3):
      MAINTAINERS: use include/linux/reset for reset controller related headers
      reset: sunxi: declare sun6i_reset_init in a header file
      reset: socfpga: declare socfpga_reset_init in a header file

Rajan Vaja (4):
      dt-bindings: soc: Add ZynqMP PM bindings
      drivers: soc: xilinx: Add ZynqMP PM driver
      dt-bindings: power: Add ZynqMP power domain bindings
      firmware: xilinx: Add APIs to control node status/power

Rajendra Nayak (8):
      dt-bindings: opp: Introduce opp-level bindings
      OPP: Add support for parsing the 'opp-level' property
      dt-bindings: power: Add qcom rpm power domain driver bindings
      soc: qcom: rpmpd: Add a Power domain driver to model corners
      soc: qcom: rpmpd: Add support for get/set performance state
      soc: qcom: rpmhpd: Add RPMh power domain driver
      soc: qcom: rpmhpd: Mark mx as a parent for cx
      soc: qcom: update config dependencies for QCOM_RPMPD

Raju P.L.S.S.S.N (1):
      drivers: qcom: rpmh: avoid sending sleep/wake sets immediately

Stefan Wahren (3):
      soc: bcm2835: sync firmware properties with downstream
      firmware: raspberrypi: notify VC4 firmware of a reboot
      soc: bcm: Make PM driver default for BCM2835

Stephen Boyd (1):
      soc: qcom: rpmh: Avoid accessing freed memory from batch API

Sumit Garg (5):
      tee: add supp_nowait flag in tee_context struct
      tee: add bus driver framework for TEE based devices
      tee: optee: add TEE bus device enumeration support
      hwrng: add OP-TEE based rng driver
      tee: fix possible error pointer ctx dereferencing

Sven Van Asbroeck (3):
      dt-bindings: bus: imx-weim: document multiple address ranges per
child node
      bus: imx-weim: support multiple address ranges per child node
      bus: imx-weim: guard against timing configuration conflicts

Thierry Reding (9):
      soc/tegra: pmc: Use TEGRA186_ prefix for GPIO names
      soc/tegra: pmc: Sort includes alphabetically
      soc/tegra: pmc: Add missing kerneldoc
      firmware: tegra: bpmp-tegra186: Remove unused includes
      soc/tegra: pmc: Pass struct tegra_pmc * where possible
      soc/tegra: pmc: Make alignment consistent
      soc/tegra: pmc: Explicitly initialize all fields
      firmware: tegra: Conditionally support SoC generations
      firmware/tegra: Enable Tegra186 BPMP support on Tegra194

Timo Alho (4):
      soc/tegra: fuse: Fix illegal free of IO base address
      firmware: tegra: Reword messaging terminology
      firmware: tegra: Refactor BPMP driver
      firmware: tegra: add bpmp driver for Tegra210

Wei Yongjun (3):
      soc: bcm: bcm2835-pm: Make local symbol static
      clk: tegra: dfll: Make symbol 'tegra210_cpu_cvb_tables' static
      hwrng: make symbol 'optee_rng_id_table' static

Yangtao Li (1):
      firmware: ti_sci: Change to use DEFINE_SHOW_ATTRIBUTE macro

YueHaibing (2):
      hwrng: Fix unsigned comparison with less than zero
      tee: optee: Fix unsigned comparison with less than zero

wen yang (1):
      soc: amlogic: add missing of_node_put()

 Documentation/devicetree/bindings/arm/freescale/fsl,scu.txt         |   8 +-
 Documentation/devicetree/bindings/bus/imx-weim.txt                  |  32 ++-
 Documentation/devicetree/bindings/nvmem/xlnx,zynqmp-nvmem.txt       |  46 ++++
 Documentation/devicetree/bindings/opp/opp.txt                       |   3 +
 Documentation/devicetree/bindings/power/fsl,imx-gpcv2.txt           |   3 +
 Documentation/devicetree/bindings/power/qcom,rpmpd.txt              |
145 +++++++++++++
 Documentation/devicetree/bindings/power/reset/xlnx,zynqmp-power.txt |  25 +++
 Documentation/devicetree/bindings/power/xlnx,zynqmp-genpd.txt       |  34 +++
 Documentation/devicetree/bindings/reset/brcm,brcmstb-reset.txt      |  27 +++
 Documentation/devicetree/bindings/reset/fsl,imx7-src.txt            |   7 +-
 Documentation/devicetree/bindings/reset/xlnx,zynqmp-reset.txt       |  52 +++++
 Documentation/devicetree/bindings/soc/amlogic/clk-measure.txt       |   2 +
 Documentation/devicetree/bindings/soc/bcm/brcm,bcm2835-pm.txt       |  46 ++++
 Documentation/devicetree/bindings/soc/qcom/qcom,smd-rpm.txt         |   1 +
 MAINTAINERS                                                         |  38 +++-
 arch/arm/boot/dts/bcm2835-rpi.dtsi                                  |   4 -
 arch/arm/boot/dts/bcm283x.dtsi                                      |  17 +-
 arch/arm/mach-bcm/Kconfig                                           |   1 +
 arch/arm/mach-socfpga/socfpga.c                                     |   3 +-
 arch/arm/mach-sunxi/sunxi.c                                         |   2 +-
 drivers/bus/fsl-mc/fsl-mc-allocator.c                               |  11 +
 drivers/bus/fsl-mc/mc-io.c                                          |  13 ++
 drivers/bus/hisi_lpc.c                                              |   5 +-
 drivers/bus/imx-weim.c                                              |
 70 ++++--
 drivers/char/hw_random/Kconfig                                      |  15 ++
 drivers/char/hw_random/Makefile                                     |   1 +
 drivers/char/hw_random/optee-rng.c                                  |
306 ++++++++++++++++++++++++++
 drivers/clk/tegra/Kconfig                                           |   5 +
 drivers/clk/tegra/Makefile                                          |   2 +-
 drivers/clk/tegra/clk-dfll.c                                        |
459 +++++++++++++++++++++++++++++++++------
 drivers/clk/tegra/clk-dfll.h                                        |   6 +-
 drivers/clk/tegra/clk-tegra124-dfll-fcpu.c                          |
520 ++++++++++++++++++++++++++++++++++++++++++--
 drivers/clk/tegra/cvb.c                                             |  12 +-
 drivers/clk/tegra/cvb.h                                             |   7 +-
 drivers/cpufreq/Kconfig.arm                                         |   4 +-
 drivers/cpufreq/cpufreq-dt-platdev.c                                |   1 +
 drivers/cpufreq/tegra124-cpufreq.c                                  |  44 +---
 drivers/crypto/caam/caamalg_qi2.c                                   |   6 +-
 drivers/firmware/imx/misc.c                                         |  38 ++++
 drivers/firmware/imx/scu-pd.c                                       |   1 +
 drivers/firmware/raspberrypi.c                                      |  11 +
 drivers/firmware/tegra/Makefile                                     |   3 +
 drivers/firmware/tegra/bpmp-private.h                               |  34 +++
 drivers/firmware/tegra/bpmp-tegra186.c                              |
305 ++++++++++++++++++++++++++
 drivers/firmware/tegra/bpmp-tegra210.c                              |
243 +++++++++++++++++++++
 drivers/firmware/tegra/bpmp.c                                       |
376 +++++++++++++-------------------
 drivers/firmware/ti_sci.c                                           |  21 +-
 drivers/firmware/xilinx/Kconfig                                     |   1 +
 drivers/firmware/xilinx/zynqmp.c                                    |
166 ++++++++++++++
 drivers/mfd/Makefile                                                |   1 +
 drivers/mfd/bcm2835-pm.c                                            |
 92 ++++++++
 drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c                    |  16 +-
 drivers/nvmem/Kconfig                                               |  10 +
 drivers/nvmem/Makefile                                              |   2 +
 drivers/nvmem/zynqmp_nvmem.c                                        |
 86 ++++++++
 drivers/opp/core.c                                                  |  18 ++
 drivers/opp/of.c                                                    |   2 +
 drivers/opp/opp.h                                                   |   2 +
 drivers/reset/Kconfig                                               |  12 +-
 drivers/reset/Makefile                                              |   2 +
 drivers/reset/reset-brcmstb.c                                       |
132 +++++++++++
 drivers/reset/reset-imx7.c                                          |
172 +++++++++++++--
 drivers/reset/reset-socfpga.c                                       |   2 +-
 drivers/reset/reset-sunxi.c                                         |   1 +
 drivers/reset/reset-zynqmp.c                                        |
114 ++++++++++
 drivers/soc/amlogic/meson-canvas.c                                  |  18 +-
 drivers/soc/amlogic/meson-clk-measure.c                             |
196 +++++++++++++++++
 drivers/soc/bcm/Kconfig                                             |  12 +
 drivers/soc/bcm/Makefile                                            |   1 +
 drivers/soc/bcm/bcm2835-power.c                                     |
661 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 drivers/soc/fsl/Kconfig                                             |   1 +
 drivers/soc/fsl/dpio/dpio-cmd.h                                     |   6 +
 drivers/soc/fsl/dpio/dpio-driver.c                                  |
 93 ++++++--
 drivers/soc/fsl/dpio/dpio-service.c                                 |  46 +++-
 drivers/soc/fsl/dpio/dpio.c                                         |  39 ++++
 drivers/soc/fsl/dpio/dpio.h                                         |   9 +
 drivers/soc/fsl/dpio/qbman-portal.c                                 |   5 +-
 drivers/soc/fsl/guts.c                                              |  10 +-
 drivers/soc/imx/Kconfig                                             |   2 +-
 drivers/soc/imx/gpcv2.c                                             |
 76 ++++++-
 drivers/soc/qcom/Kconfig                                            |  18 ++
 drivers/soc/qcom/Makefile                                           |   2 +
 drivers/soc/qcom/llcc-sdm845.c                                      |   6 +
 drivers/soc/qcom/llcc-slice.c                                       |
101 ++++++---
 drivers/soc/qcom/qcom_gsbi.c                                        |   7 +-
 drivers/soc/qcom/rmtfs_mem.c                                        |  32 ++-
 drivers/soc/qcom/rpmh.c                                             |  37 ++--
 drivers/soc/qcom/rpmhpd.c                                           |
406 ++++++++++++++++++++++++++++++++++
 drivers/soc/qcom/rpmpd.c                                            |
315 +++++++++++++++++++++++++++
 drivers/soc/qcom/smd-rpm.c                                          |   1 +
 drivers/soc/tegra/fuse/fuse-tegra.c                                 |  12 +-
 drivers/soc/tegra/fuse/speedo-tegra210.c                            |   2 +-
 drivers/soc/tegra/pmc.c                                             |
424 ++++++++++++++++++++++++------------
 drivers/soc/ti/knav_dma.c                                           |   2 +-
 drivers/soc/xilinx/Kconfig                                          |  20 ++
 drivers/soc/xilinx/Makefile                                         |   2 +
 drivers/soc/xilinx/zynqmp_pm_domains.c                              |
321 +++++++++++++++++++++++++++
 drivers/soc/xilinx/zynqmp_power.c                                   |
178 +++++++++++++++
 drivers/tee/optee/Makefile                                          |   1 +
 drivers/tee/optee/core.c                                            |   4 +
 drivers/tee/optee/device.c                                          |
160 ++++++++++++++
 drivers/tee/optee/optee_msg.h                                       |  26 +--
 drivers/tee/optee/optee_private.h                                   |   3 +
 drivers/tee/optee/optee_smc.h                                       |  26 +--
 drivers/tee/optee/supp.c                                            |  10 +-
 drivers/tee/tee_core.c                                              |
 78 ++++++-
 drivers/watchdog/bcm2835_wdt.c                                      |  26 +--
 include/dt-bindings/power/qcom-rpmpd.h                              |  39 ++++
 include/dt-bindings/power/xlnx-zynqmp-power.h                       |  39 ++++
 include/dt-bindings/reset/amlogic,meson-g12a-reset.h                |
134 ++++++++++++
 include/dt-bindings/reset/imx8mq-reset.h                            |
 64 ++++++
 include/dt-bindings/reset/xlnx-zynqmp-resets.h                      |
130 +++++++++++
 include/dt-bindings/soc/bcm2835-pm.h                                |  28 +++
 include/linux/firmware/imx/svc/misc.h                               |   3 +
 include/linux/firmware/xlnx-zynqmp.h                                |
184 ++++++++++++++++
 include/linux/fsl/guts.h                                            |   2 -
 include/linux/fsl/mc.h                                              |   1 +
 include/linux/mfd/bcm2835-pm.h                                      |  14 ++
 include/linux/mod_devicetable.h                                     |   9 +
 include/linux/pm_opp.h                                              |   7 +
 include/linux/reset/socfpga.h                                       |   7 +
 include/linux/reset/sunxi.h                                         |   7 +
 include/linux/soc/qcom/llcc-qcom.h                                  |   6 +
 include/linux/tee_drv.h                                             |  50 ++++-
 include/soc/bcm2835/raspberrypi-firmware.h                          |   4 +
 include/soc/fsl/dpaa2-io.h                                          |  15 +-
 include/soc/tegra/bpmp.h                                            |  13 +-
 include/soc/tegra/pmc.h                                             |   6 -
 scripts/mod/devicetable-offsets.c                                   |   3 +
 scripts/mod/file2alias.c                                            |  19 ++
 130 files changed, 7252 insertions(+), 773 deletions(-)
 create mode 100644
Documentation/devicetree/bindings/nvmem/xlnx,zynqmp-nvmem.txt
 create mode 100644 Documentation/devicetree/bindings/power/qcom,rpmpd.txt
 create mode 100644
Documentation/devicetree/bindings/power/reset/xlnx,zynqmp-power.txt
 create mode 100644
Documentation/devicetree/bindings/power/xlnx,zynqmp-genpd.txt
 create mode 100644
Documentation/devicetree/bindings/reset/brcm,brcmstb-reset.txt
 create mode 100644
Documentation/devicetree/bindings/reset/xlnx,zynqmp-reset.txt
 create mode 100644
Documentation/devicetree/bindings/soc/bcm/brcm,bcm2835-pm.txt
 create mode 100644 drivers/char/hw_random/optee-rng.c
 create mode 100644 drivers/firmware/tegra/bpmp-private.h
 create mode 100644 drivers/firmware/tegra/bpmp-tegra186.c
 create mode 100644 drivers/firmware/tegra/bpmp-tegra210.c
 create mode 100644 drivers/mfd/bcm2835-pm.c
 create mode 100644 drivers/nvmem/zynqmp_nvmem.c
 create mode 100644 drivers/reset/reset-brcmstb.c
 create mode 100644 drivers/reset/reset-zynqmp.c
 create mode 100644 drivers/soc/bcm/bcm2835-power.c
 create mode 100644 drivers/soc/qcom/rpmhpd.c
 create mode 100644 drivers/soc/qcom/rpmpd.c
 create mode 100644 drivers/soc/xilinx/zynqmp_pm_domains.c
 create mode 100644 drivers/soc/xilinx/zynqmp_power.c
 create mode 100644 drivers/tee/optee/device.c
 create mode 100644 include/dt-bindings/power/qcom-rpmpd.h
 create mode 100644 include/dt-bindings/power/xlnx-zynqmp-power.h
 create mode 100644 include/dt-bindings/reset/amlogic,meson-g12a-reset.h
 create mode 100644 include/dt-bindings/reset/imx8mq-reset.h
 create mode 100644 include/dt-bindings/reset/xlnx-zynqmp-resets.h
 create mode 100644 include/dt-bindings/soc/bcm2835-pm.h
 create mode 100644 include/linux/mfd/bcm2835-pm.h
 create mode 100644 include/linux/reset/socfpga.h
 create mode 100644 include/linux/reset/sunxi.h

Comments

Linus Torvalds March 6, 2019, 6:09 p.m. UTC | #1
On Wed, Mar 6, 2019 at 7:34 AM Arnd Bergmann <arnd@arndb.de> wrote:
>
>   git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc.git tags/armsoc-drivers

This caused a surprising number of kernel file rebuilds for me, and
the reason was

>  include/linux/mod_devicetable.h                                     |   9 +

It turns out that the above is indirectly included from a _lot_ of
code device header files.

The reason seems to be the various 'struct *_device_id' declarations,
that then all the different header files want.

So a tiny change in an oddball header file causes a lot of recompiles.

Oh well. I don't know if there is anything to be done, but I did react
to how some surprising changes cause a lot of build activity, and it's
not always obvious.

                Linus
Russell King (Oracle) March 6, 2019, 6:15 p.m. UTC | #2
On Wed, Mar 06, 2019 at 10:09:28AM -0800, Linus Torvalds wrote:
> On Wed, Mar 6, 2019 at 7:34 AM Arnd Bergmann <arnd@arndb.de> wrote:
> >
> >   git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc.git tags/armsoc-drivers
> 
> This caused a surprising number of kernel file rebuilds for me, and
> the reason was
> 
> >  include/linux/mod_devicetable.h                                     |   9 +
> 
> It turns out that the above is indirectly included from a _lot_ of
> code device header files.
> 
> The reason seems to be the various 'struct *_device_id' declarations,
> that then all the different header files want.
> 
> So a tiny change in an oddball header file causes a lot of recompiles.
> 
> Oh well. I don't know if there is anything to be done, but I did react
> to how some surprising changes cause a lot of build activity, and it's
> not always obvious.

Would it be worth splitting up mod_devicetable.h and having drivers
include just the bus-specific device table header(s) that the driver
requires?
Linus Torvalds March 6, 2019, 6:28 p.m. UTC | #3
On Wed, Mar 6, 2019 at 10:16 AM Russell King - ARM Linux admin
<linux@armlinux.org.uk> wrote:
>
> Would it be worth splitting up mod_devicetable.h and having drivers
> include just the bus-specific device table header(s) that the driver
> requires?

That would certainly help rebuilds when it changes.

But maybe those changes are just not common enough to worry about, and
maybe it would result in more maintenance pain. Who knows?

I just wanted to mention it since it surprised me and I spent the few
minutes to figure out what the offending header file was, and see if
somebody feels motivated.

It does seem a bit pointless and wrong to have the core acpi.h header
file include this, and then cause files to be recompiled just because
some entirely unrelated device ID model changed.

So maybe it would indeed be better having each device type have its
own header file ("include/linux/acpi_devicetable.h"), and then for the
(few) cases that might want to handle _any_ type could include that
"mod_devicetable.h" that then just aggregates them?

But as mentioned, I'm not sure it's worth it, just throwing this issue
out to see what people think.

            Linus
pr-tracker-bot@kernel.org March 6, 2019, 6:30 p.m. UTC | #4
The pull request you sent on Wed, 6 Mar 2019 16:34:07 +0100:

> git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc.git tags/armsoc-drivers

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/384d11fa0e2ca15a3e7e52db34a4e43bedf0dc70

Thank you!