]> Git Repo - J-linux.git/commitdiff
Merge tag 'char-misc-6.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh...
authorLinus Torvalds <[email protected]>
Fri, 16 Dec 2022 11:49:24 +0000 (03:49 -0800)
committerLinus Torvalds <[email protected]>
Fri, 16 Dec 2022 11:49:24 +0000 (03:49 -0800)
Pull char/misc driver updates from Greg KH:
 "Here is the large set of char/misc and other driver subsystem changes
  for 6.2-rc1. Nothing earth-shattering in here at all, just a lot of
  new driver development and minor fixes.

  Highlights include:

   - fastrpc driver updates

   - iio new drivers and updates

   - habanalabs driver updates for new hardware and features

   - slimbus driver updates

   - speakup module parameters added to aid in boot time configuration

   - i2c probe_new conversions for lots of different drivers

   - other small driver fixes and additions

  One semi-interesting change in here is the increase of the number of
  misc dynamic minors available to 1048448 to handle new huge-cpu
  systems.

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

* tag 'char-misc-6.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (521 commits)
  extcon: usbc-tusb320: Convert to i2c's .probe_new()
  extcon: rt8973: Convert to i2c's .probe_new()
  extcon: fsa9480: Convert to i2c's .probe_new()
  extcon: max77843: Replace irqchip mask_invert with unmask_base
  chardev: fix error handling in cdev_device_add()
  mcb: mcb-parse: fix error handing in chameleon_parse_gdd()
  drivers: mcb: fix resource leak in mcb_probe()
  coresight: etm4x: fix repeated words in comments
  coresight: cti: Fix null pointer error on CTI init before ETM
  coresight: trbe: remove cpuhp instance node before remove cpuhp state
  counter: stm32-lptimer-cnt: fix the check on arr and cmp registers update
  misc: fastrpc: Add dma_mask to fastrpc_channel_ctx
  misc: fastrpc: Add mmap request assigning for static PD pool
  misc: fastrpc: Safekeep mmaps on interrupted invoke
  misc: fastrpc: Add support for audiopd
  misc: fastrpc: Rework fastrpc_req_munmap
  misc: fastrpc: Use fastrpc_map_put in fastrpc_map_create on fail
  misc: fastrpc: Add fastrpc_remote_heap_alloc
  misc: fastrpc: Add reserved mem support
  misc: fastrpc: Rename audio protection domain to root
  ...

12 files changed:
1  2 
Documentation/devicetree/bindings/iio/adc/qcom,spmi-vadc.yaml
Documentation/devicetree/bindings/vendor-prefixes.yaml
MAINTAINERS
drivers/extcon/extcon-usbc-tusb320.c
drivers/firmware/raspberrypi.c
drivers/fpga/Kconfig
drivers/misc/fastrpc.c
drivers/misc/habanalabs/common/memory.c
drivers/misc/mei/bus.c
drivers/misc/mei/client.c
drivers/misc/mei/mei_dev.h
scripts/kallsyms.c

index e94beb2255ba1f5fb222be93d6b797bb96f0690b,f1522196042d8adf69fec941dd8a15c500ab5dc8..bd6e0d6f6e0ce8a3114a4d75d363c691c1484a42
@@@ -22,13 -22,11 +22,11 @@@ properties
        - items:
            - const: qcom,pms405-adc
            - const: qcom,spmi-adc-rev2
-       - items:
-           - enum:
-               - qcom,spmi-vadc
-               - qcom,spmi-adc5
-               - qcom,spmi-adc-rev2
-               - qcom,spmi-adc7
+       - enum:
+           - qcom,spmi-vadc
+           - qcom,spmi-adc5
+           - qcom,spmi-adc-rev2
+           - qcom,spmi-adc7
  
    reg:
      description: VADC base address in the SPMI PMIC register map
@@@ -301,7 -299,7 +299,7 @@@ examples
              };
  
              conn-therm@47 {
 -                reg = <PM8350_ADC7_AMUX_THM4_100K_PU>;
 +                reg = <PM8350_ADC7_AMUX_THM4_100K_PU(1)>;
                  qcom,ratiometric;
                  qcom,hw-settle-time = <200>;
              };
index 6106000006f2277c2a5e97a0ea3bb7f2db95cbda,65a74026cf2b7da664f2c12170a8ab95ed40d07c..00493b962bd7616fd60d98c610d73d989cb62f0d
@@@ -69,8 -69,6 +69,8 @@@ patternProperties
      description: Annapurna Labs
    "^alcatel,.*":
      description: Alcatel
 +  "^alfa-network,.*":
 +    description: ALFA Network Inc.
    "^allegro,.*":
      description: Allegro DVT
    "^allo,.*":
      description: ChipOne
    "^chipspark,.*":
      description: ChipSPARK
 +  "^chongzhou,.*":
 +    description: Shenzhen Chongzhou Electronic Technology Co., Ltd
    "^chrontel,.*":
      description: Chrontel, Inc.
    "^chrp,.*":
      description: Cirrus Logic, Inc.
    "^cisco,.*":
      description: Cisco Systems, Inc.
 +  "^cloos,.*":
 +    description: Carl Cloos Schweisstechnik GmbH.
    "^cloudengines,.*":
      description: Cloud Engines, Inc.
    "^cnm,.*":
      description: GE Fanuc Intelligent Platforms Embedded Systems, Inc.
    "^gemei,.*":
      description: Gemei Digital Technology Co., Ltd.
 +  "^genesys,.*":
 +    description: Genesys Logic, Inc.
    "^geniatech,.*":
      description: Geniatech, Inc.
    "^giantec,.*":
      description: Hycon Technology Corp.
    "^hydis,.*":
      description: Hydis Technologies
 +  "^hynitron,.*":
 +    description: Shanghai Hynitron Microelectronics Co. Ltd.
    "^hynix,.*":
      description: SK Hynix Inc.
    "^hyundai,.*":
      description: Ingenic Semiconductor
    "^injoinic,.*":
      description: Injoinic Technology Corp.
 +  "^innocomm,.*":
 +    description: InnoComm Mobile Technology Corp.
    "^innolux,.*":
      description: Innolux Corporation
    "^inside-secure,.*":
      description: ITian Corporation
    "^iwave,.*":
      description: iWave Systems Technologies Pvt. Ltd.
 +  "^jadard,.*":
 +    description: Jadard Technology Inc.
    "^jdi,.*":
      description: Japan Display Inc.
    "^jedec,.*":
      description: Shenzhen Netxeon Technology CO., LTD
    "^neweast,.*":
      description: Guangdong Neweast Optoelectronics CO., LTD
 +  "^newvision,.*":
 +    description: New Vision Display (Shenzhen) Co., Ltd.
    "^nexbox,.*":
      description: Nexbox
    "^nextthing,.*":
      description: One Laptop Per Child
    "^oneplus,.*":
      description: OnePlus Technology (Shenzhen) Co., Ltd.
+   "^onie,.*":
+     description: Open Network Install Environment group
    "^onion,.*":
      description: Onion Corporation
    "^onnn,.*":
diff --combined MAINTAINERS
index 36cf7e4eaea4c66842614798048b7dbcd5b70152,9886aa1a440340e89402e5b1b4b1e0635ef526a0..be4541986c29a52b0975f6de8d71d595cc3d55b4
@@@ -312,13 -312,6 +312,13 @@@ L:       [email protected]
  S:    Maintained
  F:    drivers/counter/104-quad-8.c
  
 +ACCES IDIO-16 GPIO LIBRARY
 +M:    William Breathitt Gray <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/gpio/gpio-idio-16.c
 +F:    drivers/gpio/gpio-idio-16.h
 +
  ACCES PCI-IDIO-16 GPIO DRIVER
  M:    William Breathitt Gray <[email protected]>
  L:    [email protected]
@@@ -782,24 -775,6 +782,24 @@@ T:       git git://linuxtv.org/media_tree.gi
  F:    Documentation/devicetree/bindings/media/allwinner,sun4i-a10-csi.yaml
  F:    drivers/media/platform/sunxi/sun4i-csi/
  
 +ALLWINNER A31 CSI DRIVER
 +M:    Yong Deng <[email protected]>
 +M:    Paul Kocialkowski <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +T:    git git://linuxtv.org/media_tree.git
 +F:    Documentation/devicetree/bindings/media/allwinner,sun6i-a31-csi.yaml
 +F:    drivers/media/platform/sunxi/sun6i-csi/
 +
 +ALLWINNER A31 ISP DRIVER
 +M:    Paul Kocialkowski <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +T:    git git://linuxtv.org/media_tree.git
 +F:    Documentation/devicetree/bindings/media/allwinner,sun6i-a31-isp.yaml
 +F:    drivers/staging/media/sunxi/sun6i-isp/
 +F:    drivers/staging/media/sunxi/sun6i-isp/uapi/sun6i-isp-config.h
 +
  ALLWINNER A31 MIPI CSI-2 BRIDGE DRIVER
  M:    Paul Kocialkowski <[email protected]>
  L:    [email protected]
@@@ -1118,16 -1093,6 +1118,16 @@@ S:    Maintaine
  F:    Documentation/hid/amd-sfh*
  F:    drivers/hid/amd-sfh-hid/
  
 +AMLOGIC DDR PMU DRIVER
 +M:    Jiucheng Xu <[email protected]>
 +L:    [email protected]
 +S:    Supported
 +W:    http://www.amlogic.com
 +F:    Documentation/admin-guide/perf/meson-ddr-pmu.rst
 +F:    Documentation/devicetree/bindings/perf/amlogic,g12-ddr-pmu.yaml
 +F:    drivers/perf/amlogic/
 +F:    include/soc/amlogic/
 +
  AMPHION VPU CODEC V4L2 DRIVER
  M:    Ming Qian <[email protected]>
  M:    Shijie Qin <[email protected]>
@@@ -1152,6 -1117,15 +1152,15 @@@ T:    git git://git.kernel.org/pub/scm/lin
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next.git
  F:    drivers/net/amt.c
  
+ ANALOG DEVICES INC AD4130 DRIVER
+ M:    Cosmin Tanislav <[email protected]>
+ L:    [email protected]
+ S:    Supported
+ W:    http://ez.analog.com/community/linux-device-drivers
+ F:    Documentation/ABI/testing/sysfs-bus-iio-adc-ad4130
+ F:    Documentation/devicetree/bindings/iio/adc/adi,ad4130.yaml
+ F:    drivers/iio/adc/ad4130.c
  ANALOG DEVICES INC AD7192 DRIVER
  M:    Alexandru Tachici <[email protected]>
  L:    [email protected]
@@@ -1201,6 -1175,14 +1210,14 @@@ W:    https://ez.analog.com/linux-software
  F:    Documentation/devicetree/bindings/iio/adc/adi,ad7780.yaml
  F:    drivers/iio/adc/ad7780.c
  
+ ANALOG DEVICES INC AD74115 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,ad74115.yaml
+ F:    drivers/iio/addac/ad74115.c
  ANALOG DEVICES INC AD74413R DRIVER
  M:    Cosmin Tanislav <[email protected]>
  L:    [email protected]
@@@ -1224,6 -1206,14 +1241,14 @@@ W:    https://ez.analog.com/linux-software
  F:    Documentation/devicetree/bindings/iio/amplifiers/adi,ada4250.yaml
  F:    drivers/iio/amplifiers/ada4250.c
  
+ ANALOG DEVICES INC ADF4377 DRIVER
+ M:    Antoniu Miclaus <[email protected]>
+ L:    [email protected]
+ S:    Supported
+ W:    https://ez.analog.com/linux-software-drivers
+ F:    Documentation/devicetree/bindings/iio/frequency/adi,adf4377.yaml
+ F:    drivers/iio/frequency/adf4377.c
  ANALOG DEVICES INC ADGS1408 DRIVER
  M:    Mircea Caprioru <[email protected]>
  S:    Supported
@@@ -1720,7 -1710,7 +1745,7 @@@ M:      Miquel Raynal <miquel.raynal@bootlin
  M:    Naga Sureshkumar Relli <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
 -F:    Documentation/devicetree/bindings/memory-controllers/arm,pl353-smc.yaml
 +F:    Documentation/devicetree/bindings/memory-controllers/arm,pl35x-smc.yaml
  F:    drivers/memory/pl353-smc.c
  
  ARM PRIMECELL CLCD PL110 DRIVER
@@@ -1932,14 -1922,12 +1957,14 @@@ T:   git https://github.com/AsahiLinux/li
  F:    Documentation/devicetree/bindings/arm/apple.yaml
  F:    Documentation/devicetree/bindings/arm/apple/*
  F:    Documentation/devicetree/bindings/clock/apple,nco.yaml
 +F:    Documentation/devicetree/bindings/cpufreq/apple,cluster-cpufreq.yaml
  F:    Documentation/devicetree/bindings/dma/apple,admac.yaml
  F:    Documentation/devicetree/bindings/i2c/apple,i2c.yaml
  F:    Documentation/devicetree/bindings/interrupt-controller/apple,*
  F:    Documentation/devicetree/bindings/iommu/apple,dart.yaml
  F:    Documentation/devicetree/bindings/iommu/apple,sart.yaml
  F:    Documentation/devicetree/bindings/mailbox/apple,mailbox.yaml
 +F:    Documentation/devicetree/bindings/net/bluetooth/brcm,bcm4377-bluetooth.yaml
  F:    Documentation/devicetree/bindings/nvme/apple,nvme-ans.yaml
  F:    Documentation/devicetree/bindings/nvmem/apple,efuses.yaml
  F:    Documentation/devicetree/bindings/pci/apple,pcie.yaml
@@@ -1947,9 -1935,7 +1972,9 @@@ F:      Documentation/devicetree/bindings/pi
  F:    Documentation/devicetree/bindings/power/apple*
  F:    Documentation/devicetree/bindings/watchdog/apple,wdt.yaml
  F:    arch/arm64/boot/dts/apple/
 +F:    drivers/bluetooth/hci_bcm4377.c
  F:    drivers/clk/clk-apple-nco.c
 +F:    drivers/cpufreq/apple-soc-cpufreq.c
  F:    drivers/dma/apple-admac.c
  F:    drivers/i2c/busses/i2c-pasemi-core.c
  F:    drivers/i2c/busses/i2c-pasemi-platform.c
@@@ -2311,6 -2297,8 +2336,6 @@@ F:      drivers/clocksource/timer-ixp4xx.
  F:    drivers/crypto/ixp4xx_crypto.c
  F:    drivers/gpio/gpio-ixp4xx.c
  F:    drivers/irqchip/irq-ixp4xx.c
 -F:    include/linux/irqchip/irq-ixp4xx.h
 -F:    include/linux/platform_data/timer-ixp4xx.h
  
  ARM/INTEL KEEMBAY ARCHITECTURE
  M:    Paul J. Murphy <[email protected]>
@@@ -2378,8 -2366,6 +2403,8 @@@ M:      Gregory Clement <gregory.clement@boo
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/gclement/mvebu.git
 +F:    Documentation/devicetree/bindings/arm/marvell/marvell,dove.txt
 +F:    Documentation/devicetree/bindings/arm/marvell/marvell,orion5x.txt
  F:    Documentation/devicetree/bindings/soc/dove/
  F:    arch/arm/boot/dts/dove*
  F:    arch/arm/boot/dts/orion5x*
@@@ -2396,7 -2382,6 +2421,7 @@@ M:      Sebastian Hesselbarth <sebastian.hes
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/gclement/mvebu.git
 +F:    Documentation/devicetree/bindings/arm/marvell/
  F:    arch/arm/boot/dts/armada*
  F:    arch/arm/boot/dts/kirkwood*
  F:    arch/arm/configs/mvebu_*_defconfig
@@@ -2479,7 -2464,6 +2504,7 @@@ L:      [email protected]
  S:    Supported
  T:    git git://github.com/microchip-ung/linux-upstream.git
  F:    arch/arm64/boot/dts/microchip/
 +F:    drivers/net/ethernet/microchip/vcap/
  F:    drivers/pinctrl/pinctrl-microchip-sgpio.c
  N:    sparx5
  
@@@ -2661,7 -2645,7 +2686,7 @@@ W:      http://www.armlinux.org.uk
  ARM/QUALCOMM SUPPORT
  M:    Andy Gross <[email protected]>
  M:    Bjorn Andersson <[email protected]>
 -R:    Konrad Dybcio <konrad.dybcio@somainline.org>
 +R:    Konrad Dybcio <konrad.dybcio@linaro.org>
  L:    [email protected]
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux.git
@@@ -2732,7 -2716,7 +2757,7 @@@ F:      arch/arm/boot/dts/rtd
  F:    arch/arm/mach-realtek/
  F:    arch/arm64/boot/dts/realtek/
  
 -ARM/RENESAS ARCHITECTURE
 +ARM/RISC-V/RENESAS ARCHITECTURE
  M:    Geert Uytterhoeven <[email protected]>
  M:    Magnus Damm <[email protected]>
  L:    [email protected]
@@@ -2740,6 -2724,7 +2765,6 @@@ S:      Supporte
  Q:    http://patchwork.kernel.org/project/linux-renesas-soc/list/
  C:    irc://irc.libera.chat/renesas-soc
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel.git next
 -F:    Documentation/devicetree/bindings/arm/renesas.yaml
  F:    Documentation/devicetree/bindings/hwinfo/renesas,prr.yaml
  F:    Documentation/devicetree/bindings/soc/renesas/
  F:    arch/arm/boot/dts/emev2*
@@@ -2753,7 -2738,6 +2778,7 @@@ F:      arch/arm/configs/shmobile_defconfi
  F:    arch/arm/include/debug/renesas-scif.S
  F:    arch/arm/mach-shmobile/
  F:    arch/arm64/boot/dts/renesas/
 +F:    arch/riscv/boot/dts/renesas/
  F:    drivers/soc/renesas/
  F:    include/linux/soc/renesas/
  
@@@ -4982,12 -4966,6 +5007,12 @@@ S:    Maintaine
  F:    drivers/platform/chrome/cros_usbpd_notify.c
  F:    include/linux/platform_data/cros_usbpd_notify.h
  
 +CHROMEOS HPS DRIVER
 +M:    Dan Callaghan <[email protected]>
 +R:    Sami Kyöstilä <[email protected]>
 +S:    Maintained
 +F:    drivers/platform/chrome/cros_hps_i2c.c
 +
  CHRONTEL CH7322 CEC DRIVER
  M:    Joe Tessler <[email protected]>
  L:    [email protected]
@@@ -5346,7 -5324,7 +5371,7 @@@ M:      Johannes Weiner <[email protected]
  M:    Michal Hocko <[email protected]>
  M:    Roman Gushchin <[email protected]>
  M:    Shakeel Butt <[email protected]>
 -R:    Muchun Song <[email protected]>
 +R:    Muchun Song <[email protected]>
  L:    [email protected]
  L:    [email protected]
  S:    Maintained
@@@ -5549,6 -5527,14 +5574,6 @@@ M:     Jaya Kumar <[email protected]
  S:    Maintained
  F:    sound/pci/cs5535audio/
  
 -CSI DRIVERS FOR ALLWINNER V3s
 -M:    Yong Deng <[email protected]>
 -L:    [email protected]
 -S:    Maintained
 -T:    git git://linuxtv.org/media_tree.git
 -F:    Documentation/devicetree/bindings/media/allwinner,sun6i-a31-csi.yaml
 -F:    drivers/media/platform/sunxi/sun6i-csi/
 -
  CTU CAN FD DRIVER
  M:    Pavel Pisa <[email protected]>
  M:    Ondrej Ille <[email protected]>
@@@ -5624,6 -5610,8 +5649,6 @@@ F:      drivers/scsi/cxgbi/cxgb3
  
  CXGB4 CRYPTO DRIVER (chcr)
  M:    Ayush Sawal <[email protected]>
 -M:    Vinay Kumar Yadav <[email protected]>
 -M:    Rohit Maheshwari <[email protected]>
  L:    [email protected]
  S:    Supported
  W:    http://www.chelsio.com
@@@ -5631,6 -5619,8 +5656,6 @@@ F:      drivers/crypto/chelsi
  
  CXGB4 INLINE CRYPTO DRIVER
  M:    Ayush Sawal <[email protected]>
 -M:    Vinay Kumar Yadav <[email protected]>
 -M:    Rohit Maheshwari <[email protected]>
  L:    [email protected]
  S:    Supported
  W:    http://www.chelsio.com
  S:    Maintained
  F:    drivers/platform/x86/dell/dell-wmi-descriptor.c
  
 +DELL WMI DDV DRIVER
 +M:    Armin Wolf <[email protected]>
 +S:    Maintained
 +F:    Documentation/ABI/testing/debugfs-dell-wmi-ddv
 +F:    Documentation/ABI/testing/sysfs-platform-dell-wmi-ddv
 +F:    drivers/platform/x86/dell/dell-wmi-ddv.c
 +
  DELL WMI SYSMAN DRIVER
  M:    Divya Bharathi <[email protected]>
  M:    Prasanth Ksr <[email protected]>
@@@ -6075,12 -6058,11 +6100,12 @@@ F:   include/net/devlink.
  F:    include/uapi/linux/devlink.h
  F:    net/core/devlink.c
  
 -DH ELECTRONICS IMX6 DHCOM BOARD SUPPORT
 +DH ELECTRONICS IMX6 DHCOM/DHCOR BOARD SUPPORT
  M:    Christoph Niedermaier <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    arch/arm/boot/dts/imx6*-dhcom-*
 +F:    arch/arm/boot/dts/imx6*-dhcor-*
  
  DH ELECTRONICS STM32MP1 DHCOM/DHCOR BOARD SUPPORT
  M:    Marek Vasut <[email protected]>
@@@ -6372,7 -6354,6 +6397,7 @@@ F:      drivers/net/ethernet/freescale/dpaa2
  F:    drivers/net/ethernet/freescale/dpaa2/Makefile
  F:    drivers/net/ethernet/freescale/dpaa2/dpaa2-eth*
  F:    drivers/net/ethernet/freescale/dpaa2/dpaa2-mac*
 +F:    drivers/net/ethernet/freescale/dpaa2/dpaa2-xsk*
  F:    drivers/net/ethernet/freescale/dpaa2/dpkg.h
  F:    drivers/net/ethernet/freescale/dpaa2/dpmac*
  F:    drivers/net/ethernet/freescale/dpaa2/dpni*
@@@ -6550,12 -6531,6 +6575,12 @@@ S:    Orphan / Obsolet
  F:    drivers/gpu/drm/i810/
  F:    include/uapi/drm/i810_drm.h
  
 +DRM DRIVER FOR JADARD JD9365DA-H3 MIPI-DSI LCD PANELS
 +M:    Jagan Teki <[email protected]>
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/display/panel/jadard,jd9365da-h3.yaml
 +F:    drivers/gpu/drm/panel/panel-jadard-jd9365da-h3.c
 +
  DRM DRIVER FOR LOGICVC DISPLAY CONTROLLER
  M:    Paul Kocialkowski <[email protected]>
  S:    Supported
  S:    Maintained
  T:    git git://anongit.freedesktop.org/drm/drm-misc
  F:    drivers/gpu/drm/drm_aperture.c
 +F:    drivers/gpu/drm/tiny/ofdrm.c
  F:    drivers/gpu/drm/tiny/simpledrm.c
  F:    drivers/video/aperture.c
 +F:    drivers/video/nomodeset.c
  F:    include/drm/drm_aperture.h
  F:    include/linux/aperture.h
 +F:    include/video/nomodeset.h
  
  DRM DRIVER FOR SIS VIDEO CARDS
  S:    Orphan / Obsolete
@@@ -6880,15 -6852,6 +6905,15 @@@ F:    include/drm/drm
  F:    include/linux/vga*
  F:    include/uapi/drm/drm*
  
 +DRM COMPUTE ACCELERATORS DRIVERS AND FRAMEWORK
 +M:    Oded Gabbay <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +C:    irc://irc.oftc.net/dri-devel
 +T:    git https://git.kernel.org/pub/scm/linux/kernel/git/ogabbay/accel.git
 +F:    Documentation/accel/
 +F:    drivers/accel/
 +
  DRM DRIVERS FOR ALLWINNER A10
  M:    Maxime Ripard <[email protected]>
  M:    Chen-Yu Tsai <[email protected]>
@@@ -7177,7 -7140,7 +7202,7 @@@ F:      drivers/gpu/drm/ttm
  F:    include/drm/ttm/
  
  DRM GPU SCHEDULER
 -M:    Andrey Grodzovsky <andrey.grodzovsky@amd.com>
 +M:    Luben Tuikov <luben.tuikov@amd.com>
  L:    [email protected]
  S:    Maintained
  T:    git git://anongit.freedesktop.org/drm/drm-misc
@@@ -7425,9 -7388,9 +7450,9 @@@ F:      drivers/edac/thunderx_edac
  
  EDAC-CORE
  M:    Borislav Petkov <[email protected]>
 -M:    Mauro Carvalho Chehab <[email protected]>
  M:    Tony Luck <[email protected]>
  R:    James Morse <[email protected]>
 +R:    Mauro Carvalho Chehab <[email protected]>
  R:    Robert Richter <[email protected]>
  L:    [email protected]
  S:    Supported
@@@ -7544,7 -7507,8 +7569,7 @@@ S:      Maintaine
  F:    drivers/edac/pnd2_edac.[ch]
  
  EDAC-QCOM
 -M:    Channagoud Kadabi <[email protected]>
 -M:    Venkata Narendra Kumar Gutta <[email protected]>
 +M:    Manivannan Sadhasivam <[email protected]>
  L:    [email protected]
  L:    [email protected]
  S:    Maintained
@@@ -7745,7 -7709,6 +7770,7 @@@ ETAS ES58X CAN/USB DRIVE
  M:    Vincent Mailhol <[email protected]>
  L:    [email protected]
  S:    Maintained
 +F:    Documentation/networking/devlink/etas_es58x.rst
  F:    drivers/net/can/usb/etas_es58x/
  
  ETHERNET BRIDGE
@@@ -7851,6 -7814,7 +7876,6 @@@ F:      Documentation/admin-guide/efi-stub.r
  F:    arch/*/include/asm/efi.h
  F:    arch/*/kernel/efi.c
  F:    arch/arm/boot/compressed/efi-header.S
 -F:    arch/arm64/kernel/efi-entry.S
  F:    arch/x86/platform/efi/
  F:    drivers/firmware/efi/
  F:    include/linux/efi*.h
@@@ -7896,7 -7860,6 +7921,7 @@@ M:      Chao Yu <[email protected]
  L:    [email protected]
  S:    Maintained
  W:    https://f2fs.wiki.kernel.org/
 +B:    https://bugzilla.kernel.org/enter_bug.cgi?product=File%20System&component=f2fs
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs.git
  F:    Documentation/ABI/testing/sysfs-fs-f2fs
  F:    Documentation/filesystems/f2fs.rst
@@@ -7935,12 -7898,6 +7960,12 @@@ F:    fs/notify/fanotify
  F:    include/linux/fanotify.h
  F:    include/uapi/linux/fanotify.h
  
 +FARADAY FOTG210 USB2 DUAL-ROLE CONTROLLER
 +M:    Linus Walleij <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/usb/fotg210/
 +
  FARSYNC SYNCHRONOUS DRIVER
  M:    Kevin Curtis <[email protected]>
  S:    Supported
@@@ -8119,8 -8076,6 +8144,8 @@@ S:      Supporte
  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/memcpy_kunit.c
 +F:    lib/strscpy_kunit.c
  F:    lib/test_fortify/*
  F:    scripts/test_fortify.sh
  K:    \b__NO_FORTIFY\b
@@@ -8257,10 -8212,7 +8282,10 @@@ S:    Maintaine
  F:    drivers/i2c/busses/i2c-cpm.c
  
  FREESCALE IMX / MXC FEC DRIVER
 -M:    Joakim Zhang <[email protected]>
 +M:    Wei Fang <[email protected]>
 +R:    Shenwei Wang <[email protected]>
 +R:    Clark Wang <[email protected]>
 +R:    NXP Linux Team <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    Documentation/devicetree/bindings/net/fsl,fec.yaml
@@@ -8534,9 -8486,6 +8559,9 @@@ FUNCTION HOOKS (FTRACE
  M:    Steven Rostedt <[email protected]>
  M:    Masami Hiramatsu <[email protected]>
  R:    Mark Rutland <[email protected]>
 +L:    [email protected]
 +L:    [email protected]
 +Q:    https://patchwork.kernel.org/project/linux-trace-kernel/list/
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace.git
  F:    Documentation/trace/ftrace*
@@@ -8822,7 -8771,6 +8847,7 @@@ GPIO IR Transmitte
  M:    Sean Young <[email protected]>
  L:    [email protected]
  S:    Maintained
 +F:    Documentation/devicetree/bindings/leds/irled/gpio-ir-tx.yaml
  F:    drivers/media/rc/gpio-ir-tx.c
  
  GPIO MOCKUP DRIVER
@@@ -9246,13 -9194,6 +9271,13 @@@ W:    http://www.highpoint-tech.co
  F:    Documentation/scsi/hptiop.rst
  F:    drivers/scsi/hptiop.c
  
 +HIMAX HX83112B TOUCHSCREEN SUPPORT
 +M:    Job Noorman <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/input/touchscreen/himax,hx83112b.yaml
 +F:    drivers/input/touchscreen/himax_hx83112b.c
 +
  HIPPI
  M:    Jes Sorensen <[email protected]>
  L:    [email protected]
@@@ -9282,7 -9223,6 +9307,7 @@@ HISILICON GPIO DRIVE
  M:    Jay Fang <[email protected]>
  L:    [email protected]
  S:    Maintained
 +F:    Documentation/devicetree/bindings/gpio/hisilicon,ascend910-gpio.yaml
  F:    drivers/gpio/gpio-hisi.c
  
  HISILICON HIGH PERFORMANCE RSA ENGINE DRIVER (HPRE)
@@@ -9299,7 -9239,6 +9324,7 @@@ M:      Yicong Yang <[email protected]
  L:    [email protected]
  S:    Maintained
  W:    https://www.hisilicon.com
 +F:    Documentation/devicetree/bindings/i2c/hisilicon,ascend910-i2c.yaml
  F:    drivers/i2c/busses/i2c-hisi.c
  
  HISILICON LPC BUS DRIVER
@@@ -9334,7 -9273,7 +9359,7 @@@ F:      drivers/misc/hisi_hikey_usb.
  
  HISILICON PMU DRIVER
  M:    Shaokun Zhang <[email protected]>
 -M:    Qi Liu <liuqi115@huawei.com>
 +M:    Jonathan Cameron <jonathan.cameron@huawei.com>
  S:    Supported
  W:    http://www.hisilicon.com
  F:    Documentation/admin-guide/perf/hisi-pcie-pmu.rst
@@@ -9383,7 -9322,7 +9408,7 @@@ F:      Documentation/devicetree/bindings/in
  F:    drivers/infiniband/hw/hns/
  
  HISILICON SAS Controller
 -M:    John Garry <john.garry@huawei.com>
 +M:    Xiang Chen <chenxiang66@hisilicon.com>
  S:    Supported
  W:    http://www.hisilicon.com
  F:    Documentation/devicetree/bindings/scsi/hisilicon-sas.txt
@@@ -9452,7 -9391,7 +9477,7 @@@ F:      drivers/net/wireless/intersil/hostap
  HP COMPAQ TC1100 TABLET WMI EXTRAS DRIVER
  L:    [email protected]
  S:    Orphan
 -F:    drivers/platform/x86/tc1100-wmi.c
 +F:    drivers/platform/x86/hp/tc1100-wmi.c
  
  HPET: High Precision Event Timers driver
  M:    Clemens Ladisch <[email protected]>
@@@ -9522,15 -9461,14 +9547,15 @@@ F:   Documentation/devicetree/bindings/ii
  F:    drivers/iio/humidity/hts221*
  
  HUAWEI ETHERNET DRIVER
 +M:    Cai Huoqing <[email protected]>
  L:    [email protected]
 -S:    Orphan
 +S:    Maintained
  F:    Documentation/networking/device_drivers/ethernet/huawei/hinic.rst
  F:    drivers/net/ethernet/huawei/hinic/
  
  HUGETLB SUBSYSTEM
  M:    Mike Kravetz <[email protected]>
 -M:    Muchun Song <[email protected]>
 +M:    Muchun Song <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    Documentation/ABI/testing/sysfs-kernel-mm-hugepages
@@@ -9627,7 -9565,6 +9652,7 @@@ F:      include/asm-generic/hyperv-tlfs.
  F:    include/asm-generic/mshyperv.h
  F:    include/clocksource/hyperv_timer.h
  F:    include/linux/hyperv.h
 +F:    include/net/mana
  F:    include/uapi/linux/hyperv.h
  F:    net/vmw_vsock/hyperv_transport.c
  F:    tools/hv/
@@@ -9791,7 -9728,8 +9816,7 @@@ F:      Documentation/devicetree/bindings/i3
  F:    drivers/i3c/master/i3c-master-cdns.c
  
  I3C DRIVER FOR SYNOPSYS DESIGNWARE
 -M:    Vitor Soares <[email protected]>
 -S:    Maintained
 +S:    Orphan
  F:    Documentation/devicetree/bindings/i3c/snps,dw-i3c-master.yaml
  F:    drivers/i3c/master/dw*
  
@@@ -10113,11 -10051,6 +10138,11 @@@ F: Documentation/hwmon/ina2xx.rs
  F:    drivers/hwmon/ina2xx.c
  F:    include/linux/platform_data/ina2xx.h
  
 +INDEX OF FURTHER KERNEL DOCUMENTATION
 +M:    Carlos Bilbao <[email protected]>
 +S:    Maintained
 +F:    Documentation/process/kernel-docs.rst
 +
  INDUSTRY PACK SUBSYSTEM (IPACK)
  M:    Samuel Iglesias Gonsalvez <[email protected]>
  M:    Jens Taprogge <[email protected]>
@@@ -10147,7 -10080,6 +10172,7 @@@ F:   drivers/infiniband
  F:    include/rdma/
  F:    include/trace/events/ib_mad.h
  F:    include/trace/events/ib_umad.h
 +F:    include/trace/misc/rdma.h
  F:    include/uapi/linux/if_infiniband.h
  F:    include/uapi/rdma/
  F:    samples/bpf/ibumad_kern.c
@@@ -10321,7 -10253,6 +10346,7 @@@ Q:   http://patchwork.freedesktop.org/pro
  B:    https://gitlab.freedesktop.org/drm/intel/-/wikis/How-to-file-i915-bugs
  C:    irc://irc.oftc.net/intel-gfx
  T:    git git://anongit.freedesktop.org/drm-intel
 +F:    Documentation/ABI/testing/sysfs-driver-intel-i915-hwmon
  F:    Documentation/gpu/i915.rst
  F:    drivers/gpu/drm/i915/
  F:    include/drm/i915*
@@@ -10381,7 -10312,7 +10406,7 @@@ T:   git https://github.com/intel/gvt-lin
  F:    drivers/gpu/drm/i915/gvt/
  
  INTEL HID EVENT DRIVER
 -M:    Alex Hung <alex.hung@canonical.com>
 +M:    Alex Hung <alexhung@gmail.com>
  L:    [email protected]
  S:    Maintained
  F:    drivers/platform/x86/intel/hid.c
@@@ -10813,18 -10744,6 +10838,18 @@@ F: drivers/iommu/dma-iommu.
  F:    drivers/iommu/iova.c
  F:    include/linux/iova.h
  
 +IOMMUFD
 +M:    Jason Gunthorpe <[email protected]>
 +M:    Kevin Tian <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jgg/iommufd.git
 +F:    Documentation/userspace-api/iommufd.rst
 +F:    drivers/iommu/iommufd/
 +F:    include/linux/iommufd.h
 +F:    include/uapi/linux/iommufd.h
 +F:    tools/testing/selftests/iommu/
 +
  IOMMU SUBSYSTEM
  M:    Joerg Roedel <[email protected]>
  M:    Will Deacon <[email protected]>
@@@ -11004,13 -10923,6 +11029,13 @@@ F: drivers/isdn/Makefil
  F:    drivers/isdn/hardware/
  F:    drivers/isdn/mISDN/
  
 +ISOFS FILESYSTEM
 +M:    Jan Kara <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/filesystems/isofs.rst
 +F:    fs/isofs/
 +
  IT87 HARDWARE MONITORING DRIVER
  M:    Jean Delvare <[email protected]>
  L:    [email protected]
@@@ -11072,9 -10984,9 +11097,9 @@@ F:   drivers/hwmon/jc42.
  JFS FILESYSTEM
  M:    Dave Kleikamp <[email protected]>
  L:    [email protected]
 -S:    Maintained
 +S:    Odd Fixes
  W:    http://jfs.sourceforge.net/
 -T:    git git://github.com/kleikamp/linux-shaggy.git
 +T:    git https://github.com/kleikamp/linux-shaggy.git
  F:    Documentation/admin-guide/jfs.rst
  F:    fs/jfs/
  
@@@ -11229,8 -11141,6 +11254,8 @@@ M:   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/hardening
 +F:    Documentation/ABI/testing/sysfs-kernel-oops_count
 +F:    Documentation/ABI/testing/sysfs-kernel-warn_count
  F:    include/linux/overflow.h
  F:    include/linux/randomize_kstack.h
  F:    mm/usercopy.c
@@@ -11249,18 -11159,11 +11274,18 @@@ L:        [email protected]
  S:    Supported
  W:    http://nfs.sourceforge.net/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/cel/linux.git
 +F:    fs/exportfs/
  F:    fs/lockd/
  F:    fs/nfs_common/
  F:    fs/nfsd/
  F:    include/linux/lockd/
  F:    include/linux/sunrpc/
 +F:    include/trace/events/rpcgss.h
 +F:    include/trace/events/rpcrdma.h
 +F:    include/trace/events/sunrpc.h
 +F:    include/trace/misc/fs.h
 +F:    include/trace/misc/nfs.h
 +F:    include/trace/misc/sunrpc.h
  F:    include/uapi/linux/nfsd/
  F:    include/uapi/linux/sunrpc/
  F:    net/sunrpc/
@@@ -11448,16 -11351,6 +11473,16 @@@ F: arch/x86/kvm/svm/hyperv.
  F:    arch/x86/kvm/svm/svm_onhyperv.*
  F:    arch/x86/kvm/vmx/evmcs.*
  
 +KVM X86 Xen (KVM/Xen)
 +M:    David Woodhouse <[email protected]>
 +M:    Paul Durrant <[email protected]>
 +M:    Sean Christopherson <[email protected]>
 +M:    Paolo Bonzini <[email protected]>
 +L:    [email protected]
 +S:    Supported
 +T:    git git://git.kernel.org/pub/scm/virt/kvm/kvm.git
 +F:    arch/x86/kvm/xen.*
 +
  KERNFS
  M:    Greg Kroah-Hartman <[email protected]>
  M:    Tejun Heo <[email protected]>
@@@ -11578,6 -11471,12 +11603,12 @@@ F: drivers/mfd/khadas-mcu.
  F:    include/linux/mfd/khadas-mcu.h
  F:    drivers/thermal/khadas_mcu_fan.c
  
+ KIONIX/ROHM KX022A ACCELEROMETER
+ M:    Matti Vaittinen <[email protected]>
+ L:    [email protected]
+ S:    Supported
+ F:    drivers/iio/accel/kionix-kx022a*
  KMEMLEAK
  M:    Catalin Marinas <[email protected]>
  S:    Maintained
@@@ -11615,9 -11514,6 +11646,9 @@@ M:   Naveen N. Rao <[email protected]
  M:    Anil S Keshavamurthy <[email protected]>
  M:    "David S. Miller" <[email protected]>
  M:    Masami Hiramatsu <[email protected]>
 +L:    [email protected]
 +L:    [email protected]
 +Q:    https://patchwork.kernel.org/project/linux-trace-kernel/list/
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace.git
  F:    Documentation/trace/kprobes.rst
@@@ -11995,7 -11891,7 +12026,7 @@@ M:   Eric Piel <[email protected]
  S:    Maintained
  F:    Documentation/misc-devices/lis3lv02d.rst
  F:    drivers/misc/lis3lv02d/
 -F:    drivers/platform/x86/hp_accel.c
 +F:    drivers/platform/x86/hp/hp_accel.c
  
  LIST KUNIT TEST
  M:    David Gow <[email protected]>
@@@ -12150,21 -12046,6 +12181,21 @@@ F: drivers/*/*loongarch
  F:    Documentation/loongarch/
  F:    Documentation/translations/zh_CN/loongarch/
  
 +LOONGSON-2 SOC SERIES GUTS DRIVER
 +M:    Yinbo Zhu <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/hwinfo/loongson,ls2k-chipid.yaml
 +F:    drivers/soc/loongson/loongson2_guts.c
 +
 +LOONGSON-2 SOC SERIES PINCTRL DRIVER
 +M:    zhanghongchen <[email protected]>
 +M:    Yinbo Zhu <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/pinctrl/loongson,ls2k-pinctrl.yaml
 +F:    drivers/pinctrl/pinctrl-loongson2.c
 +
  LSILOGIC MPT FUSION DRIVERS (FC/SAS/SPI)
  M:    Sathya Prakash <[email protected]>
  M:    Sreekanth Reddy <[email protected]>
@@@ -12242,7 -12123,7 +12273,7 @@@ M:   Alexey Kodanev <alexey.kodanev@oracl
  L:    [email protected] (subscribers-only)
  S:    Maintained
  W:    http://linux-test-project.github.io/
 -T:    git git://github.com/linux-test-project/ltp.git
 +T:    git https://github.com/linux-test-project/ltp.git
  
  LYNX 28G SERDES PHY DRIVER
  M:    Ioana Ciornei <[email protected]>
@@@ -12467,7 -12348,7 +12498,7 @@@ M:   Marcin Wojtas <[email protected]
  M:    Russell King <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/devicetree/bindings/net/marvell-pp2.txt
 +F:    Documentation/devicetree/bindings/net/marvell,pp2.yaml
  F:    drivers/net/ethernet/marvell/mvpp2/
  
  MARVELL MWIFIEX WIRELESS DRIVER
@@@ -12515,7 -12396,7 +12546,7 @@@ F:   Documentation/networking/device_driv
  F:    drivers/net/ethernet/marvell/octeontx2/af/
  
  MARVELL PRESTERA ETHERNET SWITCH DRIVER
 -M:    Taras Chornyi <t[email protected]>
 +M:    Taras Chornyi <t[email protected]>
  S:    Supported
  W:    https://github.com/Marvell-switching/switchdev-prestera
  F:    drivers/net/ethernet/marvell/prestera/
@@@ -12657,6 -12538,12 +12688,12 @@@ S: Maintaine
  F:    Documentation/devicetree/bindings/regulator/maxim,max20086.yaml
  F:    drivers/regulator/max20086-regulator.c
  
+ MAXIM MAX30208 TEMPERATURE SENSOR DRIVER
+ M:    Rajat Khandelwal <[email protected]>
+ L:    [email protected]
+ S:    Maintained
+ F:    drivers/iio/temperature/max30208.c
  MAXIM MAX77650 PMIC MFD DRIVER
  M:    Bartosz Golaszewski <[email protected]>
  L:    [email protected]
@@@ -12877,7 -12764,7 +12914,7 @@@ F:   Documentation/admin-guide/media/imx7
  F:    Documentation/devicetree/bindings/media/nxp,imx-mipi-csi2.yaml
  F:    Documentation/devicetree/bindings/media/nxp,imx7-csi.yaml
  F:    drivers/media/platform/nxp/imx-mipi-csis.c
 -F:    drivers/staging/media/imx/imx7-media-csi.c
 +F:    drivers/media/platform/nxp/imx7-media-csi.c
  
  MEDIA DRIVERS FOR HELENE
  M:    Abylay Ospan <[email protected]>
@@@ -13074,7 -12961,6 +13111,7 @@@ M:   Felix Fietkau <[email protected]
  M:    John Crispin <[email protected]>
  M:    Sean Wang <[email protected]>
  M:    Mark Lee <[email protected]>
 +M:    Lorenzo Bianconi <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    drivers/net/ethernet/mediatek/
@@@ -13446,20 -13332,10 +13483,20 @@@ F:        include/linux/memory_hotplug.
  F:    include/linux/mm.h
  F:    include/linux/mmzone.h
  F:    include/linux/pagewalk.h
 -F:    include/linux/vmalloc.h
  F:    mm/
  F:    tools/testing/selftests/vm/
  
 +VMALLOC
 +M:    Andrew Morton <[email protected]>
 +R:    Uladzislau Rezki <[email protected]>
 +R:    Christoph Hellwig <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +W:    http://www.linux-mm.org
 +T:    git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
 +F:    include/linux/vmalloc.h
 +F:    mm/vmalloc.c
 +
  MEMORY HOT(UN)PLUG
  M:    David Hildenbrand <[email protected]>
  M:    Oscar Salvador <[email protected]>
@@@ -13547,7 -13423,7 +13584,7 @@@ MESON NAND CONTROLLER DRIVER FOR AMLOGI
  M:    Liang Yang <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/devicetree/bindings/mtd/amlogic,meson-nand.txt
 +F:    Documentation/devicetree/bindings/mtd/amlogic,meson-nand.yaml
  F:    drivers/mtd/nand/raw/meson_*
  
  MESON VIDEO DECODER DRIVER FOR AMLOGIC SOCS
@@@ -13566,7 -13442,6 +13603,6 @@@ F:   arch/arm64/boot/dts/marvell/armada-3
  
  MHI BUS
  M:    Manivannan Sadhasivam <[email protected]>
- R:    Hemant Kumar <[email protected]>
  L:    [email protected]
  L:    [email protected]
  S:    Maintained
@@@ -13628,7 -13503,7 +13664,7 @@@ M:   Eugen Hristev <eugen.hristev@microch
  L:    [email protected]
  S:    Supported
  F:    Documentation/devicetree/bindings/media/microchip,csi2dc.yaml
 -F:    drivers/media/platform/atmel/microchip-csi2dc.c
 +F:    drivers/media/platform/microchip/microchip-csi2dc.c
  
  MICROCHIP ECC DRIVER
  M:    Tudor Ambarus <[email protected]>
  S:    Supported
  F:    Documentation/devicetree/bindings/media/atmel,isc.yaml
  F:    Documentation/devicetree/bindings/media/microchip,xisc.yaml
 -F:    drivers/media/platform/atmel/atmel-isc*
 -F:    drivers/media/platform/atmel/atmel-sama*-isc*
 +F:    drivers/staging/media/deprecated/atmel/atmel-isc*
 +F:    drivers/staging/media/deprecated/atmel/atmel-sama*-isc*
 +F:    drivers/media/platform/microchip/microchip-isc*
 +F:    drivers/media/platform/microchip/microchip-sama*-isc*
  F:    include/linux/atmel-isc-media.h
  
  MICROCHIP ISI DRIVER
@@@ -13801,7 -13674,7 +13837,7 @@@ MICROCHIP USB251XB DRIVE
  M:    Richard Leitner <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/devicetree/bindings/usb/usb251xb.txt
 +F:    Documentation/devicetree/bindings/usb/usb251xb.yaml
  F:    drivers/usb/misc/usb251xb.c
  
  MICROCHIP USBA UDC DRIVER
@@@ -13841,15 -13714,6 +13877,15 @@@ F: drivers/scsi/smartpqi/smartpqi*.[ch
  F:    include/linux/cciss*.h
  F:    include/uapi/linux/cciss*.h
  
 +MICROSOFT MANA RDMA DRIVER
 +M:    Long Li <[email protected]>
 +M:    Ajay Sharma <[email protected]>
 +L:    [email protected]
 +S:    Supported
 +F:    drivers/infiniband/hw/mana/
 +F:    include/net/mana
 +F:    include/uapi/rdma/mana-abi.h
 +
  MICROSOFT SURFACE AGGREGATOR TABLET-MODE SWITCH
  M:    Maximilian Luz <[email protected]>
  L:    [email protected]
@@@ -14125,7 -13989,6 +14161,7 @@@ F:   include/uapi/linux/meye.
  
  MOTORCOMM PHY DRIVER
  M:    Peter Geis <[email protected]>
 +M:    Frank <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    drivers/net/phy/motorcomm.c
@@@ -14743,10 -14606,9 +14779,9 @@@ T:  git git://git.kernel.org/pub/scm/lin
  F:    arch/nios2/
  
  NITRO ENCLAVES (NE)
- M:    Andra Paraschiv <[email protected]>
- M:    Alexandru Vasile <[email protected]>
  M:    Alexandru Ciobotaru <[email protected]>
  L:    [email protected]
+ L:    The AWS Nitro Enclaves Team <[email protected]>
  S:    Supported
  W:    https://aws.amazon.com/ec2/nitro/nitro-enclaves/
  F:    Documentation/virt/ne_overview.rst
@@@ -15360,13 -15222,6 +15395,13 @@@ S: Maintaine
  T:    git git://linuxtv.org/media_tree.git
  F:    drivers/media/i2c/ov08d10.c
  
 +OMNIVISION OV08X40 SENSOR DRIVER
 +M:    Jason Chen <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +T:    git git://linuxtv.org/media_tree.git
 +F:    drivers/media/i2c/ov08x40.c
 +
  OMNIVISION OV13858 SENSOR DRIVER
  M:    Sakari Ailus <[email protected]>
  L:    [email protected]
@@@ -15405,14 -15260,6 +15440,14 @@@ S: Maintaine
  T:    git git://linuxtv.org/media_tree.git
  F:    drivers/media/i2c/ov2740.c
  
 +OMNIVISION OV4689 SENSOR DRIVER
 +M:    Mikhail Rudenko <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +T:    git git://linuxtv.org/media_tree.git
 +F:    Documentation/devicetree/bindings/media/i2c/ovti,ov4689.yaml
 +F:    drivers/media/i2c/ov5647.c
 +
  OMNIVISION OV5640 SENSOR DRIVER
  M:    Steve Longerbeam <[email protected]>
  L:    [email protected]
@@@ -15537,12 -15384,6 +15572,12 @@@ S: Maintaine
  F:    drivers/mtd/nand/onenand/
  F:    include/linux/mtd/onenand*.h
  
 +ONEXPLAYER FAN DRIVER
 +M:    Joaquín Ignacio Aramendía <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/hwmon/oxp-sensors.c
 +
  ONION OMEGA2+ BOARD
  M:    Harvey Hunt <[email protected]>
  L:    [email protected]
@@@ -16146,7 -15987,6 +16181,7 @@@ Q:   https://patchwork.kernel.org/project
  B:    https://bugzilla.kernel.org
  C:    irc://irc.oftc.net/linux-pci
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/lpieralisi/pci.git
 +F:    Documentation/devicetree/bindings/pci/
  F:    drivers/pci/controller/
  F:    drivers/pci/pci-bridge-emul.c
  F:    drivers/pci/pci-bridge-emul.h
@@@ -16253,7 -16093,7 +16288,7 @@@ F:   Documentation/devicetree/bindings/pc
  F:    drivers/pci/controller/*microchip*
  
  PCIE DRIVER FOR QUALCOMM MSM
 -M:    Stanimir Varbanov <[email protected]>
 +M:    Manivannan Sadhasivam <[email protected]>
  L:    [email protected]
  L:    [email protected]
  S:    Maintained
@@@ -16343,8 -16183,7 +16378,8 @@@ F:   include/linux/peci-cpu.
  F:    include/linux/peci.h
  
  PENSANDO ETHERNET DRIVERS
 -M:    Shannon Nelson <[email protected]>
 +M:    Shannon Nelson <[email protected]>
 +M:    Brett Creeley <[email protected]>
  M:    [email protected]
  L:    [email protected]
  S:    Supported
@@@ -16502,7 -16341,7 +16537,7 @@@ M:   Sean Wang <[email protected]
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
  F:    Documentation/devicetree/bindings/pinctrl/mediatek,mt65xx-pinctrl.yaml
 -F:    Documentation/devicetree/bindings/pinctrl/mediatek,mt6797-pinctrl.yaml
 +F:    Documentation/devicetree/bindings/pinctrl/mediatek,mt6779-pinctrl.yaml
  F:    Documentation/devicetree/bindings/pinctrl/mediatek,mt7622-pinctrl.yaml
  F:    Documentation/devicetree/bindings/pinctrl/mediatek,mt8183-pinctrl.yaml
  F:    drivers/pinctrl/mediatek/
@@@ -16575,6 -16414,13 +16610,6 @@@ S:  Supporte
  F:    Documentation/devicetree/bindings/input/pine64,pinephone-keyboard.yaml
  F:    drivers/input/keyboard/pinephone-keyboard.c
  
 -PKTCDVD DRIVER
 -M:    [email protected]
 -S:    Orphan
 -F:    drivers/block/pktcdvd.c
 -F:    include/linux/pktcdvd.h
 -F:    include/uapi/linux/pktcdvd.h
 -
  PLANTOWER PMS7003 AIR POLLUTION SENSOR DRIVER
  M:    Tomasz Duszynski <[email protected]>
  S:    Maintained
@@@ -16852,10 -16698,10 +16887,10 @@@ F:        net/psampl
  
  PSTORE FILESYSTEM
  M:    Kees Cook <[email protected]>
 -M:    Anton Vorontsov <[email protected]>
 -M:    Colin Cross <ccross@android.com>
 -M:    Tony Luck <[email protected]>
 -S:    Maintained
 +R:    Tony Luck <[email protected]>
 +R:    Guilherme G. Piccoli <gpiccoli@igalia.com>
 +L:    [email protected]
 +S:    Supported
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git for-next/pstore
  F:    Documentation/admin-guide/ramoops.rst
  F:    Documentation/admin-guide/pstore-blk.rst
@@@ -16902,6 -16748,7 +16937,6 @@@ M:   Hans Verkuil <[email protected]
  L:    [email protected]
  S:    Maintained
  T:    git git://linuxtv.org/media_tree.git
 -F:    Documentation/admin-guide/media/pulse8-cec.rst
  F:    drivers/media/cec/usb/pulse8/
  
  PURELIFI PLFXLC DRIVER
@@@ -16932,7 -16779,6 +16967,7 @@@ PWM IR Transmitte
  M:    Sean Young <[email protected]>
  L:    [email protected]
  S:    Maintained
 +F:    Documentation/devicetree/bindings/leds/irled/pwm-ir-tx.yaml
  F:    drivers/media/rc/pwm-ir-tx.c
  
  PWM SUBSYSTEM
@@@ -16997,7 -16843,7 +17032,7 @@@ 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/soc/qcom/qcom,apr*
  F:    Documentation/devicetree/bindings/sound/qcom,*
  F:    drivers/soc/qcom/apr.c
  F:    include/dt-bindings/sound/qcom,wcd9335.h
@@@ -17355,8 -17201,7 +17390,8 @@@ F:   Documentation/devicetree/bindings/th
  F:    drivers/thermal/qcom/
  
  QUALCOMM VENUS VIDEO ACCELERATOR DRIVER
 -M:    Stanimir Varbanov <[email protected]>
 +M:    Stanimir Varbanov <[email protected]>
 +M:    Vikash Garodia <[email protected]>
  L:    [email protected]
  L:    [email protected]
  S:    Maintained
@@@ -17674,8 -17519,10 +17709,8 @@@ S:  Maintaine
  F:    drivers/net/wireless/realtek/rtw89/
  
  REDPINE WIRELESS DRIVER
 -M:    Amitkumar Karwar <[email protected]>
 -M:    Siva Rebbagondla <[email protected]>
  L:    [email protected]
 -S:    Maintained
 +S:    Orphan
  F:    drivers/net/wireless/rsi/
  
  REGISTER MAP ABSTRACTION
@@@ -17973,13 -17820,6 +18008,13 @@@ F: Documentation/ABI/*/sysfs-driver-hid
  F:    drivers/hid/hid-roccat*
  F:    include/linux/hid-roccat*
  
 +ROCKCHIP CRYPTO DRIVERS
 +M:    Corentin Labbe <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/crypto/rockchip,rk3288-crypto.yaml
 +F:    drivers/crypto/rockchip/
 +
  ROCKCHIP I2S TDM DRIVER
  M:    Nicolas Frattaroli <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    drivers/video/fbdev/savage/
  
 -S390
 +S390 ARCHITECTURE
  M:    Heiko Carstens <[email protected]>
  M:    Vasily Gorbik <[email protected]>
  M:    Alexander Gordeev <[email protected]>
  S:    Supported
  F:    drivers/s390/net/
  
 +S390 MM
 +M:    Alexander Gordeev <[email protected]>
 +M:    Gerald Schaefer <[email protected]>
 +L:    [email protected]
 +S:    Supported
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux.git
 +F:    arch/s390/include/asm/pgtable.h
 +F:    arch/s390/mm
 +
  S390 PCI SUBSYSTEM
  M:    Niklas Schnelle <[email protected]>
  M:    Gerald Schaefer <[email protected]>
@@@ -18696,7 -18527,6 +18731,7 @@@ K:   \bsecure_computin
  K:    \bTIF_SECCOMP\b
  
  SECURE DIGITAL HOST CONTROLLER INTERFACE (SDHCI) Broadcom BRCMSTB DRIVER
 +M:    Kamal Dasu <[email protected]>
  M:    Al Cooper <[email protected]>
  R:    Broadcom internal kernel review list <[email protected]>
  L:    [email protected]
@@@ -18707,7 -18537,6 +18742,7 @@@ SECURE DIGITAL HOST CONTROLLER INTERFAC
  M:    Adrian Hunter <[email protected]>
  L:    [email protected]
  S:    Supported
 +F:    Documentation/devicetree/bindings/mmc/sdhci-common.yaml
  F:    drivers/mmc/host/sdhci*
  
  SECURE DIGITAL HOST CONTROLLER INTERFACE (SDHCI) MICROCHIP DRIVER
@@@ -19093,7 -18922,7 +19128,7 @@@ M:   Jason A. Donenfeld <[email protected]
  S:    Maintained
  F:    include/linux/siphash.h
  F:    lib/siphash.c
 -F:    lib/test_siphash.c
 +F:    lib/siphash_kunit.c
  
  SIS 190 ETHERNET DRIVER
  M:    Francois Romieu <[email protected]>
@@@ -19117,7 -18946,7 +19152,7 @@@ F:   drivers/video/fbdev/sis
  F:    include/video/sisfb.h
  
  SIS I2C TOUCHSCREEN DRIVER
 -M:    Mika Penttilä <mika.penttila@nextfour.com>
 +M:    Mika Penttilä <mpenttil@redhat.com>
  L:    [email protected]
  S:    Maintained
  F:    Documentation/devicetree/bindings/input/touchscreen/sis_i2c.txt
@@@ -19260,7 -19089,7 +19295,7 @@@ M:   Jassi Brar <[email protected]
  M:    Ilias Apalodimas <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/devicetree/bindings/net/socionext-netsec.txt
 +F:    Documentation/devicetree/bindings/net/socionext,synquacer-netsec.yaml
  F:    drivers/net/ethernet/socionext/netsec.c
  
  SOCIONEXT (SNI) Synquacer SPI DRIVER
@@@ -19268,7 -19097,7 +19303,7 @@@ M:   Masahisa Kojima <masahisa.kojima@lin
  M:    Jassi Brar <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    Documentation/devicetree/bindings/spi/spi-synquacer.txt
 +F:    Documentation/devicetree/bindings/spi/socionext,synquacer-spi.yaml
  F:    drivers/spi/spi-synquacer.c
  
  SOCIONEXT SYNQUACER I2C DRIVER
@@@ -19415,7 -19244,7 +19450,7 @@@ M:   Manivannan Sadhasivam <manivannan.sa
  L:    [email protected]
  S:    Maintained
  T:    git git://linuxtv.org/media_tree.git
 -F:    Documentation/devicetree/bindings/media/i2c/imx290.txt
 +F:    Documentation/devicetree/bindings/media/i2c/sony,imx290.yaml
  F:    drivers/media/i2c/imx290.c
  
  SONY IMX319 SENSOR DRIVER
@@@ -19564,11 -19393,6 +19599,11 @@@ W: https://linuxtv.or
  Q:    http://patchwork.linuxtv.org/project/linux-media/list/
  F:    drivers/media/dvb-frontends/sp2*
  
 +SPANISH DOCUMENTATION
 +M:    Carlos Bilbao <[email protected]>
 +S:    Maintained
 +F:    Documentation/translations/sp_SP/
 +
  SPARC + UltraSPARC (sparc/sparc64)
  M:    "David S. Miller" <[email protected]>
  L:    [email protected]
@@@ -19712,7 -19536,7 +19747,7 @@@ M:   Sylvain Petinot <sylvain.petinot@fos
  L:    [email protected]
  S:    Maintained
  T:    git git://linuxtv.org/media_tree.git
 -F:    Documentation/devicetree/bindings/media/i2c/st,st-mipid02.txt
 +F:    Documentation/devicetree/bindings/media/i2c/st,st-mipid02.yaml
  F:    drivers/media/i2c/st-mipid02.c
  
  ST STM32 I2C/SMBUS DRIVER
@@@ -19735,16 -19559,6 +19770,16 @@@ S: Maintaine
  F:    Documentation/hwmon/stpddc60.rst
  F:    drivers/hwmon/pmbus/stpddc60.c
  
 +ST VGXY61 DRIVER
 +M:    Benjamin Mugnier <[email protected]>
 +M:    Sylvain Petinot <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +T:    git git://linuxtv.org/media_tree.git
 +F:    Documentation/devicetree/bindings/media/i2c/st,st-vgxy61.yaml
 +F:    Documentation/userspace-api/media/drivers/st-vgxy61.rst
 +F:    drivers/media/i2c/st-vgxy61.c
 +
  ST VL53L0X ToF RANGER(I2C) IIO DRIVER
  M:    Song Qiang <[email protected]>
  L:    [email protected]
@@@ -19760,7 -19574,6 +19795,7 @@@ S:   Supporte
  F:    Documentation/process/stable-kernel-rules.rst
  
  STAGING - ATOMISP DRIVER
 +M:    Hans de Goede <[email protected]>
  M:    Mauro Carvalho Chehab <[email protected]>
  R:    Sakari Ailus <[email protected]>
  L:    [email protected]
@@@ -19970,13 -19783,6 +20005,13 @@@ W: https://sunplus.atlassian.net/wiki/s
  F:    Documentation/devicetree/bindings/net/sunplus,sp7021-emac.yaml
  F:    drivers/net/ethernet/sunplus/
  
 +SUNPLUS MMC DRIVER
 +M:    Tony Huang <[email protected]>
 +M:    Li-hao Kuo <[email protected]>
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/mmc/sunplus,mmc.yaml
 +F:    drivers/mmc/host/sunplus-mmc.c
 +
  SUNPLUS OCOTP DRIVER
  M:    Vincent Shih <[email protected]>
  S:    Maintained
@@@ -20228,7 -20034,6 +20263,7 @@@ F:   drivers/clk/clk-sc[mp]i.
  F:    drivers/cpufreq/sc[mp]i-cpufreq.c
  F:    drivers/firmware/arm_scmi/
  F:    drivers/firmware/arm_scpi.c
 +F:    drivers/powercap/arm_scmi_powercap.c
  F:    drivers/regulator/scmi-regulator.c
  F:    drivers/reset/reset-scmi.c
  F:    include/linux/sc[mp]i_protocol.h
@@@ -20563,7 -20368,7 +20598,7 @@@ M:   Chris Zankel <[email protected]
  M:    Max Filippov <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://github.com/czankel/xtensa-linux.git
 +T:    git https://github.com/jcmvbkbc/linux-xtensa.git
  F:    arch/xtensa/
  F:    drivers/irqchip/irq-xtensa-*
  
@@@ -20913,6 -20718,7 +20948,6 @@@ W:   https://wireless.wiki.kernel.org/en/
  W:    https://wireless.wiki.kernel.org/en/users/Drivers/wl1251
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/luca/wl12xx.git
  F:    drivers/net/wireless/ti/
 -F:    include/linux/wl12xx.h
  
  TIMEKEEPING, CLOCKSOURCE CORE, NTP, ALARMTIMER
  M:    John Stultz <[email protected]>
@@@ -21091,9 -20897,6 +21126,9 @@@ F:   drivers/hwmon/pmbus/tps546d24.
  TRACING
  M:    Steven Rostedt <[email protected]>
  M:    Masami Hiramatsu <[email protected]>
 +L:    [email protected]
 +L:    [email protected]
 +Q:    https://patchwork.kernel.org/project/linux-trace-kernel/list/
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace.git
  F:    Documentation/trace/*
@@@ -21797,7 -21600,7 +21832,7 @@@ M:   Alex Williamson <alex.williamson@red
  R:    Cornelia Huck <[email protected]>
  L:    [email protected]
  S:    Maintained
 -T:    git git://github.com/awilliam/linux-vfio.git
 +T:    git https://github.com/awilliam/linux-vfio.git
  F:    Documentation/ABI/testing/sysfs-devices-vfio-dev
  F:    Documentation/driver-api/vfio.rst
  F:    drivers/vfio/
@@@ -21979,12 -21782,6 +22014,12 @@@ F: include/linux/virtio*.
  F:    include/uapi/linux/virtio_*.h
  F:    tools/virtio/
  
 +VISL VIRTUAL STATELESS DECODER DRIVER
 +M:    Daniel Almeida <[email protected]>
 +L:    [email protected]
 +S:    Supported
 +F:    drivers/media/test-drivers/visl
 +
  IFCVF VIRTIO DATA PATH ACCELERATOR
  R:    Zhu Lingshan <[email protected]>
  F:    drivers/vdpa/ifcvf/
index 9dfa545427ca15ff4f5158753ee3cf7c4f6ee4a0,396a026e0c90ef2dd4fcff10ab2f2c0283366e18..b408ce989c223900878be758ba44c9237a47966c
@@@ -313,9 -313,9 +313,9 @@@ static void tusb320_typec_irq_handler(s
                typec_set_pwr_opmode(port, TYPEC_PWR_MODE_USB);
  }
  
 -static irqreturn_t tusb320_irq_handler(int irq, void *dev_id)
 +static irqreturn_t tusb320_state_update_handler(struct tusb320_priv *priv,
 +                                              bool force_update)
  {
 -      struct tusb320_priv *priv = dev_id;
        unsigned int reg;
  
        if (regmap_read(priv->regmap, TUSB320_REG9, &reg)) {
                return IRQ_NONE;
        }
  
 -      if (!(reg & TUSB320_REG9_INTERRUPT_STATUS))
 +      if (!force_update && !(reg & TUSB320_REG9_INTERRUPT_STATUS))
                return IRQ_NONE;
  
        tusb320_extcon_irq_handler(priv, reg);
        return IRQ_HANDLED;
  }
  
 +static irqreturn_t tusb320_irq_handler(int irq, void *dev_id)
 +{
 +      struct tusb320_priv *priv = dev_id;
 +
 +      return tusb320_state_update_handler(priv, false);
 +}
 +
  static const struct regmap_config tusb320_regmap_config = {
        .reg_bits = 8,
        .val_bits = 8,
@@@ -428,8 -421,7 +428,7 @@@ static int tusb320_typec_probe(struct i
        return 0;
  }
  
- static int tusb320_probe(struct i2c_client *client,
-                        const struct i2c_device_id *id)
+ static int tusb320_probe(struct i2c_client *client)
  {
        struct tusb320_priv *priv;
        const void *match_data;
                return ret;
  
        /* update initial state */
 -      tusb320_irq_handler(client->irq, priv);
 +      tusb320_state_update_handler(priv, true);
  
        /* Reset chip to its default state */
        ret = tusb320_reset(priv);
                 * State and polarity might change after a reset, so update
                 * them again and make sure the interrupt status bit is cleared.
                 */
 -              tusb320_irq_handler(client->irq, priv);
 +              tusb320_state_update_handler(priv, true);
  
        ret = devm_request_threaded_irq(priv->dev, client->irq, NULL,
                                        tusb320_irq_handler,
@@@ -502,7 -494,7 +501,7 @@@ static const struct of_device_id tusb32
  MODULE_DEVICE_TABLE(of, tusb320_extcon_dt_match);
  
  static struct i2c_driver tusb320_extcon_driver = {
-       .probe          = tusb320_probe,
+       .probe_new      = tusb320_probe,
        .driver         = {
                .name   = "extcon-tusb320",
                .of_match_table = tusb320_extcon_dt_match,
index ec07bf26e5eb6876a50da117c8b1806242f104fc,dba315f675bc79134bb4a9b88d93ce9a4175293e..c3bc29e0a4880b80fd361ae7abfccb9e46556fa0
@@@ -228,26 -228,6 +228,26 @@@ static void rpi_register_clk_driver(str
                                                -1, NULL, 0);
  }
  
 +unsigned int rpi_firmware_clk_get_max_rate(struct rpi_firmware *fw, unsigned int id)
 +{
 +      struct rpi_firmware_clk_rate_request msg =
 +              RPI_FIRMWARE_CLK_RATE_REQUEST(id);
 +      int ret;
 +
 +      ret = rpi_firmware_property(fw, RPI_FIRMWARE_GET_MAX_CLOCK_RATE,
 +                                  &msg, sizeof(msg));
 +      if (ret)
 +              /*
 +               * If our firmware doesn't support that operation, or fails, we
 +               * assume the maximum clock rate is absolute maximum we can
 +               * store over our type.
 +               */
 +               return UINT_MAX;
 +
 +      return le32_to_cpu(msg.rate);
 +}
 +EXPORT_SYMBOL_GPL(rpi_firmware_clk_get_max_rate);
 +
  static void rpi_firmware_delete(struct kref *kref)
  {
        struct rpi_firmware *fw = container_of(kref, struct rpi_firmware,
@@@ -288,9 -268,13 +288,11 @@@ static int rpi_firmware_probe(struct pl
        fw->cl.tx_block = true;
  
        fw->chan = mbox_request_channel(&fw->cl, 0);
-       if (IS_ERR(fw->chan))
-               return dev_err_probe(dev, PTR_ERR(fw->chan),
-                                    "Failed to get mbox channel\n");
+       if (IS_ERR(fw->chan)) {
+               int ret = PTR_ERR(fw->chan);
 -              if (ret != -EPROBE_DEFER)
 -                      dev_err(dev, "Failed to get mbox channel: %d\n", ret);
+               kfree(fw);
 -              return ret;
++              return dev_err_probe(dev, ret, "Failed to get mbox channel\n");
+       }
  
        init_completion(&fw->c);
        kref_init(&fw->consumers);
@@@ -328,18 -312,6 +330,18 @@@ static int rpi_firmware_remove(struct p
        return 0;
  }
  
 +static const struct of_device_id rpi_firmware_of_match[] = {
 +      { .compatible = "raspberrypi,bcm2835-firmware", },
 +      {},
 +};
 +MODULE_DEVICE_TABLE(of, rpi_firmware_of_match);
 +
 +struct device_node *rpi_firmware_find_node(void)
 +{
 +      return of_find_matching_node(NULL, rpi_firmware_of_match);
 +}
 +EXPORT_SYMBOL_GPL(rpi_firmware_find_node);
 +
  /**
   * rpi_firmware_get - Get pointer to rpi_firmware structure.
   * @firmware_node:    Pointer to the firmware Device Tree node.
@@@ -395,6 -367,12 +397,6 @@@ struct rpi_firmware *devm_rpi_firmware_
  }
  EXPORT_SYMBOL_GPL(devm_rpi_firmware_get);
  
 -static const struct of_device_id rpi_firmware_of_match[] = {
 -      { .compatible = "raspberrypi,bcm2835-firmware", },
 -      {},
 -};
 -MODULE_DEVICE_TABLE(of, rpi_firmware_of_match);
 -
  static struct platform_driver rpi_firmware_driver = {
        .driver = {
                .name = "raspberrypi-firmware",
diff --combined drivers/fpga/Kconfig
index bbe0a7cabb75fb55ba8f8f5c7632fee120b84488,d1a8107fdcb33602d553a8ae0bf9d9b9ab2b9dc2..6ce143dafd049540a81b5dc57048b9a1dda8778a
@@@ -246,9 -246,7 +246,9 @@@ config FPGA_MGR_VERSAL_FPG
  
  config FPGA_M10_BMC_SEC_UPDATE
        tristate "Intel MAX10 BMC Secure Update driver"
 -      depends on MFD_INTEL_M10_BMC && FW_UPLOAD
 +      depends on MFD_INTEL_M10_BMC
 +      select FW_LOADER
 +      select FW_UPLOAD
        help
          Secure update support for the Intel MAX10 board management
          controller.
@@@ -265,4 -263,15 +265,15 @@@ config FPGA_MGR_MICROCHIP_SP
          programming over slave SPI interface with .dat formatted
          bitstream image.
  
+ config FPGA_MGR_LATTICE_SYSCONFIG
+       tristate
+ config FPGA_MGR_LATTICE_SYSCONFIG_SPI
+       tristate "Lattice sysCONFIG SPI FPGA manager"
+       depends on SPI
+       select FPGA_MGR_LATTICE_SYSCONFIG
+       help
+         FPGA manager driver support for Lattice FPGAs programming over slave
+         SPI sysCONFIG interface.
  endif # FPGA
diff --combined drivers/misc/fastrpc.c
index 0f467a71b069834b283bf4e503362fb40a1d66d4,278ab6ca1a5ac751161bb2a9f5eb1db4cf0590d6..c9902a1dcf5d311043182ee87f4dbc5ec6085cae
@@@ -6,7 -6,6 +6,7 @@@
  #include <linux/device.h>
  #include <linux/dma-buf.h>
  #include <linux/dma-mapping.h>
 +#include <linux/dma-resv.h>
  #include <linux/idr.h>
  #include <linux/list.h>
  #include <linux/miscdevice.h>
@@@ -20,6 -19,7 +20,7 @@@
  #include <linux/slab.h>
  #include <linux/qcom_scm.h>
  #include <uapi/misc/fastrpc.h>
+ #include <linux/of_reserved_mem.h>
  
  #define ADSP_DOMAIN_ID (0)
  #define MDSP_DOMAIN_ID (1)
  #define FASTRPC_DSP_UTILITIES_HANDLE  2
  #define FASTRPC_CTXID_MASK (0xFF0)
  #define INIT_FILELEN_MAX (2 * 1024 * 1024)
+ #define INIT_FILE_NAMELEN_MAX (128)
  #define FASTRPC_DEVICE_NAME   "fastrpc"
+ /* Add memory to static PD pool, protection thru XPU */
+ #define ADSP_MMAP_HEAP_ADDR  4
+ /* MAP static DMA buffer on DSP User PD */
+ #define ADSP_MMAP_DMA_BUFFER  6
+ /* Add memory to static PD pool protection thru hypervisor */
+ #define ADSP_MMAP_REMOTE_HEAP_ADDR  8
+ /* Add memory to userPD pool, for user heap */
  #define ADSP_MMAP_ADD_PAGES 0x1000
+ /* Add memory to userPD pool, for LLC heap */
+ #define ADSP_MMAP_ADD_PAGES_LLC 0x3000,
  #define DSP_UNSUPPORTED_API (0x80000414)
  /* MAX NUMBER of DSP ATTRIBUTES SUPPORTED */
  #define FASTRPC_MAX_DSP_ATTRIBUTES (256)
@@@ -72,6 -84,7 +85,7 @@@
                FASTRPC_BUILD_SCALARS(0, method, in, out, 0, 0)
  
  #define FASTRPC_CREATE_PROCESS_NARGS  6
+ #define FASTRPC_CREATE_STATIC_PROCESS_NARGS   3
  /* Remote Method id table */
  #define FASTRPC_RMID_INIT_ATTACH      0
  #define FASTRPC_RMID_INIT_RELEASE     1
@@@ -84,7 -97,7 +98,7 @@@
  #define FASTRPC_RMID_INIT_MEM_UNMAP    11
  
  /* Protection Domain(PD) ids */
- #define AUDIO_PD      (0) /* also GUEST_OS PD? */
+ #define ROOT_PD               (0)
  #define USER_PD               (1)
  #define SENSORS_PD    (2)
  
@@@ -261,8 -274,11 +275,11 @@@ struct fastrpc_channel_ctx 
        u32 dsp_attributes[FASTRPC_MAX_DSP_ATTRIBUTES];
        struct fastrpc_device *secure_fdevice;
        struct fastrpc_device *fdevice;
+       struct fastrpc_buf *remote_heap;
+       struct list_head invoke_interrupted_mmaps;
        bool secure;
        bool unsigned_support;
+       u64 dma_mask;
  };
  
  struct fastrpc_device {
@@@ -311,8 -327,8 +328,8 @@@ static void fastrpc_free_map(struct kre
                                return;
                        }
                }
 -              dma_buf_unmap_attachment(map->attach, map->table,
 -                                       DMA_BIDIRECTIONAL);
 +              dma_buf_unmap_attachment_unlocked(map->attach, map->table,
 +                                                DMA_BIDIRECTIONAL);
                dma_buf_detach(map->buf, map->attach);
                dma_buf_put(map->buf);
        }
@@@ -369,7 -385,7 +386,7 @@@ static void fastrpc_buf_free(struct fas
        kfree(buf);
  }
  
- static int fastrpc_buf_alloc(struct fastrpc_user *fl, struct device *dev,
+ static int __fastrpc_buf_alloc(struct fastrpc_user *fl, struct device *dev,
                             u64 size, struct fastrpc_buf **obuf)
  {
        struct fastrpc_buf *buf;
                return -ENOMEM;
        }
  
+       *obuf = buf;
+       return 0;
+ }
+ static int fastrpc_buf_alloc(struct fastrpc_user *fl, struct device *dev,
+                            u64 size, struct fastrpc_buf **obuf)
+ {
+       int ret;
+       struct fastrpc_buf *buf;
+       ret = __fastrpc_buf_alloc(fl, dev, size, obuf);
+       if (ret)
+               return ret;
+       buf = *obuf;
        if (fl->sctx && fl->sctx->sid)
                buf->phys += ((u64)fl->sctx->sid << 32);
  
-       *obuf = buf;
        return 0;
  }
  
+ static int fastrpc_remote_heap_alloc(struct fastrpc_user *fl, struct device *dev,
+                                    u64 size, struct fastrpc_buf **obuf)
+ {
+       struct device *rdev = &fl->cctx->rpdev->dev;
+       return  __fastrpc_buf_alloc(fl, rdev, size, obuf);
+ }
  static void fastrpc_channel_ctx_free(struct kref *ref)
  {
        struct fastrpc_channel_ctx *cctx;
@@@ -683,8 -722,6 +723,8 @@@ static int fastrpc_mmap(struct dma_buf 
        struct fastrpc_buf *buf = dmabuf->priv;
        size_t size = vma->vm_end - vma->vm_start;
  
 +      dma_resv_assert_held(dmabuf->resv);
 +
        return dma_mmap_coherent(buf->dev, vma, buf->virt,
                                 FASTRPC_PHYS(buf->phys), size);
  }
@@@ -714,6 -751,8 +754,8 @@@ static int fastrpc_map_create(struct fa
                return -ENOMEM;
  
        INIT_LIST_HEAD(&map->node);
+       kref_init(&map->refcount);
        map->fl = fl;
        map->fd = fd;
        map->buf = dma_buf_get(fd);
                goto attach_err;
        }
  
 -      map->table = dma_buf_map_attachment(map->attach, DMA_BIDIRECTIONAL);
 +      map->table = dma_buf_map_attachment_unlocked(map->attach, DMA_BIDIRECTIONAL);
        if (IS_ERR(map->table)) {
                err = PTR_ERR(map->table);
                goto map_err;
        map->size = len;
        map->va = sg_virt(map->table->sgl);
        map->len = len;
-       kref_init(&map->refcount);
  
        if (attr & FASTRPC_ATTR_SECUREMAP) {
                /*
@@@ -770,7 -808,7 +811,7 @@@ map_err
  attach_err:
        dma_buf_put(map->buf);
  get_err:
-       kfree(map);
+       fastrpc_map_put(map);
  
        return err;
  }
@@@ -1073,6 -1111,8 +1114,8 @@@ static int fastrpc_internal_invoke(stru
                                   struct fastrpc_invoke_args *args)
  {
        struct fastrpc_invoke_ctx *ctx = NULL;
+       struct fastrpc_buf *buf, *b;
        int err = 0;
  
        if (!fl->sctx)
@@@ -1135,6 -1175,14 +1178,14 @@@ bail
                spin_unlock(&fl->lock);
                fastrpc_context_put(ctx);
        }
+       if (err == -ERESTARTSYS) {
+               list_for_each_entry_safe(buf, b, &fl->mmaps, node) {
+                       list_del(&buf->node);
+                       list_add_tail(&buf->node, &fl->cctx->invoke_interrupted_mmaps);
+               }
+       }
        if (err)
                dev_dbg(fl->sctx->dev, "Error: Invoke Failed %d\n", err);
  
@@@ -1159,6 -1207,120 +1210,120 @@@ static bool is_session_rejected(struct 
        return false;
  }
  
+ static int fastrpc_init_create_static_process(struct fastrpc_user *fl,
+                                             char __user *argp)
+ {
+       struct fastrpc_init_create_static init;
+       struct fastrpc_invoke_args *args;
+       struct fastrpc_phy_page pages[1];
+       char *name;
+       int err;
+       struct {
+               int pgid;
+               u32 namelen;
+               u32 pageslen;
+       } inbuf;
+       u32 sc;
+       args = kcalloc(FASTRPC_CREATE_STATIC_PROCESS_NARGS, sizeof(*args), GFP_KERNEL);
+       if (!args)
+               return -ENOMEM;
+       if (copy_from_user(&init, argp, sizeof(init))) {
+               err = -EFAULT;
+               goto err;
+       }
+       if (init.namelen > INIT_FILE_NAMELEN_MAX) {
+               err = -EINVAL;
+               goto err;
+       }
+       name = kzalloc(init.namelen, GFP_KERNEL);
+       if (!name) {
+               err = -ENOMEM;
+               goto err;
+       }
+       if (copy_from_user(name, (void __user *)(uintptr_t)init.name, init.namelen)) {
+               err = -EFAULT;
+               goto err_name;
+       }
+       if (!fl->cctx->remote_heap) {
+               err = fastrpc_remote_heap_alloc(fl, fl->sctx->dev, init.memlen,
+                                               &fl->cctx->remote_heap);
+               if (err)
+                       goto err_name;
+               /* Map if we have any heap VMIDs associated with this ADSP Static Process. */
+               if (fl->cctx->vmcount) {
+                       unsigned int perms = BIT(QCOM_SCM_VMID_HLOS);
+                       err = qcom_scm_assign_mem(fl->cctx->remote_heap->phys,
+                                                       (u64)fl->cctx->remote_heap->size, &perms,
+                                                       fl->cctx->vmperms, fl->cctx->vmcount);
+                       if (err) {
+                               dev_err(fl->sctx->dev, "Failed to assign memory with phys 0x%llx size 0x%llx err %d",
+                                       fl->cctx->remote_heap->phys, fl->cctx->remote_heap->size, err);
+                               goto err_map;
+                       }
+               }
+       }
+       inbuf.pgid = fl->tgid;
+       inbuf.namelen = init.namelen;
+       inbuf.pageslen = 0;
+       fl->pd = USER_PD;
+       args[0].ptr = (u64)(uintptr_t)&inbuf;
+       args[0].length = sizeof(inbuf);
+       args[0].fd = -1;
+       args[1].ptr = (u64)(uintptr_t)name;
+       args[1].length = inbuf.namelen;
+       args[1].fd = -1;
+       pages[0].addr = fl->cctx->remote_heap->phys;
+       pages[0].size = fl->cctx->remote_heap->size;
+       args[2].ptr = (u64)(uintptr_t) pages;
+       args[2].length = sizeof(*pages);
+       args[2].fd = -1;
+       sc = FASTRPC_SCALARS(FASTRPC_RMID_INIT_CREATE_STATIC, 3, 0);
+       err = fastrpc_internal_invoke(fl, true, FASTRPC_INIT_HANDLE,
+                                     sc, args);
+       if (err)
+               goto err_invoke;
+       kfree(args);
+       return 0;
+ err_invoke:
+       if (fl->cctx->vmcount) {
+               struct qcom_scm_vmperm perm;
+               perm.vmid = QCOM_SCM_VMID_HLOS;
+               perm.perm = QCOM_SCM_PERM_RWX;
+               err = qcom_scm_assign_mem(fl->cctx->remote_heap->phys,
+                                               (u64)fl->cctx->remote_heap->size,
+                                               &(fl->cctx->vmperms[0].vmid), &perm, 1);
+               if (err)
+                       dev_err(fl->sctx->dev, "Failed to assign memory phys 0x%llx size 0x%llx err %d",
+                               fl->cctx->remote_heap->phys, fl->cctx->remote_heap->size, err);
+       }
+ err_map:
+       fastrpc_buf_free(fl->cctx->remote_heap);
+ err_name:
+       kfree(name);
+ err:
+       kfree(args);
+       return err;
+ }
  static int fastrpc_init_create_process(struct fastrpc_user *fl,
                                        char __user *argp)
  {
@@@ -1605,30 -1767,14 +1770,14 @@@ static int fastrpc_get_dsp_info(struct 
        return 0;
  }
  
- static int fastrpc_req_munmap_impl(struct fastrpc_user *fl,
-                                  struct fastrpc_req_munmap *req)
+ static int fastrpc_req_munmap_impl(struct fastrpc_user *fl, struct fastrpc_buf *buf)
  {
        struct fastrpc_invoke_args args[1] = { [0] = { 0 } };
-       struct fastrpc_buf *buf = NULL, *iter, *b;
        struct fastrpc_munmap_req_msg req_msg;
        struct device *dev = fl->sctx->dev;
        int err;
        u32 sc;
  
-       spin_lock(&fl->lock);
-       list_for_each_entry_safe(iter, b, &fl->mmaps, node) {
-               if ((iter->raddr == req->vaddrout) && (iter->size == req->size)) {
-                       buf = iter;
-                       break;
-               }
-       }
-       spin_unlock(&fl->lock);
-       if (!buf) {
-               dev_err(dev, "mmap not in list\n");
-               return -EINVAL;
-       }
        req_msg.pgid = fl->tgid;
        req_msg.size = buf->size;
        req_msg.vaddr = buf->raddr;
  
  static int fastrpc_req_munmap(struct fastrpc_user *fl, char __user *argp)
  {
+       struct fastrpc_buf *buf = NULL, *iter, *b;
        struct fastrpc_req_munmap req;
+       struct device *dev = fl->sctx->dev;
  
        if (copy_from_user(&req, argp, sizeof(req)))
                return -EFAULT;
  
-       return fastrpc_req_munmap_impl(fl, &req);
+       spin_lock(&fl->lock);
+       list_for_each_entry_safe(iter, b, &fl->mmaps, node) {
+               if ((iter->raddr == req.vaddrout) && (iter->size == req.size)) {
+                       buf = iter;
+                       break;
+               }
+       }
+       spin_unlock(&fl->lock);
+       if (!buf) {
+               dev_err(dev, "mmap\t\tpt 0x%09llx [len 0x%08llx] not in list\n",
+                       req.vaddrout, req.size);
+               return -EINVAL;
+       }
+       return fastrpc_req_munmap_impl(fl, buf);
  }
  
  static int fastrpc_req_mmap(struct fastrpc_user *fl, char __user *argp)
        struct fastrpc_buf *buf = NULL;
        struct fastrpc_mmap_req_msg req_msg;
        struct fastrpc_mmap_rsp_msg rsp_msg;
-       struct fastrpc_req_munmap req_unmap;
        struct fastrpc_phy_page pages;
        struct fastrpc_req_mmap req;
        struct device *dev = fl->sctx->dev;
        if (copy_from_user(&req, argp, sizeof(req)))
                return -EFAULT;
  
-       if (req.flags != ADSP_MMAP_ADD_PAGES) {
+       if (req.flags != ADSP_MMAP_ADD_PAGES && req.flags != ADSP_MMAP_REMOTE_HEAP_ADDR) {
                dev_err(dev, "flag not supported 0x%x\n", req.flags);
                return -EINVAL;
        }
  
        /* let the client know the address to use */
        req.vaddrout = rsp_msg.vaddr;
  
+       /* Add memory to static PD pool, protection thru hypervisor */
+       if (req.flags != ADSP_MMAP_REMOTE_HEAP_ADDR && fl->cctx->vmcount) {
+               struct qcom_scm_vmperm perm;
+               int err = 0;
+               perm.vmid = QCOM_SCM_VMID_HLOS;
+               perm.perm = QCOM_SCM_PERM_RWX;
+               err = qcom_scm_assign_mem(buf->phys, buf->size,
+                       &(fl->cctx->vmperms[0].vmid), &perm, 1);
+               if (err) {
+                       dev_err(fl->sctx->dev, "Failed to assign memory phys 0x%llx size 0x%llx err %d",
+                                       buf->phys, buf->size, err);
+                       goto err_assign;
+               }
+       }
        spin_lock(&fl->lock);
        list_add_tail(&buf->node, &fl->mmaps);
        spin_unlock(&fl->lock);
  
        if (copy_to_user((void __user *)argp, &req, sizeof(req))) {
-               /* unmap the memory and release the buffer */
-               req_unmap.vaddrout = buf->raddr;
-               req_unmap.size = buf->size;
-               fastrpc_req_munmap_impl(fl, &req_unmap);
-               return -EFAULT;
+               err = -EFAULT;
+               goto err_assign;
        }
  
        dev_dbg(dev, "mmap\t\tpt 0x%09lx OK [len 0x%08llx]\n",
  
        return 0;
  
+ err_assign:
+       fastrpc_req_munmap_impl(fl, buf);
  err_invoke:
        fastrpc_buf_free(buf);
  
@@@ -1889,11 -2067,14 +2070,14 @@@ static long fastrpc_device_ioctl(struc
                err = fastrpc_invoke(fl, argp);
                break;
        case FASTRPC_IOCTL_INIT_ATTACH:
-               err = fastrpc_init_attach(fl, AUDIO_PD);
+               err = fastrpc_init_attach(fl, ROOT_PD);
                break;
        case FASTRPC_IOCTL_INIT_ATTACH_SNS:
                err = fastrpc_init_attach(fl, SENSORS_PD);
                break;
+       case FASTRPC_IOCTL_INIT_CREATE_STATIC:
+               err = fastrpc_init_create_static_process(fl, argp);
+               break;
        case FASTRPC_IOCTL_INIT_CREATE:
                err = fastrpc_init_create_process(fl, argp);
                break;
@@@ -2068,6 -2249,9 +2252,9 @@@ static int fastrpc_rpmsg_probe(struct r
                return -EINVAL;
        }
  
+       if (of_reserved_mem_device_init_by_idx(rdev, rdev->of_node, 0))
+               dev_info(rdev, "no reserved DMA memory for FASTRPC\n");
        vmcount = of_property_read_variable_u32_array(rdev->of_node,
                                "qcom,vmids", &vmids[0], 0, FASTRPC_MAX_VMIDS);
        if (vmcount < 0)
        kref_init(&data->refcount);
  
        dev_set_drvdata(&rpdev->dev, data);
+       rdev->dma_mask = &data->dma_mask;
        dma_set_mask_and_coherent(rdev, DMA_BIT_MASK(32));
        INIT_LIST_HEAD(&data->users);
+       INIT_LIST_HEAD(&data->invoke_interrupted_mmaps);
        spin_lock_init(&data->lock);
        idr_init(&data->ctx_idr);
        data->domain_id = domain_id;
@@@ -2146,6 -2332,7 +2335,7 @@@ static void fastrpc_notify_users(struc
  static void fastrpc_rpmsg_remove(struct rpmsg_device *rpdev)
  {
        struct fastrpc_channel_ctx *cctx = dev_get_drvdata(&rpdev->dev);
+       struct fastrpc_buf *buf, *b;
        struct fastrpc_user *user;
        unsigned long flags;
  
        if (cctx->secure_fdevice)
                misc_deregister(&cctx->secure_fdevice->miscdev);
  
+       list_for_each_entry_safe(buf, b, &cctx->invoke_interrupted_mmaps, node)
+               list_del(&buf->node);
+       if (cctx->remote_heap)
+               fastrpc_buf_free(cctx->remote_heap);
        of_platform_depopulate(&rpdev->dev);
  
        cctx->rpdev = NULL;
index e35cca96bbef45489808ffbd931fa023a6493cdf,7c5c18be294a8298eb90e620aec193b22f24d117..5e9ae7600d75ee2865755f8f9c057f0c76547975
@@@ -1689,7 -1689,7 +1689,7 @@@ static int hl_dmabuf_attach(struct dma_
        hl_dmabuf = dmabuf->priv;
        hdev = hl_dmabuf->ctx->hdev;
  
-       rc = pci_p2pdma_distance_many(hdev->pdev, &attachment->dev, 1, true);
+       rc = pci_p2pdma_distance(hdev->pdev, attachment->dev, true);
  
        if (rc < 0)
                attachment->peer2peer = false;
@@@ -2109,7 -2109,7 +2109,7 @@@ static int hl_ts_alloc_buf(struct hl_mm
  
        /* Allocate the internal kernel buffer */
        size = num_elements * sizeof(struct hl_user_pending_interrupt);
-       p = vmalloc(size);
+       p = vzalloc(size);
        if (!p)
                goto free_user_buff;
  
@@@ -2312,7 -2312,8 +2312,7 @@@ static int get_user_memory(struct hl_de
        if (!userptr->pages)
                return -ENOMEM;
  
 -      rc = pin_user_pages_fast(start, npages,
 -                               FOLL_FORCE | FOLL_WRITE | FOLL_LONGTERM,
 +      rc = pin_user_pages_fast(start, npages, FOLL_WRITE | FOLL_LONGTERM,
                                 userptr->pages);
  
        if (rc != npages) {
@@@ -2507,24 -2508,20 +2507,20 @@@ static int va_range_init(struct hl_devi
  
        /*
         * PAGE_SIZE alignment
-        * it is the callers responsibility to align the addresses if the
+        * it is the caller's responsibility to align the addresses if the
         * page size is not a power of 2
         */
  
        if (is_power_of_2(page_size)) {
-               if (start & (PAGE_SIZE - 1)) {
-                       start &= PAGE_MASK;
-                       start += PAGE_SIZE;
-               }
+               start = round_up(start, page_size);
  
                /*
                 * The end of the range is inclusive, hence we need to align it
                 * to the end of the last full page in the range. For example if
                 * end = 0x3ff5 with page size 0x1000, we need to align it to
-                * 0x2fff. The remainig 0xff5 bytes do not form a full page.
+                * 0x2fff. The remaining 0xff5 bytes do not form a full page.
                 */
-               if ((end + 1) & (PAGE_SIZE - 1))
-                       end = ((end + 1) & PAGE_MASK) - 1;
+               end = round_down(end + 1, page_size) - 1;
        }
  
        if (start >= end) {
diff --combined drivers/misc/mei/bus.c
index 1fbe127ff63342cf13d16f6858eb2273a3895895,fdb5f733169582467168bd0fadf9d57b51386996..4a08b624910a0a4114ba43f8b2c0dfdf6c47da1d
@@@ -13,7 -13,6 +13,7 @@@
  #include <linux/slab.h>
  #include <linux/mutex.h>
  #include <linux/interrupt.h>
 +#include <linux/scatterlist.h>
  #include <linux/mei_cl_bus.h>
  
  #include "mei_dev.h"
   */
  ssize_t __mei_cl_send(struct mei_cl *cl, const u8 *buf, size_t length, u8 vtag,
                      unsigned int mode)
+ {
+       return __mei_cl_send_timeout(cl, buf, length, vtag, mode, MAX_SCHEDULE_TIMEOUT);
+ }
+ /**
+  * __mei_cl_send_timeout - internal client send (write)
+  *
+  * @cl: host client
+  * @buf: buffer to send
+  * @length: buffer length
+  * @vtag: virtual tag
+  * @mode: sending mode
+  * @timeout: send timeout in milliseconds.
+  *           effective only for blocking writes: the MEI_CL_IO_TX_BLOCKING mode bit is set.
+  *           set timeout to the MAX_SCHEDULE_TIMEOUT to maixum allowed wait.
+  *
+  * Return: written size bytes or < 0 on error
+  */
+ ssize_t __mei_cl_send_timeout(struct mei_cl *cl, const u8 *buf, size_t length, u8 vtag,
+                             unsigned int mode, unsigned long timeout)
  {
        struct mei_device *bus;
        struct mei_cl_cb *cb;
        cb->internal = !!(mode & MEI_CL_IO_TX_INTERNAL);
        cb->blocking = !!(mode & MEI_CL_IO_TX_BLOCKING);
        memcpy(cb->buf.data, buf, length);
 +      /* hack we point data to header */
 +      if (mode & MEI_CL_IO_SGL) {
 +              cb->ext_hdr = (struct mei_ext_hdr *)cb->buf.data;
 +              cb->buf.data = NULL;
 +              cb->buf.size = 0;
 +      }
  
-       rets = mei_cl_write(cl, cb);
+       rets = mei_cl_write(cl, cb, timeout);
  
 +      if (mode & MEI_CL_IO_SGL && rets == 0)
 +              rets = length;
 +
  out:
        mutex_unlock(&bus->device_lock);
  
@@@ -215,16 -225,9 +235,16 @@@ copy
                goto free;
        }
  
 -      r_length = min_t(size_t, length, cb->buf_idx);
 -      memcpy(buf, cb->buf.data, r_length);
 +      /* for the GSC type - copy the extended header to the buffer */
 +      if (cb->ext_hdr && cb->ext_hdr->type == MEI_EXT_HDR_GSC) {
 +              r_length = min_t(size_t, length, cb->ext_hdr->length * sizeof(u32));
 +              memcpy(buf, cb->ext_hdr, r_length);
 +      } else {
 +              r_length = min_t(size_t, length, cb->buf_idx);
 +              memcpy(buf, cb->buf.data, r_length);
 +      }
        rets = r_length;
 +
        if (vtag)
                *vtag = cb->vtag;
  
@@@ -839,131 -842,6 +859,131 @@@ out
  }
  EXPORT_SYMBOL_GPL(mei_cldev_disable);
  
 +/**
 + * mei_cldev_send_gsc_command - sends a gsc command, by sending
 + * a gsl mei message to gsc and receiving reply from gsc
 + *
 + * @cldev: me client device
 + * @client_id: client id to send the command to
 + * @fence_id: fence id to send the command to
 + * @sg_in: scatter gather list containing addresses for rx message buffer
 + * @total_in_len: total length of data in 'in' sg, can be less than the sum of buffers sizes
 + * @sg_out: scatter gather list containing addresses for tx message buffer
 + *
 + * Return:
 + *  * written size in bytes
 + *  * < 0 on error
 + */
 +ssize_t mei_cldev_send_gsc_command(struct mei_cl_device *cldev,
 +                                 u8 client_id, u32 fence_id,
 +                                 struct scatterlist *sg_in,
 +                                 size_t total_in_len,
 +                                 struct scatterlist *sg_out)
 +{
 +      struct mei_cl *cl;
 +      struct mei_device *bus;
 +      ssize_t ret = 0;
 +
 +      struct mei_ext_hdr_gsc_h2f *ext_hdr;
 +      size_t buf_sz = sizeof(struct mei_ext_hdr_gsc_h2f);
 +      int sg_out_nents, sg_in_nents;
 +      int i;
 +      struct scatterlist *sg;
 +      struct mei_ext_hdr_gsc_f2h rx_msg;
 +      unsigned int sg_len;
 +
 +      if (!cldev || !sg_in || !sg_out)
 +              return -EINVAL;
 +
 +      cl = cldev->cl;
 +      bus = cldev->bus;
 +
 +      dev_dbg(bus->dev, "client_id %u, fence_id %u\n", client_id, fence_id);
 +
 +      if (!bus->hbm_f_gsc_supported)
 +              return -EOPNOTSUPP;
 +
 +      sg_out_nents = sg_nents(sg_out);
 +      sg_in_nents = sg_nents(sg_in);
 +      /* at least one entry in tx and rx sgls must be present */
 +      if (sg_out_nents <= 0 || sg_in_nents <= 0)
 +              return -EINVAL;
 +
 +      buf_sz += (sg_out_nents + sg_in_nents) * sizeof(struct mei_gsc_sgl);
 +      ext_hdr = kzalloc(buf_sz, GFP_KERNEL);
 +      if (!ext_hdr)
 +              return -ENOMEM;
 +
 +      /* construct the GSC message */
 +      ext_hdr->hdr.type = MEI_EXT_HDR_GSC;
 +      ext_hdr->hdr.length = buf_sz / sizeof(u32); /* length is in dw */
 +
 +      ext_hdr->client_id = client_id;
 +      ext_hdr->addr_type = GSC_ADDRESS_TYPE_PHYSICAL_SGL;
 +      ext_hdr->fence_id = fence_id;
 +      ext_hdr->input_address_count = sg_in_nents;
 +      ext_hdr->output_address_count = sg_out_nents;
 +      ext_hdr->reserved[0] = 0;
 +      ext_hdr->reserved[1] = 0;
 +
 +      /* copy in-sgl to the message */
 +      for (i = 0, sg = sg_in; i < sg_in_nents; i++, sg++) {
 +              ext_hdr->sgl[i].low = lower_32_bits(sg_dma_address(sg));
 +              ext_hdr->sgl[i].high = upper_32_bits(sg_dma_address(sg));
 +              sg_len = min_t(unsigned int, sg_dma_len(sg), PAGE_SIZE);
 +              ext_hdr->sgl[i].length = (sg_len <= total_in_len) ? sg_len : total_in_len;
 +              total_in_len -= ext_hdr->sgl[i].length;
 +      }
 +
 +      /* copy out-sgl to the message */
 +      for (i = sg_in_nents, sg = sg_out; i < sg_in_nents + sg_out_nents; i++, sg++) {
 +              ext_hdr->sgl[i].low = lower_32_bits(sg_dma_address(sg));
 +              ext_hdr->sgl[i].high = upper_32_bits(sg_dma_address(sg));
 +              sg_len = min_t(unsigned int, sg_dma_len(sg), PAGE_SIZE);
 +              ext_hdr->sgl[i].length = sg_len;
 +      }
 +
 +      /* send the message to GSC */
 +      ret = __mei_cl_send(cl, (u8 *)ext_hdr, buf_sz, 0, MEI_CL_IO_SGL);
 +      if (ret < 0) {
 +              dev_err(bus->dev, "__mei_cl_send failed, returned %zd\n", ret);
 +              goto end;
 +      }
 +      if (ret != buf_sz) {
 +              dev_err(bus->dev, "__mei_cl_send returned %zd instead of expected %zd\n",
 +                      ret, buf_sz);
 +              ret = -EIO;
 +              goto end;
 +      }
 +
 +      /* receive the reply from GSC, note that at this point sg_in should contain the reply */
 +      ret = __mei_cl_recv(cl, (u8 *)&rx_msg, sizeof(rx_msg), NULL, MEI_CL_IO_SGL, 0);
 +
 +      if (ret != sizeof(rx_msg)) {
 +              dev_err(bus->dev, "__mei_cl_recv returned %zd instead of expected %zd\n",
 +                      ret, sizeof(rx_msg));
 +              if (ret >= 0)
 +                      ret = -EIO;
 +              goto end;
 +      }
 +
 +      /* check rx_msg.client_id and rx_msg.fence_id match the ones we send */
 +      if (rx_msg.client_id != client_id || rx_msg.fence_id != fence_id) {
 +              dev_err(bus->dev, "received client_id/fence_id  %u/%u  instead of %u/%u sent\n",
 +                      rx_msg.client_id, rx_msg.fence_id, client_id, fence_id);
 +              ret = -EFAULT;
 +              goto end;
 +      }
 +
 +      dev_dbg(bus->dev, "gsc command: successfully written %u bytes\n",  rx_msg.written);
 +      ret = rx_msg.written;
 +
 +end:
 +      kfree(ext_hdr);
 +      return ret;
 +}
 +EXPORT_SYMBOL_GPL(mei_cldev_send_gsc_command);
 +
  /**
   * mei_cl_device_find - find matching entry in the driver id table
   *
index 6c8b71ae32c840eea15e48acc2c6c00a23256871,b4c104907ce2184400675db6cc377adb159bb5aa..9ddb854b8155b5476c4d618dd9441cde3fc9fdb9
@@@ -322,7 -322,6 +322,7 @@@ void mei_io_cb_free(struct mei_cl_cb *c
  
        list_del(&cb->list);
        kfree(cb->buf.data);
 +      kfree(cb->ext_hdr);
        kfree(cb);
  }
  
@@@ -402,7 -401,6 +402,7 @@@ static struct mei_cl_cb *mei_io_cb_init
        cb->buf_idx = 0;
        cb->fop_type = type;
        cb->vtag = 0;
 +      cb->ext_hdr = NULL;
  
        return cb;
  }
@@@ -1742,17 -1740,6 +1742,17 @@@ static inline u8 mei_ext_hdr_set_vtag(v
        return vtag_hdr->hdr.length;
  }
  
 +static inline bool mei_ext_hdr_is_gsc(struct mei_ext_hdr *ext)
 +{
 +      return ext && ext->type == MEI_EXT_HDR_GSC;
 +}
 +
 +static inline u8 mei_ext_hdr_set_gsc(struct mei_ext_hdr *ext, struct mei_ext_hdr *gsc_hdr)
 +{
 +      memcpy(ext, gsc_hdr, mei_ext_hdr_len(gsc_hdr));
 +      return ext->length;
 +}
 +
  /**
   * mei_msg_hdr_init - allocate and initialize mei message header
   *
@@@ -1765,17 -1752,14 +1765,17 @@@ static struct mei_msg_hdr *mei_msg_hdr_
        size_t hdr_len;
        struct mei_ext_meta_hdr *meta;
        struct mei_msg_hdr *mei_hdr;
 -      bool is_ext, is_vtag;
 +      bool is_ext, is_hbm, is_gsc, is_vtag;
 +      struct mei_ext_hdr *next_ext;
  
        if (!cb)
                return ERR_PTR(-EINVAL);
  
        /* Extended header for vtag is attached only on the first fragment */
        is_vtag = (cb->vtag && cb->buf_idx == 0);
 -      is_ext = is_vtag;
 +      is_hbm = cb->cl->me_cl->client_id == 0;
 +      is_gsc = ((!is_hbm) && cb->cl->dev->hbm_f_gsc_supported && mei_ext_hdr_is_gsc(cb->ext_hdr));
 +      is_ext = is_vtag || is_gsc;
  
        /* Compute extended header size */
        hdr_len = sizeof(*mei_hdr);
        if (is_vtag)
                hdr_len += sizeof(struct mei_ext_hdr_vtag);
  
 +      if (is_gsc)
 +              hdr_len += mei_ext_hdr_len(cb->ext_hdr);
 +
  setup_hdr:
        mei_hdr = kzalloc(hdr_len, GFP_KERNEL);
        if (!mei_hdr)
                goto out;
  
        meta = (struct mei_ext_meta_hdr *)mei_hdr->extension;
 +      meta->size = 0;
 +      next_ext = (struct mei_ext_hdr *)meta->hdrs;
        if (is_vtag) {
                meta->count++;
 -              meta->size += mei_ext_hdr_set_vtag(meta->hdrs, cb->vtag);
 +              meta->size += mei_ext_hdr_set_vtag(next_ext, cb->vtag);
 +              next_ext = mei_ext_next(next_ext);
 +      }
 +
 +      if (is_gsc) {
 +              meta->count++;
 +              meta->size += mei_ext_hdr_set_gsc(next_ext, cb->ext_hdr);
 +              next_ext = mei_ext_next(next_ext);
        }
 +
  out:
        mei_hdr->length = hdr_len - sizeof(*mei_hdr);
        return mei_hdr;
@@@ -1841,14 -1812,14 +1841,14 @@@ int mei_cl_irq_write(struct mei_cl *cl
        struct mei_msg_hdr *mei_hdr = NULL;
        size_t hdr_len;
        size_t hbuf_len, dr_len;
 -      size_t buf_len;
 +      size_t buf_len = 0;
        size_t data_len;
        int hbuf_slots;
        u32 dr_slots;
        u32 dma_len;
        int rets;
        bool first_chunk;
 -      const void *data;
 +      const void *data = NULL;
  
        if (WARN_ON(!cl || !cl->dev))
                return -ENODEV;
                return 0;
        }
  
 -      buf_len = buf->size - cb->buf_idx;
 -      data = buf->data + cb->buf_idx;
 +      if (buf->data) {
 +              buf_len = buf->size - cb->buf_idx;
 +              data = buf->data + cb->buf_idx;
 +      }
        hbuf_slots = mei_hbuf_empty_slots(dev);
        if (hbuf_slots < 0) {
                rets = -EOVERFLOW;
                goto err;
        }
  
 -      cl_dbg(dev, cl, "Extended Header %d vtag = %d\n",
 -             mei_hdr->extended, cb->vtag);
 -
        hdr_len = sizeof(*mei_hdr) + mei_hdr->length;
  
        /**
        }
        mei_hdr->length += data_len;
  
 -      if (mei_hdr->dma_ring)
 +      if (mei_hdr->dma_ring && buf->data)
                mei_dma_ring_write(dev, buf->data + cb->buf_idx, buf_len);
        rets = mei_write_message(dev, mei_hdr, hdr_len, data, data_len);
  
   *
   * @cl: host client
   * @cb: write callback with filled data
+  * @timeout: send timeout in milliseconds.
+  *           effective only for blocking writes: the cb->blocking is set.
+  *           set timeout to the MAX_SCHEDULE_TIMEOUT to maixum allowed wait.
   *
   * Return: number of bytes sent on success, <0 on failure.
   */
- ssize_t mei_cl_write(struct mei_cl *cl, struct mei_cl_cb *cb)
+ ssize_t mei_cl_write(struct mei_cl *cl, struct mei_cl_cb *cb, unsigned long timeout)
  {
        struct mei_device *dev;
        struct mei_msg_data *buf;
                goto err;
        }
  
 -      cl_dbg(dev, cl, "Extended Header %d vtag = %d\n",
 -             mei_hdr->extended, cb->vtag);
 -
        hdr_len = sizeof(*mei_hdr) + mei_hdr->length;
  
        if (rets == 0) {
  
        mei_hdr->length += data_len;
  
 -      if (mei_hdr->dma_ring)
 +      if (mei_hdr->dma_ring && buf->data)
                mei_dma_ring_write(dev, buf->data, buf_len);
        rets = mei_write_message(dev, mei_hdr, hdr_len, data, data_len);
  
        if (blocking && cl->writing_state != MEI_WRITE_COMPLETE) {
  
                mutex_unlock(&dev->device_lock);
-               rets = wait_event_interruptible(cl->tx_wait,
-                               cl->writing_state == MEI_WRITE_COMPLETE ||
-                               (!mei_cl_is_connected(cl)));
+               rets = wait_event_interruptible_timeout(cl->tx_wait,
+                                                       cl->writing_state == MEI_WRITE_COMPLETE ||
+                                                       (!mei_cl_is_connected(cl)),
+                                                       msecs_to_jiffies(timeout));
                mutex_lock(&dev->device_lock);
+               /* clean all queue on timeout as something fatal happened */
+               if (rets == 0) {
+                       rets = -ETIME;
+                       mei_io_tx_list_free_cl(&dev->write_list, cl, NULL);
+                       mei_io_tx_list_free_cl(&dev->write_waiting_list, cl, NULL);
+               }
                /* wait_event_interruptible returns -ERESTARTSYS */
+               if (rets > 0)
+                       rets = 0;
                if (rets) {
                        if (signal_pending(current))
                                rets = -EINTR;
index 8d8018428d9dd8a254f0a2aff7ab036e69654c40,c1618a44c5a4c5f8f0bc44637b276991b45cf575..996b70a988becab3961efc205660bc8c9ec25c88
@@@ -116,16 -116,12 +116,16 @@@ enum mei_cb_file_ops 
   * @MEI_CL_IO_TX_INTERNAL: internal communication between driver and FW
   *
   * @MEI_CL_IO_RX_NONBLOCK: recv is non-blocking
 + *
 + * @MEI_CL_IO_SGL: send command with sgl list.
   */
  enum mei_cl_io_mode {
        MEI_CL_IO_TX_BLOCKING = BIT(0),
        MEI_CL_IO_TX_INTERNAL = BIT(1),
  
        MEI_CL_IO_RX_NONBLOCK = BIT(2),
 +
 +      MEI_CL_IO_SGL         = BIT(3),
  };
  
  /*
@@@ -210,7 -206,6 +210,7 @@@ struct mei_cl
   * @status: io status of the cb
   * @internal: communication between driver and FW flag
   * @blocking: transmission blocking mode
 + * @ext_hdr: extended header
   */
  struct mei_cl_cb {
        struct list_head list;
        int status;
        u32 internal:1;
        u32 blocking:1;
 +      struct mei_ext_hdr *ext_hdr;
  };
  
  /**
@@@ -379,6 -373,8 +379,8 @@@ void mei_cl_bus_rescan_work(struct work
  void mei_cl_bus_dev_fixup(struct mei_cl_device *dev);
  ssize_t __mei_cl_send(struct mei_cl *cl, const u8 *buf, size_t length, u8 vtag,
                      unsigned int mode);
+ ssize_t __mei_cl_send_timeout(struct mei_cl *cl, const u8 *buf, size_t length, u8 vtag,
+                             unsigned int mode, unsigned long timeout);
  ssize_t __mei_cl_recv(struct mei_cl *cl, u8 *buf, size_t length, u8 *vtag,
                      unsigned int mode, unsigned long timeout);
  bool mei_cl_bus_rx_event(struct mei_cl *cl);
@@@ -500,7 -496,6 +502,7 @@@ struct mei_dev_timeouts 
   * @hbm_f_vt_supported  : hbm feature vtag supported
   * @hbm_f_cap_supported : hbm feature capabilities message supported
   * @hbm_f_cd_supported  : hbm feature client dma supported
 + * @hbm_f_gsc_supported : hbm feature gsc supported
   *
   * @fw_ver : FW versions
   *
@@@ -592,7 -587,6 +594,7 @@@ struct mei_device 
        unsigned int hbm_f_vt_supported:1;
        unsigned int hbm_f_cap_supported:1;
        unsigned int hbm_f_cd_supported:1;
 +      unsigned int hbm_f_gsc_supported:1;
  
        struct mei_fw_version fw_ver[MEI_MAX_FW_VER_BLOCKS];
  
diff --combined scripts/kallsyms.c
index 04e04fbd9625caf446d882bd270e6a93afccc646,46d1afaaf4cd0701ceb6e1f681f64dde39268c78..8a68179a98a3986ed12a25bcbb0e535c5c54a5f4
@@@ -5,7 -5,8 +5,8 @@@
   * This software may be used and distributed according to the terms
   * of the GNU General Public License, incorporated herein by reference.
   *
-  * Usage: nm -n vmlinux | scripts/kallsyms [--all-symbols] > symbols.S
+  * Usage: kallsyms [--all-symbols] [--absolute-percpu]
+  *                         [--base-relative] in.map > out.S
   *
   *      Table compression uses all the unused char codes on the symbols and
   *  maps these to the most used substrings (tokens). For instance, it might
@@@ -49,7 -50,6 +50,7 @@@ _Static_assert
  struct sym_entry {
        unsigned long long addr;
        unsigned int len;
 +      unsigned int seq;
        unsigned int start_pos;
        unsigned int percpu_absolute;
        unsigned char sym[];
@@@ -78,7 -78,6 +79,7 @@@ static unsigned int table_size, table_c
  static int all_symbols;
  static int absolute_percpu;
  static int base_relative;
 +static int lto_clang;
  
  static int token_profit[0x10000];
  
@@@ -90,7 -89,7 +91,7 @@@ static unsigned char best_table_len[256
  static void usage(void)
  {
        fprintf(stderr, "Usage: kallsyms [--all-symbols] [--absolute-percpu] "
 -                      "[--base-relative] in.map > out.S\n");
 +                      "[--base-relative] [--lto-clang] in.map > out.S\n");
        exit(1);
  }
  
@@@ -412,65 -411,6 +413,65 @@@ static int symbol_absolute(const struc
        return s->percpu_absolute;
  }
  
 +static char * s_name(char *buf)
 +{
 +      /* Skip the symbol type */
 +      return buf + 1;
 +}
 +
 +static void cleanup_symbol_name(char *s)
 +{
 +      char *p;
 +
 +      if (!lto_clang)
 +              return;
 +
 +      /*
 +       * ASCII[.]   = 2e
 +       * ASCII[0-9] = 30,39
 +       * ASCII[A-Z] = 41,5a
 +       * ASCII[_]   = 5f
 +       * ASCII[a-z] = 61,7a
 +       *
 +       * As above, replacing '.' with '\0' does not affect the main sorting,
 +       * but it helps us with subsorting.
 +       */
 +      p = strchr(s, '.');
 +      if (p)
 +              *p = '\0';
 +}
 +
 +static int compare_names(const void *a, const void *b)
 +{
 +      int ret;
 +      char sa_namebuf[KSYM_NAME_LEN];
 +      char sb_namebuf[KSYM_NAME_LEN];
 +      const struct sym_entry *sa = *(const struct sym_entry **)a;
 +      const struct sym_entry *sb = *(const struct sym_entry **)b;
 +
 +      expand_symbol(sa->sym, sa->len, sa_namebuf);
 +      expand_symbol(sb->sym, sb->len, sb_namebuf);
 +      cleanup_symbol_name(s_name(sa_namebuf));
 +      cleanup_symbol_name(s_name(sb_namebuf));
 +      ret = strcmp(s_name(sa_namebuf), s_name(sb_namebuf));
 +      if (!ret) {
 +              if (sa->addr > sb->addr)
 +                      return 1;
 +              else if (sa->addr < sb->addr)
 +                      return -1;
 +
 +              /* keep old order */
 +              return (int)(sa->seq - sb->seq);
 +      }
 +
 +      return ret;
 +}
 +
 +static void sort_symbols_by_name(void)
 +{
 +      qsort(table, table_cnt, sizeof(table[0]), compare_names);
 +}
 +
  static void write_src(void)
  {
        unsigned int i, k, off;
        for (i = 0; i < table_cnt; i++) {
                if ((i & 0xFF) == 0)
                        markers[i >> 8] = off;
 +              table[i]->seq = i;
  
                /* There cannot be any symbol of length zero. */
                if (table[i]->len == 0) {
  
        free(markers);
  
 +      sort_symbols_by_name();
 +      output_label("kallsyms_seqs_of_names");
 +      for (i = 0; i < table_cnt; i++)
 +              printf("\t.byte 0x%02x, 0x%02x, 0x%02x\n",
 +                      (unsigned char)(table[i]->seq >> 16),
 +                      (unsigned char)(table[i]->seq >> 8),
 +                      (unsigned char)(table[i]->seq >> 0));
 +      printf("\n");
 +
        output_label("kallsyms_token_table");
        off = 0;
        for (i = 0; i < 256; i++) {
@@@ -644,7 -574,7 +645,7 @@@ static void forget_symbol(const unsigne
  }
  
  /* do the initial token count */
 -static void build_initial_tok_table(void)
 +static void build_initial_token_table(void)
  {
        unsigned int i;
  
@@@ -769,7 -699,7 +770,7 @@@ static void insert_real_symbols_in_tabl
  
  static void optimize_token_table(void)
  {
 -      build_initial_tok_table();
 +      build_initial_token_table();
  
        insert_real_symbols_in_table();
  
@@@ -889,7 -819,6 +890,7 @@@ int main(int argc, char **argv
                        {"all-symbols",     no_argument, &all_symbols,     1},
                        {"absolute-percpu", no_argument, &absolute_percpu, 1},
                        {"base-relative",   no_argument, &base_relative,   1},
 +                      {"lto-clang",       no_argument, &lto_clang,       1},
                        {},
                };
  
This page took 0.229606 seconds and 4 git commands to generate.