]> Git Repo - linux.git/commitdiff
Merge tag 'char-misc-5.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregk...
authorLinus Torvalds <[email protected]>
Fri, 14 Jan 2022 15:02:28 +0000 (16:02 +0100)
committerLinus Torvalds <[email protected]>
Fri, 14 Jan 2022 15:02:28 +0000 (16:02 +0100)
Pull char/misc and other driver updates from Greg KH:
 "Here is the large set of char, misc, and other "small" driver
  subsystem changes for 5.17-rc1.

  Lots of different things are in here for char/misc drivers such as:

   - habanalabs driver updates

   - mei driver updates

   - lkdtm driver updates

   - vmw_vmci driver updates

   - android binder driver updates

   - other small char/misc driver updates

  Also smaller driver subsystems have also been updated, including:

   - fpga subsystem updates

   - iio subsystem updates

   - soundwire subsystem updates

   - extcon subsystem updates

   - gnss subsystem updates

   - phy subsystem updates

   - coresight subsystem updates

   - firmware subsystem updates

   - comedi subsystem updates

   - mhi subsystem updates

   - speakup subsystem updates

   - rapidio subsystem updates

   - spmi subsystem updates

   - virtual driver updates

   - counter subsystem updates

  Too many individual changes to summarize, the shortlog contains the
  full details.

  All of these have been in linux-next for a while with no reported
  issues"

* tag 'char-misc-5.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (406 commits)
  counter: 104-quad-8: Fix use-after-free by quad8_irq_handler
  dt-bindings: mux: Document mux-states property
  dt-bindings: ti-serdes-mux: Add defines for J721S2 SoC
  counter: remove old and now unused registration API
  counter: ti-eqep: Convert to new counter registration
  counter: stm32-lptimer-cnt: Convert to new counter registration
  counter: stm32-timer-cnt: Convert to new counter registration
  counter: microchip-tcb-capture: Convert to new counter registration
  counter: ftm-quaddec: Convert to new counter registration
  counter: intel-qep: Convert to new counter registration
  counter: interrupt-cnt: Convert to new counter registration
  counter: 104-quad-8: Convert to new counter registration
  counter: Update documentation for new counter registration functions
  counter: Provide alternative counter registration functions
  counter: stm32-timer-cnt: Convert to counter_priv() wrapper
  counter: stm32-lptimer-cnt: Convert to counter_priv() wrapper
  counter: ti-eqep: Convert to counter_priv() wrapper
  counter: ftm-quaddec: Convert to counter_priv() wrapper
  counter: intel-qep: Convert to counter_priv() wrapper
  counter: microchip-tcb-capture: Convert to counter_priv() wrapper
  ...

1  2 
MAINTAINERS
drivers/base/property.c
drivers/firmware/qemu_fw_cfg.c
drivers/firmware/xilinx/zynqmp.c
drivers/misc/lkdtm/Makefile
drivers/misc/lkdtm/core.c
drivers/misc/mei/client.c
drivers/soc/xilinx/zynqmp_power.c
drivers/soundwire/qcom.c
include/linux/property.h

diff --combined MAINTAINERS
index 3b705e776cbc6357af0b55136a6bdbba706380e1,1b0fc23b59264a698af5d6bcc2c47802b2a578f2..5d0cd537803a1f56867f39d0909b3d591b91cc98
@@@ -966,7 -966,6 +966,7 @@@ F: drivers/gpu/drm/amd/include/kgd_kfd_
  F:    drivers/gpu/drm/amd/include/v9_structs.h
  F:    drivers/gpu/drm/amd/include/vi_structs.h
  F:    include/uapi/linux/kfd_ioctl.h
 +F:    include/uapi/linux/kfd_sysfs.h
  
  AMD SPI DRIVER
  M:    Sanjay R Mehta <[email protected]>
@@@ -994,13 -993,6 +994,13 @@@ S:       Supporte
  T:    git https://gitlab.freedesktop.org/agd5f/linux.git
  F:    drivers/gpu/drm/amd/pm/
  
 +AMD PSTATE DRIVER
 +M:    Huang Rui <[email protected]>
 +L:    [email protected]
 +S:    Supported
 +F:    Documentation/admin-guide/pm/amd-pstate.rst
 +F:    drivers/cpufreq/amd-pstate*
 +
  AMD PTDMA DRIVER
  M:    Sanjay R Mehta <[email protected]>
  L:    [email protected]
@@@ -1077,6 -1069,15 +1077,15 @@@ W:    http://ez.analog.com/community/linux
  F:    Documentation/devicetree/bindings/iio/adc/adi,ad7780.yaml
  F:    drivers/iio/adc/ad7780.c
  
+ ANALOG DEVICES INC AD74413R DRIVER
+ M:    Cosmin Tanislav <[email protected]>
+ L:    [email protected]
+ S:    Supported
+ W:    http://ez.analog.com/community/linux-device-drivers
+ F:    Documentation/devicetree/bindings/iio/addac/adi,ad74413r.yaml
+ F:    drivers/iio/addac/ad74413r.c
+ F:    include/dt-bindings/iio/addac/adi,ad74413r.h
  ANALOG DEVICES INC AD9389B DRIVER
  M:    Hans Verkuil <[email protected]>
  L:    [email protected]
@@@ -1147,7 -1148,6 +1156,7 @@@ ANALOG DEVICES INC ADV748X DRIVE
  M:    Kieran Bingham <[email protected]>
  L:    [email protected]
  S:    Maintained
 +F:    Documentation/devicetree/bindings/media/i2c/adv748x.yaml
  F:    drivers/media/i2c/adv748x/*
  
  ANALOG DEVICES INC ADV7511 DRIVER
@@@ -1754,21 -1754,17 +1763,21 @@@ B:   https://github.com/AsahiLinux/linux/
  C:    irc://irc.oftc.net/asahi-dev
  T:    git https://github.com/AsahiLinux/linux.git
  F:    Documentation/devicetree/bindings/arm/apple.yaml
 +F:    Documentation/devicetree/bindings/arm/apple/*
  F:    Documentation/devicetree/bindings/i2c/apple,i2c.yaml
  F:    Documentation/devicetree/bindings/interrupt-controller/apple,aic.yaml
  F:    Documentation/devicetree/bindings/mailbox/apple,mailbox.yaml
  F:    Documentation/devicetree/bindings/pci/apple,pcie.yaml
  F:    Documentation/devicetree/bindings/pinctrl/apple,pinctrl.yaml
 +F:    Documentation/devicetree/bindings/power/apple*
 +F:    Documentation/devicetree/bindings/watchdog/apple,wdt.yaml
  F:    arch/arm64/boot/dts/apple/
  F:    drivers/i2c/busses/i2c-pasemi-core.c
  F:    drivers/i2c/busses/i2c-pasemi-platform.c
  F:    drivers/irqchip/irq-apple-aic.c
  F:    drivers/mailbox/apple-mailbox.c
  F:    drivers/pinctrl/pinctrl-apple-gpio.c
 +F:    drivers/soc/apple/*
  F:    include/dt-bindings/interrupt-controller/apple-aic.h
  F:    include/dt-bindings/pinctrl/apple.h
  F:    include/linux/apple-mailbox.h
@@@ -1903,6 -1899,7 +1912,7 @@@ F:      Documentation/trace/coresight/
  F:    drivers/hwtracing/coresight/*
  F:    include/dt-bindings/arm/coresight-cti-dt.h
  F:    include/linux/coresight*
+ F:    samples/coresight/*
  F:    tools/perf/arch/arm/util/auxtrace.c
  F:    tools/perf/arch/arm/util/cs-etm.c
  F:    tools/perf/arch/arm/util/cs-etm.h
@@@ -2304,7 -2301,6 +2314,7 @@@ F:      Documentation/devicetree/bindings/gp
  F:    arch/arm/boot/dts/mstar-*
  F:    arch/arm/mach-mstar/
  F:    drivers/clk/mstar/
 +F:    drivers/clocksource/timer-msc313e.c
  F:    drivers/gpio/gpio-msc313.c
  F:    drivers/rtc/rtc-msc313.c
  F:    drivers/watchdog/msc313e_wdt.c
@@@ -2565,7 -2561,6 +2575,7 @@@ Q:      https://patchwork.kernel.org/project
  F:    Documentation/arm/samsung/
  F:    Documentation/devicetree/bindings/arm/samsung/
  F:    Documentation/devicetree/bindings/power/pd-samsung.yaml
 +F:    Documentation/devicetree/bindings/soc/samsung/
  F:    arch/arm/boot/dts/exynos*
  F:    arch/arm/boot/dts/s3c*
  F:    arch/arm/boot/dts/s5p*
@@@ -2592,7 -2587,7 +2602,7 @@@ N:      s3c64x
  N:    s5pv210
  
  ARM/SAMSUNG S5P SERIES 2D GRAPHICS ACCELERATION (G2D) SUPPORT
 -M:    Andrzej Hajda <a.hajda@samsung.com>
 +M:    Łukasz Stelmach <l.stelmach@samsung.com>
  L:    [email protected] (moderated for non-subscribers)
  L:    [email protected]
  S:    Maintained
@@@ -2616,8 -2611,7 +2626,8 @@@ S:      Maintaine
  F:    drivers/media/platform/s5p-jpeg/
  
  ARM/SAMSUNG S5P SERIES Multi Format Codec (MFC) SUPPORT
 -M:    Andrzej Hajda <[email protected]>
 +M:    Marek Szyprowski <[email protected]>
 +M:    Andrzej Hajda <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  L:    [email protected]
  S:    Maintained
  S:    Supported
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/iwamatsu/linux-visconti.git
  F:    Documentation/devicetree/bindings/arm/toshiba.yaml
 +F:    Documentation/devicetree/bindings/clock/toshiba,tmpv770x-pipllct.yaml
 +F:    Documentation/devicetree/bindings/clock/toshiba,tmpv770x-pismu.yaml
  F:    Documentation/devicetree/bindings/net/toshiba,visconti-dwmac.yaml
  F:    Documentation/devicetree/bindings/gpio/toshiba,gpio-visconti.yaml
  F:    Documentation/devicetree/bindings/pci/toshiba,visconti-pcie.yaml
  F:    Documentation/devicetree/bindings/pinctrl/toshiba,visconti-pinctrl.yaml
  F:    Documentation/devicetree/bindings/watchdog/toshiba,visconti-wdt.yaml
  F:    arch/arm64/boot/dts/toshiba/
 +F:    drivers/clk/visconti/
  F:    drivers/net/ethernet/stmicro/stmmac/dwmac-visconti.c
  F:    drivers/gpio/gpio-visconti.c
  F:    drivers/pci/controller/dwc/pcie-visconti.c
@@@ -3017,27 -3008,6 +3027,27 @@@ W:    http://acpi4asus.sf.ne
  F:    drivers/platform/x86/asus*.c
  F:    drivers/platform/x86/eeepc*.c
  
 +ASUS TF103C DOCK DRIVER
 +M:    Hans de Goede <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86.git
 +F:    drivers/platform/x86/asus-tf103c-dock.c
 +
 +ASUS WMI HARDWARE MONITOR DRIVER
 +M:    Ed Brindley <[email protected]>
 +M:    Denis Pauk <[email protected]>
 +L:    [email protected]
 +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 WIRELESS RADIO CONTROL DRIVER
  M:    João Paulo Rechi Vita <[email protected]>
  L:    [email protected]
@@@ -3420,8 -3390,6 +3430,8 @@@ M:      Jens Axboe <[email protected]
  L:    [email protected]
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git
 +F:    Documentation/ABI/stable/sysfs-block
 +F:    Documentation/block/
  F:    block/
  F:    drivers/block/
  F:    include/linux/blk*
@@@ -3611,7 -3579,7 +3621,7 @@@ R:      Florent Revest <[email protected]
  R:    Brendan Jackman <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/bpf/bpf_lsm.rst
 +F:    Documentation/bpf/prog_lsm.rst
  F:    include/linux/bpf_lsm.h
  F:    kernel/bpf/bpf_lsm.c
  F:    security/bpf/
@@@ -3678,7 -3646,6 +3688,7 @@@ F:      drivers/net/ethernet/broadcom/bcm490
  F:    drivers/net/ethernet/broadcom/unimac.h
  
  BROADCOM BCM5301X ARM ARCHITECTURE
 +M:    Florian Fainelli <[email protected]>
  M:    Hauke Mehrtens <[email protected]>
  M:    Rafał Miłecki <[email protected]>
  M:    [email protected]
@@@ -3690,7 -3657,6 +3700,7 @@@ F:      arch/arm/boot/dts/bcm953012
  F:    arch/arm/mach-bcm/bcm_5301x.c
  
  BROADCOM BCM53573 ARM ARCHITECTURE
 +M:    Florian Fainelli <[email protected]>
  M:    Rafał Miłecki <[email protected]>
  L:    [email protected]
  L:    [email protected] (moderated for non-subscribers)
@@@ -3734,7 -3700,7 +3744,7 @@@ M:      Al Cooper <[email protected]
  L:    [email protected]
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/devicetree/bindings/usb/brcm,bdc.txt
 +F:    Documentation/devicetree/bindings/usb/brcm,bdc.yaml
  F:    drivers/usb/gadget/udc/bdc/
  
  BROADCOM BMIPS CPUFREQ DRIVER
@@@ -3813,11 -3779,10 +3823,11 @@@ S:   Supporte
  F:    drivers/net/wireless/broadcom/brcm80211/
  
  BROADCOM BRCMSTB GPIO DRIVER
 -M:    Gregory Fong <[email protected]>
 +M:    Doug Berger <[email protected]>
 +M:    Florian Fainelli <[email protected]>
  L:    [email protected]
  S:    Supported
 -F:    Documentation/devicetree/bindings/gpio/brcm,brcmstb-gpio.txt
 +F:    Documentation/devicetree/bindings/gpio/brcm,brcmstb-gpio.yaml
  F:    drivers/gpio/gpio-brcmstb.c
  
  BROADCOM BRCMSTB I2C DRIVER
@@@ -3875,7 -3840,7 +3885,7 @@@ M:      Florian Fainelli <[email protected]
  L:    [email protected]
  L:    [email protected]
  S:    Supported
 -F:    Documentation/devicetree/bindings/net/brcm,bcmgenet.txt
 +F:    Documentation/devicetree/bindings/net/brcm,bcmgenet.yaml
  F:    Documentation/devicetree/bindings/net/brcm,unimac-mdio.yaml
  F:    drivers/net/ethernet/broadcom/genet/
  F:    drivers/net/ethernet/broadcom/unimac.h
@@@ -3917,7 -3882,7 +3927,7 @@@ M:      Rafał Miłecki <[email protected]
  M:    [email protected]
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/devicetree/bindings/net/brcm,amac.txt
 +F:    Documentation/devicetree/bindings/net/brcm,amac.yaml
  F:    drivers/net/ethernet/broadcom/bgmac*
  F:    drivers/net/ethernet/broadcom/unimac.h
  
@@@ -3992,7 -3957,7 +4002,7 @@@ M:      Markus Mayer <[email protected]
  M:    [email protected]
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/devicetree/bindings/thermal/brcm,avs-tmon.txt
 +F:    Documentation/devicetree/bindings/thermal/brcm,avs-tmon.yaml
  F:    drivers/thermal/broadcom/brcmstb*
  
  BROADCOM STB DPFE DRIVER
@@@ -4028,7 -3993,6 +4038,7 @@@ L:      [email protected]
  S:    Supported
  F:    drivers/net/ethernet/broadcom/bcmsysport.*
  F:    drivers/net/ethernet/broadcom/unimac.h
 +F:    Documentation/devicetree/bindings/net/brcm,systemport.yaml
  
  BROADCOM TG3 GIGABIT ETHERNET DRIVER
  M:    Siva Reddy Kallam <[email protected]>
@@@ -4568,12 -4532,9 +4578,12 @@@ F:    drivers/media/cec/i2c/ch7322.
  CIRRUS LOGIC AUDIO CODEC DRIVERS
  M:    James Schulman <[email protected]>
  M:    David Rhodes <[email protected]>
 +M:    Lucas Tanure <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  L:    [email protected]
  S:    Maintained
 +F:    Documentation/devicetree/bindings/sound/cirrus,cs*
 +F:    sound/pci/hda/cs*
  F:    sound/soc/codecs/cs*
  
  CIRRUS LOGIC DSP FIRMWARE DRIVER
@@@ -4773,6 -4734,8 +4783,8 @@@ M:      Ian Abbott <[email protected]
  M:    H Hartley Sweeten <[email protected]>
  S:    Odd Fixes
  F:    drivers/comedi/
+ F:    include/linux/comedi/
+ F:    include/uapi/linux/comedi.h
  
  COMMON CLK FRAMEWORK
  M:    Michael Turquette <[email protected]>
@@@ -5471,12 -5434,6 +5483,12 @@@ W:    https://linuxtv.or
  T:    git git://linuxtv.org/media_tree.git
  F:    drivers/media/platform/sti/delta
  
 +DELTA AHE-50DC FAN CONTROL MODULE DRIVER
 +M:    Zev Weiss <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/hwmon/pmbus/delta-ahe50dc-fan.c
 +
  DELTA DPS920AB PSU DRIVER
  M:    Robert Marko <[email protected]>
  L:    [email protected]
@@@ -6104,7 -6061,6 +6116,7 @@@ F:      drivers/gpu/drm/tiny/mi0283qt.
  DRM DRIVER FOR MSM ADRENO GPU
  M:    Rob Clark <[email protected]>
  M:    Sean Paul <[email protected]>
 +R:    Abhinav Kumar <[email protected]>
  L:    [email protected]
  L:    [email protected]
  L:    [email protected]
@@@ -6130,17 -6086,10 +6142,17 @@@ F:   drivers/gpu/drm/panel/panel-novatek-
  
  DRM DRIVER FOR NVIDIA GEFORCE/QUADRO GPUS
  M:    Ben Skeggs <[email protected]>
 +M:    Karol Herbst <[email protected]>
 +M:    Lyude Paul <[email protected]>
  L:    [email protected]
  L:    [email protected]
  S:    Supported
 -T:    git git://github.com/skeggsb/linux
 +W:    https://nouveau.freedesktop.org/
 +Q:    https://patchwork.freedesktop.org/project/nouveau/
 +Q:    https://gitlab.freedesktop.org/drm/nouveau/-/merge_requests
 +B:    https://gitlab.freedesktop.org/drm/nouveau/-/issues
 +C:    irc://irc.oftc.net/nouveau
 +T:    git https://gitlab.freedesktop.org/drm/nouveau.git
  F:    drivers/gpu/drm/nouveau/
  F:    include/uapi/drm/nouveau_drm.h
  
@@@ -6373,7 -6322,7 +6385,7 @@@ F:      Documentation/devicetree/bindings/di
  F:    drivers/gpu/drm/atmel-hlcdc/
  
  DRM DRIVERS FOR BRIDGE CHIPS
 -M:    Andrzej Hajda <a.hajda@samsung.com>
 +M:    Andrzej Hajda <andrzej.hajda@intel.com>
  M:    Neil Armstrong <[email protected]>
  M:    Robert Foss <[email protected]>
  R:    Laurent Pinchart <[email protected]>
@@@ -6480,7 -6429,6 +6492,7 @@@ L:      [email protected]
  L:    [email protected]
  S:    Supported
  T:    git git://linuxtv.org/pinchartl/media drm/du/next
 +F:    Documentation/devicetree/bindings/display/bridge/renesas,dsi-csi2-tx.yaml
  F:    Documentation/devicetree/bindings/display/bridge/renesas,dw-hdmi.yaml
  F:    Documentation/devicetree/bindings/display/bridge/renesas,lvds.yaml
  F:    Documentation/devicetree/bindings/display/renesas,du.yaml
@@@ -6599,14 -6547,6 +6611,14 @@@ F:    drivers/gpu/drm/drm_panel.
  F:    drivers/gpu/drm/panel/
  F:    include/drm/drm_panel.h
  
 +DRM PRIVACY-SCREEN CLASS
 +M:    Hans de Goede <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +T:    git git://anongit.freedesktop.org/drm/drm-misc
 +F:    drivers/gpu/drm/drm_privacy_screen*
 +F:    include/drm/drm_privacy_screen*
 +
  DRM TTM SUBSYSTEM
  M:    Christian Koenig <[email protected]>
  M:    Huang Rui <[email protected]>
@@@ -7084,7 -7024,9 +7096,7 @@@ S:      Maintaine
  F:    drivers/mmc/host/cqhci*
  
  EMULEX 10Gbps iSCSI - OneConnect DRIVER
 -M:    Subbu Seetharaman <[email protected]>
  M:    Ketan Mukadam <[email protected]>
 -M:    Jitendra Bhivare <[email protected]>
  L:    [email protected]
  S:    Supported
  W:    http://www.broadcom.com
@@@ -7495,6 -7437,12 +7507,6 @@@ F:     Documentation/firmware_class
  F:    drivers/base/firmware_loader/
  F:    include/linux/firmware.h
  
 -FLASH ADAPTER DRIVER (IBM Flash Adapter 900GB Full Height PCI Flash Card)
 -M:    Joshua Morris <[email protected]>
 -M:    Philip Kelleher <[email protected]>
 -S:    Maintained
 -F:    drivers/block/rsxx/
 -
  FLEXTIMER FTM-QUADDEC DRIVER
  M:    Patrick Havelange <[email protected]>
  L:    [email protected]
@@@ -7586,7 -7534,6 +7598,7 @@@ F:      include/video
  FREESCALE CAAM (Cryptographic Acceleration and Assurance Module) DRIVER
  M:    Horia Geantă <[email protected]>
  M:    Pankaj Gupta <[email protected]>
 +M:    Gaurav Jain <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    Documentation/devicetree/bindings/crypto/fsl-sec4.txt
@@@ -8551,12 -8498,6 +8563,12 @@@ F:    drivers/hid
  F:    include/linux/hid*
  F:    include/uapi/linux/hid*
  
 +HID LOGITECH DRIVERS
 +R:    Filipe Laíns <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/hid/hid-logitech-*
 +
  HID PLAYSTATION DRIVER
  M:    Roderick Colenbrander <[email protected]>
  L:    [email protected]
@@@ -8678,10 -8619,8 +8690,10 @@@ F:    drivers/misc/hisi_hikey_usb.
  
  HISILICON PMU DRIVER
  M:    Shaokun Zhang <[email protected]>
 +M:    Qi Liu <[email protected]>
  S:    Supported
  W:    http://www.hisilicon.com
 +F:    Documentation/admin-guide/perf/hisi-pcie-pmu.rst
  F:    Documentation/admin-guide/perf/hisi-pmu.rst
  F:    drivers/perf/hisilicon
  
@@@ -8712,7 -8651,6 +8724,7 @@@ F:      drivers/scsi/hisi_sas
  
  HISILICON SECURITY ENGINE V2 DRIVER (SEC2)
  M:    Zaibo Xu <[email protected]>
 +M:    Kai Ye <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    Documentation/ABI/testing/debugfs-hisi-sec
@@@ -9563,7 -9501,6 +9575,7 @@@ INTEL DRM DRIVERS (excluding Poulsbo, M
  M:    Jani Nikula <[email protected]>
  M:    Joonas Lahtinen <[email protected]>
  M:    Rodrigo Vivi <[email protected]>
 +M:    Tvrtko Ursulin <[email protected]>
  L:    [email protected]
  S:    Supported
  W:    https://01.org/linuxgraphics/
@@@ -9758,6 -9695,7 +9770,6 @@@ F:      Documentation/devicetree/bindings/cr
  F:    drivers/crypto/keembay/Kconfig
  F:    drivers/crypto/keembay/Makefile
  F:    drivers/crypto/keembay/keembay-ocs-ecc.c
 -F:    drivers/crypto/keembay/ocs-ecc-curve-defs.h
  
  INTEL KEEM BAY OCS HCU CRYPTO DRIVER
  M:    Daniele Alessandrelli <[email protected]>
@@@ -9770,6 -9708,13 +9782,13 @@@ F:    drivers/crypto/keembay/keembay-ocs-h
  F:    drivers/crypto/keembay/ocs-hcu.c
  F:    drivers/crypto/keembay/ocs-hcu.h
  
+ INTEL THUNDER BAY EMMC PHY DRIVER
+ M:    Nandhini Srikandan <[email protected]>
+ M:    Rashmi A <[email protected]>
+ S:    Maintained
+ F:    Documentation/devicetree/bindings/phy/intel,phy-thunderbay-emmc.yaml
+ F:    drivers/phy/intel/phy-intel-thunderbay-emmc.c
  INTEL MANAGEMENT ENGINE (mei)
  M:    Tomas Winkler <[email protected]>
  L:    [email protected]
@@@ -9825,9 -9770,10 +9844,9 @@@ S:     Maintaine
  F:    drivers/mfd/intel_soc_pmic*
  F:    include/linux/mfd/intel_soc_pmic*
  
 -INTEL PMT DRIVER
 -M:    "David E. Box" <[email protected]>
 -S:    Maintained
 -F:    drivers/mfd/intel_pmt.c
 +INTEL PMT DRIVERS
 +M:    David E. Box <[email protected]>
 +S:    Supported
  F:    drivers/platform/x86/intel/pmt/
  
  INTEL PRO/WIRELESS 2100, 2200BG, 2915ABG NETWORK CONNECTION SUPPORT
  S:    Maintained
  F:    drivers/platform/x86/intel/uncore-frequency.c
  
 +INTEL VENDOR SPECIFIC EXTENDED CAPABILITIES DRIVER
 +M:    David E. Box <[email protected]>
 +S:    Supported
 +F:    drivers/platform/x86/intel/vsec.*
 +
  INTEL VIRTUAL BUTTON DRIVER
  M:    AceLan Kao <[email protected]>
  L:    [email protected]
@@@ -10823,13 -10764,6 +10842,13 @@@ S: Maintaine
  W:    http://legousb.sourceforge.net/
  F:    drivers/usb/misc/legousbtower.c
  
 +LETSKETCH HID TABLET DRIVER
 +M:    Hans de Goede <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid.git
 +F:    drivers/hid/hid-letsketch.c
 +
  LG LAPTOP EXTRAS
  M:    Matan Ziv-Av <[email protected]>
  L:    [email protected]
@@@ -11618,12 -11552,6 +11637,12 @@@ S: Maintaine
  F:    Documentation/devicetree/bindings/media/i2c/maxim,max9286.yaml
  F:    drivers/media/i2c/max9286.c
  
 +MAX96712 QUAD GMSL2 DESERIALIZER DRIVER
 +M:    Niklas Söderlund <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/staging/media/max96712/max96712.c
 +
  MAX9860 MONO AUDIO VOICE CODEC DRIVER
  M:    Peter Rosin <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
@@@ -11659,13 -11587,6 +11678,13 @@@ S: Maintaine
  F:    Documentation/devicetree/bindings/power/supply/maxim,max17042.yaml
  F:    drivers/power/supply/max17042_battery.c
  
 +MAXIM MAX20086 CAMERA POWER PROTECTOR DRIVER
 +M:    Laurent Pinchart <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/regulator/maxim,max20086.yaml
 +F:    drivers/regulator/max20086-regulator.c
 +
  MAXIM MAX77650 PMIC MFD DRIVER
  M:    Bartosz Golaszewski <[email protected]>
  L:    [email protected]
@@@ -11688,12 -11609,6 +11707,12 @@@ F: Documentation/devicetree/bindings/*/
  F:    drivers/regulator/max77802-regulator.c
  F:    include/dt-bindings/*/*max77802.h
  
 +MAXIM MAX77976 BATTERY CHARGER
 +M:    Luca Ceresoli <[email protected]>
 +S:    Supported
 +F:    Documentation/devicetree/bindings/power/supply/maxim,max77976.yaml
 +F:    drivers/power/supply/max77976_charger.c
 +
  MAXIM MUIC CHARGER DRIVERS FOR EXYNOS BASED BOARDS
  M:    Krzysztof Kozlowski <[email protected]>
  M:    Bartlomiej Zolnierkiewicz <[email protected]>
@@@ -11708,7 -11623,7 +11727,7 @@@ M:   Krzysztof Kozlowski <krzysztof.kozlo
  M:    Bartlomiej Zolnierkiewicz <[email protected]>
  L:    [email protected]
  S:    Supported
 -F:    Documentation/devicetree/bindings/*/max77686.txt
 +F:    Documentation/devicetree/bindings/*/maxim,max77686.yaml
  F:    Documentation/devicetree/bindings/clock/maxim,max77686.txt
  F:    Documentation/devicetree/bindings/mfd/max14577.txt
  F:    Documentation/devicetree/bindings/mfd/max77693.txt
  S:    Maintained
  F:    drivers/net/ethernet/microchip/lan743x_*
  
 +MICROCHIP LAN966X ETHERNET DRIVER
 +M:    Horatiu Vultur <[email protected]>
 +M:    [email protected]
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/net/ethernet/microchip/lan966x/*
 +
  MICROCHIP LCDFB DRIVER
  M:    Nicolas Ferre <[email protected]>
  L:    [email protected]
@@@ -13817,12 -13725,24 +13836,24 @@@ F:        Documentation/devicetree/bindings/di
  F:    drivers/gpu/drm/imx/dcss/
  
  NXP i.MX 8QXP ADC DRIVER
- M:    Cai Huoqing <[email protected]>
+ M:    Cai Huoqing <[email protected]>
+ M:    Haibo Chen <[email protected]>
+ L:    [email protected]
  L:    [email protected]
- S:    Supported
+ S:    Maintained
  F:    Documentation/devicetree/bindings/iio/adc/nxp,imx8qxp-adc.yaml
  F:    drivers/iio/adc/imx8qxp-adc.c
  
+ NXP i.MX 7D/6SX/6UL AND VF610 ADC DRIVER
+ M:    Haibo Chen <[email protected]>
+ L:    [email protected]
+ L:    [email protected]
+ S:    Maintained
+ F:    Documentation/devicetree/bindings/iio/adc/fsl,imx7d-adc.yaml
+ F:    Documentation/devicetree/bindings/iio/adc/fsl,vf610-adc.yaml
+ F:    drivers/iio/adc/imx7d_adc.c
+ F:    drivers/iio/adc/vf610_adc.c
  NXP PF8100/PF8121A/PF8200 PMIC REGULATOR DEVICE DRIVER
  M:    Jagan Teki <[email protected]>
  S:    Maintained
@@@ -13896,13 -13816,6 +13927,13 @@@ S: Maintaine
  F:    Documentation/hwmon/nzxt-kraken2.rst
  F:    drivers/hwmon/nzxt-kraken2.c
  
 +NZXT-SMART2 HARDWARE MONITORING DRIVER
 +M:    Aleksandr Mezin <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/hwmon/nzxt-smart2.rst
 +F:    drivers/hwmon/nzxt-smart2.c
 +
  OBJAGG
  M:    Jiri Pirko <[email protected]>
  L:    [email protected]
@@@ -14215,6 -14128,7 +14246,6 @@@ F:   drivers/media/i2c/ov5647.
  
  OMNIVISION OV5670 SENSOR DRIVER
  M:    Chiranjeevi Rapolu <[email protected]>
 -M:    Hyungwoo Yang <[email protected]>
  L:    [email protected]
  S:    Maintained
  T:    git git://linuxtv.org/media_tree.git
@@@ -14227,13 -14141,6 +14258,13 @@@ S: Maintaine
  T:    git git://linuxtv.org/media_tree.git
  F:    drivers/media/i2c/ov5675.c
  
 +OMNIVISION OV5693 SENSOR DRIVER
 +M:    Daniel Scally <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +T:    git git://linuxtv.org/media_tree.git
 +F:    drivers/media/i2c/ov5693.c
 +
  OMNIVISION OV5695 SENSOR DRIVER
  M:    Shunqian Zheng <[email protected]>
  L:    [email protected]
@@@ -15020,7 -14927,7 +15051,7 @@@ F:   drivers/pci/controller/dwc/*spear
  PCMCIA SUBSYSTEM
  M:    Dominik Brodowski <[email protected]>
  S:    Odd Fixes
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/brodo/linux.git
  F:    Documentation/pcmcia/
  F:    drivers/pcmcia/
  F:    include/pcmcia/
  S:    Maintained
  F:    drivers/pinctrl/pinctrl-single.c
  
 +PIN CONTROLLER - THUNDERBAY
 +M:    Lakshmi Sowjanya D <[email protected]>
 +S:    Supported
 +F:    drivers/pinctrl/pinctrl-thunderbay.c
 +
  PKTCDVD DRIVER
  M:    [email protected]
  S:    Orphan
@@@ -15468,7 -15370,6 +15499,7 @@@ M:   Sergey Senozhatsky <senozhatsky@chro
  R:    Steven Rostedt <[email protected]>
  R:    John Ogness <[email protected]>
  S:    Maintained
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/printk/linux.git
  F:    include/linux/printk.h
  F:    kernel/printk/
  
@@@ -15856,14 -15757,6 +15887,14 @@@ W: https://wireless.wiki.kernel.org/en/
  F:    Documentation/devicetree/bindings/net/wireless/qca,ath9k.yaml
  F:    drivers/net/wireless/ath/ath9k/
  
 +QUALCOMM BAM-DMUX WWAN NETWORK DRIVER
 +M:    Stephan Gerhold <[email protected]>
 +L:    [email protected]
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/net/qcom,bam-dmux.yaml
 +F:    drivers/net/wwan/qcom_bam_dmux.c
 +
  QUALCOMM CAMERA SUBSYSTEM DRIVER
  M:    Robert Foss <[email protected]>
  M:    Todor Tomov <[email protected]>
@@@ -15873,15 -15766,6 +15904,15 @@@ F: Documentation/admin-guide/media/qcom
  F:    Documentation/devicetree/bindings/media/*camss*
  F:    drivers/media/platform/qcom/camss/
  
 +QUALCOMM CLOCK DRIVERS
 +M:    Bjorn Andersson <[email protected]>
 +L:    [email protected]
 +S:    Supported
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux.git
 +F:    Documentation/devicetree/bindings/clock/qcom,*
 +F:    drivers/clk/qcom/
 +F:    include/dt-bindings/clock/qcom,*
 +
  QUALCOMM CORE POWER REDUCTION (CPR) AVS DRIVER
  M:    Niklas Cassel <[email protected]>
  L:    [email protected]
@@@ -16135,7 -16019,6 +16166,7 @@@ F:   arch/mips/generic/board-ranchu.
  RANDOM NUMBER DRIVER
  M:    "Theodore Ts'o" <[email protected]>
  M:    Jason A. Donenfeld <[email protected]>
 +T:    git https://git.kernel.org/pub/scm/linux/kernel/git/crng/random.git
  S:    Maintained
  F:    drivers/char/random.c
  
@@@ -16443,14 -16326,6 +16474,14 @@@ S: Supporte
  F:    Documentation/devicetree/bindings/iio/adc/renesas,rzg2l-adc.yaml
  F:    drivers/iio/adc/rzg2l_adc.c
  
 +RENESAS R-CAR GEN3 & RZ/N1 NAND CONTROLLER DRIVER
 +M:    Miquel Raynal <[email protected]>
 +L:    [email protected]
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/mtd/renesas-nandc.yaml
 +F:    drivers/mtd/nand/raw/renesas-nand-controller.c
 +
  RESET CONTROLLER FRAMEWORK
  M:    Philipp Zabel <[email protected]>
  S:    Maintained
@@@ -16621,19 -16496,27 +16652,19 @@@ ROHM POWER MANAGEMENT IC DEVICE DRIVER
  R:    Matti Vaittinen <[email protected]>
  L:    [email protected]
  S:    Supported
 -F:    Documentation/devicetree/bindings/mfd/rohm,bd70528-pmic.txt
 -F:    Documentation/devicetree/bindings/regulator/rohm,bd70528-regulator.txt
  F:    drivers/clk/clk-bd718x7.c
 -F:    drivers/gpio/gpio-bd70528.c
  F:    drivers/gpio/gpio-bd71815.c
  F:    drivers/gpio/gpio-bd71828.c
 -F:    drivers/mfd/rohm-bd70528.c
  F:    drivers/mfd/rohm-bd71828.c
  F:    drivers/mfd/rohm-bd718x7.c
  F:    drivers/mfd/rohm-bd9576.c
 -F:    drivers/power/supply/bd70528-charger.c
 -F:    drivers/regulator/bd70528-regulator.c
  F:    drivers/regulator/bd71815-regulator.c
  F:    drivers/regulator/bd71828-regulator.c
  F:    drivers/regulator/bd718x7-regulator.c
  F:    drivers/regulator/bd9576-regulator.c
  F:    drivers/regulator/rohm-regulator.c
  F:    drivers/rtc/rtc-bd70528.c
 -F:    drivers/watchdog/bd70528_wdt.c
  F:    drivers/watchdog/bd9576_wdt.c
 -F:    include/linux/mfd/rohm-bd70528.h
  F:    include/linux/mfd/rohm-bd71815.h
  F:    include/linux/mfd/rohm-bd71828.h
  F:    include/linux/mfd/rohm-bd718x7.h
@@@ -16984,15 -16867,13 +17015,15 @@@ F:        Documentation/devicetree/bindings/ne
  F:    drivers/nfc/s3fwrn5
  
  SAMSUNG S5C73M3 CAMERA DRIVER
 -M:    Andrzej Hajda <[email protected]>
 +M:    Sylwester Nawrocki <[email protected]>
 +M:    Andrzej Hajda <[email protected]>
  L:    [email protected]
  S:    Supported
  F:    drivers/media/i2c/s5c73m3/*
  
  SAMSUNG S5K5BAF CAMERA DRIVER
 -M:    Andrzej Hajda <[email protected]>
 +M:    Sylwester Nawrocki <[email protected]>
 +M:    Andrzej Hajda <[email protected]>
  L:    [email protected]
  S:    Supported
  F:    drivers/media/i2c/s5k5baf.c
@@@ -17021,8 -16902,10 +17052,8 @@@ M:  Chanwoo Choi <[email protected]
  L:    [email protected]
  S:    Supported
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/snawrocki/clk.git
 -F:    Documentation/devicetree/bindings/clock/exynos*.txt
  F:    Documentation/devicetree/bindings/clock/samsung,*.yaml
  F:    Documentation/devicetree/bindings/clock/samsung,s3c*
 -F:    Documentation/devicetree/bindings/clock/samsung,s5p*
  F:    drivers/clk/samsung/
  F:    include/dt-bindings/clock/exynos*.h
  F:    include/dt-bindings/clock/s3c*.h
  S:    Maintained
  F:    drivers/mmc/host/sdhci-omap.c
  
 +SECURE DIGITAL HOST CONTROLLER INTERFACE (SDHCI) NXP i.MX DRIVER
 +M:    Haibo Chen <[email protected]>
 +L:    [email protected]
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/mmc/host/sdhci-esdhc-imx.c
 +
  SECURE ENCRYPTING DEVICE (SED) OPAL DRIVER
  M:    Jonathan Derrick <[email protected]>
  M:    Revanth Rajashekar <[email protected]>
@@@ -17821,17 -17697,12 +17852,17 @@@ F:        drivers/firmware/arm_sdei.
  F:    include/linux/arm_sdei.h
  F:    include/uapi/linux/arm_sdei.h
  
 -SOFTWARE NODES
 +SOFTWARE NODES AND DEVICE PROPERTIES
  R:    Andy Shevchenko <[email protected]>
 +R:    Daniel Scally <[email protected]>
  R:    Heikki Krogerus <[email protected]>
 +R:    Sakari Ailus <[email protected]>
  L:    [email protected]
  S:    Maintained
 +F:    drivers/base/property.c
  F:    drivers/base/swnode.c
 +F:    include/linux/fwnode.h
 +F:    include/linux/property.h
  
  SOFTWARE RAID (Multiple Disks) SUPPORT
  M:    Song Liu <[email protected]>
@@@ -17991,7 -17862,6 +18022,7 @@@ F:   Documentation/sound
  F:    include/sound/
  F:    include/uapi/sound/
  F:    sound/
 +F:    tools/testing/selftests/alsa
  
  SOUND - COMPRESSED AUDIO
  M:    Vinod Koul <[email protected]>
@@@ -18011,13 -17881,6 +18042,13 @@@ F: include/sound/dmaengine_pcm.
  F:    sound/core/pcm_dmaengine.c
  F:    sound/soc/soc-generic-dmaengine-pcm.c
  
 +SOUND - ALSA SELFTESTS
 +M:    Mark Brown <[email protected]>
 +L:    [email protected] (moderated for non-subscribers)
 +L:    [email protected]
 +S:    Supported
 +F:    tools/testing/selftests/alsa
 +
  SOUND - SOC LAYER / DYNAMIC AUDIO POWER MANAGEMENT (ASoC)
  M:    Liam Girdwood <[email protected]>
  M:    Mark Brown <[email protected]>
@@@ -18124,8 -17987,8 +18155,8 @@@ F:   drivers/pinctrl/spear
  
  SPI NOR SUBSYSTEM
  M:    Tudor Ambarus <[email protected]>
 +M:    Pratyush Yadav <[email protected]>
  R:    Michael Walle <[email protected]>
 -R:    Pratyush Yadav <[email protected]>
  L:    [email protected]
  S:    Maintained
  W:    http://www.linux-mtd.infradead.org/
@@@ -18324,28 -18187,6 +18355,28 @@@ M: Ion Badulescu <[email protected]
  S:    Odd Fixes
  F:    drivers/net/ethernet/adaptec/starfire*
  
 +STARFIVE JH7100 CLOCK DRIVER
 +M:    Emil Renner Berthing <[email protected]>
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/clock/starfive,jh7100-clkgen.yaml
 +F:    drivers/clk/starfive/clk-starfive-jh7100.c
 +F:    include/dt-bindings/clock/starfive-jh7100.h
 +
 +STARFIVE JH7100 PINCTRL DRIVER
 +M:    Emil Renner Berthing <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/pinctrl/starfive,jh7100-pinctrl.yaml
 +F:    drivers/pinctrl/pinctrl-starfive.c
 +F:    include/dt-bindings/pinctrl/pinctrl-starfive.h
 +
 +STARFIVE JH7100 RESET CONTROLLER DRIVER
 +M:    Emil Renner Berthing <[email protected]>
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/reset/starfive,jh7100-reset.yaml
 +F:    drivers/reset/reset-starfive-jh7100.c
 +F:    include/dt-bindings/reset/starfive-jh7100.h
 +
  STATIC BRANCH/CALL
  M:    Peter Zijlstra <[email protected]>
  M:    Josh Poimboeuf <[email protected]>
@@@ -18507,7 -18348,6 +18538,7 @@@ M:   Vineet Gupta <[email protected]
  L:    [email protected]
  S:    Supported
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc.git
 +F:    Documentation/arc/
  F:    Documentation/devicetree/bindings/arc/*
  F:    Documentation/devicetree/bindings/interrupt-controller/snps,arc*
  F:    arch/arc/
@@@ -19525,6 -19365,12 +19556,6 @@@ W:  https://github.com/srcres258/linux-d
  T:    git git://github.com/srcres258/linux-doc.git doc-zh-tw
  F:    Documentation/translations/zh_TW/
  
 -TRIVIAL PATCHES
 -M:    Jiri Kosina <[email protected]>
 -S:    Maintained
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial.git
 -K:    ^Subject:.*(?i)trivial
 -
  TTY LAYER
  M:    Greg Kroah-Hartman <[email protected]>
  M:    Jiri Slaby <[email protected]>
@@@ -19629,7 -19475,6 +19660,7 @@@ S:   Supporte
  W:    http://www.linux-mtd.infradead.org/doc/ubifs.html
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/rw/ubifs.git next
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/rw/ubifs.git fixes
 +F:    Documentation/ABI/testing/sysfs-fs-ubifs
  F:    Documentation/filesystems/ubifs-authentication.rst
  F:    Documentation/filesystems/ubifs.rst
  F:    fs/ubifs/
@@@ -20381,8 -20226,6 +20412,8 @@@ F:   include/uapi/linux/virtio_gpio.
  VIRTIO GPU DRIVER
  M:    David Airlie <[email protected]>
  M:    Gerd Hoffmann <[email protected]>
 +R:    Gurchetan Singh <[email protected]>
 +R:    Chia-I Wu <[email protected]>
  L:    [email protected]
  L:    [email protected]
  S:    Maintained
@@@ -20616,7 -20459,7 +20647,7 @@@ M:   Sergey Senozhatsky <senozhatsky@chro
  R:    Andy Shevchenko <[email protected]>
  R:    Rasmus Villemoes <[email protected]>
  S:    Maintained
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/pmladek/printk.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/printk/linux.git
  F:    Documentation/core-api/printk-formats.rst
  F:    lib/test_printf.c
  F:    lib/test_scanf.c
@@@ -20884,13 -20727,6 +20915,13 @@@ S: Maintaine
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git x86/mm
  F:    arch/x86/mm/
  
 +X86 PLATFORM ANDROID TABLETS DSDT FIXUP DRIVER
 +M:    Hans de Goede <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86.git
 +F:    drivers/platform/x86/x86-android-tablets.c
 +
  X86 PLATFORM DRIVERS
  M:    Hans de Goede <[email protected]>
  M:    Mark Gross <[email protected]>
@@@ -21054,14 -20890,6 +21085,14 @@@ F: drivers/scsi/xen-scsifront.
  F:    drivers/xen/xen-scsiback.c
  F:    include/xen/interface/io/vscsiif.h
  
 +XEN PVUSB DRIVER
 +M:    Juergen Gross <[email protected]>
 +L:    [email protected] (moderated for non-subscribers)
 +L:    [email protected]
 +S:    Supported
 +F:    drivers/usb/host/xen*
 +F:    include/xen/interface/io/usbif.h
 +
  XEN SOUND FRONTEND DRIVER
  M:    Oleksandr Andrushchenko <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
@@@ -21094,6 -20922,13 +21125,13 @@@ F: fs/xfs
  F:    include/uapi/linux/dqblk_xfs.h
  F:    include/uapi/linux/fsmap.h
  
+ XILINX AMS DRIVER
+ M:    Anand Ashok Dumbre <[email protected]>
+ L:    [email protected]
+ S:    Maintained
+ F:    Documentation/devicetree/bindings/iio/adc/xlnx,zynqmp-ams.yaml
+ F:    drivers/iio/adc/xilinx-ams.c
  XILINX AXI ETHERNET DRIVER
  M:    Radhey Shyam Pandey <[email protected]>
  S:    Maintained
@@@ -21162,6 -20997,12 +21200,12 @@@ T: git https://github.com/Xilinx/linux-
  F:    Documentation/devicetree/bindings/phy/xlnx,zynqmp-psgtr.yaml
  F:    drivers/phy/xilinx/phy-zynqmp.c
  
+ XILINX EVENT MANAGEMENT DRIVER
+ M:    Abhyuday Godhasara <[email protected]>
+ S:    Maintained
+ F:    drivers/soc/xilinx/xlnx_event_manager.c
+ F:    include/linux/firmware/xlnx-event-manager.h
  XILLYBUS DRIVER
  M:    Eli Billauer <[email protected]>
  L:    [email protected]
diff --combined drivers/base/property.c
index a74c21af97c1ad6c1f2b1602dd7c6d705913fbb8,ed4470410030573748f24c82fc8c17d070e18074..e6497f6877ee8282d7519933b4801644359e8c86
@@@ -478,17 -478,8 +478,17 @@@ int fwnode_property_get_reference_args(
                                       unsigned int nargs, unsigned int index,
                                       struct fwnode_reference_args *args)
  {
 -      return fwnode_call_int_op(fwnode, get_reference_args, prop, nargs_prop,
 -                                nargs, index, args);
 +      int ret;
 +
 +      ret = fwnode_call_int_op(fwnode, get_reference_args, prop, nargs_prop,
 +                               nargs, index, args);
 +
 +      if (ret < 0 && !IS_ERR_OR_NULL(fwnode) &&
 +          !IS_ERR_OR_NULL(fwnode->secondary))
 +              ret = fwnode_call_int_op(fwnode->secondary, get_reference_args,
 +                                       prop, nargs_prop, nargs, index, args);
 +
 +      return ret;
  }
  EXPORT_SYMBOL_GPL(fwnode_property_get_reference_args);
  
@@@ -516,6 -507,54 +516,6 @@@ struct fwnode_handle *fwnode_find_refer
  }
  EXPORT_SYMBOL_GPL(fwnode_find_reference);
  
 -/**
 - * device_remove_properties - Remove properties from a device object.
 - * @dev: Device whose properties to remove.
 - *
 - * The function removes properties previously associated to the device
 - * firmware node with device_add_properties(). Memory allocated to the
 - * properties will also be released.
 - */
 -void device_remove_properties(struct device *dev)
 -{
 -      struct fwnode_handle *fwnode = dev_fwnode(dev);
 -
 -      if (!fwnode)
 -              return;
 -
 -      if (is_software_node(fwnode->secondary)) {
 -              fwnode_remove_software_node(fwnode->secondary);
 -              set_secondary_fwnode(dev, NULL);
 -      }
 -}
 -EXPORT_SYMBOL_GPL(device_remove_properties);
 -
 -/**
 - * device_add_properties - Add a collection of properties to a device object.
 - * @dev: Device to add properties to.
 - * @properties: Collection of properties to add.
 - *
 - * Associate a collection of device properties represented by @properties with
 - * @dev. The function takes a copy of @properties.
 - *
 - * WARNING: The callers should not use this function if it is known that there
 - * is no real firmware node associated with @dev! In that case the callers
 - * should create a software node and assign it to @dev directly.
 - */
 -int device_add_properties(struct device *dev,
 -                        const struct property_entry *properties)
 -{
 -      struct fwnode_handle *fwnode;
 -
 -      fwnode = fwnode_create_software_node(properties, NULL);
 -      if (IS_ERR(fwnode))
 -              return PTR_ERR(fwnode);
 -
 -      set_secondary_fwnode(dev, fwnode);
 -      return 0;
 -}
 -EXPORT_SYMBOL_GPL(device_add_properties);
 -
  /**
   * fwnode_get_name - Return the name of a node
   * @fwnode: The firmware node
@@@ -919,6 -958,22 +919,22 @@@ int fwnode_irq_get(const struct fwnode_
  }
  EXPORT_SYMBOL(fwnode_irq_get);
  
+ /**
+  * fwnode_iomap - Maps the memory mapped IO for a given fwnode
+  * @fwnode:   Pointer to the firmware node
+  * @index:    Index of the IO range
+  *
+  * Returns a pointer to the mapped memory.
+  */
+ void __iomem *fwnode_iomap(struct fwnode_handle *fwnode, int index)
+ {
+       if (IS_ENABLED(CONFIG_OF_ADDRESS) && is_of_node(fwnode))
+               return of_iomap(to_of_node(fwnode), index);
+       return NULL;
+ }
+ EXPORT_SYMBOL(fwnode_iomap);
  /**
   * fwnode_graph_get_next_endpoint - Get next endpoint firmware node
   * @fwnode: Pointer to the parent firmware node
@@@ -1020,17 -1075,43 +1036,17 @@@ fwnode_graph_get_remote_endpoint(const 
  }
  EXPORT_SYMBOL_GPL(fwnode_graph_get_remote_endpoint);
  
 -/**
 - * fwnode_graph_get_remote_node - get remote parent node for given port/endpoint
 - * @fwnode: pointer to parent fwnode_handle containing graph port/endpoint
 - * @port_id: identifier of the parent port node
 - * @endpoint_id: identifier of the endpoint node
 - *
 - * Return: Remote fwnode handle associated with remote endpoint node linked
 - *       to @node. Use fwnode_node_put() on it when done.
 - */
 -struct fwnode_handle *
 -fwnode_graph_get_remote_node(const struct fwnode_handle *fwnode, u32 port_id,
 -                           u32 endpoint_id)
 +static bool fwnode_graph_remote_available(struct fwnode_handle *ep)
  {
 -      struct fwnode_handle *endpoint = NULL;
 +      struct fwnode_handle *dev_node;
 +      bool available;
  
 -      while ((endpoint = fwnode_graph_get_next_endpoint(fwnode, endpoint))) {
 -              struct fwnode_endpoint fwnode_ep;
 -              struct fwnode_handle *remote;
 -              int ret;
 +      dev_node = fwnode_graph_get_remote_port_parent(ep);
 +      available = fwnode_device_is_available(dev_node);
 +      fwnode_handle_put(dev_node);
  
 -              ret = fwnode_graph_parse_endpoint(endpoint, &fwnode_ep);
 -              if (ret < 0)
 -                      continue;
 -
 -              if (fwnode_ep.port != port_id || fwnode_ep.id != endpoint_id)
 -                      continue;
 -
 -              remote = fwnode_graph_get_remote_port_parent(endpoint);
 -              if (!remote)
 -                      return NULL;
 -
 -              return fwnode_device_is_available(remote) ? remote : NULL;
 -      }
 -
 -      return NULL;
 +      return available;
  }
 -EXPORT_SYMBOL_GPL(fwnode_graph_get_remote_node);
  
  /**
   * fwnode_graph_get_endpoint_by_id - get endpoint by port and endpoint numbers
   * has not been found, look for the closest endpoint ID greater than the
   * specified one and return the endpoint that corresponds to it, if present.
   *
 - * Do not return endpoints that belong to disabled devices, unless
 - * FWNODE_GRAPH_DEVICE_DISABLED is passed in @flags.
 + * Does not return endpoints that belong to disabled devices or endpoints that
 + * are unconnected, unless FWNODE_GRAPH_DEVICE_DISABLED is passed in @flags.
   *
   * The returned endpoint needs to be released by calling fwnode_handle_put() on
   * it when it is not needed any more.
@@@ -1056,17 -1137,25 +1072,17 @@@ struct fwnode_handle 
  fwnode_graph_get_endpoint_by_id(const struct fwnode_handle *fwnode,
                                u32 port, u32 endpoint, unsigned long flags)
  {
 -      struct fwnode_handle *ep = NULL, *best_ep = NULL;
 +      struct fwnode_handle *ep, *best_ep = NULL;
        unsigned int best_ep_id = 0;
        bool endpoint_next = flags & FWNODE_GRAPH_ENDPOINT_NEXT;
        bool enabled_only = !(flags & FWNODE_GRAPH_DEVICE_DISABLED);
  
 -      while ((ep = fwnode_graph_get_next_endpoint(fwnode, ep))) {
 +      fwnode_graph_for_each_endpoint(fwnode, ep) {
                struct fwnode_endpoint fwnode_ep = { 0 };
                int ret;
  
 -              if (enabled_only) {
 -                      struct fwnode_handle *dev_node;
 -                      bool available;
 -
 -                      dev_node = fwnode_graph_get_remote_port_parent(ep);
 -                      available = fwnode_device_is_available(dev_node);
 -                      fwnode_handle_put(dev_node);
 -                      if (!available)
 -                              continue;
 -              }
 +              if (enabled_only && !fwnode_graph_remote_available(ep))
 +                      continue;
  
                ret = fwnode_graph_parse_endpoint(ep, &fwnode_ep);
                if (ret < 0)
  }
  EXPORT_SYMBOL_GPL(fwnode_graph_get_endpoint_by_id);
  
 +/**
 + * fwnode_graph_get_endpoint_count - Count endpoints on a device node
 + * @fwnode: The node related to a device
 + * @flags: fwnode lookup flags
 + * Count endpoints in a device node.
 + *
 + * If FWNODE_GRAPH_DEVICE_DISABLED flag is specified, also unconnected endpoints
 + * and endpoints connected to disabled devices are counted.
 + */
 +unsigned int fwnode_graph_get_endpoint_count(struct fwnode_handle *fwnode,
 +                                           unsigned long flags)
 +{
 +      struct fwnode_handle *ep;
 +      unsigned int count = 0;
 +
 +      fwnode_graph_for_each_endpoint(fwnode, ep) {
 +              if (flags & FWNODE_GRAPH_DEVICE_DISABLED ||
 +                  fwnode_graph_remote_available(ep))
 +                      count++;
 +      }
 +
 +      return count;
 +}
 +EXPORT_SYMBOL_GPL(fwnode_graph_get_endpoint_count);
 +
  /**
   * fwnode_graph_parse_endpoint - parse common endpoint node properties
   * @fwnode: pointer to endpoint fwnode_handle
@@@ -1158,10 -1222,8 +1174,10 @@@ fwnode_graph_devcon_match(struct fwnode
  
        fwnode_graph_for_each_endpoint(fwnode, ep) {
                node = fwnode_graph_get_remote_port_parent(ep);
 -              if (!fwnode_device_is_available(node))
 +              if (!fwnode_device_is_available(node)) {
 +                      fwnode_handle_put(node);
                        continue;
 +              }
  
                ret = match(node, con_id, data);
                fwnode_handle_put(node);
index c62f05420d3218354173c095b6926a086a0d1548,b436342115af36986751529273ba94a42806bd71..a69399a6b7c0052fc5f66948e7928bbc9969ef3f
@@@ -388,14 -388,13 +388,13 @@@ static void fw_cfg_sysfs_cache_cleanup(
        struct fw_cfg_sysfs_entry *entry, *next;
  
        list_for_each_entry_safe(entry, next, &fw_cfg_entry_cache, list) {
-               /* will end up invoking fw_cfg_sysfs_cache_delist()
-                * via each object's release() method (i.e. destructor)
-                */
+               fw_cfg_sysfs_cache_delist(entry);
+               kobject_del(&entry->kobj);
                kobject_put(&entry->kobj);
        }
  }
  
 -/* default_attrs: per-entry attributes and show methods */
 +/* per-entry attributes and show methods */
  
  #define FW_CFG_SYSFS_ATTR(_attr) \
  struct fw_cfg_sysfs_attribute fw_cfg_sysfs_attr_##_attr = { \
@@@ -428,7 -427,6 +427,7 @@@ static struct attribute *fw_cfg_sysfs_e
        &fw_cfg_sysfs_attr_name.attr,
        NULL,
  };
 +ATTRIBUTE_GROUPS(fw_cfg_sysfs_entry);
  
  /* sysfs_ops: find fw_cfg_[entry, attribute] and call appropriate show method */
  static ssize_t fw_cfg_sysfs_attr_show(struct kobject *kobj, struct attribute *a,
@@@ -449,13 -447,12 +448,12 @@@ static void fw_cfg_sysfs_release_entry(
  {
        struct fw_cfg_sysfs_entry *entry = to_entry(kobj);
  
-       fw_cfg_sysfs_cache_delist(entry);
        kfree(entry);
  }
  
  /* kobj_type: ties together all properties required to register an entry */
  static struct kobj_type fw_cfg_sysfs_entry_ktype = {
 -      .default_attrs = fw_cfg_sysfs_entry_attrs,
 +      .default_groups = fw_cfg_sysfs_entry_groups,
        .sysfs_ops = &fw_cfg_sysfs_attr_ops,
        .release = fw_cfg_sysfs_release_entry,
  };
@@@ -602,20 -599,18 +600,18 @@@ static int fw_cfg_register_file(const s
        /* set file entry information */
        entry->size = be32_to_cpu(f->size);
        entry->select = be16_to_cpu(f->select);
-       memcpy(entry->name, f->name, FW_CFG_MAX_FILE_PATH);
+       strscpy(entry->name, f->name, FW_CFG_MAX_FILE_PATH);
  
        /* register entry under "/sys/firmware/qemu_fw_cfg/by_key/" */
        err = kobject_init_and_add(&entry->kobj, &fw_cfg_sysfs_entry_ktype,
                                   fw_cfg_sel_ko, "%d", entry->select);
-       if (err) {
-               kobject_put(&entry->kobj);
-               return err;
-       }
+       if (err)
+               goto err_put_entry;
  
        /* add raw binary content access */
        err = sysfs_create_bin_file(&entry->kobj, &fw_cfg_sysfs_attr_raw);
        if (err)
-               goto err_add_raw;
+               goto err_del_entry;
  
        /* try adding "/sys/firmware/qemu_fw_cfg/by_name/" symlink */
        fw_cfg_build_symlink(fw_cfg_fname_kset, &entry->kobj, entry->name);
        fw_cfg_sysfs_cache_enlist(entry);
        return 0;
  
- err_add_raw:
+ err_del_entry:
        kobject_del(&entry->kobj);
-       kfree(entry);
+ err_put_entry:
+       kobject_put(&entry->kobj);
        return err;
  }
  
index 0dd117860b6375dcb6d355dbdb8f5902b2e2f00d,bfa5ec7a808c7c95a500de10584f4d8661ea838d..450c5f6a1cbf1db924378f7083538effb054310e
@@@ -23,6 -23,7 +23,7 @@@
  #include <linux/hashtable.h>
  
  #include <linux/firmware/xlnx-zynqmp.h>
+ #include <linux/firmware/xlnx-event-manager.h>
  #include "zynqmp-debug.h"
  
  /* Max HashMap Order for PM API feature check (1<<7 = 128) */
@@@ -38,6 -39,8 +39,8 @@@
  static bool feature_check_enabled;
  static DEFINE_HASHTABLE(pm_api_features_map, PM_API_FEATURE_CHECK_MAX_ORDER);
  
+ static struct platform_device *em_dev;
  /**
   * struct pm_api_feature_data - PM API Feature data
   * @pm_api_id:                PM API Id, used as key to index into hashmap
@@@ -160,7 -163,7 +163,7 @@@ static noinline int do_fw_call_hvc(u64 
   *
   * Return: Returns status, either success or error+reason
   */
static int zynqmp_pm_feature(u32 api_id)
int zynqmp_pm_feature(const u32 api_id)
  {
        int ret;
        u32 ret_payload[PAYLOAD_ARG_CNT];
  
        return ret;
  }
+ EXPORT_SYMBOL_GPL(zynqmp_pm_feature);
  
  /**
   * zynqmp_pm_invoke_fn() - Invoke the system-level platform management layer
@@@ -1116,6 -1120,29 +1120,29 @@@ int zynqmp_pm_aes_engine(const u64 addr
  }
  EXPORT_SYMBOL_GPL(zynqmp_pm_aes_engine);
  
+ /**
+  * zynqmp_pm_register_notifier() - PM API for register a subsystem
+  *                                to be notified about specific
+  *                                event/error.
+  * @node:     Node ID to which the event is related.
+  * @event:    Event Mask of Error events for which wants to get notified.
+  * @wake:     Wake subsystem upon capturing the event if value 1
+  * @enable:   Enable the registration for value 1, disable for value 0
+  *
+  * This function is used to register/un-register for particular node-event
+  * combination in firmware.
+  *
+  * Return: Returns status, either success or error+reason
+  */
+ int zynqmp_pm_register_notifier(const u32 node, const u32 event,
+                               const u32 wake, const u32 enable)
+ {
+       return zynqmp_pm_invoke_fn(PM_REGISTER_NOTIFIER, node, event,
+                                  wake, enable, NULL);
+ }
+ EXPORT_SYMBOL_GPL(zynqmp_pm_register_notifier);
  /**
   * zynqmp_pm_system_shutdown - PM call to request a system shutdown or restart
   * @type:     Shutdown or restart? 0 for shutdown, 1 for restart
@@@ -1434,10 -1461,7 +1461,10 @@@ static int zynqmp_firmware_probe(struc
                return ret;
  
        /* Check PM API version number */
 -      zynqmp_pm_get_api_version(&pm_api_version);
 +      ret = zynqmp_pm_get_api_version(&pm_api_version);
 +      if (ret)
 +              return ret;
 +
        if (pm_api_version < ZYNQMP_PM_VERSION) {
                panic("%s Platform Management API version error. Expected: v%d.%d - Found: v%d.%d\n",
                      __func__,
  
        zynqmp_pm_api_debugfs_init();
  
+       np = of_find_compatible_node(NULL, NULL, "xlnx,versal");
+       if (np) {
+               em_dev = platform_device_register_data(&pdev->dev, "xlnx_event_manager",
+                                                      -1, NULL, 0);
+               if (IS_ERR(em_dev))
+                       dev_err_probe(&pdev->dev, PTR_ERR(em_dev), "EM register fail with error\n");
+       }
+       of_node_put(np);
        return of_platform_populate(dev->of_node, NULL, NULL, dev);
  }
  
@@@ -1488,6 -1521,8 +1524,8 @@@ static int zynqmp_firmware_remove(struc
                kfree(feature_data);
        }
  
+       platform_device_unregister(em_dev);
        return 0;
  }
  
index 83a7baf5df822609517eb689d6e4661f9f5b3e61,e2984ce51fe4dde91112cc9e214f6cf55d484ff5..2e0aa74ac18503becc7cac6fa6db59b853bd6802
@@@ -11,7 -11,7 +11,7 @@@ lkdtm-$(CONFIG_LKDTM)         += usercopy.
  lkdtm-$(CONFIG_LKDTM)         += stackleak.o
  lkdtm-$(CONFIG_LKDTM)         += cfi.o
  lkdtm-$(CONFIG_LKDTM)         += fortify.o
 -lkdtm-$(CONFIG_PPC_BOOK3S_64) += powerpc.o
 +lkdtm-$(CONFIG_PPC_64S_HASH_MMU)      += powerpc.o
  
  KASAN_SANITIZE_rodata.o               := n
  KASAN_SANITIZE_stackleak.o    := n
@@@ -20,7 -20,7 +20,7 @@@ CFLAGS_REMOVE_rodata.o                += $(CC_FLAGS_L
  
  OBJCOPYFLAGS :=
  OBJCOPYFLAGS_rodata_objcopy.o := \
-                       --rename-section .noinstr.text=.rodata,alloc,readonly,load
+                       --rename-section .noinstr.text=.rodata,alloc,readonly,load,contents
  targets += rodata.o rodata_objcopy.o
  $(obj)/rodata_objcopy.o: $(obj)/rodata.o FORCE
        $(call if_changed,objcopy)
index 82fb276f7e09e7318ad7c75ede9a275ef1215ad2,d4c6cdced37b43f19c19bac87a0048717a06dd58..f69b964b9952480e55b36e41ed674b2fa487bf1f
@@@ -182,7 -182,7 +182,7 @@@ static const struct crashtype crashtype
        CRASHTYPE(FORTIFIED_SUBOBJECT),
        CRASHTYPE(FORTIFIED_STRSCPY),
        CRASHTYPE(DOUBLE_FAULT),
 -#ifdef CONFIG_PPC_BOOK3S_64
 +#ifdef CONFIG_PPC_64S_HASH_MMU
        CRASHTYPE(PPC_SLB_MULTIHIT),
  #endif
  };
@@@ -212,7 -212,11 +212,11 @@@ module_param(cpoint_count, int, 0644)
  MODULE_PARM_DESC(cpoint_count, " Crash Point Count, number of times the "\
                                "crash point is to be hit to trigger action");
  
- /* For test debug reporting. */
+ /*
+  * For test debug reporting when CI systems provide terse summaries.
+  * TODO: Remove this once reasonable reporting exists in most CI systems:
+  * https://lore.kernel.org/lkml/CAHk-=wiFvfkoFixTapvvyPMN9pq5G-+Dys2eSyBa1vzDGAO5+A@mail.gmail.com
+  */
  char *lkdtm_kernel_info;
  
  /* Return the crashtype number or NULL if the name is invalid */
index 0e90591235a69b552a0f9f6707730f60605cc76f,22be86a205bfbba60ab6a7283370e0ec9ad37911..06734670a732f5bb2b5422fcd6f0c1afc0df0798
@@@ -700,9 -700,6 +700,9 @@@ int mei_cl_unlink(struct mei_cl *cl
  
        cl_dbg(dev, cl, "unlink client");
  
 +      if (cl->state == MEI_FILE_UNINITIALIZED)
 +              return 0;
 +
        if (dev->open_handle_count > 0)
                dev->open_handle_count--;
  
@@@ -2330,6 -2327,8 +2330,8 @@@ int mei_cl_dma_alloc_and_map(struct mei
                list_move_tail(&cb->list, &dev->ctrl_rd_list);
        }
  
+       cl->status = 0;
        mutex_unlock(&dev->device_lock);
        wait_event_timeout(cl->wait,
                           cl->dma_mapped || cl->status,
@@@ -2407,6 -2406,8 +2409,8 @@@ int mei_cl_dma_unmap(struct mei_cl *cl
                list_move_tail(&cb->list, &dev->ctrl_rd_list);
        }
  
+       cl->status = 0;
        mutex_unlock(&dev->device_lock);
        wait_event_timeout(cl->wait,
                           !cl->dma_mapped || cl->status,
index f8c301984d4f95612e434dd73bebc3bf770d6b37,fe7be176b226b718d1a6028e304144180b2156e5..859dd31b6effd705ea41acb23c688b371524401a
@@@ -16,6 -16,7 +16,7 @@@
  #include <linux/suspend.h>
  
  #include <linux/firmware/xlnx-zynqmp.h>
+ #include <linux/firmware/xlnx-event-manager.h>
  #include <linux/mailbox/zynqmp-ipi-message.h>
  
  /**
@@@ -30,6 -31,7 +31,7 @@@ struct zynqmp_pm_work_struct 
  
  static struct zynqmp_pm_work_struct *zynqmp_pm_init_suspend_work;
  static struct mbox_chan *rx_chan;
+ static bool event_registered;
  
  enum pm_suspend_mode {
        PM_SUSPEND_MODE_FIRST = 0,
@@@ -46,17 -48,24 +48,24 @@@ static const char *const suspend_modes[
  
  static enum pm_suspend_mode suspend_mode = PM_SUSPEND_MODE_STD;
  
- enum pm_api_cb_id {
-       PM_INIT_SUSPEND_CB = 30,
-       PM_ACKNOWLEDGE_CB,
-       PM_NOTIFY_CB,
- };
  static void zynqmp_pm_get_callback_data(u32 *buf)
  {
        zynqmp_pm_invoke_fn(GET_CALLBACK_DATA, 0, 0, 0, 0, buf);
  }
  
+ static void suspend_event_callback(const u32 *payload, void *data)
+ {
+       /* First element is callback API ID, others are callback arguments */
+       if (work_pending(&zynqmp_pm_init_suspend_work->callback_work))
+               return;
+       /* Copy callback arguments into work's structure */
+       memcpy(zynqmp_pm_init_suspend_work->args, &payload[1],
+              sizeof(zynqmp_pm_init_suspend_work->args));
+       queue_work(system_unbound_wq, &zynqmp_pm_init_suspend_work->callback_work);
+ }
  static irqreturn_t zynqmp_pm_isr(int irq, void *data)
  {
        u32 payload[CB_PAYLOAD_SIZE];
@@@ -178,13 -187,39 +187,38 @@@ static int zynqmp_pm_probe(struct platf
        u32 pm_api_version;
        struct mbox_client *client;
  
 -      zynqmp_pm_init_finalize();
        zynqmp_pm_get_api_version(&pm_api_version);
  
        /* Check PM API version number */
        if (pm_api_version < ZYNQMP_PM_VERSION)
                return -ENODEV;
  
-       if (of_find_property(pdev->dev.of_node, "mboxes", NULL)) {
+       /*
+        * First try to use Xilinx Event Manager by registering suspend_event_callback
+        * for suspend/shutdown event.
+        * If xlnx_register_event() returns -EACCES (Xilinx Event Manager
+        * is not available to use) or -ENODEV(Xilinx Event Manager not compiled),
+        * then use ipi-mailbox or interrupt method.
+        */
+       ret = xlnx_register_event(PM_INIT_SUSPEND_CB, 0, 0, false,
+                                 suspend_event_callback, NULL);
+       if (!ret) {
+               zynqmp_pm_init_suspend_work = devm_kzalloc(&pdev->dev,
+                                                          sizeof(struct zynqmp_pm_work_struct),
+                                                          GFP_KERNEL);
+               if (!zynqmp_pm_init_suspend_work) {
+                       xlnx_unregister_event(PM_INIT_SUSPEND_CB, 0, 0,
+                                             suspend_event_callback);
+                       return -ENOMEM;
+               }
+               event_registered = true;
+               INIT_WORK(&zynqmp_pm_init_suspend_work->callback_work,
+                         zynqmp_pm_init_suspend_work_fn);
+       } else if (ret != -EACCES && ret != -ENODEV) {
+               dev_err(&pdev->dev, "Failed to Register with Xilinx Event manager %d\n", ret);
+               return ret;
+       } else if (of_find_property(pdev->dev.of_node, "mboxes", NULL)) {
                zynqmp_pm_init_suspend_work =
                        devm_kzalloc(&pdev->dev,
                                     sizeof(struct zynqmp_pm_work_struct),
  
        ret = sysfs_create_file(&pdev->dev.kobj, &dev_attr_suspend_mode.attr);
        if (ret) {
+               if (event_registered) {
+                       xlnx_unregister_event(PM_INIT_SUSPEND_CB, 0, 0, suspend_event_callback);
+                       event_registered = false;
+               }
                dev_err(&pdev->dev, "unable to create sysfs interface\n");
                return ret;
        }
  static int zynqmp_pm_remove(struct platform_device *pdev)
  {
        sysfs_remove_file(&pdev->dev.kobj, &dev_attr_suspend_mode.attr);
+       if (event_registered)
+               xlnx_unregister_event(PM_INIT_SUSPEND_CB, 0, 0, suspend_event_callback);
  
        if (!rx_chan)
                mbox_free_channel(rx_chan);
diff --combined drivers/soundwire/qcom.c
index 9d42891ac3d693aa04efe9efa52a872aaa9c366d,46995bb382eb16015749a73c968fb34103ef250a..54813417ef8ea7de02c6dfec5581198c914fd3c8
@@@ -1024,8 -1024,8 +1024,8 @@@ static int qcom_swrm_startup(struct snd
        ctrl->sruntime[dai->id] = sruntime;
  
        for_each_rtd_codec_dais(rtd, i, codec_dai) {
 -              ret = snd_soc_dai_set_sdw_stream(codec_dai, sruntime,
 -                                               substream->stream);
 +              ret = snd_soc_dai_set_stream(codec_dai, sruntime,
 +                                           substream->stream);
                if (ret < 0 && ret != -ENOTSUPP) {
                        dev_err(dai->dev, "Failed to set sdw stream on %s\n",
                                codec_dai->name);
@@@ -1051,8 -1051,8 +1051,8 @@@ static const struct snd_soc_dai_ops qco
        .hw_free = qcom_swrm_hw_free,
        .startup = qcom_swrm_startup,
        .shutdown = qcom_swrm_shutdown,
 -      .set_sdw_stream = qcom_swrm_set_sdw_stream,
 -      .get_sdw_stream = qcom_swrm_get_sdw_stream,
 +      .set_stream = qcom_swrm_set_sdw_stream,
 +      .get_stream = qcom_swrm_get_sdw_stream,
  };
  
  static const struct snd_soc_component_driver qcom_swrm_dai_component = {
@@@ -1156,11 -1156,7 +1156,7 @@@ static int qcom_swrm_get_port_config(st
        ret = of_property_read_u8_array(np, "qcom,ports-block-pack-mode",
                                        bp_mode, nports);
        if (ret) {
-               u32 version;
-               ctrl->reg_read(ctrl, SWRM_COMP_HW_VERSION, &version);
-               if (version <= 0x01030000)
+               if (ctrl->version <= 0x01030000)
                        memset(bp_mode, SWR_INVALID_PARAM, QCOM_SDW_MAX_PORTS);
                else
                        return ret;
diff --combined include/linux/property.h
index 8355f99ebd47930e5d5c13df17efd1f76cf7f5fb,6670d5a1ec2a3755f4f36a4b46a0226e7b38fb4e..7399a0b45f9827ec43b10c5eb6e94039ed58baea
@@@ -122,6 -122,8 +122,8 @@@ void fwnode_handle_put(struct fwnode_ha
  
  int fwnode_irq_get(const struct fwnode_handle *fwnode, unsigned int index);
  
+ void __iomem *fwnode_iomap(struct fwnode_handle *fwnode, int index);
  unsigned int device_get_child_node_count(struct device *dev);
  
  static inline bool device_property_read_bool(struct device *dev,
@@@ -378,6 -380,10 +380,6 @@@ property_entries_dup(const struct prope
  
  void property_entries_free(const struct property_entry *properties);
  
 -int device_add_properties(struct device *dev,
 -                        const struct property_entry *properties);
 -void device_remove_properties(struct device *dev);
 -
  bool device_dma_supported(struct device *dev);
  
  enum dev_dma_attr device_get_dma_attr(struct device *dev);
@@@ -397,6 -403,9 +399,6 @@@ struct fwnode_handle *fwnode_graph_get_
        const struct fwnode_handle *fwnode);
  struct fwnode_handle *fwnode_graph_get_remote_endpoint(
        const struct fwnode_handle *fwnode);
 -struct fwnode_handle *
 -fwnode_graph_get_remote_node(const struct fwnode_handle *fwnode, u32 port,
 -                           u32 endpoint);
  
  static inline bool fwnode_graph_is_endpoint(struct fwnode_handle *fwnode)
  {
   *                            one.
   * @FWNODE_GRAPH_DEVICE_DISABLED: That the device to which the remote
   *                              endpoint of the given endpoint belongs to,
 - *                              may be disabled.
 + *                              may be disabled, or that the endpoint is not
 + *                              connected.
   */
  #define FWNODE_GRAPH_ENDPOINT_NEXT    BIT(0)
  #define FWNODE_GRAPH_DEVICE_DISABLED  BIT(1)
  struct fwnode_handle *
  fwnode_graph_get_endpoint_by_id(const struct fwnode_handle *fwnode,
                                u32 port, u32 endpoint, unsigned long flags);
 +unsigned int fwnode_graph_get_endpoint_count(struct fwnode_handle *fwnode,
 +                                           unsigned long flags);
  
  #define fwnode_graph_for_each_endpoint(fwnode, child)                 \
        for (child = NULL;                                              \
This page took 0.243288 seconds and 4 git commands to generate.