]> Git Repo - linux.git/commitdiff
Merge tag 'arm-drivers-6.1' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
authorLinus Torvalds <[email protected]>
Thu, 6 Oct 2022 18:04:57 +0000 (11:04 -0700)
committerLinus Torvalds <[email protected]>
Thu, 6 Oct 2022 18:04:57 +0000 (11:04 -0700)
Pull ARM driver updates from Arnd Bergmann:
 "The drivers branch for 6.1 is a bit larger than for most releases.

  Most of the changes come from SoC maintainers for the drivers/soc
  subsystem:

   - A new driver for error handling on the NVIDIA Tegra 'control
     backbone' bus.

   - A new driver for Qualcomm LLCC/DDR bandwidth measurement

   - New Rockchip rv1126 and rk3588 power domain drivers

   - DT binding updates for memory controllers, older Rockchip SoCs,
     various Mediatek devices, Qualcomm SCM firmware

   - Minor updates to Hisilicon LPC bus, the Allwinner SRAM driver, the
     Apple rtkit firmware driver, Tegra firmware

   - Minor updates for SoC drivers (Samsung, Mediatek, Renesas, Tegra,
     Qualcomm, Broadcom, NXP, ...)

  There are also some separate subsystem with downstream maintainers
  that merge updates this way:

   - Various updates and new drivers in the memory controller subsystem
     for Mediatek and Broadcom SoCs

   - Small set of changes in preparation to add support for FF-A v1.1
     specification later, in the Arm FF-A firmware subsystem

   - debugfs support in the PSCI firmware subsystem"

* tag 'arm-drivers-6.1' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (149 commits)
  ARM: remove check for CONFIG_DEBUG_LL_SER3
  firmware/psci: Add debugfs support to ease debugging
  firmware/psci: Print a warning if PSCI doesn't accept PC mode
  dt-bindings: memory: snps,dw-umctl2-ddrc: Extend schema with IRQs/resets/clocks props
  dt-bindings: memory: snps,dw-umctl2-ddrc: Replace opencoded numbers with macros
  dt-bindings: memory: snps,dw-umctl2-ddrc: Use more descriptive device name
  dt-bindings: memory: synopsys,ddrc-ecc: Detach Zynq DDRC controller support
  soc: sunxi: sram: Add support for the D1 system control
  soc: sunxi: sram: Export the LDO control register
  soc: sunxi: sram: Save a pointer to the OF match data
  soc: sunxi: sram: Return void from the release function
  soc: apple: rtkit: Add apple_rtkit_poll
  soc: imx: add i.MX93 media blk ctrl driver
  soc: imx: add i.MX93 SRC power domain driver
  soc: imx: imx8m-blk-ctrl: Use genpd_xlate_onecell
  soc: imx: imx8mp-blk-ctrl: handle PCIe PHY resets
  soc: imx: imx8m-blk-ctrl: add i.MX8MP VPU blk ctrl
  soc: imx: add i.MX8MP HDMI blk ctrl HDCP/HRV_MWR
  soc: imx: add icc paths for i.MX8MP hsio/hdmi blk ctrl
  soc: imx: add icc paths for i.MX8MP media blk ctrl
  ...

1  2 
MAINTAINERS
drivers/firmware/psci/psci.c
drivers/i2c/busses/Kconfig
drivers/soc/bcm/brcmstb/pm/pm-arm.c
drivers/soc/imx/imx8m-blk-ctrl.c

diff --combined MAINTAINERS
index dc160146fe6405f4e529f754a4669c1bf65265ad,7b1708a06885e5142e672dd70e31c9377eddd79f..5734019adb08fb21ed0af201a73589741cbd1473
@@@ -348,6 -348,7 +348,6 @@@ M: "Rafael J. Wysocki" <[email protected]
  R:    Len Brown <[email protected]>
  L:    [email protected]
  S:    Supported
 -W:    https://01.org/linux-acpi
  Q:    https://patchwork.kernel.org/project/linux-acpi/list/
  B:    https://bugzilla.kernel.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
@@@ -426,6 -427,7 +426,6 @@@ M: Rafael J. Wysocki <[email protected]
  R:    Zhang Rui <[email protected]>
  L:    [email protected]
  S:    Supported
 -W:    https://01.org/linux-acpi
  B:    https://bugzilla.kernel.org
  F:    drivers/acpi/*thermal*
  
@@@ -669,8 -671,7 +669,8 @@@ F: fs/afs
  F:    include/trace/events/afs.h
  
  AGPGART DRIVER
 -M:    David Airlie <[email protected]>
 +M:    David Airlie <[email protected]>
 +L:    [email protected]
  S:    Maintained
  T:    git git://anongit.freedesktop.org/drm/drm
  F:    drivers/char/agp/
@@@ -819,13 -820,6 +819,13 @@@ L:       [email protected]
  S:    Maintained
  F:    drivers/staging/media/sunxi/cedrus/
  
 +ALLWINNER DMIC DRIVERS
 +M:    Ban Tao <[email protected]>
 +L:    [email protected] (moderated for non-subscribers)
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/sound/allwinner,sun50i-h6-dmic.yaml
 +F:    sound/soc/sunxi/sun50i-dmic.c
 +
  ALPHA PORT
  M:    Richard Henderson <[email protected]>
  M:    Ivan Kokshaysky <[email protected]>
@@@ -884,13 -878,6 +884,13 @@@ L:       [email protected]
  S:    Maintained
  F:    drivers/net/ethernet/altera/
  
 +ALTERA TSE PCS
 +M:    Maxime Chevallier <[email protected]>
 +L:    [email protected]
 +S:    Supported
 +F:    drivers/net/pcs/pcs-altera-tse.c
 +F:    include/linux/pcs-altera-tse.h
 +
  ALTERA UART/JTAG UART SERIAL DRIVERS
  M:    Tobias Klauser <[email protected]>
  L:    [email protected]
@@@ -1023,6 -1010,7 +1023,6 @@@ F:      drivers/spi/spi-amd.
  
  AMD MP2 I2C DRIVER
  M:    Elie Morisse <[email protected]>
 -M:    Nehal Shah <[email protected]>
  M:    Shyam Sundar S K <[email protected]>
  L:    [email protected]
  S:    Maintained
  S:    Maintained
  F:    drivers/platform/x86/amd/pmc.c
  
 +AMD PMF DRIVER
 +M:    Shyam Sundar S K <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/ABI/testing/sysfs-amd-pmf
 +F:    drivers/platform/x86/amd/pmf/
 +
  AMD HSMP DRIVER
  M:    Naveen Krishna Chatradhi <[email protected]>
  R:    Carlos Bilbao <[email protected]>
@@@ -1353,15 -1334,6 +1353,15 @@@ F:    drivers/iio/amplifiers/hmc425a.
  F:    drivers/staging/iio/*/ad*
  X:    drivers/iio/*/adjd*
  
 +ANALOG DEVICES INC MAX31760 DRIVER
 +M:    Ibrahim Tilki <[email protected]>
 +S:    Maintained
 +W:    http://wiki.analog.com/
 +W:    https://ez.analog.com/linux-software-drivers
 +F:    Documentation/devicetree/bindings/hwmon/adi,max31760.yaml
 +F:    Documentation/hwmon/max31760.rst
 +F:    drivers/hwmon/max31760.c
 +
  ANALOGBITS PLL LIBRARIES
  M:    Paul Walmsley <[email protected]>
  S:    Supported
@@@ -1831,7 -1803,7 +1831,7 @@@ N:      sun[x456789]
  N:    sun50i
  
  ARM/Amlogic Meson SoC CLOCK FRAMEWORK
 -M:    Neil Armstrong <n[email protected]>
 +M:    Neil Armstrong <n[email protected]>
  M:    Jerome Brunet <[email protected]>
  L:    [email protected]
  S:    Maintained
@@@ -1856,7 -1828,7 +1856,7 @@@ F:      Documentation/devicetree/bindings/so
  F:    sound/soc/meson/
  
  ARM/Amlogic Meson SoC support
 -M:    Neil Armstrong <n[email protected]>
 +M:    Neil Armstrong <n[email protected]>
  M:    Kevin Hilman <[email protected]>
  R:    Jerome Brunet <[email protected]>
  R:    Martin Blumenstingl <[email protected]>
@@@ -1927,15 -1899,6 +1927,15 @@@ F:    include/dt-bindings/pinctrl/apple.
  F:    include/linux/apple-mailbox.h
  F:    include/linux/soc/apple/*
  
 +ARM/APPLE MACHINE SOUND DRIVERS
 +M:    Martin Povišer <[email protected]>
 +L:    [email protected]
 +L:    [email protected] (moderated for non-subscribers)
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/sound/apple,*
 +F:    sound/soc/apple/*
 +F:    sound/soc/codecs/cs42l83-i2c.c
 +
  ARM/ARTPEC MACHINE SUPPORT
  M:    Jesper Nilsson <[email protected]>
  M:    Lars Persson <[email protected]>
@@@ -2431,7 -2394,6 +2431,7 @@@ N:      atme
  ARM/Microchip Sparx5 SoC support
  M:    Lars Povlsen <[email protected]>
  M:    Steen Hegelund <[email protected]>
 +M:    Daniel Machon <[email protected]>
  M:    [email protected]
  L:    [email protected] (moderated for non-subscribers)
  S:    Supported
@@@ -2569,7 -2531,7 +2569,7 @@@ W:      http://www.digriz.org.uk/ts78xx/kern
  F:    arch/arm/mach-orion5x/ts78xx-*
  
  ARM/OXNAS platform support
 -M:    Neil Armstrong <n[email protected]>
 +M:    Neil Armstrong <n[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
@@@ -2617,7 -2579,7 +2617,7 @@@ W:      http://www.armlinux.org.uk
  
  ARM/QUALCOMM SUPPORT
  M:    Andy Gross <[email protected]>
 -M:    Bjorn Andersson <bjorn.andersson@linaro.org>
 +M:    Bjorn Andersson <andersson@kernel.org>
  R:    Konrad Dybcio <[email protected]>
  L:    [email protected]
  S:    Maintained
@@@ -2626,7 -2588,6 +2626,7 @@@ F:      Documentation/devicetree/bindings/*/
  F:    Documentation/devicetree/bindings/soc/qcom/
  F:    arch/arm/boot/dts/qcom-*.dts
  F:    arch/arm/boot/dts/qcom-*.dtsi
 +F:    arch/arm/configs/qcom_defconfig
  F:    arch/arm/mach-qcom/
  F:    arch/arm64/boot/dts/qcom/
  F:    drivers/*/*/qcom*
@@@ -2709,6 -2670,7 +2709,6 @@@ M:      Russell King <[email protected]
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
  W:    http://www.armlinux.org.uk/
 -F:    arch/arm/include/asm/hardware/entry-macro-iomd.S
  F:    arch/arm/include/asm/hardware/ioc.h
  F:    arch/arm/include/asm/hardware/iomd.h
  F:    arch/arm/include/asm/hardware/memc.h
@@@ -3125,6 -3087,8 +3125,8 @@@ W:      http://wiki.xilinx.co
  T:    git https://github.com/Xilinx/linux-xlnx.git
  F:    Documentation/devicetree/bindings/i2c/cdns,i2c-r1p10.yaml
  F:    Documentation/devicetree/bindings/i2c/xlnx,xps-iic-2.00.a.yaml
+ F:    Documentation/devicetree/bindings/memory-controllers/snps,dw-umctl2-ddrc.yaml
+ F:    Documentation/devicetree/bindings/memory-controllers/xlnx,zynq-ddrc-a05.yaml
  F:    Documentation/devicetree/bindings/spi/xlnx,zynq-qspi.yaml
  F:    arch/arm/mach-zynq/
  F:    drivers/clocksource/timer-cadence-ttc.c
  S:    Maintained
  F:    drivers/hwmon/asus_wmi_sensors.c
  
 -ASUS WMI EC HARDWARE MONITOR DRIVER
 -M:    Eugene Shalygin <[email protected]>
 -M:    Denis Pauk <[email protected]>
 -L:    [email protected]
 -S:    Maintained
 -F:    drivers/hwmon/asus_wmi_ec_sensors.c
 -
  ASUS EC HARDWARE MONITOR DRIVER
  M:    Eugene Shalygin <[email protected]>
  L:    [email protected]
@@@ -3856,7 -3827,6 +3858,7 @@@ F:      kernel/bpf/dispatcher.
  F:    kernel/bpf/trampoline.c
  F:    include/linux/bpf*
  F:    include/linux/filter.h
 +F:    include/linux/tnum.h
  
  BPF [BTF]
  M:    Martin KaFai Lau <[email protected]>
@@@ -4928,7 -4898,6 +4930,7 @@@ M:      Prashant Malani <[email protected]
  L:    [email protected]
  S:    Maintained
  F:    drivers/platform/chrome/cros_ec_typec.c
 +F:    drivers/platform/chrome/cros_typec_switch.c
  
  CHROMEOS EC USB PD NOTIFY DRIVER
  M:    Prashant Malani <[email protected]>
@@@ -5278,7 -5247,6 +5280,7 @@@ F:      block/blk-throttle.
  F:    include/linux/blk-cgroup.h
  
  CONTROL GROUP - CPUSET
 +M:    Waiman Long <[email protected]>
  M:    Zefan Li <[email protected]>
  L:    [email protected]
  S:    Maintained
@@@ -5407,8 -5375,8 +5409,8 @@@ T:      git git://git.kernel.org/pub/scm/lin
  F:    drivers/cpuidle/cpuidle-big_little.c
  
  CPUIDLE DRIVER - ARM EXYNOS
- M:    Bartlomiej Zolnierkiewicz <[email protected]>
  M:    Daniel Lezcano <[email protected]>
+ R:    Krzysztof Kozlowski <[email protected]>
  M:    Kukjin Kim <[email protected]>
  L:    [email protected]
  L:    [email protected]
@@@ -5756,6 -5724,13 +5758,6 @@@ F:     include/linux/tfrc.
  F:    include/uapi/linux/dccp.h
  F:    net/dccp/
  
 -DECnet NETWORK LAYER
 -L:    [email protected]
 -S:    Orphan
 -W:    http://linux-decnet.sourceforge.net
 -F:    Documentation/networking/decnet.rst
 -F:    net/decnet/
 -
  DECSTATION PLATFORM SUPPORT
  M:    "Maciej W. Rozycki" <[email protected]>
  L:    [email protected]
@@@ -6208,7 -6183,7 +6210,7 @@@ F:      Documentation/devicetree/bindings/me
  F:    drivers/memory/samsung/exynos5422-dmc.c
  
  DME1737 HARDWARE MONITOR DRIVER
 -M:    Juerg Haefliger <juergh@gmail.com>
 +M:    Juerg Haefliger <juergh@proton.me>
  L:    [email protected]
  S:    Maintained
  F:    Documentation/hwmon/dme1737.rst
@@@ -6448,11 -6423,6 +6450,11 @@@ S:    Maintaine
  F:    Documentation/devicetree/bindings/display/panel/feiyang,fy07024di26a30d.yaml
  F:    drivers/gpu/drm/panel/panel-feiyang-fy07024di26a30d.c
  
 +DRM DRIVER FOR GENERIC EDP PANELS
 +R:    Douglas Anderson <[email protected]>
 +F:    Documentation/devicetree/bindings/display/panel/panel-edp.yaml
 +F:    drivers/gpu/drm/panel/panel-edp.c
 +
  DRM DRIVER FOR GENERIC USB DISPLAY
  M:    Noralf Trønnes <[email protected]>
  S:    Maintained
@@@ -6785,7 -6755,7 +6787,7 @@@ F:      Documentation/devicetree/bindings/di
  F:    drivers/gpu/drm/panel/panel-widechips-ws2401.c
  
  DRM DRIVERS
 -M:    David Airlie <airlied@linux.ie>
 +M:    David Airlie <airlied@gmail.com>
  M:    Daniel Vetter <[email protected]>
  L:    [email protected]
  S:    Maintained
@@@ -6824,7 -6794,7 +6826,7 @@@ F:      Documentation/devicetree/bindings/di
  F:    drivers/gpu/drm/sun4i/
  
  DRM DRIVERS FOR AMLOGIC SOCS
 -M:    Neil Armstrong <n[email protected]>
 +M:    Neil Armstrong <n[email protected]>
  L:    [email protected]
  L:    [email protected]
  S:    Supported
@@@ -6846,7 -6816,7 +6848,7 @@@ F:      drivers/gpu/drm/atmel-hlcdc
  
  DRM DRIVERS FOR BRIDGE CHIPS
  M:    Andrzej Hajda <[email protected]>
 -M:    Neil Armstrong <n[email protected]>
 +M:    Neil Armstrong <n[email protected]>
  M:    Robert Foss <[email protected]>
  R:    Laurent Pinchart <[email protected]>
  R:    Jonas Karlman <[email protected]>
@@@ -7566,7 -7536,7 +7568,7 @@@ M:      Adrian Hunter <[email protected]
  M:    Ritesh Harjani <[email protected]>
  M:    Asutosh Das <[email protected]>
  L:    [email protected]
 -S:    Maintained
 +S:    Supported
  F:    drivers/mmc/host/cqhci*
  
  EMULEX 10Gbps iSCSI - OneConnect DRIVER
@@@ -7719,6 -7689,7 +7721,6 @@@ R:      Kees Cook <[email protected]
  L:    [email protected]
  S:    Supported
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git for-next/execve
 -F:    arch/alpha/kernel/binfmt_loader.c
  F:    fs/*binfmt_*.c
  F:    fs/exec.c
  F:    include/linux/binfmts.h
@@@ -8035,7 -8006,6 +8037,7 @@@ L:      [email protected]
  S:    Supported
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git for-next/hardening
  F:    include/linux/fortify-string.h
 +F:    lib/fortify_kunit.c
  F:    lib/test_fortify/*
  F:    scripts/test_fortify.sh
  K:    \b__NO_FORTIFY\b
@@@ -8684,8 -8654,8 +8686,8 @@@ F:      drivers/input/touchscreen/goodix
  
  GOOGLE ETHERNET DRIVERS
  M:    Jeroen de Borst <[email protected]>
 -R:    Catherine Sullivan <[email protected]>
 -R:    David Awogbemila <awogbemila@google.com>
 +M:    Catherine Sullivan <[email protected]>
 +R:    Shailend Chand <shailend@google.com>
  L:    [email protected]
  S:    Supported
  F:    Documentation/networking/device_drivers/ethernet/google/gve.rst
@@@ -8975,7 -8945,7 +8977,7 @@@ F:      include/linux/hw_random.
  
  HARDWARE SPINLOCK CORE
  M:    Ohad Ben-Cohen <[email protected]>
 -M:    Bjorn Andersson <bjorn.andersson@linaro.org>
 +M:    Bjorn Andersson <andersson@kernel.org>
  R:    Baolin Wang <[email protected]>
  L:    [email protected]
  S:    Maintained
@@@ -9154,7 -9124,7 +9156,7 @@@ S:      Maintaine
  F:    drivers/dma/hisi_dma.c
  
  HISILICON GPIO DRIVER
 -M:    Luo Jiaxing <luojiaxing@huawei.com>
 +M:    Jay Fang <f.fangjian@huawei.com>
  L:    [email protected]
  S:    Maintained
  F:    drivers/gpio/gpio-hisi.c
@@@ -9240,8 -9210,8 +9242,8 @@@ F:      Documentation/ABI/testing/debugfs-hi
  F:    drivers/crypto/hisilicon/zip/
  
  HISILICON ROCE DRIVER
 +M:    Haoyue Xu <[email protected]>
  M:    Wenpeng Liang <[email protected]>
 -M:    Weihang Li <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    Documentation/devicetree/bindings/infiniband/hisilicon-hns-roce.txt
@@@ -10064,7 -10034,6 +10066,7 @@@ F:   Documentation/devicetree/bindings/in
  F:    Documentation/devicetree/bindings/serio/
  F:    Documentation/input/
  F:    drivers/input/
 +F:    include/dt-bindings/input/
  F:    include/linux/input.h
  F:    include/linux/input/
  F:    include/uapi/linux/input-event-codes.h
@@@ -10410,6 -10379,7 +10412,6 @@@ INTEL MENLOW THERMAL DRIVE
  M:    Sujith Thomas <[email protected]>
  L:    [email protected]
  S:    Supported
 -W:    https://01.org/linux-acpi
  F:    drivers/thermal/intel/intel_menlow.c
  
  INTEL P-Unit IPC DRIVER
@@@ -10859,7 -10829,7 +10861,7 @@@ F:   drivers/media/tuners/it913x
  
  ITE IT66121 HDMI BRIDGE DRIVER
  M:    Phong LE <[email protected]>
 -M:    Neil Armstrong <n[email protected]>
 +M:    Neil Armstrong <n[email protected]>
  S:    Maintained
  T:    git git://anongit.freedesktop.org/drm/drm-misc
  F:    Documentation/devicetree/bindings/display/bridge/ite,it66121.yaml
@@@ -11378,7 -11348,7 +11380,7 @@@ F:   kernel/debug
  F:    kernel/module/kdb.c
  
  KHADAS MCU MFD DRIVER
 -M:    Neil Armstrong <n[email protected]>
 +M:    Neil Armstrong <n[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    Documentation/devicetree/bindings/mfd/khadas,mcu.yaml
@@@ -12441,7 -12411,6 +12443,6 @@@ F:   drivers/power/supply/max77976_charge
  
  MAXIM MUIC CHARGER DRIVERS FOR EXYNOS BASED BOARDS
  M:    Krzysztof Kozlowski <[email protected]>
- M:    Bartlomiej Zolnierkiewicz <[email protected]>
  L:    [email protected]
  S:    Supported
  B:    mailto:[email protected]
@@@ -12453,7 -12422,6 +12454,6 @@@ F:   drivers/power/supply/max77693_charge
  MAXIM PMIC AND MUIC DRIVERS FOR EXYNOS BASED BOARDS
  M:    Chanwoo Choi <[email protected]>
  M:    Krzysztof Kozlowski <[email protected]>
- M:    Bartlomiej Zolnierkiewicz <[email protected]>
  L:    [email protected]
  S:    Supported
  B:    mailto:[email protected]
@@@ -13014,9 -12982,9 +13014,9 @@@ F:   drivers/input/touchscreen/melfas_mip
  
  MELLANOX BLUEFIELD I2C DRIVER
  M:    Khalil Blaiech <[email protected]>
 +M:    Asmaa Mnebhi <[email protected]>
  L:    [email protected]
  S:    Supported
 -F:    Documentation/devicetree/bindings/i2c/mellanox,i2c-mlxbf.yaml
  F:    drivers/i2c/busses/i2c-mlxbf.c
  
  MELLANOX ETHERNET DRIVER (mlx4_en)
@@@ -13249,7 -13217,7 +13249,7 @@@ S:   Maintaine
  F:    drivers/watchdog/menz69_wdt.c
  
  MESON AO CEC DRIVER FOR AMLOGIC SOCS
 -M:    Neil Armstrong <n[email protected]>
 +M:    Neil Armstrong <n[email protected]>
  L:    [email protected]
  L:    [email protected]
  S:    Supported
@@@ -13260,7 -13228,7 +13260,7 @@@ F:   drivers/media/cec/platform/meson/ao-
  F:    drivers/media/cec/platform/meson/ao-cec.c
  
  MESON GE2D DRIVER FOR AMLOGIC SOCS
 -M:    Neil Armstrong <n[email protected]>
 +M:    Neil Armstrong <n[email protected]>
  L:    [email protected]
  L:    [email protected]
  S:    Supported
@@@ -13276,7 -13244,7 +13276,7 @@@ F:   Documentation/devicetree/bindings/mt
  F:    drivers/mtd/nand/raw/meson_*
  
  MESON VIDEO DECODER DRIVER FOR AMLOGIC SOCS
 -M:    Neil Armstrong <n[email protected]>
 +M:    Neil Armstrong <n[email protected]>
  L:    [email protected]
  L:    [email protected]
  S:    Supported
@@@ -13465,14 -13433,6 +13465,14 @@@ F: Documentation/devicetree/bindings/nv
  F:    drivers/nvmem/microchip-otpc.c
  F:    include/dt-bindings/nvmem/microchip,sama7g5-otpc.h
  
 +MICROCHIP PCI1XXXX I2C DRIVER
 +M:    Tharun Kumar P <[email protected]>
 +M:    Kumaravel Thiagarajan <[email protected]>
 +M:    Microchip Linux Driver Support <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/i2c/busses/i2c-mchp-pci1xxxx.c
 +
  MICROCHIP PWM DRIVER
  M:    Claudiu Beznea <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
@@@ -14488,7 -14448,6 +14488,7 @@@ M:   Willy Tarreau <[email protected]
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/wtarreau/nolibc.git
  F:    tools/include/nolibc/
 +F:    tools/testing/selftests/nolibc/
  
  NSDEPS
  M:    Matthias Maennich <[email protected]>
@@@ -14571,7 -14530,6 +14571,7 @@@ M:   Daniel Dadap <[email protected]
  L:    [email protected]
  S:    Supported
  F:    drivers/platform/x86/nvidia-wmi-ec-backlight.c
 +F:    include/linux/platform_data/x86/nvidia-wmi-ec-backlight.h
  
  NVM EXPRESS DRIVER
  M:    Keith Busch <[email protected]>
@@@ -14787,13 -14745,6 +14787,13 @@@ F: net/dsa/tag_ocelot.
  F:    net/dsa/tag_ocelot_8021q.c
  F:    tools/testing/selftests/drivers/net/ocelot/*
  
 +OCELOT EXTERNAL SWITCH CONTROL
 +M:    Colin Foster <[email protected]>
 +S:    Supported
 +F:    Documentation/devicetree/bindings/mfd/mscc,ocelot.yaml
 +F:    drivers/mfd/ocelot*
 +F:    include/linux/mfd/ocelot.h
 +
  OCXL (Open Coherent Accelerator Processor Interface OpenCAPI) DRIVER
  M:    Frederic Barrat <[email protected]>
  M:    Andrew Donnellan <[email protected]>
@@@ -14988,7 -14939,6 +14988,7 @@@ F:   drivers/regulator/palmas-regulator*.
  F:    drivers/regulator/pbias-regulator.c
  F:    drivers/regulator/tps65217-regulator.c
  F:    drivers/regulator/tps65218-regulator.c
 +F:    drivers/regulator/tps65219-regulator.c
  F:    drivers/regulator/tps65910-regulator.c
  F:    drivers/regulator/twl-regulator.c
  F:    drivers/regulator/twl6030-regulator.c
@@@ -16174,7 -16124,7 +16174,7 @@@ F:   drivers/gpio/gpio-sama5d2-piobu.
  F:    drivers/pinctrl/pinctrl-at91*
  
  PIN CONTROLLER - QUALCOMM
 -M:    Bjorn Andersson <bjorn.andersson@linaro.org>
 +M:    Bjorn Andersson <andersson@kernel.org>
  L:    [email protected]
  S:    Maintained
  F:    Documentation/devicetree/bindings/pinctrl/qcom,*.txt
@@@ -16587,14 -16537,6 +16587,6 @@@ T:  git git://linuxtv.org/media_tree.gi
  F:    drivers/media/usb/pwc/*
  F:    include/trace/events/pwc.h
  
- PWM FAN DRIVER
- M:    Bartlomiej Zolnierkiewicz <[email protected]>
- L:    [email protected]
- S:    Supported
- F:    Documentation/devicetree/bindings/hwmon/pwm-fan.txt
- F:    Documentation/hwmon/pwm-fan.rst
- F:    drivers/hwmon/pwm-fan.c
  PWM IR Transmitter
  M:    Sean Young <[email protected]>
  L:    [email protected]
@@@ -16663,9 -16605,6 +16655,9 @@@ M:   Srinivas Kandagatla <srinivas.kandag
  M:    Banajit Goswami <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  S:    Supported
 +F:    Documentation/devicetree/bindings/soc/qcom/qcom,apr.yaml
 +F:    Documentation/devicetree/bindings/sound/qcom,*
 +F:    drivers/soc/qcom/apr.c
  F:    include/dt-bindings/sound/qcom,wcd9335.h
  F:    sound/soc/codecs/lpass-rx-macro.*
  F:    sound/soc/codecs/lpass-tx-macro.*
@@@ -16870,7 -16809,7 +16862,7 @@@ F:   Documentation/devicetree/bindings/me
  F:    drivers/media/platform/qcom/camss/
  
  QUALCOMM CLOCK DRIVERS
 -M:    Bjorn Andersson <bjorn.andersson@linaro.org>
 +M:    Bjorn Andersson <andersson@kernel.org>
  L:    [email protected]
  S:    Supported
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux.git
@@@ -16909,7 -16848,6 +16901,7 @@@ F:   drivers/net/ethernet/qualcomm/emac
  
  QUALCOMM ETHQOS ETHERNET DRIVER
  M:    Vinod Koul <[email protected]>
 +R:    Bhupesh Sharma <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    Documentation/devicetree/bindings/net/qcom,ethqos.txt
@@@ -17360,7 -17298,7 +17352,7 @@@ S:   Supporte
  F:    fs/reiserfs/
  
  REMOTE PROCESSOR (REMOTEPROC) SUBSYSTEM
 -M:    Bjorn Andersson <bjorn.andersson@linaro.org>
 +M:    Bjorn Andersson <andersson@kernel.org>
  M:    Mathieu Poirier <[email protected]>
  L:    [email protected]
  S:    Maintained
@@@ -17373,7 -17311,7 +17365,7 @@@ F:   include/linux/remoteproc.
  F:    include/linux/remoteproc/
  
  REMOTE PROCESSOR MESSAGING (RPMSG) SUBSYSTEM
 -M:    Bjorn Andersson <bjorn.andersson@linaro.org>
 +M:    Bjorn Andersson <andersson@kernel.org>
  M:    Mathieu Poirier <[email protected]>
  L:    [email protected]
  S:    Maintained
@@@ -17585,24 -17523,13 +17577,24 @@@ M:        Conor Dooley <conor.dooley@microchip
  M:    Daire McNamara <[email protected]>
  L:    [email protected]
  S:    Supported
 +F:    Documentation/devicetree/bindings/clock/microchip,mpfs.yaml
 +F:    Documentation/devicetree/bindings/gpio/microchip,mpfs-gpio.yaml
 +F:    Documentation/devicetree/bindings/i2c/microchip,corei2c.yaml
 +F:    Documentation/devicetree/bindings/mailbox/microchip,mpfs-mailbox.yaml
 +F:    Documentation/devicetree/bindings/net/can/microchip,mpfs-can.yaml
 +F:    Documentation/devicetree/bindings/pwm/microchip,corepwm.yaml
 +F:    Documentation/devicetree/bindings/soc/microchip/microchip,mpfs-sys-controller.yaml
 +F:    Documentation/devicetree/bindings/spi/microchip,mpfs-spi.yaml
 +F:    Documentation/devicetree/bindings/usb/microchip,mpfs-musb.yaml
  F:    arch/riscv/boot/dts/microchip/
  F:    drivers/char/hw_random/mpfs-rng.c
  F:    drivers/clk/microchip/clk-mpfs.c
 +F:    drivers/i2c/busses/i2c-microchip-core.c
  F:    drivers/mailbox/mailbox-mpfs.c
  F:    drivers/pci/controller/pcie-microchip-host.c
  F:    drivers/rtc/rtc-mpfs.c
  F:    drivers/soc/microchip/
 +F:    drivers/spi/spi-microchip-core-qspi.c
  F:    drivers/spi/spi-microchip-core.c
  F:    drivers/usb/musb/mpfs.c
  F:    include/soc/microchip/mpfs.h
  S:    Maintained
  F:    drivers/infiniband/ulp/rtrs/
  
 +RUNTIME VERIFICATION (RV)
 +M:    Daniel Bristot de Oliveira <[email protected]>
 +M:    Steven Rostedt <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/trace/rv/
 +F:    include/linux/rv.h
 +F:    include/rv/
 +F:    kernel/trace/rv/
 +F:    tools/verification/
 +
 +RUST
 +M:    Miguel Ojeda <[email protected]>
 +M:    Alex Gaynor <[email protected]>
 +M:    Wedson Almeida Filho <[email protected]>
 +R:    Boqun Feng <[email protected]>
 +R:    Gary Guo <[email protected]>
 +R:    Björn Roy Baron <[email protected]>
 +L:    [email protected]
 +S:    Supported
 +W:    https://github.com/Rust-for-Linux/linux
 +B:    https://github.com/Rust-for-Linux/linux/issues
 +T:    git https://github.com/Rust-for-Linux/linux.git rust-next
 +F:    Documentation/rust/
 +F:    rust/
 +F:    samples/rust/
 +F:    scripts/*rust*
 +K:    \b(?i:rust)\b
 +
  RXRPC SOCKETS (AF_RXRPC)
  M:    David Howells <[email protected]>
  M:    Marc Dionne <[email protected]>
@@@ -18055,7 -17953,6 +18047,6 @@@ F:   drivers/platform/x86/samsung-laptop.
  
  SAMSUNG MULTIFUNCTION PMIC DEVICE DRIVERS
  M:    Krzysztof Kozlowski <[email protected]>
- M:    Bartlomiej Zolnierkiewicz <[email protected]>
  L:    [email protected]
  L:    [email protected]
  S:    Supported
@@@ -18350,7 -18247,7 +18341,7 @@@ F:   drivers/mmc/host/sdhci-brcmstb
  SECURE DIGITAL HOST CONTROLLER INTERFACE (SDHCI) DRIVER
  M:    Adrian Hunter <[email protected]>
  L:    [email protected]
 -S:    Maintained
 +S:    Supported
  F:    drivers/mmc/host/sdhci*
  
  SECURE DIGITAL HOST CONTROLLER INTERFACE (SDHCI) MICROCHIP DRIVER
@@@ -18373,7 -18270,7 +18364,7 @@@ S:   Maintaine
  F:    drivers/mmc/host/sdhci-spear.c
  
  SECURE DIGITAL HOST CONTROLLER INTERFACE (SDHCI) TI OMAP DRIVER
 -M:    Kishon Vijay Abraham I <kishon@ti.com>
 +M:    Vignesh Raghavendra <vigneshr@ti.com>
  L:    [email protected]
  S:    Maintained
  F:    drivers/mmc/host/sdhci-omap.c
  S:    Maintained
  F:    drivers/net/ethernet/dlink/sundance.c
  
 +SUN HAPPY MEAL ETHERNET DRIVER
 +M:    Sean Anderson <[email protected]>
 +S:    Maintained
 +F:    drivers/net/ethernet/sun/sunhme.*
 +
  SUNPLUS ETHERNET DRIVER
  M:    Wells Lu <[email protected]>
  L:    [email protected]
@@@ -20036,7 -19928,6 +20027,7 @@@ S:   Supporte
  F:    drivers/net/team/
  F:    include/linux/if_team.h
  F:    include/uapi/linux/if_team.h
 +F:    tools/testing/selftests/drivers/net/team/
  
  TECHNOLOGIC SYSTEMS TS-5500 PLATFORM SUPPORT
  M:    "Savoir-faire Linux Inc." <[email protected]>
@@@ -20687,13 -20578,6 +20678,13 @@@ Q: https://patchwork.kernel.org/project
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jarkko/linux-tpmdd.git
  F:    drivers/char/tpm/
  
 +TPS546D24 DRIVER
 +M:    Duke Du <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/hwmon/tps546d24.rst
 +F:    drivers/hwmon/pmbus/tps546d24.c
 +
  TRACING
  M:    Steven Rostedt <[email protected]>
  M:    Ingo Molnar <[email protected]>
@@@ -20707,7 -20591,6 +20698,7 @@@ F:   include/*/ftrace.
  F:    include/linux/trace*.h
  F:    include/trace/
  F:    kernel/trace/
 +F:    scripts/tracing/
  F:    tools/testing/selftests/ftrace/
  
  TRACING MMIO ACCESSES (MMIOTRACE)
@@@ -20872,7 -20755,6 +20863,7 @@@ UBLK USERSPACE BLOCK DRIVE
  M:    Ming Lei <[email protected]>
  L:    [email protected]
  S:    Maintained
 +F:    Documentation/block/ublk.rst
  F:    drivers/block/ublk_drv.c
  F:    include/uapi/linux/ublk_cmd.h
  
@@@ -21650,7 -21532,7 +21641,7 @@@ F:   drivers/gpio/gpio-virtio.
  F:    include/uapi/linux/virtio_gpio.h
  
  VIRTIO GPU DRIVER
 -M:    David Airlie <airlied@linux.ie>
 +M:    David Airlie <airlied@redhat.com>
  M:    Gerd Hoffmann <[email protected]>
  R:    Gurchetan Singh <[email protected]>
  R:    Chia-I Wu <[email protected]>
@@@ -21897,7 -21779,7 +21888,7 @@@ F:   lib/test_scanf.
  F:    lib/vsprintf.c
  
  VT1211 HARDWARE MONITOR DRIVER
 -M:    Juerg Haefliger <juergh@gmail.com>
 +M:    Juerg Haefliger <juergh@proton.me>
  L:    [email protected]
  S:    Maintained
  F:    Documentation/hwmon/vt1211.rst
@@@ -21956,11 -21838,9 +21947,11 @@@ F: drivers/input/tablet/wacom_serial4.
  
  WANGXUN ETHERNET DRIVER
  M:    Jiawen Wu <[email protected]>
 +M:    Mengyuan Lou <[email protected]>
 +W:    https://www.net-swift.com
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/networking/device_drivers/ethernet/wangxun/txgbe.rst
 +F:    Documentation/networking/device_drivers/ethernet/wangxun/*
  F:    drivers/net/ethernet/wangxun/
  
  WATCHDOG DEVICE DRIVERS
@@@ -22416,7 -22296,7 +22407,7 @@@ M:   Shubhrajyoti Datta <shubhrajyoti.dat
  R:    Srinivas Neeli <[email protected]>
  R:    Michal Simek <[email protected]>
  S:    Maintained
 -F:    Documentation/devicetree/bindings/gpio/gpio-xilinx.txt
 +F:    Documentation/devicetree/bindings/gpio/xlnx,gpio-xilinx.yaml
  F:    Documentation/devicetree/bindings/gpio/gpio-zynq.yaml
  F:    drivers/gpio/gpio-xilinx.c
  F:    drivers/gpio/gpio-zynq.c
index bc6b5a12bf7410f185276be6c04f648a75e41e57,42cae0ba10e2eefb7ccdacd13a2df8deb4150b26..e7bcfca4159f603317660d8525e6eafd4488ec94
@@@ -9,6 -9,7 +9,7 @@@
  #include <linux/acpi.h>
  #include <linux/arm-smccc.h>
  #include <linux/cpuidle.h>
+ #include <linux/debugfs.h>
  #include <linux/errno.h>
  #include <linux/linkage.h>
  #include <linux/of.h>
@@@ -163,6 -164,8 +164,8 @@@ int psci_set_osi_mode(bool enable
                        PSCI_1_0_SUSPEND_MODE_PC;
  
        err = invoke_psci_fn(PSCI_1_0_FN_SET_SUSPEND_MODE, suspend_mode, 0, 0);
+       if (err < 0)
+               pr_warn("failed to set %s mode: %d\n", enable ? "OSI" : "PC", err);
        return psci_to_linux_errno(err);
  }
  
@@@ -274,7 -277,7 +277,7 @@@ static void set_conduit(enum arm_smccc_
        psci_conduit = conduit;
  }
  
 -static int get_set_conduit_method(struct device_node *np)
 +static int get_set_conduit_method(const struct device_node *np)
  {
        const char *method;
  
@@@ -324,17 -327,130 +327,130 @@@ static void psci_sys_poweroff(void
        invoke_psci_fn(PSCI_0_2_FN_SYSTEM_OFF, 0, 0, 0);
  }
  
- static int __init psci_features(u32 psci_func_id)
+ static int psci_features(u32 psci_func_id)
  {
        return invoke_psci_fn(PSCI_1_0_FN_PSCI_FEATURES,
                              psci_func_id, 0, 0);
  }
  
+ #ifdef CONFIG_DEBUG_FS
+ #define PSCI_ID(ver, _name) \
+       { .fn = PSCI_##ver##_FN_##_name, .name = #_name, }
+ #define PSCI_ID_NATIVE(ver, _name) \
+       { .fn = PSCI_FN_NATIVE(ver, _name), .name = #_name, }
+ /* A table of all optional functions */
+ static const struct {
+       u32 fn;
+       const char *name;
+ } psci_fn_ids[] = {
+       PSCI_ID_NATIVE(0_2, MIGRATE),
+       PSCI_ID(0_2, MIGRATE_INFO_TYPE),
+       PSCI_ID_NATIVE(0_2, MIGRATE_INFO_UP_CPU),
+       PSCI_ID(1_0, CPU_FREEZE),
+       PSCI_ID_NATIVE(1_0, CPU_DEFAULT_SUSPEND),
+       PSCI_ID_NATIVE(1_0, NODE_HW_STATE),
+       PSCI_ID_NATIVE(1_0, SYSTEM_SUSPEND),
+       PSCI_ID(1_0, SET_SUSPEND_MODE),
+       PSCI_ID_NATIVE(1_0, STAT_RESIDENCY),
+       PSCI_ID_NATIVE(1_0, STAT_COUNT),
+       PSCI_ID_NATIVE(1_1, SYSTEM_RESET2),
+       PSCI_ID(1_1, MEM_PROTECT),
+       PSCI_ID_NATIVE(1_1, MEM_PROTECT_CHECK_RANGE),
+ };
+ static int psci_debugfs_read(struct seq_file *s, void *data)
+ {
+       int feature, type, i;
+       u32 ver;
+       ver = psci_ops.get_version();
+       seq_printf(s, "PSCIv%d.%d\n",
+                  PSCI_VERSION_MAJOR(ver),
+                  PSCI_VERSION_MINOR(ver));
+       /* PSCI_FEATURES is available only starting from 1.0 */
+       if (PSCI_VERSION_MAJOR(ver) < 1)
+               return 0;
+       feature = psci_features(ARM_SMCCC_VERSION_FUNC_ID);
+       if (feature != PSCI_RET_NOT_SUPPORTED) {
+               ver = invoke_psci_fn(ARM_SMCCC_VERSION_FUNC_ID, 0, 0, 0);
+               seq_printf(s, "SMC Calling Convention v%d.%d\n",
+                          PSCI_VERSION_MAJOR(ver),
+                          PSCI_VERSION_MINOR(ver));
+       } else {
+               seq_puts(s, "SMC Calling Convention v1.0 is assumed\n");
+       }
+       feature = psci_features(PSCI_FN_NATIVE(0_2, CPU_SUSPEND));
+       if (feature < 0) {
+               seq_printf(s, "PSCI_FEATURES(CPU_SUSPEND) error (%d)\n", feature);
+       } else {
+               seq_printf(s, "OSI is %ssupported\n",
+                          (feature & BIT(0)) ? "" : "not ");
+               seq_printf(s, "%s StateID format is used\n",
+                          (feature & BIT(1)) ? "Extended" : "Original");
+       }
+       type = psci_ops.migrate_info_type();
+       if (type == PSCI_0_2_TOS_UP_MIGRATE ||
+           type == PSCI_0_2_TOS_UP_NO_MIGRATE) {
+               unsigned long cpuid;
+               seq_printf(s, "Trusted OS %smigrate capable\n",
+                          type == PSCI_0_2_TOS_UP_NO_MIGRATE ? "not " : "");
+               cpuid = psci_migrate_info_up_cpu();
+               seq_printf(s, "Trusted OS resident on physical CPU 0x%lx (#%d)\n",
+                          cpuid, resident_cpu);
+       } else if (type == PSCI_0_2_TOS_MP) {
+               seq_puts(s, "Trusted OS migration not required\n");
+       } else {
+               if (type != PSCI_RET_NOT_SUPPORTED)
+                       seq_printf(s, "MIGRATE_INFO_TYPE returned unknown type (%d)\n", type);
+       }
+       for (i = 0; i < ARRAY_SIZE(psci_fn_ids); i++) {
+               feature = psci_features(psci_fn_ids[i].fn);
+               if (feature == PSCI_RET_NOT_SUPPORTED)
+                       continue;
+               if (feature < 0)
+                       seq_printf(s, "PSCI_FEATURES(%s) error (%d)\n",
+                                  psci_fn_ids[i].name, feature);
+               else
+                       seq_printf(s, "%s is supported\n", psci_fn_ids[i].name);
+       }
+       return 0;
+ }
+ static int psci_debugfs_open(struct inode *inode, struct file *f)
+ {
+       return single_open(f, psci_debugfs_read, NULL);
+ }
+ static const struct file_operations psci_debugfs_ops = {
+       .owner = THIS_MODULE,
+       .open = psci_debugfs_open,
+       .release = single_release,
+       .read = seq_read,
+       .llseek = seq_lseek
+ };
+ static int __init psci_debugfs_init(void)
+ {
+       return PTR_ERR_OR_ZERO(debugfs_create_file("psci", 0444, NULL, NULL,
+                                                  &psci_debugfs_ops));
+ }
+ late_initcall(psci_debugfs_init)
+ #endif
  #ifdef CONFIG_CPU_IDLE
  static int psci_suspend_finisher(unsigned long state)
  {
        u32 power_state = state;
 -      phys_addr_t pa_cpu_resume = __pa_symbol(function_nocfi(cpu_resume));
 +      phys_addr_t pa_cpu_resume = __pa_symbol(cpu_resume);
  
        return psci_ops.cpu_suspend(power_state, pa_cpu_resume);
  }
@@@ -359,7 -475,7 +475,7 @@@ int psci_cpu_suspend_enter(u32 state
  
  static int psci_system_suspend(unsigned long unused)
  {
 -      phys_addr_t pa_cpu_resume = __pa_symbol(function_nocfi(cpu_resume));
 +      phys_addr_t pa_cpu_resume = __pa_symbol(cpu_resume);
  
        return invoke_psci_fn(PSCI_FN_NATIVE(1_0, SYSTEM_SUSPEND),
                              pa_cpu_resume, 0, 0);
@@@ -528,7 -644,7 +644,7 @@@ typedef int (*psci_initcall_t)(const st
   *
   * Probe based on PSCI PSCI_VERSION function
   */
 -static int __init psci_0_2_init(struct device_node *np)
 +static int __init psci_0_2_init(const struct device_node *np)
  {
        int err;
  
  /*
   * PSCI < v0.2 get PSCI Function IDs via DT.
   */
 -static int __init psci_0_1_init(struct device_node *np)
 +static int __init psci_0_1_init(const struct device_node *np)
  {
        u32 id;
        int err;
        return 0;
  }
  
 -static int __init psci_1_0_init(struct device_node *np)
 +static int __init psci_1_0_init(const struct device_node *np)
  {
        int err;
  
index a8b873b30b008c6dd2d66a1f9605f76996224130,0c48d8a9f44a3404bf42a55f090d31664a35a21e..264e780ae32e1f394b80a490176d9750dbb9f7f3
@@@ -488,8 -488,8 +488,8 @@@ config I2C_BCM_KON
  
  config I2C_BRCMSTB
        tristate "BRCM Settop/DSL I2C controller"
-       depends on ARCH_BCM2835 || ARCH_BCM4908 || ARCH_BCMBCA || \
-                  ARCH_BRCMSTB || BMIPS_GENERIC || COMPILE_TEST
+       depends on ARCH_BCM2835 || ARCH_BCMBCA || ARCH_BRCMSTB || \
+                  BMIPS_GENERIC || COMPILE_TEST
        default y
        help
          If you say yes to this option, support will be included for the
@@@ -1267,16 -1267,6 +1267,16 @@@ config I2C_PARPOR
          This support is also available as a module.  If so, the module
          will be called i2c-parport.
  
 +config I2C_PCI1XXXX
 +      tristate "PCI1XXXX I2C Host Adapter"
 +      depends on PCI
 +      help
 +        If you say yes to this option, support will be included for
 +        Microchip PCI1XXXX's I2C interface.
 +
 +        This driver can also be built as a module. If so, the module will
 +        be called i2c-mchp-pci1xxxx.
 +
  config I2C_ROBOTFUZZ_OSIF
        tristate "RobotFuzz Open Source InterFace USB adapter"
        depends on USB
index 775da69b8efa80a27753b41854c5d14875de6141,7643c9ade8887a10733e7f8e7f271626038e208b..d681cd24c6e1419c35de1a637d6f51e7f91a6f98
@@@ -25,7 -25,6 +25,6 @@@
  #include <linux/kernel.h>
  #include <linux/memblock.h>
  #include <linux/module.h>
- #include <linux/notifier.h>
  #include <linux/of.h>
  #include <linux/of_address.h>
  #include <linux/panic_notifier.h>
@@@ -664,7 -663,20 +663,20 @@@ static void __iomem *brcmstb_ioremap_ma
  
        return of_io_request_and_map(dn, index, dn->full_name);
  }
+ /*
+  * The AON is a small domain in the SoC that can retain its state across
+  * various system wide sleep states and specific reset conditions; the
+  * AON DATA RAM is a small RAM of a few words (< 1KB) which can store
+  * persistent information across such events.
+  *
+  * The purpose of the below panic notifier is to help with notifying
+  * the bootloader that a panic occurred and so that it should try its
+  * best to preserve the DRAM contents holding that buffer for recovery
+  * by the kernel as opposed to wiping out DRAM clean again.
+  *
+  * Reference: comment from Florian Fainelli, at
+  * https://lore.kernel.org/lkml/[email protected]
+  */
  static int brcmstb_pm_panic_notify(struct notifier_block *nb,
                unsigned long action, void *data)
  {
@@@ -684,14 -696,13 +696,14 @@@ static int brcmstb_pm_probe(struct plat
        const struct of_device_id *of_id = NULL;
        struct device_node *dn;
        void __iomem *base;
 -      int ret, i;
 +      int ret, i, s;
  
        /* AON ctrl registers */
        base = brcmstb_ioremap_match(aon_ctrl_dt_ids, 0, NULL);
        if (IS_ERR(base)) {
                pr_err("error mapping AON_CTRL\n");
 -              return PTR_ERR(base);
 +              ret = PTR_ERR(base);
 +              goto aon_err;
        }
        ctrl.aon_ctrl_base = base;
  
                /* Assume standard offset */
                ctrl.aon_sram = ctrl.aon_ctrl_base +
                                     AON_CTRL_SYSTEM_DATA_RAM_OFS;
 +              s = 0;
        } else {
                ctrl.aon_sram = base;
 +              s = 1;
        }
  
        writel_relaxed(0, ctrl.aon_sram + AON_REG_PANIC);
                                     (const void **)&ddr_phy_data);
        if (IS_ERR(base)) {
                pr_err("error mapping DDR PHY\n");
 -              return PTR_ERR(base);
 +              ret = PTR_ERR(base);
 +              goto ddr_phy_err;
        }
        ctrl.support_warm_boot = ddr_phy_data->supports_warm_boot;
        ctrl.pll_status_offset = ddr_phy_data->pll_status_offset;
        for_each_matching_node(dn, ddr_shimphy_dt_ids) {
                i = ctrl.num_memc;
                if (i >= MAX_NUM_MEMC) {
 +                      of_node_put(dn);
                        pr_warn("too many MEMCs (max %d)\n", MAX_NUM_MEMC);
                        break;
                }
  
                base = of_io_request_and_map(dn, 0, dn->full_name);
                if (IS_ERR(base)) {
 +                      of_node_put(dn);
                        if (!ctrl.support_warm_boot)
                                break;
  
                        pr_err("error mapping DDR SHIMPHY %d\n", i);
 -                      return PTR_ERR(base);
 +                      ret = PTR_ERR(base);
 +                      goto ddr_shimphy_err;
                }
                ctrl.memcs[i].ddr_shimphy_base = base;
                ctrl.num_memc++;
        for_each_matching_node(dn, brcmstb_memc_of_match) {
                base = of_iomap(dn, 0);
                if (!base) {
 +                      of_node_put(dn);
                        pr_err("error mapping DDR Sequencer %d\n", i);
 -                      return -ENOMEM;
 +                      ret = -ENOMEM;
 +                      goto brcmstb_memc_err;
                }
  
                of_id = of_match_node(brcmstb_memc_of_match, dn);
                if (!of_id) {
                        iounmap(base);
 -                      return -EINVAL;
 +                      of_node_put(dn);
 +                      ret = -EINVAL;
 +                      goto brcmstb_memc_err;
                }
  
                ddr_seq_data = of_id->data;
        dn = of_find_matching_node(NULL, sram_dt_ids);
        if (!dn) {
                pr_err("SRAM not found\n");
 -              return -EINVAL;
 +              ret = -EINVAL;
 +              goto brcmstb_memc_err;
        }
  
        ret = brcmstb_init_sram(dn);
        of_node_put(dn);
        if (ret) {
                pr_err("error setting up SRAM for PM\n");
 -              return ret;
 +              goto brcmstb_memc_err;
        }
  
        ctrl.pdev = pdev;
  
        ctrl.s3_params = kmalloc(sizeof(*ctrl.s3_params), GFP_KERNEL);
 -      if (!ctrl.s3_params)
 -              return -ENOMEM;
 +      if (!ctrl.s3_params) {
 +              ret = -ENOMEM;
 +              goto s3_params_err;
 +      }
        ctrl.s3_params_pa = dma_map_single(&pdev->dev, ctrl.s3_params,
                                           sizeof(*ctrl.s3_params),
                                           DMA_TO_DEVICE);
  
  out:
        kfree(ctrl.s3_params);
 -
 +s3_params_err:
 +      iounmap(ctrl.boot_sram);
 +brcmstb_memc_err:
 +      for (i--; i >= 0; i--)
 +              iounmap(ctrl.memcs[i].ddr_ctrl);
 +ddr_shimphy_err:
 +      for (i = 0; i < ctrl.num_memc; i++)
 +              iounmap(ctrl.memcs[i].ddr_shimphy_base);
 +
 +      iounmap(ctrl.memcs[0].ddr_phy_base);
 +ddr_phy_err:
 +      iounmap(ctrl.aon_ctrl_base);
 +      if (s)
 +              iounmap(ctrl.aon_sram);
 +aon_err:
        pr_warn("PM: initialization failed with code %d\n", ret);
  
        return ret;
index 972f289d300a05fd07a7a4e4bfdd68cf3ec70dc1,29e25a9ecdcbc4c995afa7be85b5060731252088..00879615a701588f3c52ef025958ba3dd3b3a4fc
@@@ -5,6 -5,7 +5,7 @@@
   */
  
  #include <linux/device.h>
+ #include <linux/interconnect.h>
  #include <linux/module.h>
  #include <linux/of_device.h>
  #include <linux/platform_device.h>
@@@ -37,6 -38,8 +38,8 @@@ struct imx8m_blk_ctrl_domain_data 
        const char *name;
        const char * const *clk_names;
        int num_clks;
+       const char * const *path_names;
+       int num_paths;
        const char *gpc_name;
        u32 rst_mask;
        u32 clk_mask;
  };
  
  #define DOMAIN_MAX_CLKS 4
+ #define DOMAIN_MAX_PATHS 4
  
  struct imx8m_blk_ctrl_domain {
        struct generic_pm_domain genpd;
        const struct imx8m_blk_ctrl_domain_data *data;
        struct clk_bulk_data clks[DOMAIN_MAX_CLKS];
+       struct icc_bulk_data paths[DOMAIN_MAX_PATHS];
        struct device *power_dev;
        struct imx8m_blk_ctrl *bc;
+       int num_paths;
  };
  
  struct imx8m_blk_ctrl_data {
@@@ -117,6 -123,10 +123,10 @@@ static int imx8m_blk_ctrl_power_on(stru
        if (data->mipi_phy_rst_mask)
                regmap_set_bits(bc->regmap, BLK_MIPI_RESET_DIV, data->mipi_phy_rst_mask);
  
+       ret = icc_bulk_set_bw(domain->num_paths, domain->paths);
+       if (ret)
+               dev_err(bc->dev, "failed to set icc bw\n");
        /* disable upstream clocks */
        clk_bulk_disable_unprepare(data->num_clks, domain->clks);
  
@@@ -152,19 -162,6 +162,6 @@@ static int imx8m_blk_ctrl_power_off(str
        return 0;
  }
  
- static struct generic_pm_domain *
- imx8m_blk_ctrl_xlate(struct of_phandle_args *args, void *data)
- {
-       struct genpd_onecell_data *onecell_data = data;
-       unsigned int index = args->args[0];
-       if (args->args_count != 1 ||
-           index >= onecell_data->num_domains)
-               return ERR_PTR(-EINVAL);
-       return onecell_data->domains[index];
- }
  static struct lock_class_key blk_ctrl_genpd_lock_class;
  
  static int imx8m_blk_ctrl_probe(struct platform_device *pdev)
                return -ENOMEM;
  
        bc->onecell_data.num_domains = bc_data->num_domains;
-       bc->onecell_data.xlate = imx8m_blk_ctrl_xlate;
        bc->onecell_data.domains =
                devm_kcalloc(dev, bc_data->num_domains,
                             sizeof(struct generic_pm_domain *), GFP_KERNEL);
                int j;
  
                domain->data = data;
+               domain->num_paths = data->num_paths;
  
                for (j = 0; j < data->num_clks; j++)
                        domain->clks[j].id = data->clk_names[j];
  
+               for (j = 0; j < data->num_paths; j++) {
+                       domain->paths[j].name = data->path_names[j];
+                       /* Fake value for now, just let ICC could configure NoC mode/priority */
+                       domain->paths[j].avg_bw = 1;
+                       domain->paths[j].peak_bw = 1;
+               }
+               ret = devm_of_icc_bulk_get(dev, data->num_paths, domain->paths);
+               if (ret) {
+                       if (ret != -EPROBE_DEFER) {
+                               dev_warn_once(dev, "Could not get interconnect paths, NoC will stay unconfigured!\n");
+                               domain->num_paths = 0;
+                       } else {
+                               dev_err_probe(dev, ret, "failed to get noc entries\n");
+                               goto cleanup_pds;
+                       }
+               }
                ret = devm_clk_bulk_get(dev, data->num_clks, domain->clks);
                if (ret) {
                        dev_err_probe(dev, ret, "failed to get clock\n");
                        ret = PTR_ERR(domain->power_dev);
                        goto cleanup_pds;
                }
 -              dev_set_name(domain->power_dev, "%s", data->name);
  
                domain->genpd.name = data->name;
                domain->genpd.power_on = imx8m_blk_ctrl_power_on;
@@@ -454,6 -470,46 +469,46 @@@ static const struct imx8m_blk_ctrl_dat
        .num_domains = ARRAY_SIZE(imx8mm_vpu_blk_ctl_domain_data),
  };
  
+ static const struct imx8m_blk_ctrl_domain_data imx8mp_vpu_blk_ctl_domain_data[] = {
+       [IMX8MP_VPUBLK_PD_G1] = {
+               .name = "vpublk-g1",
+               .clk_names = (const char *[]){ "g1", },
+               .num_clks = 1,
+               .gpc_name = "g1",
+               .rst_mask = BIT(1),
+               .clk_mask = BIT(1),
+               .path_names = (const char *[]){"g1"},
+               .num_paths = 1,
+       },
+       [IMX8MP_VPUBLK_PD_G2] = {
+               .name = "vpublk-g2",
+               .clk_names = (const char *[]){ "g2", },
+               .num_clks = 1,
+               .gpc_name = "g2",
+               .rst_mask = BIT(0),
+               .clk_mask = BIT(0),
+               .path_names = (const char *[]){"g2"},
+               .num_paths = 1,
+       },
+       [IMX8MP_VPUBLK_PD_VC8000E] = {
+               .name = "vpublk-vc8000e",
+               .clk_names = (const char *[]){ "vc8000e", },
+               .num_clks = 1,
+               .gpc_name = "vc8000e",
+               .rst_mask = BIT(2),
+               .clk_mask = BIT(2),
+               .path_names = (const char *[]){"vc8000e"},
+               .num_paths = 1,
+       },
+ };
+ static const struct imx8m_blk_ctrl_data imx8mp_vpu_blk_ctl_dev_data = {
+       .max_reg = 0x18,
+       .power_notifier_fn = imx8mm_vpu_power_notifier,
+       .domains = imx8mp_vpu_blk_ctl_domain_data,
+       .num_domains = ARRAY_SIZE(imx8mp_vpu_blk_ctl_domain_data),
+ };
  static int imx8mm_disp_power_notifier(struct notifier_block *nb,
                                      unsigned long action, void *data)
  {
@@@ -649,6 -705,8 +704,8 @@@ static const struct imx8m_blk_ctrl_doma
                .gpc_name = "lcdif1",
                .rst_mask = BIT(4) | BIT(5) | BIT(23),
                .clk_mask = BIT(4) | BIT(5) | BIT(23),
+               .path_names = (const char *[]){"lcdif-rd", "lcdif-wr"},
+               .num_paths = 2,
        },
        [IMX8MP_MEDIABLK_PD_ISI] = {
                .name = "mediablk-isi",
                .gpc_name = "isi",
                .rst_mask = BIT(6) | BIT(7),
                .clk_mask = BIT(6) | BIT(7),
+               .path_names = (const char *[]){"isi0", "isi1", "isi2"},
+               .num_paths = 3,
        },
        [IMX8MP_MEDIABLK_PD_MIPI_CSI2_2] = {
                .name = "mediablk-mipi-csi2-2",
                .gpc_name = "lcdif2",
                .rst_mask = BIT(11) | BIT(12) | BIT(24),
                .clk_mask = BIT(11) | BIT(12) | BIT(24),
+               .path_names = (const char *[]){"lcdif-rd", "lcdif-wr"},
+               .num_paths = 2,
        },
        [IMX8MP_MEDIABLK_PD_ISP] = {
                .name = "mediablk-isp",
                .gpc_name = "isp",
                .rst_mask = BIT(16) | BIT(17) | BIT(18),
                .clk_mask = BIT(16) | BIT(17) | BIT(18),
+               .path_names = (const char *[]){"isp0", "isp1"},
+               .num_paths = 2,
        },
        [IMX8MP_MEDIABLK_PD_DWE] = {
                .name = "mediablk-dwe",
                .gpc_name = "dwe",
                .rst_mask = BIT(19) | BIT(20) | BIT(21),
                .clk_mask = BIT(19) | BIT(20) | BIT(21),
+               .path_names = (const char *[]){"dwe"},
+               .num_paths = 1,
        },
        [IMX8MP_MEDIABLK_PD_MIPI_DSI_2] = {
                .name = "mediablk-mipi-dsi-2",
@@@ -787,6 -853,9 +852,9 @@@ static const struct of_device_id imx8m_
        }, {
                .compatible = "fsl,imx8mq-vpu-blk-ctrl",
                .data = &imx8mq_vpu_blk_ctl_dev_data
+       }, {
+               .compatible = "fsl,imx8mp-vpu-blk-ctrl",
+               .data = &imx8mp_vpu_blk_ctl_dev_data
        }, {
                /* Sentinel */
        }
This page took 0.20285 seconds and 4 git commands to generate.